MTEB(Massive Text Embedding Benchmark)
MTEBとは
•
様々な埋め込み作業でテキスト埋め込みモデルの性能を測定するために作成した大規模なベンチマークです。
•
2023年10月10日現在のデータセット、言語、スコア、モデルの数
•
総データセット数: 129
•
総言語数113
•
総得点14667
•
総モデル数:126
参考リンク :
https://github.com/FlagOpen/FlagEmbedding/tree/master/C_MTEB(中国語に特化したモデル)
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を活用した微調整した形
◦
これに目的に合わせて追加データを収集し、チューニングとプロンプトで性能を向上させたモデル
•
unseenドメインでより優れた性能を発揮します。
その他の参考になる方法論
•
Sentence-T5