Is ChatGPT Good at Search? (emnlp 2023)

참고자료: Weiwei Sun et al., Is ChatGPT Good at Search? Investigating Large Language Models as Re-Ranking Agents, emnlp2023 

논문에서 제안하는 방법으로 chatgpt, gpt-4로 랭킹했을 때의 검색 성능 

  • GPT-4가 가장 좋고, monoT5가 다음으로 좋음. 
  • GPT-4는 튜닝없이, prompt만으로 랭킹. 
  • monoT5는 T5를 랭킹에 맞게 fine-tuning 한 모델 
  • 모델 크기는 GPT-4가 monoT5보다 훨씬 큼. 

instructional permutation generation (그림 2에서 c) 


  • chatgpt 혹은 gpt-4와 같은 LLM으로 랭킹하는 하는 새로운 방법 
  • 질의와 하나 이상의 문서를 입력으로 받아서, 문서들의 순서 정하도록 LLM에게 요청함 
  • 1차 검색된 상위 n개 문서들을 대상으로 LLM으로 re-ranking 수행함 
  • Sliding Window Strategy (그림 3) 
    • 1차 검색된 상위 n개 문서들에 대해서 가장 낮은 w개의 문서들부터 시작 
    • w개의 문서들을 LLM으로 순위화
    • window를 앞으로 이동해서, 동일한 방식으로 순위화 진행 
    • window 이동시에는 이전 윈도우와 일부 겹치도록 함. (그림 3의 step 2 참조) 
  • 참고로 기존 방법은 다음과 같음
    • query generation 방식: 질의와 문서가 주어졌을 때, 문서로부터 질의가 생성될 확률 계산 (그림2에서 a) 
    • relevance generation 방식: 질의와 문서가 주어졌을 때, 적합여부를 판단하도록 함. (그림 2에서 b) 
      • 다만, 적합 여부 판단만으로는 랭킹이 안되는데, 뭔가 추가적인 것이 더 있을 듯. 


    permutation distillation 

    • chatgpt을 teacher로 사용하고, small model을 student로 사용 
    • small model로는 다음 두가지 사용 
      • DeBERTa-large : cross-encoder model. 
        • CLS 토큰을 이용해서 질의-문서간의 적합성 정도를 계산한다. 
      • LLaMA-7B
        • relevance 토큰을 생성할 확률로 질의-문서간의 적합성 정도를 계산한다. 
    • 학습 방법 
      1. chatgpt를 이용해서 각 질의에 대해 문서들을 순위화한다. 
      2. 순위화된 문서들을 대상으로, RankNet loss를 이용해서 student model을 학습시킨다. 
    • RankNet loss 
      • 수식에서 $r_i$는 $i$ 번째 문서의 랭크를 의미함  
      • 수식에서 $s_i$는 질의와 $i$번째 문서간의 점수를 의미함. (높을수록 적합할 가능성이 큼) 
      • 논문에는 아래 수식으로 되어 있는데, $exp(s_i - s_j)$가 아닌 $exp(s_j - s_i)$ 일듯. $r_i < r_j$라는 것이 $i$ 번째 문서가 $j$ 번째 문서보다 상위 랭크를 의미할 거여서. 

    RankGPT 

    • 아마도 instructional permutation generation으로 랭킹하는 LLM을 의미하는 듯. 
    • distillation으로 생성한 모델까지 포함하려나? 
    • "A.4 Permutation Generation Instruction (Text)"에 기술된 instruction에 RankGPT라는 문구가 있음. 

    새로운 평가 데이터로 NovelEval이라는 데이터로 만들어서 평가함 

    • ChatGPT나 GPT-4가 TREC 평가 데이터, BEIR 평가 데이터 등을 이미 학습에 사용했을 수 있음. (혹은 이런 데이터를 사용했는지 여부를 알 수 없음) 
    • 만약에 이런 데이터를 이미 이용했다면, 평가에 유리하게 작용할 수 있음. 
    • ChatGPT나 GPT-4 학습에 사용되지 않았을 데이터를 만들어서 평가함. 
    • 이런 데이터를 만들기 위해서 GPT-4 가 공개된 이후에 나온 문서들을 수집하고, 이 문서들과 관련된 질의를 만들고, 구글 검색 결과를 수동으로 평가함. 
    • 21개 질의로 구성됨  

    평가 결과 

    • 문서 처음에 있는 그림 1의 monoT5, ChatGPT, GPT-4 결과 참조 
    • initial retrieval의 결과가 중요함. 즉 permutation instruction 에 입력으로 들어가는 문서들의 순서가 중요함. (표 5) 
      • random order, reverse order를 했을 때, 품질이 많이 떨어짐 (gpt-3.5-turbo와 비교하면 됨) 
    • ChatGPT로 re-ranking을 여러번 하면 결과가 오히려 결과가 안 좋아짐  
      • 표 5에서 gpt-3.5-turbo와 (3), (4)를 비교하면 됨.  
    • ChatGPT로 ranking 한 후, GPT-4로 리랭킹하면 결과가 좋아짐 
      • 표5에서 gpt-3.5-turbo와 (5)를 비교하면 됨. 
    • 여러가지 LLM 중에서 OpenAI gpt-3.5-turbo와 gpt-4의 결과가 대체로 좋음. (표6) 


    • distillation으로 생성한 모델이, marco dataset로 바로 학습한 모델보다 품질이 좋음 (표7) 
      • monoT5가 distillation으로 생성한 모델보다 품질이 좋음. monoT5가 teacher인 ChatGPT보다 품질이 더 좋기 때문에 당연한 결과일 수도 있을 듯. 
      • 표7에서 Label이 MARCO인 것은 marco dataset으로 학습한 것이고, ChatGPT인 것은 ChatGPT를 teacher로 해서 distillation으로 생성한 모델임 



















    댓글

    이 블로그의 인기 게시물

    utf-8과 utf8