MTEB(Massive Text Embedding Benchmark)
MTEB이란:
•
다양한 임베딩 작업에서 텍스트 임베딩 모델의 성능을 측정하기 위한 만든 대규모 벤치마크
•
2023년 10월 10일 기준 데이터 세트, 언어, 점수, 모델의 개수
•
Total Datasets: 129
•
Total Languages: 113
•
Total Scores: 14667
•
Total Models: 126
참고 링크 :
MTEB 상위권 방법론들
1. FlagEmbedding
•
BAAI General Embedding
•
https://github.com/FlagOpen/FlagEmbedding
(1) 데이터 세트와 훈련 과정
•
사전 훈련 데이터 세트: Pile, Wikipedia, MS MARCO 등
•
미세조정 데이터 세트: Wikipedia, CC-NET 등
•
데이터 세트 구성 : 질문, 긍정 답변, 부정 답변
(2) 훈련 상세 정보
•
•
사전 훈련
◦
배치 크기 : 720
◦
옵티마이저 : AdamW.
◦
학습률 (Learning Rate, LR) =2e-5
•
미세 조정
◦
배치 크기 : 32784
◦
옵티마이저 : AdamW,
◦
학습률 (Learning Rate, LR)LR=1e-5
◦
온도 설정 : temperature=0.01
◦
◦
(3) 특징
•
검색 작업(retrieval task)에 특별한 지시(instruction)인 "Represent this sentence for searching relevant passages:")을 추가하여 퀴리 인코딩을 진행했으며 문장을 상대적으로 길게 만들어, 짧은 쿼리와 긴 문서 간의 길이 차이를 완화하고자 하는 목적으로 사용
•
GTE에서는 미세 조정(fine-tuning)을 할 때 강한 부정(hard negative)의 문장이 존재하므로 오히려 배치(batch)가 그리 크지 않아도 된다고 주장
•
부정 답변은 관련성 없음에 가까운 답변을 의미
2. GTE
•
데이터 세트
◦
사전 학습 : 7억8천8백만 응답쌍
▪
E5의 CCPairs 데이터를 만드는 방법과 거의 비슷하게 응답쌍을 생성
▪
필터링(Filtering) 방법론은 밝히지 않음
◦
Finetuning : 3 백만 응답쌍
▪
MS MARCO, NQ, TriviaQA, HotpotQA, Web Questions, SNLI, MNLI, FEVER, Quora, MEDI, BERRI 등 다양한 데이터 세트 사용
•
학습
◦
Transformer Encoder
◦
MiniLM, bert-base, bert-large를 백본으로 사용
◦
Vanilla dual-encoder 구조이며 output layer를 mean pooling 해서 사용
◦
사전 학습
▪
“Improved” InfoNCE loss
▪
일반적으로 query <-> document 로 계산하나 query 끼리, document 끼리의 비교도 추가하여 loss 를 계산
▪
contrastive training using only in-batch negative. hard negative가 없기 때문에 배치 크기를 매우 크게 했음 (16384). 대신 max length를 128로 함
◦
미세 조정(Finetuning)
▪
하드 네거티브(hard negative) 응답이 있기 때문에(없는 데이터는 랜덤 네거티브(random negative)) 배치 크기가 아주 크지 않아도 됨. 128을 사용.
▪
최대 길이(max length)는 512 사용
•
관찰
◦
백본에 미세 조정만 하는 것은 데이터 규모의 한계 등으로 오히려 성능이 더 안 좋을 수 있음
•
학습 데이터 개수, 배치 크기, 모델의 파라미터 개수에 따른 성능 비교
: 대조 사전 훈련 및 미세 조정 중 다양한 요인에 대한 스케일링 분석.
모델 성능은 MTEB의 평균 성능으로 측정
•
특징
◦
E5와 거의 비슷한 접근법으로 동일한 모델 구조, 동일한 백본 모델과 유사한 학습 방법론 사용
◦
사전 학습을 위한 데이터 세트 생성 방법에는 약간의 차이가 있음
◦
미세 조정에 사용한 데이터가 더 많고 teacher model을 사용하지 않음
3. E5
•
EmbEddings from bidirEctional Encoder rEpresentations
•
MS
•
사전학습
•
CCPairs라는 데이터셋을 직접 구축
•
Reddit, Common Crawl, Stack Exchange, Wikipedia, Scientific papers, News 등에서 수집
•
(query, passage), (post, comment), (question, upvoted answer), (entity name+section title, passage), (title, abstract), (title, passage) 등의 형태로 pair를 생성
•
Reddit과 Common Crawl에는 heuristic에 기반한 필터링 적용. 1.3 억 쌍
•
Consistency-based filter 적용 : 1차로 수집한 데이터로 모델을 학습한 후 다시 학습 데이터를 넣어서 쿼리 기준 top-k passage를 고르는 방법. k=2 이내 실제 매핑된 passage가 있는 데이터만 사용. (얼마나 학습하고 돌리는지가 관건). 270 억 쌍
◦
뉴럴넷은 보통 깨끗한 데이터에 대해서 먼저 피팅되고 잡음이 있는 데이터에 나중에 오비피팅 되는 경향이 존재
•
미세조정
◦
MS MARCO, NQ, NLI 데이터
◦
NLI는 contradiction을 hard negative로 간주
◦
msmarco와 nq는 teacher 모델 (cross-encoder) 에서 추출. Teacher 모델로 SimLM 사용
•
훈련
◦
Transformer Encoder
◦
MiniLM, bert-base, bert-large를 백본으로 사용
◦
Bi-encoder 구조이며 output layer를 average pooling 해서 사용
◦
사전 학습
▪
InfoNCE
▪
in-batch negative 사용. 명시적인 hard negative는 없음
▪
query / passage encoder는 parameter sharing. 대신 prefix(query: , passage: )를 붙임
◦
미세 조정
▪
InfoNCE loss에 teacher 모델과의 distillation loss를 추가하여 사용
•
논의사항
◦
InstructOR보다 조금 좋아짐. 당시 SOTA
◦
학습 데이터를 모으는 방법, filtering 방법, negative data mapping 방법, 학습 테크닉, objective function, 등등 요소 등을 참고할 수 있음
4. InstructOR
•
The University of Hong Kong, U of Washington, Meta, AllenAI
•
데이터 세트
◦
미세 조정만으로 모델링
◦
저자들이 MEDI 데이터 세트를 직접 구축
▪
총 330 가지의 데이터 세트
▪
Super-NaturalInstructions 300 가지
▪
Embedding data 30가지 :Sentence Transformers(https://huggingface.co/datasets/sentence-transformers/embedding-training-data), KILT, MedMCQA
◦
기존 임베딩 모델(Sentence-T5)를 활용해서 positive / negative 매핑을 수행
◦
다양한 task에 하나의 모델로 동작할 수 있도록 튜닝 시 지시문(instruction)을 추가
▪
예시-retrieval) Represent the Wikipedia question for re- trieving supporting documents:(query), Represent the Wikipedia document for retrieval:(document)
•
학습
◦
단일 인코더
◦
GTR 모델을 백본으로 사용 : T5 모델로 초기화한 후 웹 코퍼스를 사전 학습에 사용, 정보 검색 데이터 세트로 미세 조정
◦
마지막 은닉층의 표현을 mean pooling으로 하여 임베딩 벡터를 얻음
◦
미세 조정 단계만 존재한다는 특징이 있음
◦
InfoNCE
•
관찰
◦
지시문(instruction)을 넣으면 성능이 더 향상되는 경향을 보임
◦
super-NI 데이터로 학습한 경우가 최고와 최악 대비 성능 갭이 훨씬 적음. 즉, 지시문에 따른 성능이 강건해짐
◦
instruction을 세밀하게 넣을 수록 성능이 향상됨(!)
•
모델 크기에 따라 성능이 향상됨 (scaling laws)
•
unseen 도메인에서 더 뛰어난 성능을 보임
논의사항
•
GTR 이 T5 사전 학습 + 검색 데이터로 contrastive loss 활용한 미세 조정한 형태
•
여기에 목적에 맞게 추가 데이터를 수집하여 튜닝 및 프롬프트로 성능을 향상한 모델
기타 참고할만한 방법론들
•
Sentence-T5