https://arxiv.org/abs/2403.14403
Abstract
질문의 복잡성에 따라 검색을 보완한 대규모 언어 모델(Large Language Models, LLMs)은 외부 지식 기반에서 비파라메트릭 지식을 LLMs에 통합함으로써 여러 작업에서 응답 정확도를 향상하는 유망한 접근 방식으로 떠오르고 있습니다. 특히, Question-Answer(QA) 작업에서 그러합니다. 하지만, 다양한 복잡성을 가진 쿼리를 다루는 여러 접근 방식이 있음에도 불구하고, 이들은 단순 쿼리를 불필요한 계산 오버헤드로 처리하거나 복잡한 다단계 쿼리를 충분히 해결하지 못하는 경우가 많습니다. 그리고 모든 사용자 요청이 단순 혹은 복잡한 카테고리에만 속하는 것은 아닙니다. 이 연구에서는, 쿼리의 복잡성에 기반하여 가장 적합한 전략을 동적으로 선택할 수 있는 새로운 적응형 QA 프레임워크를 제안합니다. 이 선택 과정은 자동으로 수집된 레이블을 사용하여 들어오는 쿼리의 복잡성 수준을 예측하기 위해 훈련된 더 작은 LM인 분류기로 운영됩니다. 이 레이블은 모델의 실제 예측 결과와 데이터셋에서의 고유한 귀납적 편향에서 얻어집니다. 이 접근 방식은 반복적인 검색을 보완한 LLMs와 단일 단계 검색을 보완한 LLMs, 그리고 검색을 사용하지 않는 방법 사이에서 원활하게 적응하는 균형 잡힌 전략을 제공합니다. 우리는 다양한 쿼리 복잡성을 다루는 오픈 도메인 QA 데이터셋 세트에서 우리 모델을 검증하고, 적응형 검색 접근 방식을 포함한 관련 베이스라인과 비교하여 QA 시스템의 전체 효율성과 정확성을 향상한다는 것을 보여줍니다.
Adaptive-RAG 프레임워크는 질문의 복잡성에 따라 가장 적합한 대응 전략을 동적으로 선택하는 기능을 갖추고 있으며, 이 과정은 분류기를 통해 자동화를 하고 QA 시스템의 효율성과 정확성을 향상하기 위해 다양한 쿼리 복잡성에 대응하는 균형 잡힌 전략을 제공한다.
1 Introduction
최근의 대규모 언어 모델들은 다양한 작업에서 압도적인 성능을 보여주고 있으며, 특히 Q-A(QA)과 같은 작업에서 뛰어난 결과를 나타냈습니다. 하지만, 이러한 모델들은 여전히 사실적으로 부정확한 답변을 생성하는 경향이 있는데, 이는 모델의 지식이 오로지 파라메트릭 메모리에만 의존하기 때문입니다. 모든 변화하는 세계 지식을 기억하는 것은 불가능할 수 있습니다. 이 문제를 해결하기 위해, 추가적인 검색 모듈을 통해 비파라메트릭 지식을 LLMs에 통합하는 검색-보강 LLMs가 점점 더 주목받고 있습니다. 이 모델들은 다양한 주제와 학문 분야에 걸쳐 방대한 정보 저장소로서 기능하는 지식 기반에 접근하여 주어진 입력에 관련된 정보를 검색한 후, 이 검색된 지식을 LLMs에 통합함으로써 모델이 세계 지식과 정확하고 최신의 정보를 유지할 수 있게 합니다.
특히, 검색-보강 LLMs의 두드러진 응용은 고 복잡성 사용자 쿼리에 대한 정확한 답변을 제공하는 것을 목표로 하는 QA 작업을 처리하는 것입니다. 초기의 검색-보강 LLMs 연구는 주로 단일 문서 내에서 답변을 찾을 수 있는 단일-홉 쿼리에 중점을 두었습니다. 이 접근법은 쿼리를 기반으로 관련 문서를 검색하고 이 정보를 QA 모델에 통합하여 응답을 형성하는 것을 포함합니다. 하지만, 단일-홉 QA와 달리, 어떤 쿼리들은 여러 문서를 연결하고 집계해야 하며, 이는 단일 단계의 검색-응답 프로세스를 통해 해결할 수 없는 경우가 많습니다. 따라서, 이러한 복잡한 쿼리를 효과적으로 처리하기 위해, 최근 연구들은 여러 번의 반복적인 접근을 필요로 하는 다단계 및 다중 추론 QA에 크게 집중하고 있습니다.
(A) 쿼리에 대한 응답으로
쿼리에 대한 응답으로 이 단일 단계 접근 방식은 관련 문서를 검색한 다음 답변을 생성합니다. 하지만 여러 단계를 거쳐야 하는 복잡한 쿼리에는 다단계 추론이 필요한 복잡한 쿼리에는 충분하지 않을 수 있습니다.
(B) 이 다단계 접근 방식은 문서를 반복적으로 검색하여 중간 답변을 생성합니다. 중간 답변을 생성하는데, 이는 강력하지만 두 가지 모두에 여러 번 액세스해야 하므로 간단한 쿼리에는 크게 비효율적입니다. LLM과 검색기 모두에 여러 번 액세스해야 하기 때문에 단순 쿼리에는 비효율적입니다.
(C) 적응형 접근 방식은 검색 증강 LLM에 가장 적합한 전략을 선택할 수 있습니다. 반복, 단일, 심지어 검색 없음에 이르기까지, 분류기에 의해 결정된 쿼리의 복잡성에 따라 적합한 전략을 선택할 수 있습니다.
실제 시나리오에서는 사용자의 모든 요청이 복잡한 것은 아닙니다. 사용자는 종종 단순하고 직관적인 질문을 하며, 가끔 복잡한 질문을 할 때도 있습니다. 특히, ‘파리는 어느 나라의 수도인가?’와 같은 질문은 멀티-스텝 쿼리보다 더 자주 물어볼 것이며, 이러한 간단한 질문은 LLMs 자체로 쉽게 답할 수 있을지도 모릅니다. 즉, 다단계 QA 접근법은 단순한 질문에 대해 불필요한 계산 오버헤드를 초래할 수 있으며, 복잡한 쿼리에는 필수적일 수 있습니다. 반면에, 단일-단계 검색 또는 비검색 전략을 사용하여 복잡한 쿼리를 처리하는 것은 대체로 불충분합니다
이 프레임워크의 핵심은 질문의 복잡성을 평가하기 위해 훈련된 분류기를 사용하는 것이다. 이 분류기는 쿼리가 들어오는 즉시 그 복잡성 수준을 예측하며, 이를 통해 가장 적절한 처리 방식을 결정한다. 쿼리의 복잡성이 높을 때는 Multi-step, 쿼리의 복잡성이 낮을 때는 single-step 방식으로 검색이 필요 없는 방법을 사용한다. 이 것을 실시간으로 판단해서 분류기를 통해 접근방법을 선택하는 것을 Our Adaptive Approach라 할 수 있다.
2 Related Work
Open-domain QA, Multi-hop QA , Adaptive Retrieval와 같은 분야에서 연구가 이루어지고 있고 위 내용은 논문 참고 바랍니다.
3 Method
쿼리의 복잡성을 사전에 결정하고 그에 따라 가장 적합한 검색 보강 대규모 언어 모델(LLMs) 전략을 선택하여 검색 보강 LLMs를 적응시키는 접근 방법을 설명합니다.
3.1 Preliminaries
- Non Retrieval for QA: 가장 단순한 LLM 기반 QA 모델은 쿼리를 입력으로 받아 정확한 답변을 생성합니다. 이 방법은 간단한 쿼리를 처리하는 데 효율적이지만, 특정한 지식이 요구되는 쿼리에는 한계가 있습니다.
- Single-step Approach for QA: 외부 지식 소스에서 유용한 정보를 포함하는 문서를 검색하여 LLM의 입력으로 통합함으로써 LLM의 정확성과 현대성을 향상합니다.
- Multi-step Approach for QA : 복잡한 쿼리를 처리하기 위해 여러 번의 반복적인 검색과 추론을 통해 정보를 종합하고 문제를 해결합니다. 이 방법은 자원 집약적일 수 있습니다.
3.2 Adaptive-RAG: Adaptive Retrieval-Augmented Generation
- Adapting Retrieval-Augmented LLMs : 쿼리의 복잡성에 따라 가장 적합한 전략을 선택합니다. 실제 시나리오에서 모든 쿼리가 같은 복잡성 수준을 가지고 있지 않기 때문에, 각 쿼리에 맞는 전략을 채택하는 것이 필요합니다.
- Query Complexity Assessment: 쿼리의 복잡성을 결정하기 위해, 우리는 복잡성 분류기를 모델링합니다. 이 분류기는 주어진 쿼리의 적절한 복잡성 수준을 반환합니다.
분류기는 작은 규모의 언어 모델로, 세 가지 다른 복잡성 수준을 구분할 수 있도록 훈련됩니다. 이러한 복잡성 수준에 대응하는 클래스 레이블은 'A', 'B', 'C'로 지정이 된다.
- 'A' 레이블은 쿼리가 직관적이며 LLM 자체로 답변할 수 있는 경우를 나타냄. 이 경우 쿼리는 추가적인 검색이나 외부 데이터 없이도 처리됨.
- 'B' 레이블은 쿼리가 중간 정도의 복잡성을 가지며, 적어도 단일-단계 접근법(즉, LLM에 외부에서 검색된 문서를 추가 입력으로 제공하는 방식)이 필요한 경우다.
- 'C' 레이블은 쿼리가 매우 복잡하며, 여러 외부 문서와 추가적인 콘텍스트를 기반으로 한 가장 광범위한 해결책이 필요한 경우를 가리킴.
- Training Strategy: 주어진 쿼리에 대한 복잡성을 정확히 예측하기 위해 작은 언어 모델을 훈련합니다. 우리는 쿼리-복잡성 쌍에 대한 훈련 데이터셋을 자동으로 구축합니다.
첫 번째 전략은 쿼리의 복잡성을 세 가지 다른 검색 보강 LLM 전략의 결과에 기반하여 라벨링 한다. 예를 들어, 가장 단순한 비검색 기반 접근법이 정확한 답변을 생성하는 경우, 해당 쿼리에는 'A' 라벨이 지정됨. 또한, 단일 단계와 다단계 접근법 모두 정확한 답변을 생성하지만 비검색 기반 접근법이 실패하는 경우, 해당 쿼리에는 'B' 라벨이 지정. 이렇게 하여 다양한 모델 간의 우선순위를 단순한 모델에 두어 쿼리에 라벨을 부여한다. 하지만, 이 라벨링 전략은 세 가지 검색 보강 접근법 모두 정확한 답변을 생성하지 못하는 경우, 모든 쿼리에 라벨을 지정할 수 없다는 한계가 있을 수 있다. 반면, 벤치마크 데이터셋은 이미 쿼리에 가장 적합한 검색 보강 LLM 전략에 대한 유의미한 귀납적 편향을 가질 수 있다. 따라서 첫 번째 라벨링 단계 후에 라벨이 지정되지 않은 쿼리에 대해, 단일-홉 데이터셋의 쿼리에는 'B'를, 멀티-홉 데이터셋의 쿼리에는 'C'를 할당한다.
쿼리의 복잡성을 평가하고, 각 쿼리에 가장 적합한 RAG를 보강해서 LLM 전략을 동적으로 선택하는 접근방식이란 뜻이라 할 수 있는데, 코드로보면 이해가 쉬울듯한 방법론이다.
4 Experimental Setups
4.1 Datasets
- Single-hop QA: 단순 쿼리를 위해 SQuAD v1.1, Natural Questions, TriviaQA 등 세 개의 벤치마크 단일-홉 QA 데이터셋을 사용합니다.
- Multi-hop QA: 더 복잡한 쿼리 시나리오를 위해 MuSiQue, HotpotQA, 2 WikiMultiHopQA 등 세 개의 벤치마크 멀티-홉 QA 데이터셋을 사용합니다.
4.2 Models
이상적인 사 나리오에서의 성능도 보고하는데, 쿼리 복잡성을 파악하는 오라클 분류기와 함께 사용된 Adaptive-RAG의 성능을 보고합니다.
- Simple: 비검색 및 단일-단계 접근법 기반 메서드.
- Adaptive : 적응형 검색, Self-RAG, 그리고 우리의 Adaptive-RAG를 포함합니다.
- Complex : 멀티-단계 접근법을 사용합니다.
4.3 Evaluation Metrics
Effectiveness and efficiency: F1, EM, 정확도(Accuracy)로 효과성을, 검색 및 생성 단계 수와 각 쿼리에 대한 평균 응답 시간으로 효율성을 측정합니다.
4.4 Implementation Details
- 검색 모델: 모든 모델에 걸쳐 BM25이라는 용어 기반 스파스 검색 모델을 사용합니다.
- 외부 문서 코퍼스: 단일-홉 및 멀티-홉 데이터셋에 따라 다른 소스를 사용합니다.
- LLMs: FLAN-T5 시리즈 모델과 GPT-3.5 모델을 사용합니다.
- Adaptive-RAG: 쿼리 복잡성 분류기로 T5-Large 모델을 사용하며, 최적의 성능을 보이는 에포크를 기준으로 100번의 훈련 반복 후 검증 세트에서 훈련합니다.
- 분류기 훈련 데이터: 단일-홉과 멀티-홉 데이터셋의 유도적 편향에 기반한 400개의 쿼리 샘플을 사용하여 분류기를 훈련합니다.
이러한 실험 설정을 통해, 다양한 복잡성을 가진 쿼리에 대해 Adaptive-RAG의 성능을 평가하고, 효과성과 효율성 사이의 균형을 측정할 수 있습니다. 이는 Adaptive-RAG가 단순 접근법보다 더 효과적이면서도 복잡한 접근법보다 더 효율적인 적응형 해결 방법을 제공할 수 있는지를 확인하는 데 도움이 됩니다.
5 Experimental Results and Analyses
Main Results
- 단순 검색 보강 전략은 복잡한 전략에 비해 효과적이지 않으며, 복잡한 전략은 단순한 전략들에 비해 비용이 많이 드는 것으로 나타났습니다.
- Adaptive-RAG는 적응형 전략 중에서 특히 뛰어난 효과를 보였으며, 단순히 검색 여부를 결정하는 것이 최적이 아님을 나타냅니다.
- 복잡한 쿼리를 처리하는 데에는 단순한 적응형 전략이 부적합한 것으로 관찰되었습니다.
당연한 소리 같다? 당연히 단순 검색은 돈이 적게 들것이고 호출이 적으니 Adaptive-RAG 가 비용적으로 얼마나 나올지에 대한건 없는데, 아무래도 Agent 형태이기 때문에 많이 나올 것이고, GPT-4를 쓴다면 분명히 성능이 더 올라갈 것이다.
Classifier Performance
- Adaptive-RAG의 분류기는 다른 적응형 검색 기준선에 비해 분류 정확도가 더 우수하며, 이는 전반적인 QA 성능 향상으로 이어집니다.
- 분류기의 실제 긍정 성능을 평균하여 보여주는 혼동 행렬에서 'C (다중)'가 'B (단일)'로, 'B (단일)'가 'C (다중)'로 잘못 분류되는 경향이 있습니다.
Analyses on Efficiency for Classifier
- 단순 또는 명확한 쿼리를 식별함으로써 효율성을 크게 향상할 수 있음을 나타냅니다.
Analyses on Training Data for Classifier
- 분류기는 적응형 검색에 있어 중요한 역할을 하며, 실버 데이터에서 예측된 결과와 데이터셋의 유도적 편향을 활용하여 훈련됩니다.
Analyses on Classifier Size
- 분류기의 다양한 크기 간에는 성능 차이가 크지 않으며, 작은 분류기도 실제 사용 사례에서 자원 효율적인 설정에 기여할 수 있음을 나타냅니다.
Case Study
- 단순한 단일-홉 질문에 대해서는 Adaptive-RAG가 LLM 자체의 파라메트릭 지식만으로 답변할 수 있다고 판단하는 반면, 복잡한 질문에 대해서는 관련 정보를 찾아내어 더 정확한 답변을 생성합니다.
이러한 결과들은 쿼리의 복잡성에 기반한 검색 보강 LLM 전략을 적응시키는 우리의 제안이 유효하고 중요한 접근 방법임을 지지하며, 최적의 성능을 달성하기 위해 보다 개선된 분류기를 개발하는 방향을 제시합니다.
분류기의 크기에 따라 성능의 차이를 미치기도 하고, 확실히 쿼리복잡도가 높은 쿼리에 대해서 Adaptive RAG 가 효과적인 것을 볼 수가 있다. 하지만 분류기도 중요하지만 검색기도 중요하지 않을까 생각한다 결국 Retrieval의 정보를 제대로 가져오지 못하면 말짱 꽝이 아닐까? 그러기 위해선 검색기도 강화가 되어야 한다고 생각한다. 쿼리를 decompositon 해서 여러 번 LLM을 호출시키는 예제들도 많이 있기 때문에 이것도 연장선이 아닌가? 살짝 생각이 들었다. 코드를 까봐야 알겠지만 흥미로울 것 같다. Langchain에 조만간 업로드되어있지 않을까 생각한다. Langserve와 LangGraph를 결합해서 예제가 나올 것 같으니 참고해 보자.
아 지금 논문에 나온 코드 주소는 따로 실행이 되지 않으니 참고 바란다.
https:// github.com/starsuzi/Adaptive-RAG