※ 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. ※

오늘은 RAG 학습용 데이터셋 구성에서 실제 서비스 환경과 유사하게 만들기 위해, 검색 결과 개수를 유동적으로 조정하는 실습을 진행했습니다.
이전까지는 항상 문서 5개를 기반으로 정답 응답을 생성했었는데요.
검색 시스템은 상황에 따라 2개 혹은 4개의 문서만 검색될 수도 있습니다!
따라서 문서 수가 달라지는 다양한 상황에서도 LLM이 적절하게 대응할 수 있도록 데이터를 설계하는 것이 중요하구요.
🔄 네거티브 샘플 무작위 제거로 문서 수 다양화
우선 KLUE-MRC 기반으로 구축해둔 데이터셋에서, 각 질문에 대해 네거티브 문서를 1~4개 사이로 랜덤하게 제거하는 함수를 만들었습니다.
이렇게 하면 검색 결과는 매번 2개에서 5개 사이로 구성될텐데요.
이때, 긍정 문서는 항상 포함되도록 유지합니다.
그 후 정답 문서와 네거티브 문서를 섞고, 문서 순서까지 랜덤하게 셔플했습니다.
이를 통해 생성된 각 샘플은 서로 다른 구성을 가지며, 더 현실적인 학습 조건을 구성할 수 있게 됩니다.
💬 GPT-4o에게 유연한 응답을 유도하는 프롬프트 설계
문서 수가 달라지는 환경에서 정확한 응답을 생성하려면, GPT에게도 정확한 지침을 내려야 합니다.
그래서 시스템 프롬프트는 다음과 같은 원칙을 중심으로 설계했습니다.
- 반드시 문서 내용을 인용해서 답변할 것
- 인용은 [[ref1]], [[ref2]] 형식으로 작성
- 답변 중간에 인용이 들어가더라도 전체 응답은 평문 형태로 유지
- 문서 수는 유동적이므로 “문서3”, “문서4”와 같은 문서 번호 기반으로 인용 지시
- 문서에 없는 정보는 답변에 포함하지 않도록 강력하게 제한
이러한 구조는 GPT가 문서의 유무 여부를 판단하고, 불필요한 망상(Hallucination)...을 억제하는 데 매우 효과적입니다.
🤖 GPT-4o로 응답 생성 및 정답 필터링
이제 사용자 질문과 검색된 문서 묶음을 바탕으로, GPT-4o를 통해 응답을 생성했습니다.
temperature를 0으로 설정해 최대한 일관성 있고 논리적인 답변을 유도했고,
응답에서 인용 문서 번호([[ref3]] 등)를 추출해 정답과 출처를 함께 기록했습니다.
그 결과물 중 인용이 포함되지 않은 응답은 모두 제외하고, 올바르게 인용된 응답만 필터링하여 최종 학습 데이터로 저장했습니다.
🤔 배운 점과 고민 포인트
✨ 배운 점
- RAG 학습 데이터에서 문서 개수를 다양화하는 것은 변칙적인 검색 결과 수에 대응할 수 있는 매우 중요한 설계 요소!
- 네거티브 샘플을 무작위 제거해 문서 수를 다르게 구성함으로써, 모델이 문서 수 변화에 유연하게 대응할 수 있도록 만들 수 있음
- 인용이 포함된 응답만을 필터링하여 학습에 활용함으로써 신뢰 가능한 RAG 응답을 학습시키는 기반을 구축
① 오늘자 날짜, 공부 시작, 종료 시각 포함 사진 각 1장


② 1개 클립 수강 인증 사진 1장 / 학습 인증 사진 1장


③ 챌린지 대상 강의 완강률 캡쳐 사진 1장

https://fastcampus.info/4n8ztzq
(~6/20) 50일의 기적 AI 환급반💫 | 패스트캠퍼스
초간단 미션! 하루 20분 공부하고 수강료 전액 환급에 AI 스킬 장착까지!
fastcampus.co.kr
'패스트캠퍼스환급챌린지' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 37일차 : 파인튜닝과 RAG로 완성하는 맞춤형 LLM 서비스 개발 강의 후기 (3) | 2025.08.06 |
|---|---|
| 패스트캠퍼스 환급챌린지 36일차 : 파인튜닝과 RAG로 완성하는 맞춤형 LLM 서비스 개발 강의 후기 (1) | 2025.08.05 |
| 패스트캠퍼스 환급챌린지 34일차 : 파인튜닝과 RAG로 완성하는 맞춤형 LLM 서비스 개발 강의 후기 (2) | 2025.08.03 |
| 패스트캠퍼스 환급챌린지 33일차 : 파인튜닝과 RAG로 완성하는 맞춤형 LLM 서비스 개발 강의 후기 (2) | 2025.08.02 |
| 패스트캠퍼스 환급챌린지 32일차 : 파인튜닝과 RAG로 완성하는 맞춤형 LLM 서비스 개발 강의 후기 (6) | 2025.08.01 |