RAG을 활용한 사용자 어플리케이션을 만들다보니 사용자들이 정성스럽게 질문을 하지 않는 것을 알게 되었다. 이러한 문제를 해결하기 위해서 사용자 질문을 다른 정보를 활용해서 풍부하게 할 수 있는 정보를 찾다가 논문을 발견하게 되었다. 직접적인 연관이 있을지는 모르겠지만, 제목으로 보아 개발 아이디어나 인사이트를 얻을 수 있을까해서 선택하게 되었다.
해당 논문 링크
https://arxiv.org/abs/2305.03653
Query Expansion by Prompting Large Language Models
Query expansion is a widely used technique to improve the recall of search systems. In this paper, we propose an approach to query expansion that leverages the generative abilities of Large Language Models (LLMs). Unlike traditional query expansion approac
arxiv.org
초록 (Abstract)
Query Expansion(QE)은 검색 시스템에서 사용자가 검색한 의도에 맞게 검색 결과가 잘 나올 수 있도록 도움을 주는 기술이다. -> 검색시스템의 recall 향상
(문제 상황) Pseudo-Relevance Feedback(PRF)와 같이 좋은 관련성 문서들 검색에 의존하는 기존 QE 방식과 달리 LLM에 학습된 지식정보와 LLM의 생성 능력과 창의성을 통해 QE를 진행한다.
(실험 방법) LLM에는 prompt를 통해 답변이 다르게 나올 수 있는데, zero-shot, few-shot, Chain-of-Thought(COT)를 포함하는 서로 다른 prompt에 대해서 연구한다.
(실험 결과1) 여러 개의 prompt 중에서 CoT 방식이 제일 성능이 좋은 것을 확인하였는데, 해당 방식은 LLM에게 query를 단계별로 세분화하도록 지시하여 해당 query와 관련된 많은 단어 제공할 수 있기 때문이다.
(실험 결과2) MS-MARCO와 BEIR에 대해서 실험하여 기존 QE 방법들보다 LLM 기반 QE 방법이 더 효과적인 것을 확인하였다.
1. 도입 (Introduction)
(기술 설명) QE는 기존 쿼리에 추가적인 단어를 더함으로써 검색 시스템의 recall을 향상시키기 위해 널리 사용된 기술이다. 확장된 쿼리가 기존 쿼리와 단어 접점이 없는 문서들과도 접점이 있을 수 있다.
(문제 상황) 기존의 QE 방식은 Pseudo-Relevance Feedback(PRF)에 기반을 두고 있다. PRF는 기존 쿼리로부터 검색된 문서 집합을 pseudo-relevant 문서로 처리하고 새로운 쿼리 단어를 추출하기 위해 해당 문서를 사용한다. 하지만, PRF 기반의 접근법은 상위로 검색된 문서들이 해당 쿼리에 매우 관련이 높다는 것을 가정한다. 특히 쿼리가 짧거나 모호한 경우, 초기 검색된 문서가 원래 쿼리와 완벽하게 유사하지 않을 수 있다. 그 결과, PRF 기반의 접근법은 검색된 문서들의 초기 문서 집합이 충분히 좋지 않으면 실패이다.
(제안 사항) QE 방식에 LLM을 적용한다. LLM의 생성 능력을 활용하여 QE를 생성한다. 특히 LLM에 prompt해서 원래 쿼리에 대한 다양한 대안 및 새로운 용어를 생성하도록 하는 방법을 연구한다. 이것은 PRF 문서들의 지식 혹은 언어적 지식 기반에 의존하는 대신에 LLM에 학습되어 내장된 지식에 의존한다. 제안한 방법론은 다음과 같다.
(기여 사항)
1) 상대적인 성능 연구를 위해 PRF가 있고 없는 QE를 수행하여 다양한 prompt(zero-shot, few-shot, CoT)를 공식화하였다.
2) CoT prompt가 제일 좋은 성능을 보이는 것을 발견하였고 그 이유를 CoT prompt가 모델에게 쿼리 확장에 도움이 될 수 있는 많은 키워드를 포함한 답변을 단계별로 세분화하도록 지시하였기 때문이라고 가정하였다.
3) QE에 LLM 접근법에 대한 수행 능력과 한계를 더 잘 이해하기 위해 다양한 모델 크기의 성능을 연구하였다.
3. 방법론 (Methodology)
q'는 확장 쿼리고 q는 기본 쿼리이다. Concat은 문자열을 연결하는 연산자이다.
위 공식은 LLM 출력이 많은 단어이기 때문에 기존 쿼리 q를 5번 반복해서 상대적 중요도를 가중시켰다. 해당 공식은 [31]에서 소개된 방법이다.
논문에서 연구한 8개의 prompt는 다음과 같다.
1) Q2D: 모델에게 쿼리에 응답하는 구절을 작성하도록 요청하는 Query2Doc[31] few-shot prompt
2) Q2D/ZS: Q2D의 zero-shot version
3) Q2D/PRF: Q2D/ZS이고 쿼리에 대한 상위 3개의 검색된 PRF 문서 형식의 추가 컨텍스트를 포함한 prompt
4) Q2E: Q2D와 비슷하지만 쿼리 documnet 대신하여 쿼리 확장 단어를 사용하는 prompt
5) Q2E/ZS: Q2E의 zero-shot version
6) Q2E/PRF: Q2E/ZS이지만 Q2D/PRF와 같이 PRF 문서 형식의 추가 컨텍스트를 포함한 prompt
7) CoT: 모델이 답변에 대한 근거를 제공하도록 지시하는 zero-shot Chain-of-Thought prompt
8) CoT/PRF: CoT에 상위 3개의 검색된 PRF 문서 형식의 추가 컨텍스트를 포함한 prompt
Zero-shot prompts [2), 5)]는 간단한 평문 명령과 입력 쿼리로 구성되어 있어서 가장 간단하다.
Few-shot prompts [1), 4)]는 추가적으로 문맥 안에 학습에 도움이 되기 위해 몇가지 예제(예: 쿼리와 해당 확장)가 포함되어 있다.
CoT prompts는 모델이 출력을 단계별로 세분화하도록 요청하여 모델에서 보다 상세한 출력을 얻기 위한 지침을 정했다.
PRF prompts는 상위 3개의 검색된 문서를 모델의 추가적인 문맥으로 사용한다.
실험에 사용된 정확한 prompt는 다음과 같다. (부록 A 참조)
4. 실험 (Experiments)
2가지 검색 task에서 실험: MS-MARCO [15] passage retrieval, BEIR [27]
검색 시스템은 Terrier에서 만든 BM25를 사용한다. (BM25 파라미터는 Terrier에서 제공한 기본 파라미터 사용)
[MS-MARCO passage retrieval Tasks]
데이터셋 링크: https://microsoft.github.io/msmarco/
MS MARCO
Message to NLP community and MSMARCO Community TLDR: We are closing the MSMARCO QnA and NLGEN Leaderboard. Last Submissions 10/23. Dear NLP community and Question Answering enthusiasts, When we released MSMARCO v2 back in March of 2018 we did not expect ho
microsoft.github.io
1. Passage Re-Ranking: BM25에서 검색한 상위 1000개의 후보 구절이 주어지면 관련성을 기준으로 구절의 순위를 재조정합니다.
2. Passage Full Ranking : 880만 개의 구절로 구성된 말뭉치가 주어지면 관련성별로 정렬된 상위 1000개의 구절 후보를 생성합니다.
[BEIR]
데이터셋 링크: https://openreview.net/forum?id=wCu6T5xFjeJ
BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of...
A novel heterogeneous zero-shot retrieval benchmark containing 18 datasets from diverse text retrieval tasks and domains.
openreview.net
BEIR (Benchmarking IR) 데이터셋은 서로 다른 IR Task들의 다양한 benchmark이다. 9개의 Task이고 총 18개의 dataset으로 구성되어 있다. 자세한 내용은 위에 표에서 확인할 수 있다.
4-1. 기준 (Baselines)
LLM 기반의 QE 방식을 분석하기 위해 몇가지 고전적인 PRF 기반의 QE 방식과 비교한다.
- Bo1: Bose-Einstein 1 weighting
- Bo2: Bose-Einstein 2 weighting
- KL: Kullback-Leibler weighting
Terrier에서 구현된 것을 사용하고 setting 또한 기본값으로 사용한다. (3 PRF docs, 10 expansion terms)
[PyTerrier Query Expansion docs]
https://pyterrier.readthedocs.io/en/latest/rewrite.html#bo1queryexpansion
Query Rewriting & Expansion — PyTerrier 0.10.0 documentation
Q -> Q: this rewrites the query, for instance by adding/removing extra query terms. Examples might be a WordNet- or Word2Vec-based QE; The input dataframes contain only [“qid”, “docno”] columns. The output dataframes contain [“qid”, “query”
pyterrier.readthedocs.io
Baseline으로 Query2Doc의 prompt를 포함한다. 수신 필드가 작은 모델 (특히 Flan-T5 model)의 경우 pormpt가 버려지는 것을 막기 위해 기본 4-shot prompt 대신 3-shot Q2D prompt를 사용한다.
4-2. 언어 모델 (Language Models)
두 가지 모델 사용하고 다양한 모델 크기에서 prompt를 비교한다.
- Flan-T5-Small (60M parameters)
- Flan-T5-Baes (220M parameters)
- Flan-T5-Large (770M parameters)
- Flan-T5-XL (3B paramters)
- Flan-T5-XXL (11B parameters)
- Flan-UL2 (20B parameters)
위 모델들은 prompt 기반의 접근을 사용할 때 중요한 지침들을 따르기 위해 fine-tuning 되었다.
해당 모델들은 아래 링크에서 접근이 가능하다.
[Flan-T5]
https://huggingface.co/docs/transformers/model_doc/flan-t5
FLAN-T5
Efficient training techniques
huggingface.co
[Flan-UL2]
https://huggingface.co/google/flan-ul2
google/flan-ul2 · Hugging Face
Model card for Flan-UL2 Table of Contents TL;DR Using the model Results Introduction to UL2 Training Contribution Citation TL;DR Flan-UL2 is an encoder decoder model based on the T5 architecture. It uses the same configuration as the UL2 model released ear
huggingface.co
4-3. 평가 지표 (Metrics)
QE에 관심이 있어서 첫번째 단계 검색의 recall 향상에 매우 집중하고 있으며, Recall@1K를 주요 평가 지표로 사용한다. 모델이 상위로 검색된 결과를 변화시키는 방법에 대해 더 잘 이해하기 위해서 MRR@10과 NDCG@10을 가장 중요한(top-heavy) 순위 지표로 사용한다. paired t-test 사용한 유의성 테스트로 모든 결과를 보고하고 p < 0.01에서 유의한 결과를 고려합니다.
5. 결과 (Results)
5-1. MS-MARCO Passage Ranking
왼쪽 표는 MS-MARCO Passage Ranking Task의 결과입니다.
A) 빨간 상자
Recall@1K은 BM25보다 기존의 QE 기준선 (Bo1, Bo2, KL)이 더 높은 결과가 나왔다. 하지만 MMR@10과 NDCG@10에서는 성능이 낮아지는 것을 확인할 수 있다.
B) 주황 상자(Flan-T5-XXL), 노란 상자(Flan-UL2)
LLM 기반의 QE를 prompt의 종류에 따라 실험을 하였다. Q2D 방식은 기존의 QE 방식인 (Bo1, Bo2, KL)와 달리 Recall@1K, MRR@10, NDCG@10 모두 성능이 개선되는 것을 확인하였다.
제일 좋은 성능은 CoT와 CoT/PRF을 통해 얻을 수 있었다. 해당 prompt는 모델이 답변을 단계별로 세분화하여 많은 단어를 포함한 설명을 생성하도록 지시합니다. 많은 단어를 포함하여서 QE에 유용한 잠재적인 키워드를 포함할 수 있어 성능이 좋은 것으로 판단합니다.
또한, PRF 문서들을 prompt에 추가하는 것이 MMR@10과 NDCG@10에 상당히 도움이 되는 것을 확인하였다. LLM들이 가장 유망한 키워드를 참조하여 출력에 사용함으로써 이미 관련 구절을 포함하고 있을 수 있는 PRF 문서를 증류하는 데 효과적입니다. 아래는 prompt 출력에 대한 구체적인 예시입니다.
왼쪽 Query는 "재규어 모터스의 주인이 누구인가?"입니다.
관련 구절은 재규어 모터스에 대한 설명(파란색)과 함께 "Tata Motors"가 주인임을 확인(초록색)할 수 있다.
1) Flan-T5-Large (770M)
- 모델의 크기가 작아서 정답을 잘 가져오지 못하였다.
- Q2D는 관련 구절에 대한 정보를 가져오지 못하였다.
- CoT는 재규어 모터스에 대한 설명을 가져왔다.
- CoT/PRF는 재규어 모터스의 주인이 누구인지 가져왔다.
2) Flan-UL2 (20B)
- 모델의 크기가 커서 정답을 잘 가져올 수 있었다.
- Q2D, CoT, CoT/PRF 세가지 모두 정답을 가져왔다.
- 하지만 CoT가 많은 설명을 포함하여 정답을 가져와서 제일 풍부한 정보를 가지고 있는 것을 확인하였다.
5-2. BEIR
5-3. 모델 크기의 영향 (The Impact of Model Size)
6. 한계 및 추후 작업 (Limitation & Future work)
7. 결론 (Conclusion)