home
🏆

MTEB上位の方法論

Author
朴宇明 / CDO & Head of Research
Caregory
Paper Review
Tags
MTEB
Embedding
Benchmark
Published
2023/10/16
Category
5 more properties
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) トレーニング詳細情報
独自モデルRetroMAEでトレーニング
事前トレーニング
バッチサイズ : 720
オプティマイザー : AdamW
学習率 (Learning Rate, LR) =2e-5
微調整
バッチサイズ : 32784
オプティマイザー : AdamW
学習率 (Learning Rate, LR)LR=1e-5
温度設定 : temperature=0.01
特徴 : 微調整の過程では、「ハードネガティブ(hard negative)」学習方法も活用
比率 : ポジティブ(positive) 回答 1, ハードネガティブ 回答 1, ネガティブ(negatives) 回答 65566 個
(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ドメインでより優れた性能を発揮します。

その他の参考になる方法論