[논문 리뷰 - 3] Corrective Retrieval Augmented Generation

shanny·2025년 5월 17일

논문 리뷰

목록 보기
24/42

‼️ 개인 학습 내용으로, 오류가 있을 수 있습니다.

논문 URL - https://arxiv.org/pdf/2401.15884

CRAG

Overview of Model Inference

  • CRAG의 모델 추론 과정은 입력 쿼리와 검색된 문서들에 대해 경량화된 평가기를 사용해 문서의 관련성 점수를 산출한다.
  • 이 점수는 세 가지 신뢰 등급(Correct, Incorrect, Ambiguous)으로 구분한다.
    • Correct: 관련성이 높다고 판단되면, 문서를 더 정밀한 지식 단위로 분해하고 정제한다.
    • Incorrect: 관련성이 낮으면 해당 문서를 버리고, 웹 검색을 통해 보완 지식을 확보한다.
    • Ambiguous: 확실하지 않을 경우, 두 전략을 혼합하여 균형 잡힌 조치를 취한다.

Retrieval Evaluator

  • 검색된 문서가 실제로 정확한지 확인하는 것이 중요하다.
  • 검색 평가기의 정확도는 전체 시스템 성능에 큰 영향을 미치므로, 관련 없는 문서를 바로잡는 것이 목표이다.
  • 문서 평가 방법 상세
    • T5-large 모델을 초기화하여 검색 평가기로 사용하고, 관련성 신호를 활용해 파인튜닝한다.
    • 파인튜닝에는 PopQA 등 기존 데이터셋에서 제공하는 정답 위키 제목을 활용하고, 부정 샘플은 무작위로 유사하지만 관련 없는 문서를 사용한다.
    • 각 질문마다 10개의 문서를 검색하며, 질문과 각 문서를 결합해 평가기에 입력하면, 평가기가 각 쌍의 관련성 점수를 예측한다.
    • 이 점수에 따라 검색 문서가 올바른지 최종 판단하고, 이후 액션을 결정한다.
    • 이 방식은 대형 LLM에 접근하지 않고도 저렴한 비용으로 검색 품질을 평가할 수 있다.
    • Self-RAG의 critic 모델(LLaMA-2 7B)과 비교해, CRAG의 평가기는 훨씬 경량화된(0.77B) 장점이 있다.

Action Trigger

  • 문서의 신뢰도 점수에 따라 평가 구분되며 각 문서는 개별적으로 평가 후 통합됨
    • 점수가 상위 임계값보다 높으면 '정확'으로 간주
    • 하위 임계값보다 낮으면 '부정확'으로 간주
    • 그 사이면 '모호'로 처리

Correct

  • 문서 검색 결과 중 신뢰도 점수가 상위 임계값을 넘는 문서가 하나라도 있으면, 해당 검색은 성공한 것으로 간주한다.
  • 이 경우 검색된 문서의 지식이 더 신뢰할 수 있고 정확하다고 본다.
  • 하지만 관련 문서에도 불필요하거나 잡음이 섞인 정보가 있을 수 있으므로, 가장 중요한 정보를 추출하기 위해 추가적인 지식 정제 방법을 설계했다.

Incorrect

  • 검색된 모든 문서의 신뢰도 점수가 하위 임계값보다 낮으면, 해당 검색은 실패한 것으로 간주한다.
  • 이는 검색된 문서들이 모두 관련성이 없고, 생성 작업에 도움이 되지 않는다는 의미다.
  • 부정확한 지식에 집착하면 잘못된 사실이 생성될 수 있으므로, 새로운 지식원을 찾아야 한다.
  • 이를 위해 웹 검색을 도입하여 인터넷에서 추가 정보를 찾으며, 이러한 보정 조치는 신뢰할 만한 지식이 없을 때 문제를 해결하는 데 도움이 된다.

Ambiguous

  • 위의 두 경우(정확, 부정확)에 해당하지 않는 상황은 ‘모호(Ambiguous)’로 분류된다.
  • 이는 검색 결과의 정확성을 평가하기 어렵고 평가자가 중간 점수를 줄 때 발생한다.
  • 이 경우 평가자가 확신하지 못하므로, Correct와 Incorrect에서 사용된 두 가지 지식 처리 방식을 모두 결합해 상호 보완한다.
  • 이러한 완화적이고 유연한 전략은 시스템의 견고성과 회복력을 높여, 더 적응력 있는 프레임워크를 구축하는 데 도움이 된다.
  • 예비 실험에서 Correct와 Incorrect 조치만 사용할 경우, CRAG의 성능이 검색 평가자의 정확도에 크게 좌우되는 것으로 나타났다.
  • 이는 평가자의 확신 정도와 관계없이 모든 입력에 대해 명확히 지식 전환이 이루어지기 때문일 수 있다.
  • Ambiguous 조치의 도입은 이러한 평가자 정확도 의존성을 완화하는 데 크게 도움이 된다.

Knowledge Refinement

  • 검색된 관련 문서에서 가장 중요한 정보(knowledge strips)를 추출하기 위해 '분해 후 재조합' 방식의 지식 정제 방법을 설계했다.

  • 검색 결과를 더 세밀하게 다루기 위해 문서를 여러 개의 내부 단위(스트립)로 분할한다.

    • 검색 결과가 1~2문장 정도로 짧으면 한 개의 스트립으로 간주한다.
    • 더 길면, 전체 길이에 따라 몇 문장씩 여러 스트립으로 나눈다.
    • 각 스트립은 독립적인 정보를 담고 있다고 가정하며, 세분화된 단위별로 필터링을 진행한다.
  • 이 점수를 바탕으로 관련 없는 스트립은 제거하고, 관련 있는 스트립만 순서대로 이어 붙여(recompose) 최종적으로 중요한 정보를 뽑아낸다.

  • 시스템이 기존 지식 코퍼스만으로 문제를 해결할 수 없다고 판단되면, 추가적인 외부 지식을 활용하는 것이 더 지능적이다.
  • 만약 시스템이 한정된 지식에만 의존하면, 결국 잘못된 사실(환각)을 생성할 수 있으므로, 검색 결과가 모두 무관하다고 판단될 때는 반드시 보완적 외부 지식을 찾아야 한다.
    • 이를 위해 RAG(검색 기반 생성) 구조에 대규모 웹 검색을 전략적으로 통합한다.
    • ChatGPT가 입력을 키워드 기반 쿼리로 재작성해 실제 검색 엔진 사용 방식을 모방한다.
    • 공개 상업용 웹 검색 API를 사용해 쿼리마다 여러 URL 링크를 생성하고, 신뢰성과 편향 문제를 줄이기 위해 Wikipedia 등 권위 있는 웹페이지를 우선적으로 활용한다.
    • 이후, 해당 웹페이지의 내용을 가져와 4.4절의 지식 정제 방법을 적용해 관련 있는 외부 지식만 추출한다.
  • 이런 방식은 LLM이 자신이 모르는 것과 답할 수 없는 것을 인식하고, 외부에서 지식을 보완할 수 있도록 하여, 더 신뢰할 수 있는 답변을 생성하는 데 기여한다
profile
데이터 분석가

0개의 댓글