과거에 논문 스터디를 진행하면서 작성해놓았던 논문 리뷰를 포스트로 공유합니다. 2024년 7월에 발표된 논문으로 RAG 방법론에 대한 최적의 파라미터와 방법론들을 실험한 연구이며, 전반적인 RAG 파이프라인 구성과 최신 방법론들을 참고하기에 좋습니다.
ArxivID: https://arxiv.org/abs/2407.01219
Last edited time: July 23, 2024 7:59 PM
Topic: Best Practice, RAG
정독 필요: No
1. 연구 목적/동기
쿼리에 의존적인 검색을 통해서 LLM의 성능을 향상 시키기 위한 최근의 RAG 방법론들은 구현이 복잡하고 응답 시간이 길다. 성능과 효율성이 좋은 RAG 방법론을 찾고 제안하고자함.
2. 연구 방법
각 모듈 별로 최상위 3가지 방법 선택 → 다른 모듈을 고정한 상태에서 각 단계별로 방법을 테스트하여 전체 성능에 미치는 영향 평가 → 다양한 시나리오에 적합한 조합 탐색
RAG workflow (bold 표시가 논문에서 제안하는 최적의 방식)
실험 요소들
- Query classification: 쿼리가 검색 보조 생성(RAG)이 필요한지 여부를 판단하여 필요한 경우에만 검색 과정을 거치게 하는 모듈
- Chunking: 큰 문서를 작은 데이터 조각으로 나누어 검색과 처리 효율성을 높이는 과정
- Retrieval: 쿼리에 대한 관련 문서를 효율적으로 검색하는 과정
- Reranking: 쿼리와의 관련성에 따라 검색된 문서의 순서를 정제하는 과정
- Repacking: Rerenking 이후 relevancy score에 따라서 어떻게 순서를 매길 것인지
- Summarization: Repacking 이후 응답 생성을 위한 주요 정보를 추출하고 중복을 제거하는 과정
- Generator fine-tuning: 관련 또는 비관련 문맥을 미세 조정할 때 넣으면서 생성기 성능 평가
실험이 엄청 많지만 몇개만 추려서 정리
Chunking
sentence-level chunking을 사용 (token-level은 의미를 저해하고, llm으로 breakpoint를 찾는 semantic-level은 시간이 많이 소요됨)
chunk size: faithfulness(사실을 제대로 반영하는지)와 relevancy(질문과 관련있는 답변인지)
chunking technique
- small2big: 작은 chunk를 검색해서 연결되어있는 큰 부모 chunk를 불러오는 방식
- small2big: 작은 chunk를 검색해서 연결되어있는 큰 부모 chunk를 불러오는 방식
metadata addition (제목, 키워드, 전제 질문) - 추후에 더 다룰 것임
Retrieval
쿼리를 최적화하는 방식: Query Rewriting, Query Decomposition, Pseudo-documents Generation
→ Pseudo-document Generation + Hybrid Search 가 가장 성능이 좋았다..
HyDE : 사용자의 쿼리에 기반하여 LLM을 사용해 가상의 답변 문서를 생성하여 검색하는 방식
- latency 이슈
Hybrid Search: sparse (BM25) + dense (Contriever)
sparse ret의 점수, dense ret의 점수
sparse retrieval에 얼만큼 가중치를 줄 것인가? → 0.3이 가장 적합
Repacking
- Rerenking 이후 relevancy score에 따라서 어떻게 순서를 매길 것인지
- forward/reverse: 내림차순/오름차순
- sides: 맨 앞과 맨 뒤에 관련 내용이 있을 때 성능이 제일 좋다는 연구가 있음
Generator Fine-tuning
- 쿼리와 관련된 문맥(relevant)과 무작위로 선택된 문맥(random-selected)으로 fine-tuning 했을때 generator 성능에 미치는 영향?
- gr (gold + random) 환경에서 훈련된 모델이 관련 문서만 주어지거나, 랜덤 문서가 혼용되는 경우에 모두 robust
3. 결과 및 요약
- 최고 성능을 위한 Best Practice
- query classification module O
- Retrieval: Hybrid with HyDE
- Rerank: monoT5
- Repack: reverse
- Summarization: Recomp
- 효율성까지 고려한 Best Practice
- query classification module O
- Retrieval: Hybrid
- Rerank: TILDEv2
- Repack: reverse
- Summarization: Recomp
4. 참고해보면 좋을 자료들
도메인 문서별 chunking 방식 논의
Financial Report Chunking for Effective Retrieval Augmented Generation
Using gpt-4 API to Semantically Chunk Documents
법률 문서를 semantically chunking하는 방식에 대한 논의