1. 실험 기록지
| 날짜 |
변경 내용 |
결과 점수 (Recall / Faithfulness 등) |
한줄 평 |
| 12/31 |
baseline |
‘faithfulness': 0.7551, 'answer_relevancy': 0.5270, 'context_precision': 0.5524, 'context_recall': 0.6875 |
검색을 너무 많이 가져오고 |
| Grader는 관대하고, |
|
|
|
| Generator는 컨텍스트를 충분히 길게 읽고 설명하는 상태 |
|
|
|
| 12/31 |
더 적은 문서를 가져오도록 수정 |
|
|
- "k": 20, -> 6
- "fetch_k": 50, -> 20
- "lambda_mult": 0.85 -> 0.7 | ‘faithfulness': 0.7815, ⬆️ 'answer_relevancy': 0.4645, ⬇️ 'context_precision': 0.5896, ⬆️ 'context_recall': 0.5625 ⬇️ | Precision–Recall 트레이드오프 발생
정답 신뢰성은 좋아졌지만 필요한 문서가 검색 후보에서 빠지면서 커버리지는 나빠짐 |
| 12/31 | 검색 범위 약간 확장
- "fetch_k": 20 → 30 | 'faithfulness': 0.8366, ⬆️
'answer_relevancy': 0.4848, ⬆️
'context_precision': 0.5536, ⬇️
'context_recall': 0.5000 ⬇️ | faithfulness에서 뚜렸한 증가폭 보임, 나머지 지표는 미세한 오르내림은 있지만 오차범위 안으로 보임 |
| 1/2 | grader 입력문서 10→5
grader 프롬프트 엄격하게 수정 | 'faithfulness': 0.7310, ⬇️
'answer_relevancy': 0.4651, ⬇️
'context_precision': 0.5198, ⬇️
'context_recall': 0.6250 ⬆️ | grader가 엄격해지니 통과된 문서가 적어 답이 있는데 없다고 대답한 경우가 증가해 전체적인 점수는 하락했다.
- 특이사항: 일부 질문에서는 답변의 설명력이 더 좋아졌다. (통과한 문서의 품질이 올라간 영향으로 추정)
- 당연하겠지만 RAGAS 점수만 보면 안되고 답변 퀄리티의 정성적 비교도 매우 중요하다고 느낌 |
| 1/2 | - _grade_documents 함수 수정: (기존) 문서 내 chunk를 한 덩어리로 묶어놓고 평가 -> (변경) 문서 내 chunk 여러 개를 개별 평가 후 일정 개수 이상이면(yes >= 1) 통과 | 'faithfulness': 0.8019, ⬆️
'answer_relevancy': 0.5165, ⬆️
'context_precision': 0.4969, ⬇️
'context_recall': 0.5625 ⬆️ | 전체적으로 recall 좋아졌음. Q3 답변은 여전히 틀렸지만 기존에 봉화군 문서를 참고하며 답변을 못한 것에서 유사문서에서 ~~ 내용이 있다는 형식으로 답변이 변경됨 |
2. 데이터로더 비교실험
“한국원자력연구원_한국원자력연구원 선량평가시스템 고도화.hwp”으로 4가지 로드 방식을 비교해보았다.
- olefile로 hwp 로드
- pypdf
- mupdf
- pdfplumber
=== PDF 추출 성능 비교 (1개 파일 기준) ===
[pypdf] 추출 시간: 3.67초, 길이: 42491
[mupdf] 추출 시간: 0.16초, 길이: 44808
[pdfplumber] 추출 시간: 6.80초, 길이: 43235
표 형태 출력 비교

- 페이지 6
- olefile
- pypdf
- mupdf
- pdfplumber

- 페이지 12
- olefile
- pypdf
- mupdf
- pdfplumber
- 로더별 GPT 분석 요약
🧠 엔진별 특성 차이가 발생한 기술적 이유
| 문제 현상 |
원인 |
| pypdf: 모든 문장이 붙음 |
PDF에서 텍스트 좌표를 해석하지 못함. 순서 보존 불가 |
| mupdf: 줄바꿈 자연스러움 |
PDF 렌더링 엔진 수준으로 구조를 재해석함 |
| pdfplumber: 표는 좋은데 문단은 불안정 |
표 감지는 뛰어나나 전체 레이아웃 분석은 제한적 |
| olefile이 최고 품질 |
HWP 내부 스트림(TEXT Tag 67)을 직접 해석하기 때문 |
🏆 총평 (이 페이지 기준)
| 엔진 |
텍스트 품질 |
사용 추천도 |
비고 |
| olefile(HWP) |
⭐⭐⭐⭐⭐ |
최고 |
구조 보존 완벽 |
| PyMuPDF |
⭐⭐⭐⭐☆ |
매우 추천 |
PDF 중 최상 |
| pdfplumber |
⭐⭐⭐⭐ |
조건부 추천 |
표 중심 문서에 강함 |
| pypdf |
⭐☆☆☆☆ |
비추천 |
구조 완전 파괴 |