cleanUrl: "/e5-mistral"
floatFirstTOC: right
(이미지출처) Microsoft Designer - Stunning designs in a flash 를 사용하여 자동 생성 후 편집
Data Generation
모델
Backbone : Mistral-7b
LoRA with rank=16, DeepSpeed ZeRO-3
seq_length=512, batch_size=2048, LR=10^-4, linear decay, weight decay=0.1
Query에 task instruction 을 합친 형태를 입력으로 사용함
Query와 document 입력 맨 뒤에 [EOS] token을 삽입한 후 이 토큰에 대한 embedding을 각각의 embedding vector($\mathbf{e}_q, \mathbf{e}_d$)로 사용.
입력 query와 positive document가 유사한 embedding이 되도록 InfoNCE loss로 학습. 여기서 $\mathbb{N}$은 in-batch negative 및 hard negative 모두 포함한 집합
$$ \min \mathbb{L}=-\log\frac{\phi(q_{inst}^{+},d^+)}{\phi(q_{inst}^{+},d^+)+\sum_{n_i\in\mathbb{N}}\phi(q_{inst}^{+},n_i)}\\ \phi(q,d)=\exp(\frac{1}{\tau}\cos(\mathbf{e}_q,\mathbf{e}_d)) $$
생성 데이터 유형 및 언어 종류
실험 결과
전체 데이터를 모두 학습에 활용한 모델이 MTEB에서 66.6점으로 SOTA를 달성.
생성 데이터로만 학습한 경우에도 63.1점으로 괜찮은 성능을 얻음
영어 이외에도 프랑스어, 러시아어 등에서는 꽤 좋은 성능을 보이나 low-resource 언어에서는 비교적 낮음. Mistral-7B 자체가 영어 위주로 학습되어서 그런 것으로 예상
Pre-training 단계에서부터 contrastive learning을 적용했을 때의 효과가 별로 없었음. 모델이 크고 학습 데이터가 많아져서 그런 것으로 예상
Ablation study
사용한 Instruction 예시