[Github]
[arXiv](2024/02/15 version v1)
Abstract
Instruction tuning을 통해 LLM이 embedding과 generative task를 구별하여 처리할 수 있도록 훈련된 GRIT (Generative Representational Instruction Tuning) 소개
GRIT
Representational instruction tuning
In-batch negatives와 함께 contrastive objective를 사용하여 손실을 계산한다. (참고)
위 그림과 같이 bidirectional attention을 채택하고 최종 표현을 생성하기 위해 마지막 hidden state에 mean pooling을 적용한다.
fθ = GRIT, σ = pooling&cosine similarity, q = query, d = document.
Generative instruction tuning
일반적인 다음 토큰 예측 목표 사용.
주요 고려 사항은 손실을 샘플 수준으로 집계할지, 토큰 수준으로 집계할지 선택하는 것이다.
샘플 수준 집계는 일반적으로 사용되며 각 샘플에 동일한 가중치를 부여한다.
토큰 수준 집계는 각 토큰에 동일한 가중치를 부여하며, 많은 토큰이 포함된 샘플이 더 중요해지므로 긴 답변을 생성하는 경향이 있다.
둘을 혼합하여 사용할 수도 있다.
Total loss:
RAG with GRIT
임베딩&생성 단일 모델인 GRIT을 통해 Retrieval-Augmented Generation (RAG)를 단순화할 수 있으며 속도를 60% 이상 향상시킨다.
Experiments
Setup
Model: Mistral 7B와 Mixtral 8x7B를 fine-tuning.
Data: E5, Tulu 2
또한 부록에 설명된 메모리를 줄이기 위한 여러 가지 방법들 사용.
Main Results
Ablations