Abstract&Introduction
RAG 성능은 크게 두 가지에 의존한다. 바로 query로부터 정보를 retrieval하는 retriever와 이를 이용해 문장을 생성하는 reader인데, 이 논문에서는 RAG에서 retriever의 성능을 어떤 식으로 최적화시켜야 할지 여러 실험을 통해 보여준다.
먼저 저자는 이 논문에서 retriever만의 contribution을 측정하기 위해 LLM의 tuning을 진행하지 않는다는 점을 먼저 언급했다. 구리고 보편적인 QA와 attributed QA task에 RAG 성능 평가를 진행했다는데 여기서 attributed QA란 LLM이 생성 시 어떤 document를 참고했는지 언급하는 task를 말한다.
Experiment setup
LLM instruction model로는 Llama-2-7b-chat와 Mistral-7B-Instruct-v0.3를 사용하였다. 이 부분에서 attribute QA를 다시 언급하는데 이는 원문 그대로를 보는게 더 이해가 빠를 것 같다.” In attributed QA, an LLM is also required to explicitly cite (e.g., by document ID) one or more of the documents used.”
Mistral은 긴 컨텍스트를 처리할 수 있어서 2shot prompt를 LLAMA는 1shot을 사용했다.
Retrieval
Single vector embedding으로는 BGE-base를, multi vector embedding으로는 ColBERTv2를 사용했다.
Datasets
ASQA, QAMPARI, Natural Question를 사용했다.
Metrics
평가지표로는 recall@k를 사용했는데 이건 retrieval 된 k의document 중 gold passage의 비를 나타낸다
생성 task에 대한 지표로는 EM Rec를 사용했는데 이건 LLM의 생성 문장이 구두점과 같은 사소한 정보를 빼면 GT와 완전히 동일해야 true로 보는 지표이다.
Citation recall과 citation precision은 말 그대로의 의미로 attribute QA모델의 참조가 document를 전체적으로 얼마나 잘 포함하고 정확한지를 의미한다.
Results
가장 먼저 QA 성능을 최대로 끌어올리기 위해 몇 개의 문서(top-k)가 필요한지를 실험했다.
그래프에 Gold와 Non Context는 각각 필요한 document를 완전히 포함할 때와 document가 아예 없는(k=0) 시나리오를 의미한다.
Correctness on QA begins to plateau around 5-10 documents
실험결과는 다음과 같았다.
1. Mistral은 top-k가 10~20 라마는4~5 정도에서 최고의 성능을 보여줌
2. citation precision은 이보다는 상대적으로 낮은 k에서 최고점을 찍음
3. 보통 gold document들은 7~13번째 순위에 위치함
이러한 결과를 아래와 같이 해석했다.
1. 실험에서 사용한 llama는 mistral보다 상대적으로 작은 context window를 가졌기 때문에 최적 k가 낮았을 것
2. LLM에 과하게 높은 k를 줘서 많은 document를 주는 건 비효율적임
3. gold-document가 7~13 정도에 있기에 그림 2처럼 팔목 부분?에서 최고 성능을 보임
여기에서 저자가 말하고 싶은 부분을 어느 정도 알 수가 있는데, Retrieval document 수, 즉 K와 그 안에 gold document가 들어있는지 여부 그리고 그로 인한 LLM 성능 증가는 일종의 trade off 관계라는 점이다.
이후 그림에서 위의 주장을 뒷받침하는데 성능이 recall에 맞추어 선형적으로 증가하는 모습을 보이나 하나의 gold document만 사용해도 큰 성능 향상을 이끌어낼수 있음을 보여주었다.
RAG에 대한 기초지식이 적다보니 글을 적으면서도 요약이 안되고 햇갈리게 설명한 부분이 몇 있었던것 같은데 key insight는 더 높은 k-> 더 많은 gold document를 사용할 수 있으나 context length와 recall로 인한 손실 그리고 효율성 문제가 있으므로 gold document를 적절히 활용할 수 있는 k를 서칭하는게 중요하다. 정도로만 이해하고 넘어가도 될 정도의 논문이라 생각한다.
기존 RAG를 구현할때 searching에 집중해서 무조건 gold document 하나만을 찾는 것을 목표로 했고 한계에 봉착했는데 이러한 부분을 다시 생각하게 되었고 RAG 관련 기초지식의 부족을 다시 한번 깨달았다.