Instruction-based Finetuning Enables Universal Text Embeddings
link
Motivation 選んだ理由
LLMが性能向上していくと、RAG (Retrieval-Augmented Generation) でエンベディングがボトルネックとして残っていきそう
しかし Embedding の Finetuning をさせるのは結構大変なので、できればサボりたい
Summary どんなもの?
InstructORは、指示 (instruction) によってテキストエンベディングをつくる新しい手法
一つのモデルで追加の学習無しで、異なるタスクやドメインに合わせたテキスト埋め込みを生成することができる
330の多様なタスクの指示にアノテーションし、InstructORをコントラスティブロスで学習
分類や情報検索から意味的テキスト類似度やテキスト生成評価まで、70の埋め込み評価タスク(うち66は訓練データなし)でInstructORを評価
InstructOR は、SoTA モデルよりも一桁少ないパラメータを持ちながら、70の多様なデータセットにおいて、以前の最良結果と比較して平均3.4%の改善という、最先端の性能を達成している。
https://gyazo.com/ca7f69adf7e3d1cf27b04f4b1d53d6a0
対応しているタスクの一覧
https://gyazo.com/a5ca9328924efa37517681027a131a39
Contribution 先行研究と比べてどこがすごい?
エンベディング(テキスト埋め込み)は、汎用的なものを使うか、教師ありの Contrasutive Learning を行う方法が一般的
メルカトル図法は角度は正しいが距離が不正確、正距方位図法は中心点との距離が正確だが中心点から離れるほど歪みが大きくなる、というように何にでも使えるマッピング(=低次元へのエンベディング)は無い
汎用的なエンべディングは、意味的類似度を表すことが期待されている
近年の代表的なサービスでは検索クエリ用、検索ドキュメント用、意味的類似度、分類用、クラスタリング用と用途ごとに生成できる事が多い
学習したドメインと、適用するドメインが異なると性能が出ない
Yahoo知恵袋のデータでQ&A向けに学習したものが、社内のデータにも使えるとはかぎらない
SimCSE は検索タスクよりもテキスト類似性タスクにつよい、DPR Karpukhin et al.(2020)はその逆
多少専用のデータで訓練したものよりも精度が低くても、プロンプトで必要なエンベディングが作れれば嬉しい。
InstructOR(提案手法)は70の多様なデータセットにおいて、平均3.4%の差で、先行する最先端の埋め込みモデル(GTR-large)を大幅に上回る(当時)。
GTR (Generalizable T5-based dens Retrievers) は T5ベースのエンベディングモデル
ちなみに、エンベディング界ではエンコーダ・デコーダモデルのほうがデコーダのみのモデルよりも性能/サイズの比が良いことが知られている
現在(2023/12)のSoTAはオープンなモデルでは UAE-Large (BERTベース、Llama2_7B版もある)
MTEB (Massive Text Embedding Benchmark) の平均スコアは UAE-Large: 64.64, InstructOR: 61.79, ada-002: 60.99, gtr-t5-large 58.28
Method 技術や手法のキモはどこ?
GTR ベースのエンベディングモデル
https://gyazo.com/669e40afc14c0d9982808889304f78d1
実際にはT5 (エンコーダのみ) の出力そのままではなく、全結合層と正規化があるっぽい
GTRモデルはT5をベースに、Webコーパスで事前学習、情報検索データセットでFine-tuningされている
InstructOR の学習方法自体はかなり一般的なもの
(ラベル(+/-)、入力、 入力用指示、出力、出力用指示)で学習
検索などの非対称なタスクでは、入力はクエリで出力は文書
テキストの類似性のような対称的なタスクでは、入力と出力で指示は同じ
ロスは次の式で表される
$ {\cal L} = \frac{e^{s(x,y^+) / \gamma}}{\sum_{y \in {\cal B}} e^{s(x,y)/\gamma}}
$ s(x,y)は入力と出力の間の類似度
$ s(x,y) = {\rm cos}({\bold E}_i(I_x \oplus x), {\bold E}_i(I_y \oplus y))
B は $ (x,y^+) と $ \{(x, y_i^-)\}^k_{i=1}
x と yを入れ替えた場合についても同様に計算
一番大きな貢献はデータセット MEDI (Multitask Embeddings Data with Instructions) の構築
Super-NaturalInstructions (300タスク) と、エンベディング学習用に設計された既存データセット(30タスク)を組み合わせてMEDIを構築
Super-NaturalInstructions には自然言語による指示はあるものの正負のペアは提供されていない
Super-NI は指示・入力と出力についてP/N のラベルがついているデータセット
Sentence-T5 のエンベディングを用いて、類似した入力に対する出力が同じペアを正例、ラベルが異なるペアを負例とした。出力が文章の場合は類似度が高いものを正例、低いものを負例としている
エンベディング学習用のデータセットには指示が無いため、データセットごとに指示を手作業で作成
Experiments どうやって有効だと検証した?
MTEB ベンチマーク、in-context learning、テキスト生成の3種類の評価を行っている
Prompt (デモ検索)
テスト事例と類似する事例を検索して、GPT-Jのfew-shot で用いるデモに用いる
データセットはGLUEなど(タスクは MEDI に含まれていない)、分類、マルチラベル分類、text-to-SQLなど
Billboard (テキスト生成評価)
Billboardベンチマークは、InstructORをテキスト生成タスクを自動評価させ、評価する
MSCOCO画像キャプション
CNN/DailyMailニュース要約
WMT21中英翻訳
既存の出力例をリファレンスと比較して、類似度順にリランキング
人間の判断とのピアソン相関によってモデルを評価
結果
https://gyazo.com/be03510d37d77446601b548193135a3f
よく用いられるSimCSEやGTRとくらべて、平均的に高いスコアをだしている
特に、分類タスク、テキスト生成評価、デモ検索で改善幅が大きい
METB の代表的なタスクではモデルが小さい割には良い結果で、検索や文類似度など既存モデルがそれぞれ得意なところで、1モデルで勝負できている
特に定形外のタスクに強そう
Discussion 議論はある?
https://gyazo.com/3df01230bce4b299ca2d0015616b95e7
(左)学習するデータを対照タスク(テキスト類似度など)と非対称タスク(QAなど)に分けて、対照のみ、非対称のみ、両方(MEDI)で比較
対称・非対称データのみで学習した場合は、指示なしでもGTRと同等程度に学習できるが、両方をつかうと上手く学習できなくなる
指示を与えると、両方のデータを上手く学習で扱えるようになる
(右) super-NI を学習に加えるかどうかの差
super-NIを加えることで、命令の多様性に対応できるようになっている
逆に言えば命令がある程度パターン化されるなら、super-NIのようなデータは不要かhttps://gyazo.com/ed9abb3571501551e390ec58546792bd
(左)指示の複雑さに対して、性能が向上するさま
(右)モデルのサイズを変えた場合の比較、ややスケールアップの恩恵が大きい
https://gyazo.com/9198dbbf473fe4a80b2479124bb5eb9b
未知のドメインで比較(タスクは概ね同じ)
未知のドメインに対しても比較的頑健
https://gyazo.com/95251e114a9c39ed4d1fe6eb330eac59
指示有り・無しで生成されるエンベディングが変わる例
同じセンチメントの文が近づくように指示
コメント
今後、実用上必要になってく研究かも
一方で、超巨大エンベディングモデルができたらそれで全てエンベディング関連の問題が解決するので、研究的な賞味期限はそこまで