본문 바로가기
Paper review

Gecko: Versatile Text Embeddings Distilledfrom Large Language Models 한글 리뷰

by AI미남홀란드 2024. 4. 2.
728x90
 

Gecko: Versatile Text Embeddings Distilled from Large Language Models

We present Gecko, a compact and versatile text embedding model. Gecko achieves strong retrieval performance by leveraging a key idea: distilling knowledge from large language models (LLMs) into a retriever. Our two-step distillation process begins with gen

arxiv.org

 

 

Abstract

 

Gecko는 큰 언어 모델(Large Language Models, LLMs)에서 지식을 추출해 내는 키 아이디어를 활용하여 강력한 검색 성능을 달성합니다. 두 단계의 추출 과정을 거치는데, 첫 번째로 LLM을 사용하여 다양한 합성 쌍 데이터를 생성합니다. 그다음, 각 쿼리에 대한 후보 문장들을 검색하여 데이터의 품질을 더욱 정제하고, 같은 LLM을 사용하여 긍정적인 문장과 어려운 부정적인 문장을 다시 레이블링 합니다.저자들의 접근 방식의 효과성은 Gecko의 간결함에 의해 입증됩니다. Massive Text Embedding Benchmark(MTEB)에서 256 임베딩 차원을 가진 Gecko는 768 임베딩 크기를 가진 모든 기존 항목들보다 우수한 성능을 보여줍니다. 768 임베딩 차원을 가진 Gecko는 평균 점수 66.31을 달성하여, 7배 더 큰 모델들과 5배 더 높은 차원의 임베딩과 경쟁합니다.

 

Introduction

텍스트 임베딩 모델은 자연어를 밀집 벡터로 표현하여 의미적으로 유사한 텍스트를 임베딩 공간 내에서 서로 가까이 배치합니다. 이러한 임베딩은 문서 검색, 문장 유사성, 분류, 군집화를 포함한 다양한 하류 작업에 일반적으로 사용됩니다. 각 하류 작업마다 별도의 임베딩 모델을 구축하는 대신, 최근에는 많은 작업을 지원하는 단일 임베딩 모델을 만들려는 노력이 있습니다.

일반용도의 텍스트 임베딩 모델 개발은 원하는 도메인과 기술을 포괄적으로 커버하기 위해 대량의 훈련 데이터가 필요하다는 도전을 제시합니다. 최근 임베딩 노력은 광범위한 훈련 예제 모음을 사용하는 데 집중하고 있습니다. 대규모 언어 모델(LLM)은 다양한 도메인에 걸쳐 방대한 지식을 포함하고 있으며, 탁월한 소수샷 학습자로 알려져 있어 강력한 대안을 제공합니다. 최근의 연구는 합성 데이터 생성을 위한 LLM의 효과를 보여주지만, 주로 기존 인간 레이블 데이터를 보강하거나 특정 도메인에서의 성능을 향상하는 데 초점을 맞추고 있습니다. 이는 우리에게 LLM을 직접 활용하여 텍스트 임베딩 모델을 개선할 수 있는 범위를 재고해 볼 기회를 제공합니다.

 

LLM RAG 를 구축하면서도 임베딩에 따라 성능이 갈릴 수 있겠단 생각을 여러 번 했었는데, 그럴 때마다 이걸 파인튜닝해야 하나? 이 생각을 했지만 말이 안 되는 거 같기도 한데.. 란 생각이 앞서해보진 못했다. 그러나 테크기업에서는 Downstream task에 맞게 파인튜닝을 하는 경우가 있다고 한다.

 

이 연구에서 우리는 LLM의 방대한 세계 지식으로 구동되는 매우 다재다능하면서도 효율적인 임베딩 모델인 Gecko를 소개합니다. 우리의 접근 방식은 지식 추출에서 얻은 통찰을 활용하여 두 단계 LLM 구동 임베딩 모델을 생성합니다. 대량의 (레이블 되지 않은) 문단으로 시작하여, 우리는 몇 개의 샷을 유도한 LLM을 사용하여 각 문단에 대한 관련 작업과 쿼리를 생성합니다. 그다음, 사전 훈련된 임베딩 모델을 사용하여 작업과 쿼리를 연결하여 임베딩하고, 최근접 이웃 문단을 얻은 후, LLM을 사용하여 문단을 재순 위하고, LLM 점수에 기반한 긍정적 및 부정적 문단을 얻습니다. 재순위 단계는 생성된 쿼리에 대한 최적의 응답 문단이 종종 원본 소스 문단과 다르다는 것을 발견함으로써 품질을 향상하는 데 핵심입니다. 우리는 LLM 기반 데이터셋인 FRet만을 사용하여도 상당한 개선을 이루어내고, MTEB에서 제로샷 임베딩 모델로서 강력한 기준을 설정함을 보여줍니다.

 

Gecko pipeline

  1. 쿼리 생성 재순 위: 대규모 언어 모델을 사용하여 대량의 (레이블 되지 않은) 문단에 대해 관련 작업과 쿼리를 생성합니다. 그다음, 사전 훈련된 임베딩 모델로 이 작업과 쿼리를 결합하여 임베딩하고, 가장 관련성이 높은 문단(최근접 이웃 문단)을 찾습니다. LLM은 이 문단들을 재순 위하여 가장 적합한 긍정적 및 부정적 문단을 식별합니다.
  2. 데이터셋 구축: 이렇게 생성된 긍정적 및 부정적 문단을 바탕으로 LLM에서 생성한 쿼리와 결합된 새로운 데이터셋(FRet)을 구축합니다. 이 데이터셋은 Gecko 모델의 훈련에 사용됩니다.
  3. 모델 훈련: FRet 데이터셋과 인간이 주석을 단 데이터를 결합하여 Gecko 모델을 훈련시킵니다. 이 과정에서, Gecko는 다양한 NLP 작업에 대한 지식을 학습하고, 이를 통해 텍스트를 의미론적으로 유사한 벡터로 변환하는 능력을 개선합니다.
  4. 성능 평가 최적화: 마지막으로, 훈련된 Gecko 모델은 MTEB(Massive Text Embedding Benchmark) 등의 벤치마크를 사용하여 평가되며, 이를 통해 모델의 성능을 측정하고 최적화합니다. Gecko 모델은 다양한 크기의 모델 및 임베딩 차원에서 우수한 성능을 보이며, 때로는 더 큰 모델이나 더 높은 차원의 임베딩을 사용하는 시스템보다도 뛰어난 결과를 보입니다.

Related Work

텍스트 임베딩 모델은 텍스트 입력을 균일한 크기의 벡터로 변환하여 의미론적 유사성, 정보 검색, 군집화, 분류 등의 하류 작업을 지원합니다. 최근 모델들은 다양한 NLP 작업에 적합한 일반적인 목적의 임베딩을 제공하려고 시도했습니다. 그러나 이러한 임베딩 모델들이 작업과 도메인 전반에 걸쳐 일반화하는 데 어려움을 겪음에 따라, 다양한 작업에 걸쳐 훈련된 통합 모델과 새로운 작업 및 도메인 일반화에 초점을 맞춘 벤치마크의 개발이 동기가 되었습니다. 이러한 선행 연구에 영감을 받아, 우리는 다양한 작업 유형을 포괄하는 크고 다양한 코퍼스에서 생성된 LLM 기반 FRet 데이터셋을 생성함으로써 다재다능한 임베딩 모델을 개발했습니다.

 

Contrastive Learning(대조학습)의 중요한 구성 요소 중 하나는 적절한 부정 예시를 찾는 것입니다. 이전 연구는 hard negative를 선별하거나, 신뢰도 점수를 기반으로 hard negative 의 노이즈를 제거하거나, 듀얼 인코더로 Cross-attention re-ranker 의 지식을 추출하는 방법을 탐구했습니다. 우리의 작업에서는 LLM을 사용하여 쿼리에 대한 더 나은 긍정 예시를 채굴하고 유용한 하드 negative 를 찾는 효과를 연구했습니다.

 

새로운 작업과 도메인에 텍스트 임베딩 모델을 적용할 때, 관련 쿼리와 레이블이 필요하지만 이들은 종종 없거나 수집하기에 비용이 많이 듭니다. 이 문제를 해결하기 위해, 몇몇 연구는 LLM을 이용한 몇 샷 프롬프트 쿼리 생성 접근 방식을 제안하여 도메인 특정 훈련 데이터셋을 생성했습니다. 이와 달리, 우리의 작업은 LLM의 더 일반적인 목적의 지식을 텍스트 임베딩 모델에 주입하여 다양한 작업에서 강력한 성능을 달성하는 다재다능한 텍스트 임베딩 모델을 만드는 것을 목표로 합니다.

 

또한, 다양한 Retrieval에 대한 다른 의도가 존재한다는 것이 밝혀졌습니다. 최근 작업은 다른 의도에 대해 검색 행동을 변경하는 Retrieval를 구현하는 것을 탐구했습니다. 우리의 작업에서도 합성 데이터의 다양성을 증가시키기 위해 작업-쿼리 쌍을 합성합니다. 하지만 우리는 웹 문단에서 실제 사용자 대면 콘텐츠에 기반한 FRet 데이터셋을 기반으로 합성 작업과 쿼리 쌍을 생성합니다. 또한 각 생성된 쿼리에 대해 어떤 웹 문단을 긍정적 혹은 부정적 대상으로 사용할 수 있는지 결정하기 위해 LLM을 사용합니다.

 

Training Recipe for Gecko

Gecko는 1.2B 매개변수를 가진 사전 훈련된 pre-trained transformer language model 기반으로 하며, 추가적으로 Pre-Tunning과 Fine-Tunning의 두 단계를 거치는 훈련 과정을 포함합니다. 먼저, 이전 연구에서 제안된 사전 파인튜닝 레시피를 확장합니다. Fine-Tunning, 주된 기여는 다양한 하류 작업에 대한 새로운 파인튜닝 데이터셋을 LLM의 두 단계 증류를 통해 생성하는 것입니다. 이 과정은 각 생성된 쿼리에 대한 긍정적 및 어려운 부정적 문단을 식별합니다(§3.2). 이 데이터셋은 FRet, 즉 Few-shot Prompted Retrieval 데이터셋으로 명명됩니다. 파인튜닝 혼합물에는 FRet가 학술 데이터셋의 다양한 집합과 함께 결합됩니다. 이 데이터셋은 각각 작업 설명, 입력 쿼리, 긍정적 문단, 부정적 문단으로 형식화됩니다.

 

3.1. Pre-finetuning

Pre-finetuning 절차는 큰 텍스트 코퍼스 위에서 자가 감독 학습 과제에 의존합니다. 우리는 두 가지 사전 파인튜닝 데이터셋을 사용합니다. 첫 번째로 Ni et al. 에 의해 제공된 대규모 커뮤니티 QA 데이터셋을 사용하는데, 이는 온라인 포럼과 QA 웹사이트에서 가져온 질문-답변 쌍과 같은 텍스트 쌍을 포함합니다. 다음으로, 웹에서 제목-본문 텍스트 쌍을 크롤링하여 자연스럽게 발생하는 쌍으로 구성된 코퍼스를 사용합니다. 이러한 텍스트 쌍은 거의 모든 웹사이트에서 찾을 수 있습니다. Wang et al 은 이러한 자연 발생 텍스트 쌍이 임베딩 모델의 사전 파인튜닝에 유용하다는 것을 보여주었습니다. 이러한 접근 방식은 모델이 다양한 텍스트 형식과 구조에 노출되게 함으로써, 실제 세계의 다양한 텍스트 데이터를 더 잘 이해하고 처리할 수 있도록 합니다.

 

Training Mixture

 

Pre-finetuning 단계의 훈련 목적은 대량의 비감독 텍스트 쌍에 모델을 노출시켜, 문서 검색 및 의미론적 유사성을 포함한 다양한 하류 작업에 대해 소규모 듀얼 인코더의 성능을 향상하는 것으로 나타났습니다. 이 단계의 목표는 모델을 대량의 텍스트 다양성에 노출시켜, 우리가 훈련하려는 간결한 텍스트 임베딩 모델에 필요한 것으로 보이는 것을 제공하는 것입니다.

 

Training objective

 

수식1

쿼리 벡터 qi 생성:

  • t: 데이터셋의 특정 작업 기능입니다. 이는 모델이 최적화해야 할 작업 유형을 알려줍니다.
  • qi: 쿼리 텍스트입니다.
  • M(t⊕qi): 작업 기능 t와 쿼리 qi가 연결된 후, 사전 훈련된 언어 모델 M을 통과하여 얻은 컨텍스트화된 토큰 임베딩입니다.
  • mean_pool: 임베딩된 토큰 시퀀스의 평균을 취하여 단일 벡터 표현을 얻는 연산입니다. 이는 모델이 출력한 모든 토큰 임베딩의 평균을 취해 d차원의 하나의 벡터로 압축하는 것을 의미합니다.

긍정적 예시 벡터 pi 생성:

  • pi: 쿼리에 대한 긍정적인 예시(답변) 텍스트입니다.
  • M(pi): 긍정적인 예시 pi를 언어 모델 M에 통과시켜 얻은 임베딩입니다.
  • mean_pool: 마찬가지로, 임베딩된 토큰 시퀀스의 평균을 취하여 단일 벡터 표현을 얻는 연산입니다.


이 두 벡터 qi와 pi는 pre-finetuning 과정에서 유사성 학습에 사용된다. pre-finetuning의 목표는 언어 모델이 다양한 종류의 텍스트 쌍에 노출되도록 하여, Downstream NLP 작업 문서계산이나, 유사성계산에서 더 나은 성능을 내도록 하는 것이다.

수식2

 

위 수식은 Pre-finetuning의 평균 대조 손실 로스입니다.

  • B는 배치크기가 되고 각 훈련반복에서 처리되는 텍스트 쌍의 수다. 
  • qi는 쿼리임베딩, pi는 긍정벡터의 예시의 임베딩 들이다. 
  • 는 쿼리 임베딩과 긍정적인 예시 임베딩 사이의 유사성 점수로, 일반적으로 코사인 유사성을 사용합니다.
  • 는 온도 매개변수로, 유사성 점수의 스케일을 조정합니다.
  • 분모의 식은 현재쿼리 qi 와 배치내의 모든 긍정적 예시 pj 사이의 유사성을 점수로 합산 한것, 이를 통해 긍정적예시와 상대적 유사성을 계산합니다.

이 손실 함수는 모델이 쿼리벡터에 대한 올바른 긍정예시벡터를 다른 가능한 모든 긍정적 예시들보다 더 높은 유사성을 가지도록 장려함으로써, 효과적인 텍스트 임베딩을 학습하도록 도와줌 -log 부분은 모델이 긍정적인 예시를 잘 선택할 수록 손실을 감소시키는 로그 확률의 부정의 값을 나타낸다. 그래디언트 업데이트를 유도하는 기준점이다.

 

3.2. FRet: Two-Step LLM Distillation

대규모 언어 모델(LLM)을 활용하여 합성 데이터를 생성하고, 이를 통해 멀티태스크 텍스트 임베딩 모델을 훈련하는 두 단계 증류 방식을 소개합니다. 전통적인 데이터 세트 생성의 문제점인 시간, 비용, 편향, 다양성의 부족을 해결하기 위한 새로운 접근 방식을 제안합니다.(수식2 참고)

 

 

LLM-based Diverse Query Generation

 

Gecko는 LLM(대형 언어 모델)을 활용하여 고품질 합성 훈련 데이터를 생성하는 2단계 증류 프로세스를 사용합니다.

첫 번째 단계 :
몇 번의 프롬프트 설정에서 LLM을 사용하여 다양한 쿼리 및 작업 설명을 생성하는 데 중점을 둡니다. LLM은 샘플링된 대규모 웹 구절을 읽고 작업 설명과 해당 작업에 대한 관련 쿼리를 모두 생성합니다. 이 프로세스를 통해 다양한 도메인과 언어 패턴에 걸쳐 다양한 쿼리-작업 쌍이 생성됩니다.

두 번째 단계 :

사전 훈련된 임베딩 모델을 사용하여 생성된 각 쿼리에 대해 코퍼스에서 상위 k개의 가장 가까운 이웃 구절을 검색합니다. 이렇게 검색된 구절은 동일한 LLM에 의해 채점됩니다. 점수는 긍정적인 예와 부정적인 예를 선택하는 데 사용됩니다. 이러한 재라벨링 프로세스를 통해 Gecko는 원래의 시드 구절을 사용하는 것보다 더 관련성이 높은 긍정적인 대상과 더 어려운 부정적인 예로부터 학습할 수 있습니다.

이러한 방식으로 저자는 FRet(Few-shot Retrieval) 데이터 세트를 얻습니다. 프로세스는 아래와 같습니다.

 

 

Result

MTEB(Massive Text Embedding Benchmark)에서 Gecko는 임베딩 크기 256에서도 좋은 결과를 얻었습니다. 임베딩 차원이 768인 Gecko는 평균 점수 66.31을 달성하여 7배 더 크고 5배 더 높은 차원 임베딩을 가진 모델과 경쟁합니다.

MTEB 결과

 

훈련에 사용된 데이터를 다양하게 변경하여 얻은 결과도 매우 흥미롭습니다. FRet만으로 훈련한 Gecko는 강력한 성능을 보여 합성 데이터의 중요성을 더욱 강조합니다.

 

Conclusion

이 논문에서는 대규모 언어 모델에서 증류된 다재다능한 텍스트 임베딩 모델인 Gecko를 소개했습니다. Gecko는 LLM이 순위를 매긴 긍정적 및 부정적 사례를 포함하는 LLM 생성 합성 데이터 세트 FRet에 대해 훈련됩니다. 우리는 LLM을 사용하여 합성 쿼리에 대한 더 나은 긍정적 및 부정적 대상을 식별할 수 있음을 보여줍니다. 또한, 이렇게 합성적으로 생성된 데이터를 통합된 형식으로 결합하는 방법이 여러 다른 작업에서 동시에 큰 성능을 달성할 수 있게 해준다는 것을 보여줍니다. 우리의 제거 연구는 Gecko의 강력한 제로샷 일반화 능력을 시연하면서 LLM 기반의 재라벨링과 데이터 세트의 다양성의 중요성을 밝혀냅니다.

 

총평 : 백문이 불여일견 써보자 일단..? 과정이 꽤나 있기 때문에 속도가 얼마나 걸릴지도 감이 안온다 사실. 근데 성능만 좋다면 안쓸이유가 있을까? LLM 을 통한 데이터 생성과 재 라벨링, 다양한 작업에 대한 zeroshot 성능 일반화 능력 등 Gecko 는 충분히 매력적인 모델이다.

728x90