State-of-the-art LLMs continue to struggle with factual errors (Mallen et al., 2023; Min et al., 2023) despite their increased model and data scale (Ouyang et al., 2022). Retrieval-Augmented Generation (RAG) methods (Figure 1 left; Lewis et al. 2020; Guu et al. 2020) augment the input of LLMs with relevant retrieved passages, reducing factual errors in knowledge-intensive tasks (Ram et al., 2023; Asai et al., 2023a). However, these methods may hinder the versatility of LLMs or introduce unnecessary or off-topic passages that lead to low-quality generations (Shi et al., 2023) since they retrieve passages indiscriminately regardless of whether the factual grounding is helpful. Moreover, the output is not guaranteed to be consistent with retrieved relevant passages (Gao et al., 2023) since the models are not explicitly trained to leverage and follow facts from provided passages. This work introduces **Self-Reflective Retrieval-augmented Generation (Self-RAG)** to improve an LLM's generation quality, including its factual accuracy without hurting its versatility, via on-demand retrieval and self-reflection. We train an arbitrary LM in an end-to-end manner to learn to reflect on its own generation process given a task input by generating both task output and intermittent special tokens (i.e., _reflection tokens_). Reflection tokens are categorized into _retrieval_ and _critique_ tokens to indicate the need for retrieval and its generation quality respectively (Figure 1 right). In particular, given an input prompt and preceding generations, Self-RAG first determines if augmenting the continued generation with retrieved passages would be helpful. If so, it outputs a **retrieval** token that calls a retriever model on demand (Step 1). Subsequently, Self-RAG concurrently processes multiple retrieved passages, evaluating their relevance and then **generating** corresponding task outputs (Step 2). It then generates critique tokens to **criticize** its own output and choose best one (Step 3) in terms of factuality and overall quality. This process differs from conventional RAG (Figure 1 left), whichconsistently retrieves a fixed number of documents for generation regardless of the retrieval necessity (e.g., the bottom figure example does not require factual knowledge) and never second visits the generation quality. Moreover, Self-Rag provides citations for each segment with its self-assessment of whether the output is supported by the passage, leading to easier fact verification.
최신 LLM은 모델 및 데이터 규모가 증가했음에도 불구하고(Ouyang et al., 2022), 사실 오류(Mallen et al., 2023; Min et al., 2023)로 인해 계속 어려움을 겪고 있습니다. Retrieval-Augmented Generation (RAG) 방법(그림 1 왼쪽, Lewis et al. 2020; Guu et al. 2020)은 관련 검색 구절로 LLM의 입력을 보강하여 지식 집약적인 작업에서 사실 오류를 줄여줍니다(Ram et al., 2023; Asai et al., 2023a). 그러나 이러한 방법은 LLM의 다용도성을 저해하거나 사실적 근거가 도움이 되는지 여부에 관계없이 무분별하게 구절을 검색하기 때문에 품질이 낮은 생성으로 이어지는 불필요하거나 주제와 관련 없는 구절을 도입할 수 있습니다(Shi et al., 2023). 또한 제공된 구절의 사실을 활용하고 따르도록 모델을 명시적으로 학습시키지 않았기 때문에 출력이 검색된 관련 구절과 일관성을 유지하지 못합니다(Gao et al., 2023). 이 연구에서는 필요에 따라 검색 및 자기 성찰을 통해 다용도성을 해치지 않으면서 사실 정확성을 포함한 LLM의 생성 품질을 개선하기 위해 **Self-Reflective Retrieval-Augmented Generation (Self-RAG)**을 소개합니다. 임의의 LM을 end-to-end 방식으로 학습시켜 작업 입력이 주어졌을 때 작업 출력과 간헐적인 특수 토큰(즉, _reflection tokens_)을 모두 생성함으로써 자체 생성 프로세스를 반성하는 방법을 학습시킵니다. Reflection tokens은 _retrieval_ 및 _critique_ 토큰으로 분류되어 각각 검색의 필요성과 생성 품질을 나타냅니다(그림 1 오른쪽). 특히, 입력 프롬프트와 이전 생성이 주어지면 Self-RAG는 먼저 검색된 구절로 연속된 생성을 보강하는 것이 도움이 될지 여부를 결정합니다. 그렇다면 필요에 따라 검색 모델을 호출하는 **retrieval** 토큰을 출력합니다(1단계). 그런 다음 Self-RAG는 검색된 여러 구절을 동시에 처리하여 관련성을 평가한 다음 해당 작업 출력을 **생성**합니다(2단계). 그런 다음 critique tokens을 생성하여 자신의 출력을 **비판**하고 사실성 및 전반적인 품질 측면에서 가장 좋은 것을 선택합니다(3단계). 이 과정은 검색 필요성에 관계없이 일정한 수의 문서를 검색하여 생성하는 기존 RAG(그림 1 왼쪽)와는 다릅니다(예: 아래 그림 예시에서는 사실적 지식이 필요하지 않음). 또한 Self-RAG는 출력이 구절에 의해 지원되는지 여부에 대한 자체 평가와 함께 각 세그먼트에 대한 인용을 제공하여 사실 확인이 더 쉬워집니다.
최신 LLM은 모델 및 데이터 규모가 증가했음에도 불구하고(Ouyang et al., 2022), 사실 오류(Mallen et al., 2023; Min et al., 2023)로 인해 계속 어려움을 겪고 있습니다. 검색 증강 생성(RAG) 방법(그림 1 왼쪽, Lewis et al. 2020; Guu et al. 2020)은 관련 검색 구절로 LLM의 입력을 보강하여 지식 집약적인 작업에서 사실 오류를 줄여줍니다(Ram et al., 2023; Asai et al., 2023a). 그러나 이러한 방법은 LLM의 다용도성을 저해하거나 사실적 근거가 도움이 되는지 여부에 관계없이 무분별하게 구절을 검색하기 때문에 품질이 낮은 생성으로 이어지는 불필요하거나 주제와 관련 없는 구절을 도입할 수 있습니다(Shi et al., 2023). 또한 제공된 구절의 사실을 활용하고 따르도록 모델을 명시적으로 학습시키지 않았기 때문에 출력이 검색된 관련 구절과 일관성을 유지하지 못합니다(Gao et al., 2023). 이 연구에서는 필요에 따라 검색 및 자기 성찰을 통해 다용도성을 해치지 않으면서 사실 정확성을 포함한 LLM의 생성 품질을 개선하기 위해 **자기 반사적 검색 증강 생성(Self-RAG)**을 소개합니다. 임의의 LM을 엔드투엔드 방식으로 학습시켜 작업 입력이 주어졌을 때 작업 출력과 간헐적인 특수 토큰(즉, _반성 토큰_)을 모두 생성함으로써 자체 생성 프로세스를 반성하는 방법을 학습시킵니다. 반성 토큰은 검색_ 및 _비평_ 토큰으로 분류되어 각각 검색의 필요성과 생성 품질을 나타냅니다(그림 1 오른쪽). 특히, 입력 프롬프트와 이전 생성이 주어지면 Self-RAG는 먼저 검색된 구절로 연속된 생성을 보강하는 것이 도움이 될지 여부를 결정합니다. 그렇다면 필요에 따라 검색 모델을 호출하는 **검색** 토큰을 출력합니다(1단계). 그런 다음 Self-RAG는 검색된 여러 구절을 동시에 처리하여 관련성을 평가한 다음 해당 작업 출력을 **생성**합니다(2단계). 그런 다음 비평 토큰을 생성하여 자신의 출력을 **비판**하고 사실성 및 전반적인 품질 측면에서 가장 좋은 것을 선택합니다(3단계). 이 과정은 검색 필요성에 관계없이 일정한 수의 문서를 검색하여 생성하는 기존 RAG(그림 1 왼쪽)와는 다릅니다(예: 아래 그림 예시에서는 사실적 지식이 필요하지 않음). 또한 Self-Rag는 출력이 구절에 의해 지원되는지 여부에 대한 자체 평가와 함께 각 세그먼트에 대한 인용을 제공하여 사실 확인이 더 쉬워집니다.