본문 바로가기
Research/NLP

[논문리뷰] Searching for Best Practices in Retrieval-Augmented Generation

by yooonlp 2025. 2. 1.

과거에 논문 스터디를 진행하면서 작성해놓았던 논문 리뷰를 포스트로 공유합니다. 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를 불러오는 방식
  • 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 방식 논의