-
RAG 개선, 평가 방법DEV 2024. 11. 11. 21:02
사진: Unsplash 의 jean wimmerlin 2024.11.10 - [DEV] - vectorDB 없이 검색 api만으로 RAG app만들기
vectorDB 없이 검색api만으로 RAG app만들기
이전글 simple RAG pipelineRAGRetrieval augmented generation (RAG: 검색 증강 생성)할루시네이션, 학습되지 않은 최신 데이터, 메모리 이슈해결RAG의 간단한 인덱싱 파이프라인 4단계원본 데이터에서 데이터 로
developer-as-job.tistory.com
이전글의 추가개선 사항에 대한 이야기
Self-Reflective RAG
- 답변 생성 과정 중, 한번의 검색 → 검색된 문서들의 관련성, 정확성에 문제가 있을 가능성 높음
- 품질이 낮은 검색, 생성 결과를 LLM을 사용해 수정
- 질문을 다시 생성하거나 문서를 다시 검색하는 일종의 피드백을 상태머신을 사용(검색, 문서 채점, 쿼리 재작성)
- 검색된 문서가 관련이 없는 경우 쿼리를 다시 작성하고 새 문서를 다시 검색
Self-Reflective RAG CRAG(Corrective RAG)
- https://arxiv.org/pdf/2401.15884
- 가벼운 검색 평가기를 사용하여 쿼리에 대해 검색된 문서의 전반적인 품질을 평가하고 각각에 대한 신뢰도 점수를 반환
- 벡터스토어 검색이 모호하거나 사용자 쿼리와 관련이 없는 것으로 간주되는 경우 웹 기반 문서 검색을 수행하여 컨텍스트를 보완
- 검색된 문서를 "지식 스트립"으로 분할하고 각 스트립의 등급을 매기고 관련 없는 문서를 필터링하여 지식 개선을 수행
- 최적이 아닌 검색과 관련된 부정확성을 완화하고 생성된 응답의 신뢰성을 보장
CRAG(Corrective RAG) Self-RAG
- https://arxiv.org/pdf/2310.11511
- self-reflection으로 환각으로 인해 문제가 있는 답변이나 질문을 해결하지 못하는 답변을 수정할 수 있도록 하여 다양한 작업에서 사실성과 다양성을 향상
- 필요에 따라 검색 - 검색이 필요한 경우 [Retriever] 토큰 출력
- 프롬프트 +검색 결과를 병렬로 모델에 추론
- 위에서 생성된 결과를 평가 가장 적합한 세그먼트를 선택
- 특별히 훈련된 모델 필요
Self-RAG Adaptive RAG
- https://arxiv.org/pdf/2403.14403
- 질문을 다양한 검색 접근 방식으로 동적으로 라우팅 → 가장 관련성이 높은 방식으로 정보를 검색
- single-step approach → 단순한 쿼리 = ok, 복잡한 쿼리 = 부정확
- multi-step approach → 단순한 쿼리 = 비효율, 복잡한 쿼리 = ok
- Adaptive Approach → 쿼리의 타입에 따라 검색 방식을 선택
Adaptive RAG Combine ideas
- Routing: Adaptive RAG
- Fallback: Corrective RAG
- Self-correction: Self-RAG
Combine ideas 여러 가지 방법으로 RAG application을 만든다고 해도 어떤 방법이 얼마나 좋아졌는지 어떻게 알 수 있을까?
RAG Framewroks
RAG Framewroks RAG 정량적 평가 (Evaluation)
RAG 평가(Evaluation) 프레임워크
- RAGAS, Trulens ..
Trulens
Trulens 평가 기준
Context Relevance(컨텍스트 관련성)
- 원래 질문에 대한 컨텍스트(검색된 문서)의 관련성을 평가
- 맥락이 LLM 답변의 기초를 형성하기 때문에 이는 매우 중요
근거(Groundedness)
- LLM의 최종 답변이 맥락(검색된 문서)에 제공된 사실과 일치하는지 평가하여 주어진 정보를 과장하거나 벗어나지 않도록
Answer Relevance(답변 관련성)
- LLM의 최종 답변이 원래 질문을 얼마나 잘 다루고 있는지 측정하여 도움이 되고 관련성이 있는지 확인
728x90'DEV' 카테고리의 다른 글
ETL, ECL and vector DB (0) 2024.11.13 Chunking in RAG application (0) 2024.11.12 vectorDB 없이 검색api만으로 RAG app만들기 (2) 2024.11.10 advanced RAG (0) 2024.11.09 simple RAG pipeline (2) 2024.11.08