Corrective Retrieval Augmented Generation

하임·4일 전

RAG

목록 보기
9/20

https://arxiv.org/pdf/2401.15884

Corrective Retrieval-Augmented Generation (CRAG) 논문 요약 및 상세 내용


1. 연구 배경

대형 언어 모델(LLM)은 강력한 자연어 처리 능력을 갖추고 있지만, 환각(Hallucination) 문제로 인해 생성된 텍스트의 정확성을 완전히 보장할 수 없다. 이를 해결하기 위해 Retrieval-Augmented Generation (RAG) 방식이 도입되었지만, RAG는 검색된 문서의 정확성에 크게 의존하며, 검색 과정이 잘못되면 모델이 부정확한 정보를 제공할 가능성이 크다.

기존 RAG 모델들은 검색된 문서를 무조건적으로 활용하는 문제가 있으며, 검색된 문서의 일부만이 실제로 유용한 정보를 포함하고 있음에도 불구하고 전체 문서를 참조한다. 이러한 문제를 해결하기 위해 Corrective Retrieval-Augmented Generation (CRAG)이 제안되었다.


2. CRAG의 핵심 아이디어

CRAG는 검색된 문서의 품질을 평가하고, 필요에 따라 수정하며, 추가적인 웹 검색을 수행하는 전략을 통해 RAG의 신뢰성을 높이는 접근법이다. 이를 위해 다음과 같은 세 가지 핵심 모듈을 포함한다.

  1. Retrieval Evaluator (검색 평가기)
    • 검색된 문서의 품질을 평가하는 경량화된 평가 모델을 사용한다.
    • 문서의 신뢰도를 정량화하여 Correct(정확함), Incorrect(부정확함), Ambiguous(모호함) 세 가지로 분류한다.
  2. Knowledge Refinement (지식 정제)
    • 검색된 문서에서 유용한 정보만을 추출하여 불필요한 내용을 제거하는 Decompose-then-Recompose 알고리즘을 적용한다.
  3. Web Search Augmentation (웹 검색 보완)
    • 기존 검색된 문서가 충분하지 않다고 판단될 경우, 추가적인 웹 검색을 수행하여 정보를 보완한다.

3. CRAG의 동작 방식

CRAG의 전체적인 동작 과정은 다음과 같다.

3.1 검색 평가 (Retrieval Evaluation)

CRAG는 검색된 문서의 품질을 평가하기 위해 Retrieval Evaluator를 사용한다. 이 평가기는 검색된 문서와 질의 간의 관련성을 분석하여 신뢰도 점수를 계산한다.

각 검색 문서는 다음 세 가지로 분류된다.

  • Correct (정확함): 검색된 문서가 적절하며 신뢰할 수 있음 → 지식 정제 단계를 거쳐 생성 모델에 전달됨.
  • Incorrect (부정확함): 검색된 문서가 부정확하거나 관련성이 낮음 → 웹 검색을 통해 새로운 문서를 검색함.
  • Ambiguous (모호함): 문서의 관련성을 확신할 수 없음 → 기존 문서를 보완하는 방식으로 웹 검색 수행.

3.2 지식 정제 (Knowledge Refinement)

CRAG는 검색된 문서 내에서 중요한 정보만을 유지하고, 불필요한 내용을 제거하는 "Decompose-then-Recompose" 알고리즘을 적용한다.

  • 문서를 작은 정보 단위(strips)로 분해한다.
  • 평가기를 이용하여 불필요한 정보 제거 후, 핵심 정보만 재구성하여 생성 모델에 전달한다.

3.3 웹 검색 보완 (Web Search Augmentation)

검색된 문서가 부정확하거나 불충분할 경우, 웹 검색을 수행하여 추가 정보를 확보한다.

  • 질의를 보다 정확한 키워드 쿼리로 변환하여 검색 수행.
  • 신뢰할 수 있는 출처(예: Wikipedia)에서 정보를 가져옴.
  • 새로운 검색된 정보를 다시 정제하여 생성 모델에 전달.

4. 실험 및 평가

CRAG는 PopQA, Biography, PubHealth, Arc-Challenge 등 4가지 데이터셋에서 평가되었으며, 기존 RAG 모델과 비교하여 성능이 향상되었음을 입증했다.

4.1 실험 결과

모델PopQA (Accuracy)Biography (FactScore)PubHealth (Accuracy)Arc-Challenge (Accuracy)
RAG (기본)50.544.948.943.4
CRAG54.947.759.553.7
Self-RAG29.032.20.723.9
Self-CRAG49.069.10.627.9
  • CRAG는 기존 RAG 대비 4.4~15.4%의 성능 향상을 보였다.
  • Self-RAG 기반에서도 CRAG를 적용한 Self-CRAG 모델이 성능을 더욱 향상시켰다.

4.2 CRAG의 강점

  1. 범용성: 다양한 RAG 기반 모델(RAG, Self-RAG 등)과 결합할 수 있는 Plug-and-Play 방식.
  2. 다양한 생성 태스크 적용 가능: 짧은 응답 생성(PopQA), 긴 텍스트 생성(Biography), 사실 검증(PubHealth), 다중 선택 질문(Arc-Challenge) 등 여러 태스크에서 성능 향상.
  3. 검색 오류에 대한 강인함: 검색 결과가 잘못되었을 경우에도 웹 검색 및 지식 정제를 통해 보완 가능.

5. 한계점 및 향후 연구 방향

5.1 한계점

  • 외부 평가기의 필요성: 검색된 문서를 평가하는 Retrieval Evaluator를 따로 학습해야 하는 부담이 있음.
  • 추가적인 계산 비용: 웹 검색을 수행하는 경우 계산 비용이 증가할 가능성이 있음.

5.2 향후 연구 방향

  • LLM 자체의 검색 평가 능력 향상: 외부 평가기 없이도 LLM이 자체적으로 검색 품질을 판단하도록 개선.
  • 더 정밀한 검색 평가 기법 개발: 검색된 문서의 품질을 더욱 정밀하게 평가할 수 있는 새로운 기법 탐색.

요약

CRAG는 검색 오류를 보완하고 생성 모델의 신뢰성을 높이기 위해, 검색된 문서의 품질을 평가하고, 필요할 경우 웹 검색을 수행하여 추가적인 정보를 확보하는 새로운 RAG 방식이다.

  • Retrieval Evaluator를 통해 검색된 문서의 신뢰도를 분석하고, Correct / Incorrect / Ambiguous로 분류.
  • Knowledge Refinement로 불필요한 정보를 제거하여 핵심 정보만 유지.
  • Web Search Augmentation을 활용하여 검색된 문서가 부정확할 경우 새로운 정보를 검색하여 보완.

실험 결과, CRAG는 기존 RAG 대비 성능을 최대 15.4%까지 향상시켰으며, 검색 오류에 대해 더욱 강인한 생성 모델을 만들 수 있음을 입증했다. 🚀

CRAG (Corrective Retrieval-Augmented Generation) 동작 방식 상세 분석

CRAG의 동작 방식은 크게 검색 평가(Retrieval Evaluation), 지식 정제(Knowledge Refinement), 웹 검색 보완(Web Search Augmentation), 최종 생성(Generation) 네 가지 주요 단계로 나뉜다.

각 단계를 상세히 분석하면 다음과 같다.


1. 검색 평가 (Retrieval Evaluation)

CRAG의 핵심 특징은 검색된 문서의 품질을 평가하여 올바른 조치를 취하는 것이다.

이를 위해 경량화된 검색 평가기(Retrieval Evaluator)가 동작하며, 다음 과정을 수행한다.

1.1 검색된 문서의 관련성 평가

  • 검색된 문서 D = {d₁, d₂, ..., dₖ}가 입력 질문 X와 얼마나 관련이 있는지를 평가한다.
  • 이를 위해 T5-Large 모델을 기반으로 학습된 검색 평가기가 활용된다.
  • 평가기는 질문과 각 문서를 개별적으로 비교하여 관련성 점수(Score)를 계산한다.
    • 입력: (질문 X, 문서 dᵢ)
    • 출력: 관련성 점수(scoreᵢ)

1.2 신뢰도 분류 (Confidence Classification)

검색 평가기의 결과를 바탕으로 각 문서를 세 가지 카테고리로 분류한다.

  1. Correct (정확함)
    • 검색된 문서 중 하나라도 상위 신뢰도(High Confidence)를 보이면, 해당 문서를 활용.
    • 단, Decompose-then-Recompose 기법을 이용하여 중요 정보만 유지하고 불필요한 내용은 제거.
  2. Incorrect (부정확함)
    • 검색된 문서 모두 낮은 신뢰도(Low Confidence)를 보이면, 해당 문서를 폐기하고 웹 검색 수행.
    • 기존 검색 결과를 사용하지 않고 새로운 외부 정보를 검색하여 활용.
  3. Ambiguous (모호함)
    • 검색된 문서가 중간 수준의 신뢰도(Medium Confidence)를 보이면,기존 검색 결과 + 웹 검색을 함께 사용하여 보완.
    • 기존 문서에서 핵심 정보 추출 후, 웹 검색으로 추가 정보를 결합.

📌 예제

질문: "Death of a Batman 영화의 시나리오 작가는 누구인가?"
- 검색된 문서 1: "Batman (1989 film): ... Hamm's script was rewritten..."
- 검색된 문서 2: "Batman 시리즈는 1989년부터 개봉되었으며..."

문서 평가 결과:
- 문서 1 → Incorrect (부정확함, 웹 검색 필요)
- 문서 2 → Ambiguous (모호함, 추가 정보 필요)

조치: 웹 검색을 수행하여 보완

2. 지식 정제 (Knowledge Refinement)

검색 평가기를 통과한 문서들은 Knowledge Refinement (지식 정제) 과정을 거친다.

이 과정에서 검색된 문서에서 중요 정보를 추출하고 불필요한 정보를 필터링하여 보다 정제된 지식을 생성한다.

2.1 Decompose-then-Recompose 알고리즘

CRAG는 검색된 문서에서 가장 중요한 정보를 유지하고 불필요한 내용을 제거하기 위해 Decompose-then-Recompose 알고리즘을 사용한다.

📌 단계별 과정

  1. 문서 분해 (Decompose)
    • 검색된 문서를 작은 정보 단위(Strips)로 분해한다.
    • 예를 들어, 문서를 문장별로 나누거나, 특정 키워드를 중심으로 분할.
  2. 정보 필터링 (Filter)
    • 검색 평가기를 이용하여 각 정보 단위가 얼마나 중요한지 평가.
    • 낮은 관련성을 보이는 정보는 제거.
  3. 정보 재구성 (Recompose)
    • 필터링된 핵심 정보만을 남기고 이를 재구성하여 최종 입력 문서로 사용.

📌 예제

검색된 문서 (원본):
"Batman (1989 film): ... Hamm's script was rewritten ... The film was directed by Tim Burton ... The music was composed by Danny Elfman."

정제된 문서:
"Hamm was the original screenwriter of Batman (1989 film)."

3. 웹 검색 보완 (Web Search Augmentation)

Incorrect (부정확함)으로 판단된 경우, 검색된 정보를 신뢰할 수 없기 때문에 웹 검색을 통해 새로운 정보를 보완한다.

3.1 웹 검색 쿼리 생성

  • 입력 질문 X를 기반으로 검색 최적화된 쿼리로 변환.
  • ChatGPT를 활용하여 검색 쿼리 최적화 수행.

📌 예제

질문: "Death of a Batman 영화의 시나리오 작가는 누구인가?"
검색 쿼리 변환: "Death of a Batman, screenwriter, Wikipedia"

3.2 웹 검색 수행

  • Google Search API를 활용하여 신뢰할 수 있는 출처(Wikipedia 등)에서 검색 수행.
  • 검색된 문서를 기존 검색 문서와 동일한 Knowledge Refinement 과정을 통해 정제 후 활용.

📌 웹 검색 결과 예시

웹 검색 결과: "The screenplay for Death of a Batman was written by Dennis Spooner."
→ 이 정보를 기반으로 최종 생성 모델에 전달.

4. 최종 생성 (Generation)

정제된 검색 결과 및 웹 검색 결과를 결합하여 생성 모델(G)이 최종 답변을 생성한다.

4.1 CRAG의 생성 과정

  1. 정제된 문서 D_refined를 생성 모델 G에 입력.
  2. 기존 RAG와 동일하게 입력 질문 + 검색된 문서를 사용하여 답변 생성.
  3. 생성된 답변을 최종 출력.

📌 예제

입력: "Death of a Batman 영화의 시나리오 작가는 누구인가?"
검색된 문서 (정제됨): "The screenplay for Death of a Batman was written by Dennis Spooner."
출력: "The screenwriter for Death of a Batman is Dennis Spooner."

CRAG의 주요 이점

  1. 검색 오류 보완: 기존 RAG는 검색된 문서를 무조건 사용했지만, CRAG는 잘못된 검색 결과를 수정할 수 있음.
  2. 정확도 향상: 검색된 문서에서 중요한 정보만을 추출하여 모델이 노이즈 없이 정제된 정보만 학습 가능.
  3. 웹 검색 활용: 검색된 정보가 부족할 경우 웹 검색을 수행하여 실시간 정보 보완 가능.
  4. Plug-and-Play 적용 가능: 기존 RAG 모델에 쉽게 적용할 수 있는 구조.

요약

CRAG는 기존 RAG의 한계를 극복하기 위해 검색된 문서의 품질을 평가하고, 불필요한 정보를 제거하며, 필요할 경우 웹 검색을 수행하여 보완하는 접근법이다.

🔹 검색 평가기(Retrieval Evaluator) → 문서 신뢰도를 평가 (Correct, Incorrect, Ambiguous)

🔹 지식 정제(Knowledge Refinement) → 중요 정보만 추출 (Decompose-then-Recompose)

🔹 웹 검색(Web Search Augmentation) → 검색 결과가 부족할 경우 추가 검색 수행

🔹 최종 생성(Generation) → 정제된 정보를 바탕으로 LLM이 답변 생성

CRAG는 기존 RAG보다 더 정확하고 신뢰할 수 있는 정보 생성이 가능하며, 검색 오류를 효과적으로 보완하는 강력한 개선책이다. 🚀

profile
NLP 공부합니당

0개의 댓글