MODULE m2 · 8.0 HOURS
평가용 문서 코퍼스 큐레이션
LEARNING OBJECTIVES
이번 모듈의 목표
- RAG 평가를 위한 고정 문서 코퍼스의 중요성을 이해한다.
- 평가용 문서 데이터의 품질 결정 요소(정확성, 다양성, 중복 제거)를 학습한다.
- 정량적 평가를 위한 문서-질문-정답 쌍(QA Pair) 데이터셋 구축 전략을 익힌다.
- 데이터 누출(Data Leakage)을 방지하기 위한 학습/평가 분할 방법을 습득한다.
RAG 평가를 위한 코퍼스 큐레이션
대규모 언어 모델(LLM)은 학습된 파라미터 내의 지식에 의존할 때 환각(Hallucination) 위험이 존재합니다. 검색 증강 생성(RAG)은 모델이 실시간으로 외부 지식에 접근하도록 하여 이러한 한계를 극복합니다 [S2]. 효과적인 RAG 시스템의 신뢰성을 정량적으로 평가하기 위해서는 고정되고 제어 가능한 평가용 문서 코퍼스(Fixed Evaluation Corpus)가 필수적입니다.
1. 코퍼스 품질 결정 요소
- 정확성(Factuality): 문서 내의 정보는 최신이고 사실적이어야 합니다. 잘못된 정보가 포함된 코퍼스는 잘못된 답변을 생성하게 합니다.
- 도메인 적합성: 평가하고자 하는 실제 서비스 환경과 유사한 주제 및 어휘를 포함해야 합니다.
- 중복 제거(De-duplication): 동일한 정보가 여러 문서에 중복될 경우, 검색 결과의 다양성이 저해되고 평가 통계에 편향을 줄 수 있습니다.
2. QA 평가 데이터셋 구축
문서 코퍼스만으로는 평가가 불가능합니다. ‘문서-질문-정답’ 쌍을 구축하여 검색기가 관련 문서를 가져오는지, 생성기가 이를 기반으로 정확한 답변을 하는지 측정해야 합니다.
- 질문 생성: LLM을 사용하여 문서에서 질문을 자동으로 생성하거나, 도메인 전문가가 직접 작성합니다.
- 정답 정의: 답변의 근거가 되는 문서 구간(Chunk)을 명확히 명시해야 합니다.
3. 데이터 분할 및 무결성
평가셋의 신뢰성을 위해 개발용(Development Set)과 최종 평가용(Hold-out Test Set)을 엄격히 분할해야 합니다. 평가셋에 포함된 질문이 검색 대상 문서에 직접적으로 포함되어 노출되는 ‘데이터 누출’ 현상을 방지해야 합니다.
WORKED EXAMPLES
해설 예제
- 예제 1: 문서 청킹(Chunking) 전략. 텍스트를 고정 크기로 나눌 때 문맥이 끊기지 않도록 문단 단위나 의미 단위로 나누는 파이썬 스크립트 작성법.
- 예제 2: 질문-답변 데이터 구성. { 'question': '...', 'ground_truth': '...', 'context_chunk_id': '...' } 형식의 JSON 객체 생성 예시.
LAB PROTOCOL
평가용 코퍼스 구축 실습
- 1
평가할 대상 도메인의 오픈 라이선스 텍스트 파일(.txt)을 확보한다.
- 2
파이썬을 사용하여 텍스트 파일을 읽고 청크 단위로 나누는 스크립트를 작성한다.
- 3
각 청크에 고유 식별자(ID)를 부여하고 메타데이터(제목, 소스)를 기록한다.
- 4
작성한 청크들 중에서 질문을 생성하고, 답변의 근거가 되는 청크 ID를 기록하여 50개의 QA 쌍을 구성한다.
- 5
전체 코퍼스를 8:2 비율로 개발셋과 테스트셋으로 나누어 저장한다.
- 개인정보가 포함된 문서는 평가 코퍼스에 포함하지 않는다.
- 외부 API 사용 시 요청 수 상한을 설정하여 비용을 제어한다.
- 작업 시 생성된 데이터는 Git을 통해 버전을 관리하여 재현성을 확보한다.
실습 제출물
- 구축된 문서 코퍼스 파일(JSONL 형식)
- 질문과 정답이 포함된 QA 데이터셋(JSON 형식)
- 코퍼스 분할 기록이 담긴 Jupyter Notebook 파일
ASSIGNMENT
도메인 기반 RAG 데이터셋 완성
제출물
평가 기준
- 코퍼스 내 중복 청크 제거 완료 여부
- 테스트셋과 개발셋의 데이터 누출 여부 확인
- 답변의 근거가 되는 문서 구간(Chunk ID)의 정확한 매핑 여부
KNOWLEDGE CHECK
이해도 점검
FIELD CHECK
완료 기준
- 평가용 문서 코퍼스(최소 100개 청크 이상) 구축 완료
- 검증 가능한 QA 데이터셋(최소 100문항) 생성 완료
- 데이터셋 분할 정책 준수 확인
- 결과물에 대한 동료 검토 또는 자기 평가 체크리스트 작성 완료
MODULE SOURCES
이 모듈의 근거
- Natural Language Processing with Deep Learning CS224N/Ling284web.stanford.edu · university