00:00:00

Share Your Feedback 🏝️

Rank Vicuna

Rank Vicuna

MinWoo(Daniel) Park | Tech Blog

Read more
Previous: QA LoRA*** Next: Attention Sinks

Rank Vicuna

  • Related Project: Private
  • Category: Paper Review
  • Date: 2023-09-30

RankVicuna: Zero-Shot Listwise Document Reranking with Open-Source Large Language Models

  • url: https://arxiv.org/abs/2309.15088v1
  • pdf: https://arxiv.org/pdf/2309.15088v1
  • abstract: Researchers have successfully applied large language models (LLMs) such as ChatGPT to reranking in an information retrieval context, but to date, such work has mostly been built on proprietary models hidden behind opaque API endpoints. This approach yields experimental results that are not reproducible and non-deterministic, threatening the veracity of outcomes that build on such shaky foundations. To address this significant shortcoming, we present RankVicuna, the first fully open-source LLM capable of performing high-quality listwise reranking in a zero-shot setting. Experimental results on the TREC 2019 and 2020 Deep Learning Tracks show that we can achieve effectiveness comparable to zero-shot reranking with GPT-3.5 with a much smaller 7B parameter model, although our effectiveness remains slightly behind reranking with GPT-4. We hope our work provides the foundation for future research on reranking with modern LLMs. All the code necessary to reproduce our results is available at this https URL.

Contents

TL;DR


  1. 대규모 언어모델을 활용한 0-shot 문서 재순위 기술의 개발
  2. 오픈 소스 언어 모델 RankVicuna의 성능 검증
  3. 효과적인 데이터 보강 기법을 통한 모델 견고성 향상 연구

1. 서론

대규모 언어모델(LLMs)의 지시 파인튜닝이 널리 이용되면서, 다양한 자연어 처리 및 정보 검색 작업에 폭넓게 적용되고 있습니다. 본 연구에서는 텍스트 검색의 맥락에서, 특히 0-shot 리스트 와이즈 재순위를 중심으로 LLMs의 활용을 탐구합니다. 기존의 접근 방식은 대부분 독점 모델에 의존해 왔으나, 이런 모델은 실험 결과의 재현성 및 결정성 문제를 내포하고 있습니다. 따라서 본 연구는 고품질 재순위를 수행할 수 있는 오픈 소스 LLM, RankVicuna의 개발과 그 효과를 검증하는 것에 초점을 맞춥니다.


2. 배경 및 관련 연구

2.1 문서 검색 및 재순위 과정

문서 검색 과정에서는 주어진 코퍼스 \(C = \{D_1, D_2, ..., D_n\}\) 내에서 정보 요구 \(q\)에 가장 관련 있는 문서를 \(k\)개 선별하는 작업이 이루어집니다. 사용되는 메트릭은 nDCG나 평균 Precision 등입니다. 재순위 과정은 검색된 문서 리스트의 품질을 개선하는 역할을 하며, 같거나 다른 메트릭을 기준으로 수행됩니다.

2.2 트랜스포머 모델과 재순위

초기의 트랜스포머 모델은 주로 단일 문서의 관련성을 평가하는 pointwise 접근 방식에 중점을 뒀습니다. 하지만 최근 연구에서는 문서 쌍(pairwise)이나 문서 리스트(listwise)를 고려하는 손실 함수를 도입하여, 보다 정밀한 재순위를 가능하게 하였습니다. 이런 접근은 고정밀 설정에서의 재순위 성능을 개선하고, 첫 단계 검색기와의 일치성을 높이는 데 도움을 줍니다.

2.3 0-shot 재순위와 RankVicuna

0-shot 설정에서는 특정 작업에 대한 감독 없이 모델을 사용합니다. RankVicuna는 이런 설정에서 프롬프트 엔지니어링을 통해 재순위 작업을 수행하도록 설계되었습니다. 이 모델은 teacher 모델인 GPT3.5를 바탕으로 하여, 오픈 소스 LLM을 활용하여 0-shot 방식으로 문서 재순위를 수행할 수 있도록 하였습니다.

2.4 데이터 보강과 모델 견고성

데이터 보강은 모델의 견고성을 높이기 위해 사용되며, 초기 검색 품질의 변동이나 후보 문서의 혼합에 대한 내성을 강화합니다. 이런 기술은 이상적인 조건에서의 모델 출력 품질에 영향을 미칠 수 있으므로, 효과성과 견고성 간의 트레이드오프가 필요합니다.

재순위의 효과성을 측정하는 데 사용되는 주요 메트릭은 nDCG와 평균 Precision로, nDCG는 다음과 같이 계산됩니다.

\[\text{nDCG} = Z \sum_{i=1}^{p} \frac{2^{rel_i} - 1}{\log_2(i+1)}\]

\(rel_i\)는 $i$번째 문서의 관련성 점수, \(p\)는 평가되는 문서의 수, \(Z\)는 정규화 상수


3. 방법

  1. 문서 재순위 작업에 대한 새로운 접근 방식 제안
  2. 0-shot 리스트 와이즈 재순위를 위한 프롬프트 디자인 개발
  3. RankVicuna 모델을 이용한 고품질 순위 목록 생성


3.1 프롬프트 디자인

최근 연구(Ma et al., 2023)에서는 0-shot 리스트 와이즈 LLM 기반 재순위가 각 문서를 독립적으로 평가하는 pointwise 접근 방식보다 우수하다는 것을 보여주었습니다. 이는 리스트 와이즈 접근 방식이 동시에 여러 문서를 고려하여 상대적 위치를 결정할 수 있기 때문입니다. 이런 발견을 바탕으로, 다음과 같이 순위 문제를 정의합니다. 사용자 쿼리 \(q\)와 이전 단계에서의 후보 문서들 \(\{D1, ..., Dn\}\)이 주어졌을 때, nDCG와 같은 검색 메트릭을 개선하는 입력 문서 식별자의 재정렬된 목록을 반환하는 것이 목표입니다.

RankGPT 프롬프트(Sun et al., 2023)와 유사하지만, Vicuna와 GPT 사이의 차이를 고려한 0-shot 리스트 와이즈 재순위를 위한 프롬프트 템플릿을 사용합니다. 특히, Vicuna의 기본 시스템 설명을 사용합니다. 또한, 프롬프트를 수정하여 대답이 신원 순서, \([1] > [2] > ... > [m]\)에서 벗어나야 함을 시사한다고 합니다. Vicuna에 대한 정확한 입력 프롬프트는 Figure 1에 나와 있습니다.


3.2 RankVicuna

RankVicuna는 고품질 순위 목록을 프롬프트 디코딩하기 위해 RankGPT3.5를 teacher 모델로 활용했습니다. 구체적으로, RankGPT3.5가 Sun et al. (2023)에서 제공한 100K 훈련 세트 쿼리로 생성한 순위 목록에 대해 RankVicuna를 훈련시켰습니다. 이 데이터셋은 MS MARCO v1 통로 순위 훈련 세트에서 무작위로 샘플링한 100K 쿼리를 사용하고, Pyserini (Lin et al., 2021a)를 사용하여 각 쿼리에 대해 BM25로 20개의 후보를 검색하여 생성되었습니다. 그런 다음 이 후보들을 RankGPT3.5에 전달하여 teacher 순서를 생성하고, 이를 student 모델인 RankVicuna에 증류했습니다. RankGPT3.5와 RankVicuna는 모두 휴먼이 레이블을 붙인 관련 쿼리-통로 쌍에 직접 노출되지 않았기 때문에, 접근 방식은 여전히 0-shot으로 간주될 수 있습니다.

보다 높은 품질과 더 견고한 훈련된 모델을 보장하기 위해 다음과 같은 추가적인 조치를 취했습니다.

  • 잘못 생성된 생성물에 대해서는 훈련하지 않았습니다. 구체적으로, 목록 형식이 잘못되었거나 문서 식별자가 누락되었거나 반복된 예제는 훈련 세트에서 제외되었습니다. 출력의 약 12%가 형식에 맞지 않았기 때문에 일관되게 형식에 맞는 순서를 생성하는 모델이 필요했습니다.
  • Teacher가 제공하는 원래 생성물을 포함할 뿐만 아니라, 입력 순서가 섞인 조건도 포함했습니다. 이는 모델이 더 복잡한 재순위 작업에 노출되도록 하면서 추가 데이터 생성 비용을 발생시키지 않기를 희망하기 때문입니다. 그러나 BM25의 원래 입력 순서를 유지합니다. 이는 모델이 인퍼런스 중에 보는 것과 가장 가까운 ‘성공’을 모델링하는 것이 중요하다고 믿기 때문입니다. 논문의 나머지 설정에서 이 데이터 보강(DA) 과정을 포함합니다.

bfloat16에서 효과적인 배치 크기 128과 학습률 \(2 \times 10^{-5}\)로 7B 파라미터 RankVicuna를 두 에포크 동안 훈련시켰습니다. 훈련은 NVIDIA RTX A6000 GPU 4대에서 약 80시간 동안 진행되었습니다. 초기 가중치로 사용된 Vicuna 모델은 HuggingFace Hub의 lmsys/vicuna-7b-v1.5에서 찾을 수 있습니다. 이 모델은 Meta의 LLaMA-v2 모델(Touvron et al., 2023)에서 지시 파인튜닝되었습니다.


4. 실험 설정

  1. RankVicuna 모델의 효과성 입증
  2. 다양한 재순위 방법과의 성능 비교
  3. 테스트 컬렉션을 이용한 성능 측정


4.1 실험 목적 및 방법

RankVicuna의 효과성을 입증하기 위해, 기존의 비지도 학습 방법인 BM25과 Contriever와 비교하였습니다. 또한, Closed-Source인 두 가지 프롬프트 디코더 모델인 LRL (Ma et al., 2023)과 RankGPT (Sun et al., 2023)와의 비교를 수행하였습니다. 이 모델들은 각각 GPT3.5와 GPT4를 사용하며, RankGPT3.5와 RankGPT4로 명명됩니다. 비교를 위해 RankVicuna를 포함한 모든 모델은 동일한 기본 LLM을 사용하였습니다.

4.2 데이터셋 및 벤치마크

실험에 사용된 데이터셋는 TREC 2019 및 2020 딥 러닝 트랙의 테스트 컬렉션입니다(Craswell et al., 2020, 2021). 이 데이터는 MS MARCO v1 통로 코퍼스를 사용하며, 8.8백만 개의 통로를 포함합니다. 성능 평가는 nDCG@10과 평균 Precision(MAP@100)를 기준으로 하였습니다.

4.3 실험 과정

각 쿼리에 대해 상위 100개 후보 문서를 재순위하기 위해, Vicuna와 GPT3.5의 컨텍스트 크기는 4096, GPT4의 컨텍스트 크기는 8192로 설정되었습니다. 슬라이딩 윈도우 접근 방식을 사용하여, 윈도우 크기 20과 스트라이드 10으로 설정하여 각 모델의 창 크기와 스트라이드 크기의 영향을 분리하였습니다.

4.4 실험 결과의 신뢰성

RankVicuna는 결정적인 결과를 제공하는 반면, GPT3.5와 GPT4는 온도가 0임에도 불구하고 비결정적 결과를 보였습니다. 이 두 모델에 대해서는 각각 여섯 번과 세 번의 실행 결과를 평균내어 보고하였으며, 99% 신뢰 구간을 제공하였습니다.

4.5 수학적 논리와 방법

재순위 작업의 수학적 논리는 주로 효과성 측정에 사용된 메트릭인 nDCG와 MAP에 근거하며, nDCG는 다음과 같은 공식을 사용하여 계산됩니다.

\[\text{nDCG@10} = Z \sum_{i=1}^{10} \frac{2^{\text{rel}_i} - 1}{\log_2(i+1)}\]

\(\text{rel}_i\)는 $i$번째 문서의 관련성 점수, \(Z\)는 정규화 상수이며, MAP은 다음 공식에 따라 계산됩니다.

\[\text{MAP@100} = \frac{1}{Q} \sum_{q=1}^{Q} \frac{1}{m_q} \sum_{k=1}^{m_q} \text{Precision}(k)\]

\(Q\)는 쿼리의 수, \(m_q\)는 q번째 쿼리에 대한 관련 문서의 수, \(\text{Precision}(k)\)는 k에서의 Precision


5. 결과

  1. 다양한 재순위 파이프라인의 성능 비교
  2. RankVicuna를 이용한 최적의 문서 재순위 구현
  3. 모델의 결함 답변 분석 및 평가


5.1 성능 비교

표 1은 DL19와 DL20 데이터를 사용하여 다양한 재순위 파이프라인을 비교합니다. 표의 첫 번째와 두 번째 행(1)과 (2)는 BM25와 Contriever(Izacard et al., 2021)를 사용한 두 가지 첫 단계 검색기를 기반으로 한 베이스 라인을 보고합니다. 나머지 행들(마지막을 제외하고)은 BM25로 검색된 상위 100개 후보 문서를 재순위하는 데 0-shot LLM 재순위자를 사용한 결과를 보고합니다.

PRP-Sliding-10의 두 가지 변형, FLAN-T5-XXL과 FLAN-UL2의 점수는 Qin et al. (2023)에서 직접 복사된 것이며 행 (6)과 (7)에 나타나 있습니다. 최종 행은 최상의 시스템을 나타내며, SOTA 신경 첫 단계 희소 검색 방법인 SPLADE++ EnsembleDistil(Formal et al., 2021)로 생성된 상위 100개 후보에 RankVicuna를 적용합니다.

예상대로, 모든 LLM 재순위자들은 베이스 라인(첫 단계) 방법보다 성능이 우수합니다. 7B 파라미터를 가진 RankVicuna의 효과는 175B 파라미터를 가진 RankGPT3.5와 동등합니다. 특히, RankVicuna는 DL20에서는 RankGPT3.5보다 더 높은 점수를, DL19에서는 약간 낮은 점수를 달성합니다. 또한 다른 0-shot 재순위 방법인 LRL을 사용하여 RankGPT3.5와 비교할 때, RankVicuna는 DL19와 DL20 모두에서 상당히 높은 효과를 확인합니다.


5.2 재순위 방법의 결함 답변 분석

표 2는 RankGPT 변형과 RankVicuna가 생성한 결함 있는 답변의 수를 보여주며, 다음과 같은 범주로 그룹화했습니다.

  1. 잘못된 형식: 요청된 형식을 따르지 않는 답변을 포함 (예를 들어, RankGPT4가 정렬된 목록을 생성하지 않을 때, 그 답변은 이 범주에 속함)
  2. 반복 및 누락: 문서 ID가 반복 및 누락된 답변을 포함
  3. 누락: 문서 ID가 누락된 답변을 포함


RankVicuna는 결정적이기 때문에, 단일 실행의 결과를 보고합니다. 이 요청에 대해 RankVicuna는 항상 정확한 형식의 답변을 리턴한 반면, RankGPT3.5와 RankGPT4의 경우, 각각 여섯 번과 세 번의 실행 결과를 평균냈습니다. 두 RankGPT 방법 모두 때때로 결함 있는 답변을 리턴하는 것을 확인하고, RankGPT3.5에서 발생하는 대부분의 결함 있는 답변은 순서 목록에서 문서가 누락되었을 때 발생하며, 결함이 있을 때 RankGPT4는 대부분 순위를 매기지 않습니다. 반복은 두 RankGPT 방법 모두에서 드물게 발생함을 확인합니다.


Previous: QA LoRA*** Next: Attention Sinks

post contain ""

    No matching posts found containing ""