Corrective Retrieval Augmented Generation (CRAG)
기존 Retrieval-Augmented Generation (RAG)는 검색된 문서의 품질이 낮을 경우 성능이 저하되는 한계가 있습니다. Corrective Retrieval Augmented Generation (CRAG)는 이 문제를 해결하기 위해 제안된 프레임워크입니다. CRAG는 가벼운 retrieval evaluator를 통해 검색된 문서의 관련성을 평가하고, 그 결과에 따라 세 가지 교정 액션(Correct, Incorrect, Ambiguous)을 수행합니다. 관련성이 낮다고 판단되면 기존 문서를 버리고 웹 검색을 통해 새로운 정보를 탐색하며, 관련성이 높으면 문서 내 핵심 정보만 추출하여 사용하는 방식으로 RAG의 강건함을 향상시킵니다. 이 plug-and-play 방식은 다양한 RAG 시스템에 적용되어 생성 결과의 신뢰도를 높입니다. 논문 제목: Corrective Retrieval Augmented Generation
Yan, Shi-Qi, et al. "Corrective retrieval augmented generation." (2024).
Corrective Retrieval Augmented Generation
Abstract
대규모 언어 모델(LLM)은 내부에 담고 있는 parametric knowledge만으로는 생성된 텍스트의 정확성을 보장할 수 없기 때문에 필연적으로 환각(hallucination) 현상을 보인다. **Retrieval-Augmented Generation (RAG)**은 LLM의 실용적인 보완책이지만, 검색된 문서의 관련성에 크게 의존하므로, 검색이 잘못될 경우 모델이 어떻게 동작할지에 대한 우려가 제기된다.
이에 우리는 **생성(generation)의 견고성(robustness)을 향상시키기 위해 Corrective Retrieval Augmented Generation (CRAG)**을 제안한다.
구체적으로, 우리는 경량의 retrieval evaluator를 설계하여 쿼리에 대한 검색된 문서의 전반적인 품질을 평가하고, 신뢰도(confidence degree)를 반환한다. 이 신뢰도에 따라 다양한 지식 검색(knowledge retrieval) 동작이 트리거될 수 있다.
정적이고 제한된 코퍼스(corpus)에서의 검색은 차선책의 문서만을 반환할 수 있기 때문에, 대규모 웹 검색을 활용하여 검색 결과를 보강한다. 또한, 검색된 문서에서 핵심 정보에 선택적으로 집중하고 관련 없는 정보를 필터링하기 위해 decompose-then-recompose 알고리즘을 설계하였다.
CRAG는 플러그 앤 플레이(plug-and-play) 방식으로, 다양한 RAG 기반 접근 방식과 원활하게 결합될 수 있다.
짧은 형식 및 긴 형식 생성 task를 포함하는 4개의 데이터셋에 대한 실험 결과, CRAG가 RAG 기반 접근 방식의 성능을 크게 향상시킬 수 있음을 보여준다.
1 Introduction
Large Language Model(LLM)은 지시를 이해하고 유창한 언어 텍스트를 생성하는 인상적인 능력으로 인해 점점 더 많은 관심을 받고 있다 (Brown et al., 2020; Ouyang et al., 2022; Touvron et al., 2023a). 그럼에도 불구하고, LLM은 사실적 오류에 대한 어려움 (Mallen et al., 2023; Min et al., 2023)과 오직 내재된 parametric knowledge만으로는 생성된 텍스트의 정확성을 확보할 수 없기 때문에 (Zhang et al., 2023b; Muhlgay et al., 2023) 필연적으로 **환각(hallucinations)**을 나타낸다 (Ji et al., 2023).
Figure 1: 예시는 저품질 retriever가 상당량의 관련 없는 정보를 도입하기 쉽다는 것을 보여주며, 이는 generator가 정확한 지식을 습득하는 것을 방해하고 잠재적으로 오도할 수 있다.
이전 연구에서는 retrieval-augmented generation (RAG) (Lewis et al., 2020)에서 예시된 바와 같이, 입력과 관련된 지식을 통합하고 생성을 증강하기 위한 retrieval 기법을 도입했다. 이 프레임워크에서 모델의 입력은 외부 지식 코퍼스에서 검색된 관련 문서를 앞에 추가함으로써 증강된다 (Guu et al., 2020). RAG는 LLM에 대한 실용적인 보완책 역할을 하지만, 그 효과는 검색된 문서의 관련성과 정확성에 달려 있다 (Li et al., 2022; Tan et al., 2022). 생성 과정이 검색된 지식에 크게 의존한다는 점은 검색이 실패하거나 부정확한 결과를 반환할 수 있는 시나리오에서 모델의 동작과 성능에 대한 상당한 우려를 제기한다 (Shi et al., 2023). Figure 1에서 보듯이, 저품질 retriever는 상당량의 관련 없는 정보를 도입하기 쉽고, 이는 모델이 정확한 지식을 습득하는 것을 방해하며 잠재적으로 오도하여 **환각(hallucinations)**과 같은 문제를 초래한다 (Zhang et al., 2023b). 그러나 대부분의 기존 RAG 접근 방식은 검색된 문서의 관련성 여부와 관계없이 무차별적으로 통합한다 (Rony et al., 2022). 또한, 현재 방법들은 대부분 검색 및 활용 과정에서 완전한 문서를 참조 지식으로 취급한다. 하지만 검색된 문서 내의 상당 부분의 텍스트는 생성에 필수적이지 않은 경우가 많으며, 이는 RAG에서 동등하게 참조되고 포함되어서는 안 된다.
위에서 언급된 문제들로 인해, 본 논문은 특히 retriever가 부정확한 결과를 반환하는 시나리오를 연구한다. **Corrective Retrieval-Augmented Generation (CRAG)**이라는 방법이 제안되어 retriever의 결과를 자체적으로 수정하고 생성 증강을 위한 문서 활용을 개선한다. 경량 retrieval evaluator는 쿼리에 대한 검색된 문서의 전반적인 품질을 평가하도록 설계되었다. 이는 RAG의 중요한 구성 요소로서, 검색된 문서의 관련성과 신뢰성을 검토하고 평가함으로써 유익한 생성에 기여한다. **신뢰도(confidence degree)**는 **{Correct, Incorrect, Ambiguous}**의 세 가지 지식 검색 동작을 유발할 수 있도록 정량화된다. 후자의 두 동작에 대해서는 대규모 웹 검색 (Piktus et al., 2021; Komeili et al., 2022)이 전략적 확장으로 통합된다. 이는 정적이고 제한된 코퍼스에서 검색하는 것이 범위와 다양성 측면에서 차선책의 문서만을 반환할 수 있기 때문이다. 이 증강은 검색된 정보의 스펙트럼을 넓히기 위해 구현되며, 웹의 광범위하고 동적인 특성을 활용하여 초기 획득된 문서를 보완하고 풍부하게 한다. 또한, RAG에 도움이 되지 않는 검색된 문서에 포함된 불필요한 컨텍스트를 제거하기 위해, 검색 및 활용 과정 전반에 걸쳐 decompose-then-recompose 알고리즘이 세심하게 고안되었다. 이 알고리즘은 검색된 정보의 정제를 보장하고, 핵심 통찰력 추출을 최적화하며, 불필요한 요소의 포함을 최소화하여 검색된 데이터의 활용을 향상시킨다.
CRAG는 플러그 앤 플레이(plug-and-play) 방식이며, RAG 기반 접근 방식에 대한 적응성을 입증하기 위해 RAG (Lewis et al., 2020) 및 Self-RAG (Asai et al., 2024)에 실험적으로 구현되었다. PopQA (Mallen et al., 2023), Biography (Min et al., 2023), Pub Health (Zhang et al., 2023a), Arc-Challenge (Bhakthavatsalam et al., 2021)의 네 가지 데이터셋에 대한 결과는 CRAG가 표준 RAG 및 state-of-the-art Self-RAG의 성능을 크게 향상시킬 수 있음을 보여주며, 단문 및 장문 생성 task 모두에서 일반화 가능성을 입증한다. 다른 사람들이 우리의 결과를 재현할 수 있도록 모든 소스 코드를 나중에 공개할 예정이다.
요약하자면, 본 논문의 기여는 세 가지이다: 1) 본 논문은 retriever가 부정확한 결과를 반환하는 시나리오를 연구하며, 우리가 아는 한 RAG의 견고성을 향상시키기 위한 **교정 전략(corrective strategies)**을 설계하려는 첫 시도이다. 2) 자동 자체 수정 능력과 검색된 문서의 효율적인 활용을 향상시키기 위해 CRAG라는 플러그 앤 플레이(plug-and-play) 방식이 제안되었다. 3) 실험 결과는 CRAG의 RAG 기반 접근 방식에 대한 적응성과 단문 및 장문 생성 task 모두에서의 일반화 가능성을 광범위하게 입증한다.
2 Related Work
LLM의 환각(Hallucinations)
LLM은 지시를 이해하고 유창한 언어 텍스트를 생성하는 인상적인 능력을 보여주었지만 (Bang et al., 2023; Qin et al., 2023; Zhong et al., 2023), 여전히 LLM이 겪고 있는 가장 심각한 문제 중 하나는 **환각(hallucinations)**이다. 많은 연구에서 밝혀졌듯이 (Tonmoy et al., 2024; Zhang et al., 2023b; Shuster et al., 2021), 오래된 정보나 잘못된 지식이 활성화되면 심각한 환각으로 이어질 수 있다. 대규모의 규제되지 않은 학습 데이터 수집, 낮은 품질의 샘플링 데이터 비율, 입력 공간에서의 데이터 할당 불완전성 등 여러 현실적인 요인들이 LLM에 영향을 미치고 문제를 악화시킬 수 있다. 따라서 정확하고 구체적인 지식의 부족이 오해의 소지가 있거나 심지어 부정확한 생성을 초래하여, 대부분의 실제 응용 프로그램에서 사용자 경험을 심각하게 해칠 수 있다는 것은 명백하다.
Retrieval-Augmented Generation (RAG)
RAG (Lewis et al., 2020; Guu et al., 2020)는 위에서 언급된 문제들을 해결하기 위한 유용한 방법으로 간주되며, 검색된 문서로 생성형 LM의 입력 질문을 강화한다. 이는 일반적으로 Wikipedia와 같은 특정 코퍼스에서 추가적인 지식 소스를 제공하여, 다양한 task, 특히 지식 집약적인 task에서 LM의 성능을 크게 향상시킨다. 제안된 방법들은 일반적으로 정보 검색을 활용하여 생성형 LLM에 관련 지식을 포함하는 문서를 제공한다. 초기 연구들은 응답 생성에 특화된 사전학습된 language model의 프론트엔드에 sparse 또는 dense retriever를 채택한다. 그럼에도 불구하고, 위의 방법들은 일반적으로 **"검색이 잘못되면 어떻게 되는가?"**라는 질문을 간과한다. 검색을 도입하는 목적은 생성형 LM이 관련성 있고 정확한 지식을 얻을 수 있도록 보장하는 것이기 때문이다. 만약 검색된 문서가 관련성이 없다면, 검색 시스템은 LM이 저지르는 사실적 오류를 오히려 악화시킬 수도 있다.
Advanced RAG
최근 몇 년 동안 오리지널 RAG로부터 많은 고급 접근 방식들이 개발되었다 (Zhang et al., 2024; Kim et al., 2024; Wang et al., 2024; Liu et al., 2024). 일부 쿼리에서는 검색이 불필요하며, 오히려 검색 없이 생성된 응답이 더 정확한 상황이 많다는 점을 고려하여, SelfRAG (Asai et al., 2024)는 지식을 선택적으로 검색하고 critic model을 도입하여 검색 여부를 결정하도록 제안되었다. Yoran et al. (2024)은 NLI model을 설계하여 관련 없는 context를 식별하고 견고성을 향상시켰다. SAIL (Luo et al., 2023)은 instruction에 따라 검색된 문서를 instruction 앞에 삽입하도록 튜닝된다. 반면 Toolformer (Schick et al., 2023)는 Wikipedia와 같은 API 호출을 위해 사전학습된다. 또한, 일부 장문 텍스트 생성 task에서는 외부 지식이 한 번 이상 필요하며, 언제 검색해야 하는지가 중요하게 고려되어야 한다. Jiang et al. (2023)은 미래 내용을 적극적으로 예측하고 장문 생성 시 언제 무엇을 검색할지 결정한다.
본 연구와 가장 관련성이 높은 최근 연구들 (Schick et al., 2023; Luo et al., 2023; Asai et al., 2024)과 비교했을 때, 주요 차이점을 강조해야 한다. 이들 접근 방식은 검색을 생성 강화를 위한 유용한 도구로 활용하거나 검색의 필요성 여부를 탐구하는 데 초점을 맞추는 반면, 본 연구는 retriever가 부정확한 결과를 반환하는 시나리오를 특별히 연구한다. 우리가 아는 한, 본 논문은 RAG의 생성 견고성을 향상시키기 위한 교정 전략을 탐색하고 설계하려는 첫 번째 시도이다.
3 Task Formulation
이전 연구들(Lewis et al., 2020; Asai et al., 2024)에 따라, 입력 와 방대한 지식 문서들을 포함하는 접근 가능한 코퍼스 가 주어졌을 때, 시스템은 출력 를 생성해야 한다. 전체 프레임워크는 일반적으로 **retriever **와 **generator **로 나뉜다.
- **Retriever **는 코퍼스 에서 입력 와 관련된 상위 개의 문서 를 검색하는 것을 목표로 한다.
- **Generator **는 입력 와 검색된 결과 를 기반으로 출력 를 생성하는 역할을 한다.
이 프레임워크는 다음과 같이 공식화될 수 있다:
이는 retriever와 generator가 긴밀하게 결합되어 있으며, 낮은 위험 허용치(low risk tolerance)를 보인다는 것을 나타낸다. 즉, generator의 능력이 아무리 뛰어나더라도, 검색(retrieval)이 성공적이지 못하면 만족스럽지 못한 응답으로 이어질 수 있다. 본 논문은 바로 이 지점, 즉 생성의 견고성(robustness)을 향상시키는 데 초점을 맞춘다.
4 CRAG
4.1 Overview of Model Inference
Figure 2와 Algorithm 1은 CRAG의 추론 과정 개요를 보여주며, 이는 **생성(generation)의 견고성(robustness)을 향상시키기 위한 교정 전략(corrective strategies)**을 설계한다.
입력 쿼리와 임의의 retriever로부터 검색된 문서들이 주어지면, 경량 retrieval evaluator가 구축되어 검색된 문서들이 입력 쿼리에 대해 얼마나 관련성이 높은지(relevance score)를 추정한다 (Section 4.2).
이 relevance score는 총 세 가지의 신뢰도(confidence degree)로 정량화되며, 이에 따라 해당하는 액션이 트리거된다: {Correct, Incorrect, Ambiguous} (Section 4.3).
만약 Correct 액션이 트리거되면, 검색된 문서들은 더욱 정밀한 knowledge strip으로 정제된다. 이 정제 작업은 knowledge decomposition, filter, recomposition을 포함한다 (Section 4.4).
Incorrect 액션이 트리거되면, 검색된 문서들은 폐기된다. 대신, 웹 검색이 보조적인 지식 소스로 활용되어 교정에 사용된다 (Section 4.5).
최종적으로, Correct 또는 Incorrect 판단을 확신할 수 없을 때는, 이 둘을 결합한 부드럽고 균형 잡힌 Ambiguous 액션이 트리거된다.
검색 결과가 최적화된 후에는, 임의의 generative model을 채택하여 사용할 수 있다.
4.2 Retrieval Evaluator
검색된 문서를 사용하기 전에 정확한지 여부를 궁금해하는 것은 당연하며, 이는 관련 없거나 오해의 소지가 있는 메시지를 이러한 방식으로 식별할 수 있기 때문에 중요하다. 검색 평가기(retrieval evaluator)의 정확성은 후속 프로세스의 결과에 영향을 미치므로, 전체 시스템 성능을 형성하는 데 결정적인 역할을 한다.
Figure 2: 추론 단계에서 제안된 CRAG의 개요. 검색된 문서와 입력 간의 관련성을 평가하고, 이에 기반하여 {Correct, Incorrect, Ambiguous}의 다양한 지식 검색 동작을 트리거할 수 있는 신뢰도(confidence degree)를 추정하기 위해 검색 평가기가 구축된다.
우리의 목표는 검색된 문서가 관련이 없을 경우 이를 수정하는 것이다. 구체적으로, T5-large (Raffel et al., 2020)를 검색 평가기 초기화에 채택하고 fine-tuning한다. 이 모델의 파라미터 크기는 현재 대부분의 LLM (Touvron et al., 2023a,b; Chowdhery et al., 2023; Anil et al., 2023; Brown et al., 2020; Ouyang et al., 2022; OpenAI, 2023)보다 훨씬 작다. 모든 실험 결과가 Self-RAG (Asai et al., 2024)와 비교 가능하도록, Self-RAG에서 제공하는 Contriever (Izacard et al., 2022)를 통한 동일한 검색 결과가 우리 실험에서도 채택되었다.
평가기를 fine-tuning하기 위한 **관련성 신호(relevance signals)**는 기존 데이터셋에서 수집할 수 있다. 예를 들어, PopQA (Mallen et al., 2023)는 각 질문에 대한 Wikipedia의 황금 표준(golden) 주제 wiki 제목을 제공한다. 우리는 이를 사용하여 100% 관련성은 아니지만 상당히 고품질의 passage를 추적할 수 있다. 우리는 이를 검색 평가기를 fine-tuning하기 위한 관련성 신호로 활용했다. 한편, fine-tuning을 위한 **부정 샘플(negative samples)**은 모두 검색 결과에서 무작위로 샘플링되었는데, 이들은 입력 쿼리와 유사하지만 관련성이 없는 문서들이다. 이 fine-tuning 단계에 대한 자세한 내용은 Appendix B.3에서 확인할 수 있다.
일반적으로 각 질문에 대해 10개의 문서가 검색된다. 질문은 각 단일 문서와 연결되어 입력으로 사용되며, 평가기는 각 질문-문서 쌍에 대해 개별적으로 관련성 점수를 예측한다. 우리는 비교를 위해 ChatGPT에게 검색 관련성을 식별하도록 요청했지만, Section 5.5에서 자세히 설명된 바와 같이 성능이 좋지 않았다. 이러한 계산된 관련성 점수를 기반으로, 검색이 올바른지 여부에 대한 최종 판단이 이루어지며, 이는 동작 트리거와 연관된다. 우리가 제안하는 프레임워크에서는 크고 값비싼 LLM에 접근할 필요 없이 비교적 낮은 비용으로 검색 품질을 평가한다. instruction-tuned LLaMA-2 (7B)를 사용하는 Self-RAG (Asai et al., 2024)의 critic model과 비교할 때, CRAG에서 설계된 평가기는 상당히 경량(0.77B)이라는 장점을 보여준다.
Algorithm 1: CRAG Inference
Require: \(E\) (Retrieval Evaluator), \(W\) (Query Rewriter), \(G\) (Generator)
Input : \(x\) (Input question), \(D=\left\{d_{1}, d_{2}, \ldots, d_{k}\right\}\) (Retrieved documents)
Output : \(y\) (Generated response)
score \({ }_{i}=E\) evaluates the relevance of each pair ( \(x, d_{i}\) ), \(d_{i} \in D\)
Confidence \(=\) Calculate and give a final judgment based on \(\left\{\right.\) score \({ }_{1}\), score \({ }_{2}, \ldots\) scor \(\left.e_{k}\right\}\)
// Confidence has 3 optional values: [CORRECT], [INCORRECT] or [AMBIGUOUS]
if Confidence == [CORRECT] then
Internal_Knowledge \(=\operatorname{Knowledge\_ Refine}(x, D)\)
\(k=\) Internal_Knowledge
else if Confidence \(==\) [INCORRECT] then
External_Knowledge \(=\) Web_Search \((W\) Rewrites \(x\) for searching \()\)
\(k=\) External_Knowledge
else if Confidence \(==\) [AMBIGUOUS] then
Internal_Knowledge \(=\operatorname{Knowledge\_ Refine}(x, D)\)
External_Knowledge \(=\) Web_Search \((W\) Rewrites \(x\) for searching)
\(k=\) Internal_Knowledge + External_Knowledge
end
\(G\) predicts \(y\) given \(x\) and \(k\)
4.3 Action Trigger
관련 없는 문서를 수정하고 필요한 경우 대상 문서를 다듬기 위해, 행동은 차별적으로 실행되어야 한다. 검색된 각 문서에 대한 앞서 언급된 **신뢰도 점수(confidence score)**를 기반으로, 상한 및 하한 임계값이 설정되어 세 가지 유형의 행동이 설계되고 그에 따라 트리거된다. 신뢰도 점수가 상한 임계값보다 높으면 검색된 문서는 Correct로 식별되고, 하한 임계값보다 낮으면 Incorrect로 식별된다. 그 외의 경우에는 더 부드럽고 중간적인 행동인 Ambiguous가 실행된다. 각 검색된 문서는 개별적으로 처리된 후 최종적으로 통합된다.
Correct
여기서 검색은 적어도 하나의 검색된 문서의 신뢰도 점수가 상한 임계값보다 높을 때 Correct로 가정된다. 만약 그렇다면, 이는 검색 결과에 관련 문서가 있음을 의미하며, 검색 결과로부터 얻은 지식이 더 신뢰할 수 있고 정확하다고 간주된다. 그러나 관련 문서를 찾을 수 있더라도, 이 문서에는 필연적으로 **일부 노이즈가 있는 지식 조각(knowledge strips)**이 포함될 수 있다. 이 문서 내에서 가장 중요한 지식 조각을 추출하기 위해 지식 정제(knowledge refinement) 방법이 추가로 설계되었으며, 이는 Section 4.4에서 자세히 설명될 것이다.
Incorrect
또한, 검색은 모든 검색된 문서의 신뢰도 점수가 하한 임계값보다 낮을 때 Incorrect로 가정된다. 이는 모든 검색된 문서가 관련성이 없다고 간주되어, 생성에 도움이 되지 않음을 나타낸다. 검색 결과로부터 얻은 지식이 부정확하다고 판단되면, 계속해서 그 지식에 얽매이는 것은 사실을 조작(fabricated facts)할 가능성이 높으므로 현명하지 않다. 따라서 수정을 위해 새로운 지식 출처를 찾아야 한다. 여기서는 **웹 검색(web search)**이 도입되어 인터넷에서 정보를 검색하며, 이는 Section 4.5에서 자세히 설명된다. 이 교정 행동(corrective action)은 참조할 만한 신뢰할 수 있는 지식이 없는 난감한 상황을 극복하는 데 도움이 된다.
Ambiguous
위 두 가지 상황을 제외한 나머지는 중간 행동인 Ambiguous로 할당된다. 이는 일반적으로 검색의 정확도를 구별하기 어렵고 평가자가 중간 점수를 부여할 때 발생한다. 검색 평가자가 판단에 확신이 없으므로, Correct와 Incorrect에서 처리된 두 가지 유형의 지식을 결합하여 서로 보완한다. 이러한 절충적이고 유연한 전략을 구현하는 것은 시스템의 견고성과 탄력성을 강화하고, 최적의 성능을 위한 보다 적응력 있는 프레임워크를 조성하는 데 크게 기여할 수 있다.
논의 (Discussion)
Correct 및 Incorrect 행동만 사용한 예비 실험에서는 CRAG의 효능이 검색 평가자의 정확도에 쉽게 영향을 받는 것으로 나타났다. 그 이유는 판단의 신뢰도 수준과 관계없이 모든 입력 사례에 대해 지식 전환(knowledge switch)이 명확하게 이루어졌기 때문일 수 있다. Ambiguous 행동의 설계는 검색 평가자의 정확도에 대한 의존성을 완화하는 데 크게 도움이 된다.
4.4 Knowledge Refinement
검색된 관련 문서를 기반으로, decompose-then-recompose 지식 정제(knowledge refinement) 방법은 문서 내에서 가장 중요한 지식 조각(knowledge strip)을 추가로 추출하도록 설계되었다.
세분화된 검색 결과를 얻기 위해, 우리는 검색된 결과를 내부 조각(internal strip)으로 분할했다. 검색된 결과가 한두 문장 정도로 짧으면 개별 조각으로 간주하고, 그렇지 않은 경우 검색 문서는 일반적으로 몇 개의 문장으로 구성된 더 작은 단위로 총 길이에 따라 분할된다. 각 조각은 독립적인 정보 조각을 포함한다고 가정하며, 필터링은 이 세그먼트를 기반으로 한다.
그 후, Section 4.2에서 fine-tuning된 **검색 평가기(retrieval evaluator)**를 사용하여 각 지식 조각의 관련성 점수(relevance score)를 계산한다. 이 점수를 기반으로 관련 없는 지식 조각은 필터링하고, 관련 있는 조각들은 순서대로 연결(concatenation)하여 재구성하는데, 이를 **내부 지식(internal knowledge)**이라고 한다.
4.5 Web Search
시스템이 기존 지식 코퍼스로는 문제를 잘 해결할 수 없다고 스스로 판단하고, 추가적인 외부 지식의 도움을 요청할 수 있다면 더욱 지능적일 것이다. 반대로, 시스템이 기존 지식으로는 문제를 해결할 수 없다는 것을 알면서도 제한된 지식 코퍼스에만 집착한다면, 결국 조작된 사실(fabricated fact)을 제공하게 되는데, 이를 hallucination이라고 한다. 따라서, 검색된 결과가 모두 관련성이 없다고 판단될 경우 보완적인 외부 지식을 탐색하는 것은 매우 중요하며, 우리는 자신이 무엇을 모르고 무엇에 답할 수 없는지 아는 시스템이 제한된 지식에만 매달려 외부 지식을 탐색할 능력이 없는 시스템보다 더 지능적이라고 생각한다.
정적이고 제한된 코퍼스에서의 검색은 범위와 다양성 측면에서 차선책의 문서만을 반환할 수 있기 때문에, 대규모 웹 검색(Piktus et al., 2021; Komeili et al., 2022)이 RAG의 전략적 확장으로 통합된다. 구체적으로, ChatGPT는 검색 엔진의 일상적인 사용을 모방하기 위해 입력 내용을 키워드로 구성된 쿼리로 재작성한다. 재작성을 위한 prompt는 Appendix A에 제시되어 있다. CRAG에서는 공개적으로 접근 가능한 상업용 웹 검색 API를 사용하여 모든 쿼리에 대해 일련의 URL 링크를 생성한다. 웹 검색을 통해 얻은 대규모 지식이 편향되거나 신뢰할 수 없는 정보를 포함할 수 있다는 점을 고려하여, Wikipedia와 같이 권위 있고 규제된 웹 페이지를 선호하며, 이는 이러한 문제를 완화하는 데 크게 도움이 될 수 있다. 또한, 우리는 URL 링크를 활용하여 웹 페이지를 탐색하고, 그 내용을 전사(transcribe)하며, Section 4.4와 동일한 지식 정제(knowledge refinement) 방법을 사용하여 관련 웹 지식, 즉 외부 지식을 도출한다.
5 Experiments
우리는 CRAG가 RAG 기반 접근 방식에 대한 적응성과 short-form 및 long-form 생성 task 전반에 걸친 일반화 능력을 광범위하게 입증하기 위한 실험을 수행했다.
5.1 Tasks, Datasets and Metrics
CRAG는 네 가지 데이터셋으로 평가되었다:
- PopQA (Mallen et al., 2023): short-form generation
- Biography (Min et al., 2023): long-form generation
- PubHealth (Zhang et al., 2023a): true-or-false question
- Arc-Challenge (Bhakthavatsalam et al., 2021): multiple-choice question
이전 연구들을 따라, PopQA, PubHealth, Arc-Challenge의 평가 지표로는 accuracy가 채택되었다. Biography의 평가 지표로는 FactScore (Min et al., 2023)가 채택되었다. 자세한 내용은 Appendix B.1을 참조할 수 있다.
우리가 제안하는 방법은 이전 연구들과 동일한 retrieval 결과를 사용했기 때문에, 동일한 지표를 사용하여 비교 가능하다. 차이점은 우리의 동기가 시스템이 품질이 낮다고 판단하는 retrieval 결과를 수정하여 retrieval 품질을 향상시키는 데 있다는 점이다. 이는 RAG가 독립적인 parameterized language model을 보강하는 것과 유사하며, 우리는 교정 전략(corrective strategies)을 통해 RAG를 더욱 보강한다.
5.2 Baselines
우리는 주로 CRAG를 검색 유무에 따른 두 가지 접근 방식과 비교했으며, 검색이 없는 방식은 다시 표준 RAG와 최신 고급 RAG로 나눌 수 있다. 여기에는 다음이 포함된다:
검색 없는 Baseline. 우리는 일부 공개 LLM인 LLaMA2-7B, 13B (Touvron et al., 2023b), instruction-tuned 모델인 Alpaca-7B, 13B (Dubois et al., 2023), 그리고 반복적인 엔지니어링을 도입하여 LLM 생성의 사실성을 개선하는 (Dhuliawala et al., 2024)를 평가했다. LLaMA2-chat 및 ChatGPT와 같은 독점 LLM도 포함되었다.
| Method | PopQA (Accuracy) | Bio (FactScore) | Pub (Accuracy) | ARC (Accuracy) |
|---|---|---|---|---|
| LMs trained with propriety data | ||||
| LLaMA2-c | 20.0 | 55.9 | 49.4 | 38.4 |
| Ret-LLaMA2-c | 51.8 | 79.9 | 52.1 | 37.9 |
| ChatGPT | 29.3 | 71.8 | 70.1 | 75.3 |
| Ret-ChatGPT | 50.8 | - | 54.7 | 75.3 |
| Perplexity.ai | - | 71.2 | - | - |
| Baselines without retrieval | ||||
| LLaMA2 | 14.7 | 44.5 | 34.2 | 21.8 |
| Alpaca | 23.6 | 45.8 | 49.8 | 45.0 |
| LLaMA | 14.7 | 53.4 | 29.4 | 29.4 |
| Alpaca | 24.4 | 50.2 | 55.5 | 54.9 |
| - | 71.2 | - | - | |
| Baselines with retrieval | ||||
| 38.2 | 78.0 | 30.0 | 48.0 | |
| Alpaca | 46.7 | 76.6 | 40.2 | 48.0 |
| SAIL | - | - | 69.2 | 48.4 |
| LLaMA | 45.7 | 77.5 | 30.2 | 26.0 |
| Alpaca | 46.1 | 77.7 | 51.1 | 57.6 |
| LLaMA2-hf-7b | ||||
| RAG | 50.5 | 44.9 | 48.9 | 43.4 |
| CRAG | 54.9 | 47.7 | 59.5 | 53.7 |
| Self-RAG* | 29.0 | 32.2 | 0.7 | 23.9 |
| Self-CRAG | 49.0 | 69.1 | 0.6 | 27.9 |
| SelfRAG-LLaMA2-7b | ||||
| RAG | 52.8 | 59.2 | 39.0 | 53.2 |
| CRAG | 59.8 | 74.1 | 75.6 | 68.6 |
| Self-RAG | 54.9 | 81.2 | 72.4 | 67.3 |
| Self-CRAG | 61.8 | 86.2 | 74.8 | 67.2 |
Table 1: 4개 데이터셋의 테스트 세트에 대한 전체 평가 결과. 결과는 생성 LLM에 따라 구분된다. 굵은 글씨는 모든 방법 및 LLM 중 최고의 성능을 나타낸다. 회색으로 표시된 굵은 글씨 점수는 특정 LLM을 사용한 최고의 성능을 나타낸다. *는 우리가 재현한 결과를 나타내며, 그 외의 결과는 원본 논문에서 인용되었다.
표준 RAG. 우리는 표준 RAG (Lewis et al., 2020)를 평가했다. 이 방식에서는 LLM이 쿼리에 시스템과 동일한 retriever를 사용하여 검색된 상위 문서를 앞에 붙여 출력을 생성한다. 여기서는 LLaMA2-7B, 13B (Touvron et al., 2023b), Alpaca-7B, 13B (Dubois et al., 2023)를 포함한 여러 공개 instruction-tuned LLM과 Self-RAG (Asai et al., 2024)에서 instruction-tuned된 LLaMA2-7B를 채택했다.
고급 RAG. (1) SAIL (Luo et al., 2023)은 Alpaca instruction-tuning 데이터에 상위 검색된 문서를 instruction 앞에 삽입하여 LLM을 instruction-tuned했다. (2) Self-RAG (Asai et al., 2024)는 GPT-4 (OpenAI, 2023)에 의해 레이블링된 여러 reflection token 세트를 포함하는 instruction-tuning 데이터에 LLaMA2를 튜닝했다. (3) Asai et al. (2024)에 따라, 우리는 또한 비공개 데이터로 학습된 검색 증강 baseline의 결과를 인용했다: Ret-ChatGPT 및 Ret-LLaMA-chat은 위와 동일한 증강 기술을 배포하며, InstructGPT 기반의 프로덕션 검색 시스템인 perplexity.ai도 포함된다.
5.3 Results
Table 1은 4개의 데이터셋에 대한 결과를 보여준다. 제안된 방법을 표준 RAG와 결합한 모델은 CRAG로 명명되었고, SelfRAG와 결합한 모델은 Self-CRAG로 명명되었다. 독자들은 제안된 방법들의 구현 세부사항에 대해 Appendix B.3을 참조할 수 있다. 이러한 결과들로부터 우리는 다음과 같은 결론을 도출할 수 있다:
첫째, 제안된 방법은 RAG와 SelfRAG의 성능을 크게 향상시킬 수 있다. 구체적으로, Table 1에서 보듯이, SelfRAG-LLaMA2-7b 기반일 때 CRAG는 PopQA에서 7.0% 정확도, Biography에서 14.9% FactScore, PubHealth에서 36.6% 정확도, Arc-Challenge에서 15.4% 정확도로 RAG를 능가했다. 또한 LLaMA2-hf-7b 기반일 때는 PopQA에서 4.4% 정확도, Biography에서 2.8% FactScore, Arc-Challenge에서 10.3% 정확도로 RAG를 능가했다. 현재 state-of-the-art인 Self-RAG와 비교했을 때, LLaMA2-hf-7b 기반일 때 Self-CRAG는 PopQA에서 20.0% 정확도, Biography에서 36.9% FactScore, Arc-Challenge에서 4.0% 정확도로 Self-RAG를 능가했다. 또한 SelfRAG-LLaMA2-7b 기반일 때는 PopQA에서 6.9% 정확도, Biography에서 5.0% FactScore, PubHealth에서 2.4% 정확도로 Self-RAG를 능가했다. 이러한 결과들은 CRAG의 적응성을 보여주는데, CRAG는 플러그 앤 플레이(plug-and-play) 방식으로 RAG 기반 접근 방식에 구현될 수 있다.
둘째, 제안된 방법은 다양한 생성 task에 걸쳐 뛰어난 일반화 능력을 보여주었다. 특히, Table 1에 보고된 벤치마크들은 각각 **단문 엔티티 생성(PopQA), 장문 생성(Biography), 폐쇄형 task(PubHealth, Arc-Challenge)**를 포함하는 다양한 실제 시나리오를 대표한다. 이러한 결과들은 CRAG의 일관된 효과성을 입증한다. 다양한 task 스펙트럼에 걸친 CRAG의 다재다능함은 강력한 능력과 다양한 시나리오에서의 일반화 능력을 강조한다.
셋째, 제안된 방법은 기저 LLM generator를 교체하는 데 있어 더 큰 유연성을 보였다. 기저 LLM이 SelfRAG-LLaMA2-7b에서 LLaMA2-hf-7b로 변경되었을 때도 CRAG는 여전히 경쟁력 있는 성능을 보인 반면, SelfRAG의 성능은 크게 하락하여 여러 벤치마크에서 표준 RAG보다도 낮은 성능을 기록했다. 이러한 결과의 이유는 Self-RAG가 필요에 따라 특수 critic token을 출력하도록 학습하기 위해 사람 또는 LLM이 주석을 단 데이터로 instruction-tuning되어야 하는 반면, 이러한 능력은 일반적인 LLM에서는 학습되지 않기 때문이다. CRAG는 이러한 능력에 대한 어떠한 요구사항도 없다. 예상할 수 있듯이, 미래에 더 발전된 LLM이 출시될 경우, 이들은 CRAG와 쉽게 결합될 수 있지만, Self-RAG의 경우에는 추가적인 instruction tuning이 여전히 필요할 것이다.
| LLaMA2-hf-7b SelfRAG-LLaMA2-7b | ||
|---|---|---|
| CRAG | 54.9 | 59.8 |
| w/o. Correct | 53.2 | 58.3 |
| w/o. Incorrect | 54.4 | 59.5 |
| w/o. Ambiguous | 54.0 | 59.0 |
| Self-CRAG | 49.0 | 61.8 |
| w/o. Correct | 43.6 | 59.6 |
| w/o. Incorrect | 47.7 | 60.8 |
| w/o. Ambiguous | 48.1 | 61.5 |
Table 2: PopQA 데이터셋에서 각 단일 action을 제거했을 때의 정확도에 대한 ablation study.
| LLaMA2-hf-7b SelfRAG-LLaMA2-7b | ||
|---|---|---|
| CRAG | 54.9 | 59.8 |
| w/o. | -- | |
| w/o. rewriting | 51.7 | 54.2 |
| w/o. selection | 50.9 | 56.2 |
| Self-CRAG | 49.0 | 58.6 |
| w/o. | 35.9 | 61.8 |
| w/o. rewriting | 37.2 | 52.2 |
| w/o. selection | 24.9 | 58.4 |
Table 3: PopQA 데이터셋에서 각 지식 활용(knowledge utilization) 작업을 제거했을 때의 정확도에 대한 ablation study.
5.4 Ablation Study
각 triggered action의 영향.
retrieval evaluator에서 설계된 triggered action의 효과를 추가적으로 검증하기 위해, 제안된 방법에서 각 단일 action을 제거하는 ablation 테스트를 수행했으며, 그 결과는 Table 2에 제시되어 있다. PopQA 데이터셋에 대한 평가는 정확도(accuracy) 측면에서의 성능 변화를 보여주기 위해 수행되었다.
구체적으로, Correct 또는 Incorrect action이 제거되었을 때, 해당 action이 원래 트리거되던 비율만큼 Ambiguous action이 트리거되도록 Ambiguous와 병합되었다. 반면, Ambiguous action이 제거되었을 때는 모든 입력 쿼리가 명확하게 Correct 또는 Incorrect 중 하나만 트리거되도록 단 하나의 임계값만 존재했다.
이러한 결과로부터, 어떤 action이 제거되더라도 성능 하락이 발생했음을 알 수 있으며, 이는 각 action이 생성의 견고성(robustness)을 향상시키는 데 기여했음을 보여준다. 연구를 더욱 명확히 하기 위해, 하나의 action만 트리거하는 실험도 수행되었으며, 부록에 제시된 결과 또한 일관성을 입증한다.
| Accuracy | |
|---|---|
| Our Retrieval Evaluator (T5-based) | 84.3 |
| ChāḠGT | 58.0 |
| ChatGPT-CoT | 62.4 |
| ChatGPT-few-shot | 64.7 |
Table 4: PopQA 데이터셋의 검색 결과에 대한 우리의 retrieval evaluator와 ChatGPT의 평가.
각 지식 활용(knowledge utilization) 작업의 영향.
Table 3은 핵심 지식 활용 작업이 제거되었을 때 성능이 어떻게 변화하는지를 보여준다. PopQA 데이터셋에 대한 정확도 평가를 위해 문서 정제(document refinement), 검색 쿼리 재작성(search query rewriting), 외부 지식 선택(external knowledge selection)의 지식 활용 작업을 개별적으로 제거하여 실험을 수행했다.
문서 정제를 제거하는 것은 대부분의 기존 연구에서처럼 원래 검색된 문서가 다음 generator로 직접 전달됨을 의미한다.
또한, 검색 쿼리 재작성을 제거하는 것은 지식 검색 시 질문이 키워드로 구성된 쿼리로 재작성되지 않음을 의미한다.
마지막으로, 지식 선택을 제거하는 것은 검색된 웹페이지의 모든 내용이 선택 과정 없이 외부 지식으로 간주됨을 의미한다.
이러한 결과들은 어떤 지식 활용 작업이 제거되더라도 최종 시스템의 성능이 저하되었음을 보여주며, 이는 각 지식 활용 작업이 지식 활용도를 향상시키는 데 기여했음을 밝혀준다.
5.5 Accuracy of the Retrieval Evaluator
Retrieval evaluator의 품질은 전체 시스템의 성능을 결정하는 중요한 요소였다. 문서 검색 결과가 주어졌을 때, 우리는 retrieval evaluator가 이러한 결과의 전반적인 품질을 정확하게 판단할 수 있는지 평가했다. PopQA 데이터셋에 대한 우리의 retrieval evaluator와 상용 LLM인 ChatGPT의 문서 검색 결과 평가 정확도는 Table 4에 제시되어 있다. 실험에 사용된 ChatGPT, ChatGPT-CoT, ChatGPT-few-shot의 prompt는 Appendix A에서 확인할 수 있다. 결과에 따르면, 경량 T5 기반 retrieval evaluator는 모든 설정에서 경쟁 모델인 ChatGPT를 크게 능가했다.
5.6 Robustness to Retrieval Performance
제안된 방법의 검색 성능에 대한 **강건성(robustness)**을 추가로 검증하기 위해, 우리는 다른 검색 성능이 주어졌을 때 생성 성능이 어떻게 변하는지를 연구했다.
Figure 3: SelfRAG-LLaMA-7b를 사용한 PopQA 데이터셋에서 검색 성능 변화에 따른 Self-RAG 및 Self-CRAG의 생성 성능. 하단 가로선은 검색 없이 Generator만 사용했을 때의 성능을 나타낸다.
| LLaMA2-hf-7b SelfRAG-LLaMA2-7b | ||
|---|---|---|
| PopQA | ||
| CRAG | 54.9 | 59.8 |
| RAG | 50.5 | 52.8 |
| RAG w. web | 52.2 | 53.8 |
| Self- | ------- | |
| Self-RAG | 61.8 | |
| Self-RAG w. web | 29.0 | 54.9 |
Table 5: CRAG, Self-CRAG, RAG, Self-RAG의 정확도 측면에서 동일한 입력에 대한 비교 결과.
낮은 품질의 retriever를 모방하고 성능 변화를 평가하기 위해, 정확한 검색 결과의 일부를 의도적으로 무작위로 제거하였다. Figure 3은 PopQA 데이터셋에서 Self-RAG와 Self-CRAG의 성능 변화를 보여준다.
검색 성능이 떨어짐에 따라 Self-RAG와 Self-CRAG의 생성 성능도 하락하는 것을 볼 수 있으며, 이는 generator가 retriever의 품질에 크게 의존한다는 것을 나타낸다.
또한, 검색 성능이 떨어질수록 Self-CRAG의 생성 성능 하락폭이 Self-RAG보다 더 작았다. 이러한 결과는 검색 성능에 대한 강건성을 향상시키는 데 있어 Self-CRAG가 Self-RAG보다 우수함을 시사한다.
5.7 Consistent Supplementation of Web Search Knowledge
본 논문은 초기 검색 결과가 관련성이 낮고 신뢰할 수 없을 때, 추가 정보를 통합하여 검색된 context를 강화하는 것의 필요성을 강조한다. 동시에, 우리 방법론의 주요 개선 사항이 단순히 웹 검색을 통해 얻은 보충 정보에서 비롯된 것이 아니라, self-correction mechanism에서 기인했음을 확인하는 것도 중요하다.
| TFLOPs per token | executing time(s) | |
|---|---|---|
| RAG | 26.5 | 0.363 |
| CRAG | 27.2 | 0.512 |
| Self- | - | |
| Self-CRAG |
Table 6: RAG, CRAG, Self-CRAG, Self-RAG의 GPU당 FLOPs per token 및 인스턴스당 실행 시간에 대한 계산 오버헤드 평가이다. Self-CRAG의 상한선이 낮은 이유는 세 개의 passage(정확한 내용, 부정확한 내용, 모호한 내용)만 입력으로 제공되기 때문이다. 표의 모든 데이터는 생성 단계의 대략적인 추정치만을 나타내며, 검색 및 데이터 처리 단계는 포함되지 않는다.
제안된 self-correction mechanism의 효과를 더욱 입증하기 위해, RAG와 Self-RAG 모두에 웹 검색 지식을 일관되게 보충하여 동일한 범위의 검색된 지식에 접근할 수 있도록 했다. Table 5의 결과는 RAG 또는 Self-RAG에 웹 검색 지식을 일관되게 보충하는 것이 대부분의 경우 성능을 향상시킬 수 있음을 보여준다 (원래 LLaMA2 모델을 사용하는 Self-RAG w. web 제외). 하지만 개선 폭은 여전히 제한적이다.
더 나아가, 제안된 self-correction mechanism으로 RAG 또는 Self-RAG를 강화하는 것이 모든 경우에서 웹 검색 지식으로 일관되게 보충된 모델보다 훨씬 뛰어난 성능을 보였다. 이 결과는 관찰된 발전이 주로 제안된 self-correction mechanism에 기인함을 확인시켜 준다.
5.8 Computational Overhead Analysis
우리의 self-correction 메커니즘이 다양한 RAG 기반 프레임워크를 위한 경량의 플러그 앤 플레이(plug-and-play) 솔루션임을 입증하기 위해, 우리는 **계산 오버헤드(computational overhead)**를 측정했다. Narayanan et al. (2021)의 FLOPs 예측 공식을 사용하여, GPU에서 토큰당 예측된 FLOPs를 Table 6에 제시했다. Self-RAG는 입력에 따라 생성 전략을 변경하는 적응형(adaptive) 특성을 가지므로, 계산 오버헤드를 정확하게 결정하기는 어렵다. 따라서 우리는 추정 범위를 제시한다. 또한, Table 6에 자세히 설명된 바와 같이, 실제 환경에서 인스턴스당 평균 실행 시간을 평가하기 위해 PopQA에서 실험을 수행했다. 그 결과, self-correction 메커니즘은 미미한 계산 오버헤드만을 발생시키면서도 성능을 크게 향상시켜, 그 **경량성(lightweight nature)**을 입증한다.
6 Conclusion & Limitation
본 논문은 RAG 기반 접근 방식이 검색(retrieval)이 잘못될 경우 부정확하고 오해의 소지가 있는 지식을 생성형 LLM에 노출시켜 어려움을 겪는 문제를 연구한다. 우리는 **생성(generation)의 견고성(robustness)을 향상시키기 위해 Corrective Retrieval Augmented Generation (CRAG)**을 제안한다. 기본적으로, 경량의 retrieval evaluator는 세 가지 지식 검색 액션을 판별적으로 평가하고 트리거한다. 웹 검색의 추가적인 활용과 최적화된 지식 활용을 통해, CRAG는 자동 자가 수정 능력과 검색된 문서의 효율적인 활용 능력을 크게 향상시켰다. 광범위한 실험을 통해 CRAG가 RAG 기반 접근 방식에 대한 적응성뿐만 아니라 짧은 형식 및 긴 형식 생성 task 전반에 걸친 일반화 가능성을 입증한다. 우리는 주로 교정(corrective) 관점에서 RAG 프레임워크를 개선하는 것을 제안했으며, CRAG는 다양한 RAG 기반 접근 방식과 원활하게 결합될 수 있지만, 외부 retrieval evaluator의 fine-tuning은 불가피하다. 이 외부 evaluator를 제거하고 LLM에 더 나은 검색 평가 능력을 부여하는 방법은 우리의 향후 연구가 될 것이다.
A Task Prompts
지식 키워드를 웹 검색 쿼리로 생성하기 위한 prompt는 Table 7에 제시되어 있다.
Table 7: 웹 검색 쿼리 생성을 위한 GPT-3.5 Turbo의 few-shot prompt.
다음 대화와 질문에서 웹 검색 쿼리로 사용할 키워드를 최대 3개까지 쉼표로 구분하여 추출하세요. 대화에서는 주제 배경을, 질문에서는 주요 의도를 포함해야 합니다.
question: What is Henry Feilden's occupation?
query: Henry Feilden, occupation
question: In what city was Billy Carlson born?
query: city, Billy Carlson, born
question: What is the religion of John Gwynn?
query: religion of John Gwynn
question: What sport does Kiribati men's national basketball team play?
query: sport, Kiribati men's national basketball team play
question: [question]
query:
ChatGPT를 평가자로 지시하기 위한 prompt는 각각 Table 8, Table 9, Table 10에 제시되어 있다.
Table 8: 평가자로서 GPT-3.5 Turbo에 대한 직접적인 prompt.
질문에 대한 정확한 정보가 다음 문서에 있습니까? 예 또는 아니오로만 답하세요.
Question: [question]
Document: [document]
Table 9: Chain-of-Thought를 사용한 GPT-3.5 Turbo의 평가자 prompt.
질문에 대한 정확한 정보가 다음 문서에 있습니까?
Question: [question]
Document: [document]
단계별로 생각하고, 예 또는 아니오로만 답하세요.
Table 10: 평가자로서 GPT-3.5 Turbo에 대한 few-shot prompt.
질문에 대한 정확한 정보가 다음 문서에 있습니까? 예 또는 아니오로만 답하세요.
Question: In what city was Abraham Raimbach born? Document: Bancroft was born on November 25, 1839 in New Ipswich, New Hampshire to James Bancroft and Sarah Kimball. At an early age he was cared for by Mr. and Mrs. Patch of Ashby, Massachusetts, the neighboring town. While not legally adopted, they named him Cecil Franklin Patch Bancroft, adding Franklin Patch after the son Mr. and Mrs. Patch had who recently died. He attended public schools in Ashby as well as the Appleton Academy in New Ipswich. He entered Dartmouth College in 1856 at the age of sixteen and graduated in 1860 near the top of his class. Bancroft continued his education as he began his career in teaching. He took classes at the Union Theological Seminary in New York City during the 186465 academic year. While there he was a member of the United States Christian Commission, traveling to support soldiers during the Civil War. He then transferred to the Andover Theological Seminary where he would graduate in 1867. Answer: No. Question: In what country is Wilcza Jama, Sokółka County? Document: Wilcza Jama is a village in the administrative district of Gmina Sokółka, within Sokółka County, Podlaskie Voivodeship, in north-eastern Poland, close to the border with Belarus. Answer: Yes. Question: What sport does 2004 Legg Mason Tennis Classic play? Document: The 2004 Legg Mason Tenis Classic was the 36th edition of this tennis tournament and was played on outdoor hard courts. The tournament was part of the International Series of the 2004 ATP Tour. It was held at the William H.G. FitzGerald Tennis Center in Washington, D.C. from August 16 through August 22, 2004.
Answer: Yes. Question: Who is the author of Skin? Document: The Skin We're In: A Year of Black Resistance and Power is a book by Desmond Cole published by Doubleday Canada in 2020. The Skin We're In describes the struggle against racism in Canada during the year 2017, chronicling Cole's role as an anti-racist activist and the impact of systemic racism in Canadian society. Among the events it discusses are the aftermath of the assault of Dafonte Miller in late 2016 and Canada 150. The work argues that Canada is not immune to the anti-Black racism that characterizes American society. Due to an error by the publisher, the initial printing of the book's cover did not include word Blackïn the subtitle. The mistake was later corrected. The book won the Toronto Book Award for 2020. In 2021, the book was nominated for the Shaughnessy Cohen Prize for Political Writing. Answer: No. Question: [question] Document: [document] Answer:
B Experiments
B. 1 Tasks, Datasets and Metrics
CRAG는 연구 목적으로 공개 및 라이선스된 네 가지 데이터셋으로 평가되었다.
-
PopQA (Mallen et al., 2023)는 짧은 형식의 텍스트 생성(short-form generation) task이다. 일반적으로 각 질문에 대해 하나의 사실적 지식(factual knowledge) 엔티티만 답변으로 요구된다. 우리 실험에서는 Self-RAG (Asai et al., 2024)의 설정을 그대로 따랐다. Self-RAG는 월간 Wikipedia 페이지 뷰가 100 미만인 1,399개의 희귀 엔티티 쿼리(rare entity queries)로 구성된 long-tail subset에서 방법론들을 평가했다. 평가 지표로는 Accuracy가 채택되었다.
-
Biography (Min et al., 2023)는 긴 형식의 텍스트 생성(long-form generation) task로, 특정 엔티티에 대한 상세한 전기(biography)를 생성하는 것을 목표로 한다. 이전 연구들을 따라, 생성된 전기를 평가하기 위해 FactScore (Min et al., 2023)가 채택되었다.
-
PubHealth (Zhang et al., 2023a)는 헬스케어 도메인의 task로, **참/거짓 질문(true-or-false questions)**으로 구성된다. 건강에 대한 사실 정보와 관련된 주장(claim)들이 제시되며, 모델은 그 진위 여부를 검증하고 판단을 내리는 것을 목표로 한다. 평가 지표로는 Accuracy가 채택되었다.
-
Arc-Challenge (Bhakthavatsalam et al., 2021)는 일상적인 상식 과학 현상에 대한 multiple-choice question task이다. 일상생활에서 발생하는 과학적 사건이 주어지면, 모델은 3개 또는 4개의 선택지 중에서 올바른 설명을 선택해야 한다. 평가 지표로는 Accuracy가 채택되었다.
B. 2 Experiments compute Resources
우리는 실험을 위해 NVIDIA A800 80GB GPU를 사용했다. LLaMA-2 (7B) 생성 시, 추론 과정에서 40GB 이상의 메모리를 차지한다. T5-large (0.77B) fine-tuning의 경우, LLaMA-2에 비해 훨씬 적은 메모리를 사용한다.
B. 3 Implementation Details
Retrieval Evaluator: 우리는 경량 T5-large (Raffel et al., 2020) 사전학습 모델을 기반으로 retrieval evaluator를 fine-tuning했다. 사용된 데이터셋은 Self-RAG (Asai et al., 2024)에서 제공한 버전이다. 구체적으로, 원본 PopQA 데이터셋은 14k개의 샘플로 구성되어 있으며, 이 중 1,399개는 Self-RAG (Asai et al., 2024)에 따라 테스트에 사용되었고, 정보 유출을 피하기 위해 나머지 샘플들은 fine-tuning에 사용되었다. 또한, fine-tuned evaluator는 추론 시 Bio, Pub, ARC 데이터셋에도 전이되어 활용되었다. 긍정 샘플의 레이블은 1이었고, 부정 샘플의 레이블은 -1이었다. 추론 시, evaluator는 각 문서에 대해 -1에서 1까지의 관련성 점수를 매겼다. 세 가지 동작 중 하나를 트리거하기 위한 두 가지 신뢰도 임계값은 경험적으로 설정되었다. 구체적으로, PopQA에서는 (0.59, -0.99), PubQA 및 ArcChallenge에서는 (0.5, -0.91), Biography에서는 (0.95, -0.91)로 설정되었다.
Internal Knowledge: fine-grained retrieval 결과를 얻기 위해, 우리는 검색된 결과들을 internal strip으로 분할했다. 검색된 결과가 한두 문장 정도로 짧으면 개별 strip으로 간주하고, 그렇지 않으면 검색 문서를 일반적으로 몇 문장으로 구성된 더 작은 단위로 총 길이에 따라 분할해야 한다. 이 strip은 독립적인 정보 조각을 포함한다고 가정하며, 필터링은 이 세그먼트를 기반으로 한다. 우리는 knowledge strip 필터링을 위해 evaluator를 다시 직접 채택했으며, top-k는 5로, 필터 임계값은 -0.5로 설정했다.
External Knowledge: Google Search API를 사용하여 관련 URL을 검색했으며, top-k는 5로 설정되었고, Wikipedia 페이지가 우선적으로 추가된다. 검색된 웹 페이지는 일반적으로 <p> 및 </p>와 같은 특수 토큰으로 내용이 분할된 HTML 파일 형태이다. 따라서 knowledge refinement와 같은 추가적인 분할은 필요하지 않으며, 관련 지식 단락은 internal knowledge와 유사하게 evaluator로 직접 선택할 수 있다. 이러한 방식으로, 생성에 사용되는 정보의 품질과 관련성을 손상시키지 않으면서 검색 결과의 정확성을 보장할 수 있다.
Generator: CRAG는 plug-and-play 방식이므로, RAG에서 활용될 수 있는 모든 생성 모델이 우리의 접근 방식에도 적합하다. 비교를 위한 baseline과 일관성을 유지하기 위해, 우리는 생성을 위해 LLaMA2 (Touvron et al., 2023b)를 채택했다. 우리는 먼저 huggingface의 LLaMA2-hf-7b를 도입하여 응답을 생성했다. Self-RAG (Asai et al., 2024)가 LLaMA2를 fine-tuning하여 여러 task에서 새로운 state-of-the-art 성능을 달성했기 때문에, 우리는 그들의 작업과 일관성을 유지하고 우리 방법의 특정 개선 사항을 연구하기 위해 출시된 모델인 SelfRAG-LLaMA2-7b를 새로운 generator로 추가 활용했다.
Self-CRAG: 우리의 plug-and-play 접근 방식이 다른 동시 연구에서도 활용될 수 있음을 보여주기 위해, 우리는 CRAG를 Self-RAG (Asai et al., 2024) 프레임워크에 삽입하도록 특별히 설계했으며, 이를 Self-CRAG라고 명명했다. Self-RAG는 critic model을 도입하여 검색 여부와 생성에 참조할 검색 문서를 결정하는 고급 RAG 접근 방식이다. 이는 어떤 동작을 트리거할지 결정해야 하는 우리의 요구 사항을 충족하므로, 우리는 Self-RAG의 검색된 항목을 Correct의 경우 처리된 internal knowledge로, Incorrect의 경우 external knowledge로, Ambiguous의 경우 결합된 knowledge로 대체했다.
Table 11: PopQA 데이터셋에서 단일 동작만 제거했을 때의 정확도에 대한 ablation study.
| LLaMA2-hf-7b | SelfRAG-LLaMA2-7b | |
|---|---|---|
| CRAG | 54.9 | 59.8 |
| only Correct | 52.4 | 56.7 |
| only Incorrect | 47.0 | 48.5 |
| only Ambiguous | 52.7 | 58.0 |
| Self-CRAG | 49.0 | 61.8 |
| only | ||
| only Incorrect | 40.8 | 53.3 |
| only Ambiguous | 44.9 | 59.8 |
B. 4 More Detailed Results
Ablation Study: Table 11의 결과는 모든 인스턴스에 대해 하나의 action만 트리거하여 수행한 ablation study를 보여준다.
B. 5 Results on PubHealth and Arc-Challenge
LLaMA2-hf-7b 기반 PubHealth 성능이 다른 모델보다 훨씬 나빴다는 점은 주목할 만하다. 우리는 이 사례들을 연구하여 LLaMA2-hf-7b가 instruction comprehension에 상대적으로 취약하다는 것을 발견했다. 대부분의 경우, 이러한 이진 질문(binary-question) task에서 True 또는 False를 생성하는 데 실패하여 평가 시 낮은 정확도를 보였다. 이러한 상황은 모델이 후보의 인덱스를 생성해야 하는 Arc-Challenge에서도 어느 정도 발생한다.