본문 바로가기
AI

[논문 읽기] Is ChatGPT Good at Search? Investigating Large Language Models as Re-Ranking Agent

by xosoy 2023. 9. 14.

https://arxiv.org/abs/2304.09542

 

Large Language Models(LLMs) 자연어 관련 작업에서 zero-shot을 일반화하는 대단한 능력을 보여주고 있다. 이 논문은 IR(Information Retrieval)에서 관련성 랭킹(relevance ranking)을 위한 ChatGPT, GPT-4같은 generative LLM을 살펴보고 있다.

Introduction

ChatGPT, GPT-4 같은 LLM은 강한 zero-shot, few-shot generalization으로 자연어 처리를 혁신화하고 있다. 큰 규모의 텍스트 말뭉치에 대해 pretrain하고 인간의 지시를 따르도록 텍스트 정렬을 fine-tuning함으로써 LLM은 언어 이해, 생성, 상호작용, 추론에서 뛰어난 능력을 보여주었다. Information Retrieval(IR) 커뮤니티에서는 LLM의 생성 등력을 주로 사용하고 있다. 예를 들어 New Bing에서는 GPT-4를 검색된 문서에 기초해 답변을 생성하는데에 사용하고 있다. 아직 LLM이 검색을 잘하는지는 불분명하다. 

이 논문은 IR에서 relevance ranking에 대한 LLM의 잠재성을 연구하는 것을 목표로 한다. ChatGPT가 passage re-ranking 작업에서 어떻게 작동하는가? 이 질문에 답하기 위해서는 GhatGPT가 passage re-ranking 교육하는 데 사용되는 두가지 전략을 살펴보아야 한다: instructional query generation(교육적 쿼리 생성), instructional relavance generation(교육적 관련성 생성). 하지만 이런한 방법은 제한된 성능을 가지고 모델의 output의 로그 확률(log-probability)의 이용가능성에 매우 의존한다. 따라서 우리는 대체할 수 있는 instructional permutation generation (교육적 순열 생성) 접근 방식을 제안한다. 이 방식은 LLM이 일련의 구절에 대한 치환을 바로 출력하도록 학습시킨다. 또한 우리는 LLM이 임의의 개수의 구절에 대해 순위를 매기도록 하는 sliding window 전략을 소개한다.

평가를 위해 세 개의 잘 수립된 passage ranking benchmark인 (1)TREC-DL19, DL20, (2) BEIR(8개의 구체적인 passage retrieval tasks), (3) My.TyDi(10개의 저자원 언어를 위한 multilingual passage ranking benchmark)가 사용된다. 결과에 따르면 zero-shot instructional permutation generation를 사용한 GPT-4는 거의 모든 데이터셋에서 supervised 시스템보다 좋은 성능을 보여주었다.

ChatGPT, GPT-4(zero-shot)의 평균 결과. SOTA sup은 기존에 가장 성능이 좋았던 supervised 시스템

ChatGPT의 ranking 능력을 더 작고 특화된 모델로 어떻게 모방할 수 있을까? 이 질문에 답하기 위해서 논문은 permutation distillation technique (순열 정제 기술)를 소개한다. MS MARCO 데이터셋에서 1만 개의 쿼리를 랜덤하게 뽑는다. 각각은 20개의 후보 구절에 대해 BM25에 의해 검색된 결과이다. (BM25는 주어진 쿼리와 문서와의 연관성을 평가하는 랭킹 함수) 후보 구절의 permutation을 얻기 위해 ChatGTP를 사용한다. 그리고 student model를 ChatGPT와 같은 permutation를 생성하도록 보장하며 최적화하기 위해 list-wise 목표를 사용한다. 실험 결과, student model은 완전히 fine-tuned된 monoT5보다 좋은 성능을 보여주었다. 또한 제안된 distillation 방식은 비용적인 측면에서 좋은 효율성을 보여주었다. 

요약하자면 이 논문의 기여는 다음과 같다.

- passage re-ranking 태스크에서 LLM을 학습하는 방법에 대한 조사, 새로운 permutation generation 접근 방식 소개

- 다양한 passage re-ranking benchmark에서 ChatGPT, GPT-4의 능력 평가

- ChatGPT에 의해 생성된 permutation으로 특화된 모델을 학습하시키는 distillation 접근

 

2  Passage Re-Ranking with LLMs

Passage re-ranking은 첫번째 단계의 검색 모델에 의해 검색된 일련의 구절들을 다시 순위를 매기는 일로, IR에서 키(key) 작업이다. 존재하는 랭킹 모델은 주로 대규모 주석이 달린 데이터셋(MS MARCO 같은)에 의존한다. 하지만 supervised 방식들은 상당한 annotation 비용, 새로운 도메인이나 언어에 대한 약한 일반화 능력, 제한된 상업적 사용 등의 문제를 가진다. 반면 최근 자연어 분야에서의 LLM의 발달은 few/zero-shot 학습과 지시를 따르는(instruction-followeing) 능력에서 좋은 능력을 보여주었다. ChatGPT에서 작동하는 두가지 방식: instructional query generation, relevance generation을 리뷰하고자 한다. 그 다음 slindig window strategy를 사용한 새로운 instructional permutation generation 방식을 소개한다.

(a), (b): ChatGPT에서 사용되는 두 가지 방식, (c): 새롭게 제안된 방식

2.1  Instructional Query Generation

구절에 기반해서 쿼리를 생성하기 위해, 쿼리와 구절 사이의 연관성이 모델의 로그확률(log-probability)에 의해 측정된다.

Query Generation에서 relevance score 계산 방법

위 수식에서 q는 쿼리(query), p는 구절(passage)이다. |q|는 쿼리의 토큰 개수, qt는 쿼리의 t번째 토큰을 의미한다. 구절들은 relevance score si에 의해 순위가 매겨진다.

2.2  Instructional Relevance Generation

Relevance generation은 HELM에서 사용된다. 쿼리와 구절이 연관성이 있으면(relevant) "yes", 아니면 "no"를 출력하도록 LLM이 학습된다. 

Relevance Generation에서 relevance score 계산 방법

relevance score si는 LLM이 "Yes" 또는 "No" 단어를 생성하는 확률에 의해 측정되고,  [0, 2] 범위에서 normalized된다 .

위의 두 방식은 LLM의 로그 확률에 의존하는데, 이는 LLM API에서 종종 사용 불가능하다(Chat Completion API). 다음은 오직 텍스트 기반 출력을 re-rank하기 위해 사용하는 방식이다.

2.3  Instructional Permutation Generation

ChatGPT, GPT-4가 multi-turn 대화, 텍스트 이해, 추론에서 강한 능력을 가지고 있기 때문에, 우리는 그것들이 일련의 후보 구절들이 주어졌을 때 순위 리스트를 바로 출력하는지 테스트했다. 구절들의 permutation(순열)을 쿼리와의 연관성에 내림차순으로 생성하도록 LLM에 요청한다. 

제안된 방식은 중간에 relevance score를 구하지 않고 바로 구절들을 순위를 매긴다. 최근 ChatGPT, GPT-4같은 LLM들은 대화 인터페이스를 사용하기 때문에, 우리는 더불어서 user와 assistance 사이의 대화를 통해 랭킹 과정을 촉진하는 chat instruction을 발전시켰다. 

Sliding Windows Strategy 

LLM에서 허용되는 입력 토큰 개수가 한정되어있기 때문에 permutation generation 방식을 사용하면 한정된 구절 개수에 대해서만 순위를 매길 수 있다. 이 한계를 처리하기 위해 sliding window 전략을 제안한다.

위 그림은 8개의 구절을 sliding window를 사용해서 re-ranking하는 예다. 첫번째 단계의 검색 모델이 M개의 구절을 검색했다고 가정하자. 이 구절들을 back-to-first 순서로 sliding window를 사용해서 다시 순위를 매겼다. w(window 사이즈), s(step size) 두 개의 hyperparameter를 정의했다. 처음에는 (M-w)번째부터 M번째 구절을 순위를 매기기 위해 LLM를 사용한다. 그리고 s 스텝만큼 window를 slide한다. 다시 (M-w-s)번째부터 (M-s)번째 구절까지 순위를 매긴다. w개의 구절에 대해 순위를 매기고 s 스텝만큼 window를 앞으로 가져오는 이러한 과정을 모든 구절이 re-ranked될 때까지 반복한다.

efficiency: 입력은 (M/S)*w 개의 passage이고 각 passage는 w/s 번 반복된다. 

effectiveness: k번 sliding window 과정을 거치면 k*(w-s) 개의 상위 passage를 얻을 수 있다. 

 

3  An Empirical Study

3.1  Datasets and Metrics

TREC : information retrieval research 분야에서 널리 사용되는 benchmark 데이터셋이다. 

BEIR: 다양한 retrieval task, domain으로 이루어져 있다. 해당 논문에서는 8개의 태스크(covid, NFCorpus, Touche, DBPedia, SciFact, Signal, News, Robust04)를 선정했다. 

Mr.TyDi: multilingual passage retrieval 데이터셋. 10개의 low-resource 언어(Arabic, Bengali, Finnish, Indonesian, Japanese, Korean, Russian, Swahili, Telugu, Thai)를 포함하고 있다.

pyserini(first-stage retrieval를 제공하는 파이썬 툴킷)를 사용하여 BM25에 의해 상위 100개의 passage를 re-rank하고 평가metric으로는 nDCG를 사용했다.  nDCG@{1,5,10}이라 써있는데, 아마도 top-1, 5, 10?

 

3.2  Implementation Details

OpenAI API를 제공하는 4개의 LLM을 사용했다.

  • text-curie-001: GPT-3 모델. 67억 개의 파라미터 
  • text-davinci-003: RLHF(Reinforcement Learning from Human Feedback)으로 학습된 GPT-3.5 모델. 1750억 개의 파라미터 
  • gpt-3.5-turbo: ChatGPT의 underlying 모델
  • gpt-4-GPT-4 model

논문 작성 당시 gtp-3.5-turbo, gpt-4 의 경우 로그 확률을 반환하지 않았다고 한다. API 호출 시 teperature(언어 생성 모델에서 생성된 텍스트의 다양성을 조절하는 하이퍼파라미터)를 0으로 설정했다. sliding window 전략 사용 시 window 사이즈 는 20, step은 10, 한 번만 실행(K=1)했다. BEIR, Mr.TyDi 데이터셋의 경우 비용 절감을 위해 GhatGPT에 의해 re-rank된 상위 30개의 passage를 re-rank하기 위해 GPT-4만을 사용했다.

 

3.3  Baselines

supervised

  • monoBERT: BERT-large에 기반한 cross-encoder re-ranker
  • monoT5: seq2seq re-ranker. T5를 사용해 relevance score 계산
  • TART: supervised instruction-tuned passage re-ranker. FLAN-T5-XL로 초기화된 모델. BEIR 데이터셋에서 베이스라인으로 사용됨.
  • mmarcoCE: 12 layer mMiniLM-v2 cross-encoder 모델. mmarco(MS MARCO의 translated 버전)으로 학습됨. Mr.TyDi의 베이스라인으로 사용됨

upsupervised

  • UPR: instructional query generation를 사용한 unsupervised passage ranking. 뛰어난 성능 때문에 UPR의 LLM으로 FLAN-T5-XL을 사용
  • InPars: GPT-3에 의해 생성된 pseudo 데이터로 학습된 monoT5-3B
  • Promptagator++: 110M cross-encoder re-ranker. FALN 137B에 의해 생성된 pseudo 쿼리로 학습시킴.

3.4  Results on TREC

TREC

- permtation generation를 사용한 GPT-4가 DL19, DL20(각각 2019, 2020 대회의 test set)에서 모두 가장 좋은 결과를 얻었다.

- ChatGPT(gpt-3.5-turbo)가 nDCG@1에서는 GPT-4와 비슷한 값을 가지지만, nDCG@10에서는 뒤떨어진다.  Davinci 모델(text-davinci-003)은 ChatGPT, GTP에 비해 성능이 나쁘다. 그 원인은 generation stability가 약하기 때문일 수 있다.

- LLM이 passage를 re-rank하도록 학습시키는데에 있어 permutation generation 방식은 query나 relavance generation 방식보다 성능이 좋다.

 

3.5  Results on BEIR

BEIR

- permutation generation 학습 방식을 사용한 GPT-4가 거의 모든 데이터셋에서 가장 좋은 성능을 보였다. 8개의 태스크에서도 평균 성능이 가장 좋다. 특히 평균 2.3 nDCG 차이로 monoT5를 앞질렀다.

- ChatGPT가 큰 규모의 annotated 데이터에서 학습된 베이스라인들보다(monoT5(3B) 제외) 좋은 성능을 보였다. 

 

3.6  Results on Mr.TyDi

전반적으로 GPT-4가 대부분의 언어에서 supervised 시스템(mmacroCE)보다 더 나은 성능을 보였다. 평균적으로 mmarcoCE보다 2.65 nDCG 정도 향상했지만, 특정 언어들(Bengali, Telugu, Thai)에 비해서는 낮은 성능을 보였다. 이러한 언어들에 대해 GPT-4가 언어 모델링 능력 좋지 않은다. 이러한 언어들로 작성된 텍스트는 영어보다 토큰을 많이 사용하는데, 이는 passage에 대해 over-cropping을 유발한다. ChatGPT도 마찬가지로 supervised 시스템과 비슷하지만 특정 언어들에서는 뒤떨어지고, GTP4보다는 모든 언어에서 뒤떨어진다.

 

3.7  Ablation Study 

제안한 요소가 모델에 어떠한 영향을 미치는지 확인하고 싶을 때, 이 요소를 포함한 모델과 포함하지 않은 모델을 비교

Number of re-ranked passages: re-rank된 passage의 개수가 클수록, 더 좋은 성능을 보인다. 

Initial passage order: 모델의 성능은 초기 passage의 순서에 매우 민감하다. BM25가 비교적 좋은 시작 순서를 제공하므로 한 번의 sliding window re-ranking으로 만족스러운 결과를 만든다. 

Number of re-ranking: sliding window를 거치는 횟수가 많을수록 좋은 성능을 보이는 것 같다. 하지만 nDCG@1에서 gpt-3.5-turbo가 1번했을 때 82.17에서 2, 3번 했을 때 78.29로 3.88 감소한 것을 볼 수있다. GPT-4를 사용해 상위 30개의 passage를 re-rank했을 때 accuracy가 매우 향상된 것을 볼 수 있다. ChatGPT(gtp-3.5-turbo)와 GPT-4를 함께 사용하여 GPT-4 모델를 사용했을 때의 높은 비용을 줄일 수 있는 방법이 있다는 것을 보여준다. 

 

4  Distillation to Specialized Models

 

'AI' 카테고리의 다른 글

[논문 읽기] Large Language Models for Information Retrieval: A Survey  (0) 2023.09.12