RAG

패스트캠퍼스 환급챌린지 36일차 : 테디노트의 RAG 비법노트 강의 후기

Sssadie 2025. 12. 17. 16:50
반응형

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

 

RAG 평가

RAG 평가가 필요한 이유?

RAG는 Retriever + Reranker + Prompt + LLM 으로 여러 컴포넌트가 얽힌 구조로, 단순히 답변이 좋아보인다는 감각적인 판단으로는 어떤 단계가 문제인지 알 수 없고 개선이 어려워서 정량적·자동화된 평가 필수.  

합성 테스트 데이터셋 생성

문서에서 수백 개의 QA(질문-문맥-응답) 샘플을 수도으로 생성하는 것은 시간과 노동력이 많이 소요될 수 있고, 사람이 만든 질문은 철저한 평가에 필요한 복잡성 수준에 도달하기 어려워 궁극적으로 평가의 품질에 영향을 미칠 수 있음.

→ 합성 데이터 생성을 사용하면 데이터 집계 프로세스에서 개발자의 시간을 90%까지 줄일 수 있음.

 

> 합성 데이터의 장점

  • 문서 기반 자동 QA 생성
  • Retriever·Reasoning·Conditioning 등 목적별 질문 생성
  • 평가 커버리지 대폭 증가

RAGAS를 활용한 평가

RAGAS란?

Document nodes → Chunk Validation → Seed Question → Evolver → Evolution → Evolved Question → QA validator → QA Samples
  • 문서를 업로드 하고, Seed Quesition을 생성하여 Evolver가 이 Seed Question에 대해 좋은 질문인지 나쁜 질문인지 구분을 하여, 좋은 질문을 선별해서 답변을 생성하는 과정을 의미함.
  • Evolution 프로세스에서는, RAGAS에서 질문들을 생성할 때 어떤 목적을 가지고 질문을 생성하도록 요청함.
    목적에는 reasoning(추론을 평가할 수 있는 질), conditioning(어떤 조건이 들어갈지), multi-context(여러 문맥에서 가져올 수 있는지) 작업들에 특화된 질문들을 만들도록 요청을 하는데, RAGAS는 이런 목적까지 반영해서 데이터셋을 만들어주기 때문에 괭장히 정교함.

> Summary

RAGAS는 단순 QA 생성기가 아니라, 평가 목적 중심 질문 생성 파이프라인.

⇒ 사람이 만들기 어려운 고난도 질문 자동 생성

  • Seed Question : 기본 질문 생성
  • Evolver
    - 질문을 변형·확장
    - 좋은질문 vs 나쁜질문 구분
  • Evolution
    - resoning : 추론 능력 평가
    - conditioning : 조건 처리 능력
    - multi-context : 여러 문맥 활용 여부

LangSmith 데이터셋과 Evaluator

  • 생성된 QA를 LangSmith Dataset으로 업로드
  • 여러 평가기(Evaluator)로 성능 비교 가능

임베딩 기반 Evaluator(embedding_distance)

  • 답변과 정답을 벡터로 변환해 거리 계산하여 토큰이 소요되지 않고 빠른 대량 평가가 가능하지만, 논리적 오류와 Hallucination까지는 판단 어려움 

Heuristic 평가

평가 지표가 수식으로 나와있어서 토큰이 소요되지 않음.

LLM-as-Judge

  • 평가를 할 때마다 토큰 비용이 나감. → 평가를 많이 할 때는 부담이 될 수 있음.
  • LLM이 평가를 해주는 시스템 :  LLM이 판별자가 되어 답변이 괜찮은지 여부를 판단
  • Hallucination Checker 도 만들 수 있음 : 답변 Hallucination 여부를 판단

Pairwise Evaluation

  • 두 개 이상의 LLM 생성물을 서로 비교
  • 모델/프롬프트/체인 비교에 매우 효과적

오늘은 RAG 시스템의 평가(Evaluation) 단계에 대해 학습했습니다. RAG는 단순히 LLM 하나만 평가하면 되는 구조가 아니라, Retrieval, Reranking, Prompt, 생성 단계가 모두 결합된 복합 시스템이기 때문에 체계적인 평가 없이는 성능 개선이 거의 불가능하다고 할 수 있습니다. 왜 이 답변이 틀렸는지, 어디서 성능이 떨어지는지를 알 수 있을때 비로소 RAG 시스템을 제대로 발전시킬 수 있습니다. 순차적으로 정리해보겠습니다. 

일단, 합성 테스트 데이터셋의 필요성을 가장 먼저 이해할 수 있었습니다. 문서를 보고 사람이 직접 수많은 QA 샘플을 만드는 것은 시간과 비용이 많이 들 뿐만 아니라, 질문 난이도와 유형이 편향될 가능성이 큽니다. 반면, 합성 데이터 생성을 활용하면 개발자의 시간을 90% 줄일 수 있고, 사람이 만들기 어려운 고난도 질문까지 자동으로 생성할 수 있습니다. 이 과정에서 핵심 도구는 바로 RAGAS 입니다. RAGAS는 문서를 업로드 한 뒤 Seed Question을 생성하고, Evolver가 질문의 품질을 평가하고 선별하여 정교한 QA 데이터셋을 만들어줍니다. 특히 이 Evolution 과정에서 reasoning, conditioning, multi-context 같은 목적을 명시적으로 반영해 질문을 생성한다는 점에서 단순 QA 생성기를 넘어 평가 목적에 최적화된 데이터셋 생성 도구라는 점을 할 수 있습니다. 이렇게 생성된 데이터셋을 LangSmith에 업로드하여 다양한 평가 방식으로 분석할 수 있습니다. 임베딩 기반 Evaluator는 토큰 비용 없이 빠르게 유사도를 계산할 수 있어 대량 평가에 적합하고, Heuristic 평가는 규칙 기반으로 빠른 1차 필터링에 유용합니다. 반면, LLM-as-Judge는 토큰 비용이 발생하여 대량 평가에는 부적합하지만, 답변의 논리성이나 Hallucination 여부처럼 인간에 가까운 판단을 내릴 수 있다는 장점이 있습니다. 

오늘 내용을 배우면서 앞으로 RAG를 구현할 때는 반드시 평가까지 포함한 구조로 체계적인 설계가 필요하다는 점을 느꼈습니다. 배울수록 고려할 사항이 계속 추가되어 어려움이 있지만, 꾸준히 해서 결과를 만들어봐야겠습니다.

 

 

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr

 

반응형