관심 있는 NLP 논문을 읽어보고 간단히 정리했습니다.
혹시 부족하거나 잘못된 내용이 있다면 댓글 부탁드립니다 🙇♂️
[Mila, McGill University, Facebook CIFAR AI Chair]
- decoder-only LLM을 강력한 텍스트 encoder로 변환해주는 간단한 unsupervised approach, LLM2Vec
- 1) enabling bidirectional attention 2) masked next token prediction 3) unsupervised contrastive learning, 세 개의 요소로 구성
- publicly available 데이터만 이용하여 모델을 학습
- supervised contrastive learning과 결합한 경우 SoTA를 달성
출처 : https://arxiv.org/abs/2404.05961
1. Introduction
지금까지 대부분의 text embedding 모델은 BERT나 T5와 같이 사전학습된 bi-directional encoder 또는 encoder-decoder 모델이었습니다.
우리에게 알려진 대부분의 LLM은 이와 다른 decoder-only 모델이지만, 다음 토큰을 예측하는 방식(next token prediction)으로 사전학습된 LLM들은 맥락 전체와 어휘 간 관계를 잘 이해해야 하는 embedding에는 적합하지 않다는 평이 지배적이었습니다.
논문에서 decoder-only 모델들을 이런 분야에 활용하고자 했던 일부 연구들을 소개하고 있긴 하지만 상업적으로 활용되는 embedding 모델만 보더라도 이것들과는 거리가 멉니다.
이와 같은 decoder-only 모델들의 text embedding에 활용하기가 어렵다는 한계를 극복하기 위해, 본 논문은 LLM2Vec이라는 unsupervised approach를 제안하게 됩니다.
2. LLM2Vec
LLM2Vec의 세 구성 요소에 대해 먼저 간단히 설명합니다.
Enabling bidirectional attention (Bi)
첫 번째 그림에 해당합니다.
decoder-only 모델의 causal attention mask를 all-ones matrix로 대체합니다. (encoder-only 모델처럼)
하지만 decoder-only 모델들은 사전학습 동안 future token을 attend하는 방법에 대해 배운 적이 없기 때문에, 이와 같이 교체만 하게 되는 경우 모델의 성능이 심각히 저해되는 결과만 나타난다고 언급합니다.
Masked next token prediction (MNTP)
입력 토큰의 일부를 가리고(masking), 다음 토큰을 예측하도록 하는 학습 방식을 결합한 것입니다.
이때 loss는 mask 토큰이 씌워진 위치가 아니라, 그 직전(이를테면 $i-1$번 째)을 기준으로 계산하게 됩니다.
Unsupervised contrastive learning (SimCSE)
위 두 단계만으로는 decoder-only 모델이 sequence representation에 대해 이해하기엔 아직 부족합니다.
이를 보완하기 위해 SimCSE를 이용하는데, 독립적으로 샘플링된 dropout mask를 이용하여 입력 시퀀스를 모델에 두 번 통과시키게 됩니다.
이렇게 얻은 두 개의 벡터의 유사도를 최대화하고, 반대로 배치 내 다른 벡터들과의 유사도는 최소화하는 방식으로 학습하게 됩니다.
따라서 LLM2Vec은 'Bi + MNTP + SimCSE' 세 개의 구성 요소로 이루어진 방법론이라고 정리할 수 있습니다.
여기에 사용된 모델, 데이터 등에 관련된 정보는 다음과 같습니다.
- Models: Sheared-LLaMA-1.3B, Llama-2-7B-chat, Mistral-7B-Instruct-v0.2
- Training data: English Wikipedia로부터 얻은 데이터를 사용하여 MNTP와 unsupervised SimCSE를 수행 (Wikitext-103)
- Masked next token prediction: LoRA를 사용하여 fine-tuning, 80GB A100 GPU로 32 배치 1000 스텝 학습
- Unsupervised contrastive learning: MNTP LoRA의 가중치를 base model에 먼저 합친 뒤 SimCSE 학습을 시작
3. Unsupervised results on MTEB
실험에 관한 것은 논문에 자세히 나오고.. 이를 그대로 번역해 올리는 건 별로 좋아하지 않아서 기억하고 싶은 것 하나만 정리해두고자 합니다.
위 표는 MTEB 데이터셋에 대해 세 개의 모델, S-LLaMA-1.3B, LLaMA-2-7B, Mistral-7B에 LLM2Vec를 적용한 결과를 보여주고 있습니다.
또한 이 그림은 각 모델별로 레이어마다 각 토큰 포지션에 대한 코사인 유사도가 어떻게 되는지를 시각화한 결과입니다.
이를 통해 Mistral-7B 모델이 앞의 두 모델과 크게 다른 양상을 보이고 있다는 것을 알 수 있죠.
본 논문의 저자는 Mistral 모델이 bidirectional attention의 형태로 일부 사전학습되었을 것이라고 추측합니다.
현재 시점 이전의 토큰만 attend 하지 않고, 이후까지 모두 확인하여 학습하였기 때문에 각 layer별로 특정 위치에서는 특정한 패턴을 보이게 되어 여러 layer에 걸쳐 position별 특징을 획득하게 된 것이라고 해석하는 것 같습니다.
4. Related Work
- Supervised text encoders: BERT(like)
- Unsupervised text encoders: SimCSE
- Turning decoder-only LLMs into text encoders