NL-359, When to Retrieve: Teaching LLMs to Utilize Information Retrieval Effectively, RANLP 2025
LLM은 언제 검색해야 할까?
ADAPT-LLM: <RET> 토큰을 이용한 선택적 정보 검색
대규모 언어모델을 이용해 질문에 답하는 방법은 크게 두 가지로 나눌 수 있다.
첫 번째는 모델이 학습 과정에서 습득한 내부 지식만으로 답하는 Closed-book QA 방식이다. 별도의 검색 과정이 없으므로 빠르고 간단하지만, 모델이 알지 못하거나 오래된 정보에는 제대로 답하기 어렵다.
두 번째는 질문과 관련된 문서를 검색한 뒤, 검색 결과를 모델에 제공하는 Open-book QA 또는 RAG 방식이다. 외부 정보를 활용할 수 있다는 장점이 있지만 검색 비용과 지연이 발생하며, 검색된 문서의 품질이 낮으면 오히려 답변을 방해할 수도 있다.
이 논문은 두 방법 중 하나를 항상 고정해서 사용하는 대신, 질문마다 검색이 필요한지 모델이 직접 결정하도록 하는 방법을 제안한다. 제안된 모델의 이름은 ADAPT-LLM이다.
핵심 아이디어
ADAPT-LLM은 질문을 받으면 다음 두 행동 중 하나를 선택한다.
1. 모델이 답을 안다고 판단하면 바로 답변한다.
2. 외부 정보가 필요하다고 판단하면 <RET> 토큰을 출력한다.
예를 들어 모델이 질문에 답할 수 있다면 다음과 같이 응답한다.
Question: Who wrote Hamlet?
Answer: William Shakespeare
반면 모델이 추가 정보가 필요하다고 판단하면 답변 대신 특수 토큰을 생성한다.
Question: ...
Answer: <RET>
<RET>은 retrieval이 필요하다는 뜻이다. 백엔드는 이 토큰을 감지하면 정보검색 시스템을 실행하고, 검색된 문서를 질문과 함께 모델에 다시 입력한다.
전체 추론 과정은 다음과 같다.
질문
↓
ADAPT-LLM
├─ 직접 답변
│
└─ <RET>
↓
문서 검색
↓
질문 + 검색 문서
↓
ADAPT-LLM 재호출
↓
최종 답변
검색 여부를 판단하는 별도의 분류기나 라우터는 사용하지 않는다. 검색 판단 자체가 언어모델의 토큰 생성 과정에 포함되어 있다는 점이 이 방법의 특징이다.
학습 데이터는 어떻게 만드는가
이 논문에서 가장 중요한 부분은 <RET> 학습 데이터를 만드는 방법이다.
연구진은 사람이 직접 각각의 질문에 대해 “검색 필요” 또는 “검색 불필요” 라벨을 붙이지 않는다. 대신 기존 질의응답 데이터셋과 기본 LLM을 이용해 라벨을 자동으로 만든다.
각 학습 샘플에는 다음 정보가 포함되어 있다.
질문 Q
정답 A
정답과 관련된 문서 P
먼저 검색 기능을 사용하지 않은 기본 LLM에 질문만 입력한다.
answer = LLM(question)
그리고 모델이 생성한 답과 데이터셋의 정답을 비교한다. 논문의 알고리즘에서는 각 질문에 대해 기본 모델을 한 번 실행한 결과를 사용한다.
모델이 정답을 맞힌 경우
기본 LLM이 검색 없이 정답을 맞혔다면, 해당 질문은 모델의 내부 지식으로 답할 수 있다고 간주한다.
이 경우 다음과 같은 학습 데이터를 만든다.
입력:
Answer the question.
If you need help, answer <RET> to get the context.
Question:
Who wrote Hamlet?
출력:
William Shakespeare
이 데이터는 모델에게 해당 질문에서는 <RET>을 생성하지 말고 직접 답하도록 가르친다.
모델이 정답을 틀린 경우
기본 LLM이 정답을 맞히지 못했다면, 해당 질문에는 외부 문맥이 필요하다고 간주한다.
이 경우 학습 샘플을 두 개 만든다.
첫 번째 샘플은 검색을 요청하도록 학습한다.
입력:
Answer the question.
If you need help, answer <RET> to get the context.
Question:
...
출력:
<RET>
두 번째 샘플은 문서가 주어졌을 때 정답을 생성하도록 학습한다.
입력:
Answer the question given the context.
Question:
...
Context:
정답과 관련된 문서
출력:
정답
따라서 모델은 동시에 두 가지 능력을 배운다.
언제 문서를 검색해야 하는가
검색 문서가 주어졌을 때 어떻게 답해야 하는가
논문의 학습 데이터 생성 과정을 단순화하면 다음과 같다.
for question, gold_answer, passage in dataset:
predicted_answer = base_llm(question)
if predicted_answer == gold_answer:
add_training_sample(
input=question,
output=gold_answer
)
else:
add_training_sample(
input=question,
output="<RET>"
)
add_training_sample(
input=question + passage,
output=gold_answer
)
기본 모델의 한 번의 응답 결과를 이용해 모델이 해당 질문을 알고 있는지 추정한다는 점에서 매우 단순한 방식이다.
추론 과정
학습이 끝난 ADAPT-LLM에 새로운 질문이 들어오면 우선 문서 없이 질문만 입력한다.
모델이 일반 답변을 생성하면 검색 없이 그 답을 그대로 사용한다.
질문 → ADAPT-LLM → 답변
모델이 <RET>을 생성하면 검색기를 호출한다.
질문 → ADAPT-LLM → <RET>
논문에서는 검색기로 Contriever를 사용한다. Contriever는 질문과 문서를 벡터로 표현하고, 의미적으로 가까운 문서를 찾는 dense retrieval 모델이다.
검색 결과 중 가장 관련성이 높은 passage 하나만 사용한다.
질문
→ Contriever
→ 가장 관련성 높은 passage 1개
이 passage를 원래 질문과 함께 동일한 ADAPT-LLM에 다시 입력해 최종 답변을 생성한다. 별도의 두 번째 LLM을 사용하는 구조는 아니다.
실험 설정
연구진은 기본 모델로 Llama-2 7B를 사용했다.
학습 데이터로는 다음 두 데이터셋을 사용했다.
Natural Questions: 58,880개 질문
SQuAD: 87,599개 질문
평가는 14,282개의 질문으로 구성된 PopQA에서 수행했다.
모델은 LoRA를 이용해 3 epoch 동안 미세조정했으며, 평가 지표로 Exact Match Accuracy를 사용했다. 검색기는 Contriever이고, 검색된 passage 중 top-1만 모델에 제공했다.
비교 대상은 세 가지다.
Never-Retrieve
검색하지 않고 항상 모델 내부 지식으로 답변
Always-Retrieve
모든 질문에서 항상 문서를 검색
ADAPT-LLM
질문에 따라 직접 답하거나 <RET>을 생성
전체 실험 결과
PopQA에서의 정확도는 다음과 같다.
| 학습 데이터 | Never-Retrieve | Always-Retrieve | ADAPT-LLM |
|---|---|---|---|
| Natural Questions | 21.43% | 35.86% | 36.77% |
| SQuAD | 21.22% | 36.59% | 38.15% |
ADAPT-LLM은 검색을 전혀 사용하지 않는 방식보다 큰 폭으로 높은 성능을 보였다.
항상 검색하는 방식과 비교해도 더 높은 정확도를 기록했다. 다만 차이는 NQ 기준 0.91%p, SQuAD 기준 1.56%p로 크지는 않다.
이 결과는 모든 질문에 검색을 사용하는 것보다, 모델이 질문에 따라 검색 여부를 선택하는 것이 조금 더 효과적일 수 있음을 보여준다.
<RET> 판단은 실제로 의미가 있었는가
ADAPT-LLM이 검색을 요청한 질문과 직접 답한 질문을 나누어 분석한 결과는 다음과 같다.
| 학습 데이터 | <RET> 사용률 | <RET> 질문: 문서 사용 | <RET> 질문: 문서 없음 |
|---|---|---|---|
| NQ | 87.26% | 33.04% | 14.65% |
| SQuAD | 83.93% | 33.40% | 9.94% |
모델이 <RET>을 출력한 질문은 문서 없이 답했을 때 정확도가 매우 낮았다. 반면 검색된 문서를 제공하면 정확도가 크게 상승했다.
이는 모델이 <RET>을 출력한 질문들이 실제로 내부 지식만으로 답하기 어려운 질문이었음을 보여준다.
직접 답변하기로 선택한 질문에서는 반대 결과가 나타났다.
| 학습 데이터 | 직접 답변 질문: 문서 사용 | 직접 답변 질문: 문서 없음 |
|---|---|---|
| NQ | 55.72% | 62.36% |
| SQuAD | 57.73% | 62.92% |
모델이 직접 답하기로 한 질문에 검색 문서를 강제로 제공하면 정확도가 오히려 낮아졌다.
즉 검색은 항상 도움이 되는 것이 아니다. 검색기가 관련성이 낮거나 잘못된 문서를 가져오면 모델이 원래 알고 있던 정답을 방해할 수 있다.
검색 시스템이 주요 병목이었다
논문은 전체 성능을 제한하는 주요 원인이 검색 필요성 판단보다 검색 결과의 품질에 있다고 분석한다.
검색기가 가져온 passage 대신 정답이 포함된 gold passage를 모델에 제공했을 때 성능이 크게 상승했다.
| 학습 데이터 | Gold passage | 검색된 passage |
|---|---|---|
| SQuAD | 89.42% | 22.49% |
| NQ | 69.76% | 27.04% |
모델이 검색이 필요하다는 판단을 올바르게 하더라도, 검색기가 정답이 포함된 문서를 찾지 못하면 최종 답변은 틀릴 가능성이 높다.
논문에서는 top-1 passage만 사용했기 때문에 검색 품질의 영향을 특히 크게 받은 것으로 볼 수 있다.
논문의 장점
첫 번째 장점은 구조가 단순하다는 것이다.
검색 여부를 판단하는 별도의 분류기를 두지 않고 <RET>이라는 특수 토큰 하나로 검색 호출을 구현한다.
두 번째는 검색 필요성 라벨을 자동으로 만들 수 있다는 것이다.
기본 모델이 정답
→ 직접 답변 학습
기본 모델이 오답
→ <RET> 학습
사람이 질문마다 검색 필요 여부를 직접 판단할 필요가 없다.
세 번째는 모델의 능력에 맞게 학습 데이터를 만들 수 있다는 것이다. 같은 질문이라도 어떤 모델은 답할 수 있고 다른 모델은 답하지 못할 수 있다. 이 방법은 실제 기본 모델의 정답 여부를 기준으로 라벨을 생성한다.
마지막으로 검색을 선택한 질문과 직접 답한 질문에서 뚜렷한 성능 차이가 나타났다는 점에서, 모델이 검색 필요성을 어느 정도 의미 있게 구분했다고 볼 수 있다.
논문의 한계
가장 큰 한계는 모델이 질문을 알고 있는지 판단하는 기준이 지나치게 단순하다는 것이다.
논문에서는 질문에 대해 모델을 한 번 실행하고, 그 결과가 정답이면 “안다”, 오답이면 “모른다”고 판단한다.
하지만 모델은 실제로 지식을 가지고 있어도 질문을 잘못 이해하거나 추론에 실패할 수 있다. 반대로 우연히 정답을 맞힐 수도 있다.
따라서 이 논문에서 측정하는 것은 엄밀한 의미의 knowledge boundary라기보다 다음에 가깝다.
한 번 답했을 때 정답을 생성했는가
또한 Exact Match 평가를 사용하기 때문에 의미적으로 동일하지만 표현이 다른 답변이 오답으로 처리될 수 있다.
검색 비율이 여전히 높다는 점도 한계다. ADAPT-LLM은 평가 질문의 약 84~87%에서 <RET>을 생성했다. 항상 검색하는 방식보다는 낮지만, 대부분의 질문에서 검색을 사용한 셈이다.
마지막으로 검색된 passage의 관련성을 평가하거나 여러 검색 결과를 비교하는 과정이 없다. Contriever가 반환한 top-1 passage를 그대로 사용하기 때문에 검색 오류에 취약하다.
결론
이 논문은 LLM이 질문마다 검색 필요성을 직접 판단하도록 학습하는 간단한 방법을 제안한다.
핵심 과정은 다음과 같다.
기본 모델이 검색 없이 정답을 맞힌 질문
→ 정답을 직접 출력하도록 학습
기본 모델이 틀린 질문
→ <RET>을 출력하도록 학습
<RET> 이후
→ 검색된 문서를 이용해 답하도록 학습
실험 결과 ADAPT-LLM은 항상 검색하거나 전혀 검색하지 않는 고정 전략보다 높은 정확도를 기록했다.
특히 모델이 <RET>을 출력한 질문은 실제로 검색을 사용했을 때 성능이 크게 개선됐으며, 직접 답하기로 한 질문은 검색 문서를 추가했을 때 오히려 성능이 낮아졌다.
다만 질문당 한 번의 정답 여부만으로 모델의 지식을 판단한다는 점, 검색을 지나치게 자주 사용한다는 점, 검색기의 낮은 품질이 전체 성능을 크게 제한한다는 점은 중요한 한계다.
결국 이 논문의 핵심 기여는 다음과 같이 요약할 수 있다.
별도의 검색 라우터 없이도 LLM이
<RET>이라는 특수 토큰을 생성해, 필요한 경우에만 외부 정보 검색을 요청하도록 학습할 수 있다.
Reference
댓글
댓글 쓰기