【DL輪読会】Improving Text Embeddings with Large Language Models

843 Views

October 24, 24

スライド概要

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP [DL Papers] Improving Text Embeddings with Large Language Models Tasuku Onizawa ( Matsuo Lab. B4) http://deeplearning.jp/ 1

2.

書誌情報 • タイトル – Improving Text Embeddings with Large Language Models • 著者 – Liang Wang, Nan Yang, Xiaolong Huang, Linjun Yang, Rangan Majumder, Furu Wei Microsoft Corporation • 発表日 – 31 May 2024 2

3.

実装/利用 • Github – https://github.com/kamalkraj/e5-mistral-7b-instruct • huggingface – https://huggingface.co/intfloat/e5-mistral-7b-instruct • 使う際の注意点 – クエリには1文のタスク指示を付加する • 学習時にタスク指示を入れて学習しているため • (ドキュメントには不要) – 最大シーケンス長 • 最大で4096トークン – マルチリンガル対応には限界がある • multilingual-e5-largeを使った方がいい – LoRAのみの重みも利用可能 3

4.

選定理由 • 企業においてLLMの性能が上がる中でLLMでの差別化はコストが大き い →RAGの構築の重要性が高まってる →独自のembedding modelは企業においても一つの差別化になり得る • 本論文 – 合成データのみでの高品質な埋め込み:手動収集のラベル付きデータなしで、 高精度なテキスト埋め込みを作成可能。 – シンプルなトレーニングプロセス:複雑なトレーニングパイプラインが不要で、 効率的に埋め込みモデルを構築できる。 – 少ないトレーニングステップ:1,000ステップ以下でのトレーニングが可能で、 短期間で高性能を実現。 4

5.

text embeddingの進化① 1. 初期のアプローチ(〜2019) • 事前学習済み単語埋め込みの重み付き平均を使用 • 代表例:GloVe (Pennington et al., 2014) • https://aclanthology.org/D14-1162.pdf • 代表例:SIF (Arora et al., 2017) • https://openreview.net/pdf?id=SyK00v5xx • (参考)https://qiita.com/nishiba/items/f696d4853cd4f2cb1d79 • 特徴:意味的類似性の測定において強力なベースライン 5

6.

text embeddingの進化② 1. BERT時代の初期(2019〜) • 事前学習済み言語モデル(BERT)の登場が転換点 • Sentence-BERT (Reimers and Gurevych, 2019) • https://arxiv.org/abs/1908.10084 • (参考)https://data-analytics.fun/2020/08/04/understanding-sentencebert/ • Siamese Network • 明示的なペアデータ(正例・負例)を使う • 同じネットワーク(双子のネットワーク)を使い、2つの入力を個別に処理して類似度を学 習する • SimCSE (Gao et al., 2021) • https://arxiv.org/abs/2104.08821 • Dropoutの位置を変えることでdata augmentationとする • 自己教師有り学習ができる 6

7.

text embeddingの進化③ 1. 最新の手法(2022〜) • 多段階学習パラダイムの採用 • 代表的な手法: • E5 (Wang et al., 2022b) • https://arxiv.org/abs/2212.03533 • (DL hucks資料) https://docs.google.com/presentation/d/1G_jB4ku0GgmyeFHXiCjyfC2ISAfGZFhmbvld0ckAP4/edit?usp=sharing • BGE (Xiao et al., 2023) • https://arxiv.org/abs/2402.03216 • (参考)https://tech.algomatic.jp/entry/papers/retrieval/chen-24-bgem3 • sparse retrieval, dense retrieval, multi-vector retrievalの三つの機能を持つ、これでハイブリッ ト検索すると性能があがる • 特徴: • 大規模な弱教師付きテキストペアでの事前学習 • 高品質なラベル付きデータセットでの微調整 • 基本的に対照学習、知識蒸留などのテクニックも 7

8.

既存手法の限界 1. 複雑な多段階トレーニングパイプライン 1. 数十億の弱教師付きテキストペアでの事前学習 2. 少数の高品質ラベル付きデータでの微調整 2. データセットの制限 1. タスクの多様性の制限 2. 言語カバレッジの不足 3. モデルアーキテクチャの制約 1. 主にBERTベースのエンコーダに依存 2. 最新のLLMの進展を活用できていない 8

9.

提案手法の概要 • 新しいテキスト埋め込み手法の提案 – 合成データの活用 • プロンプト戦略によって、質の高い合成データを作成 • 合成データの活用により、ラベル付きのデータを手動で集める必要がない – LLMモデルの利用 • LLMモデル自体が大規模な学習をしているため、追加の事前学習が不要に • 強力なベンチマーク結果 – MTEBベンチマークで最も高い平均スコア 9

10.

合成データの利用 1. なぜ合成データを使うのか? • ラベル付きデータの収集にかかるコストや時間を削減できる • 多様なタスクに対応するデータを生成する: • たとえば、検索(retrieval)、テキストの類似度判定(textual similarity)、クラスタリング (clustering)などのタスクに必要なデータを網羅的に生成する。 これによって、異なるタスクやシナリオでの強力で汎用的なテキスト埋め込みを 作成することが可能になる。 2. 合成データに関する関連研究 – Doc2query(Nogueira et al., 2019)、InPars(Bonifacio et al., 2022)、Promptagator(Dai et al., 2022)では、ラベルなしのドキュメントに対して合成クエリを生成し、ドキュメント拡張やモデルのト レーニングに活用 – GPL(Wang et al., 2022)は、クロスエンコーダを使ってクエリとドキュメントペアに対する疑似ラベ ルを生成。 – •Query2doc(Wang et al., 2023)では、LLMを使って少数ショットのプロンプトでクエリ拡張用の疑似 ドキュメントを生成。 – DINO(Schick and Schütze, 2021)やUnnatural Instructions(Honovich et al., 2022)など、LLMから 生成された合成データを使ってモデルを知識蒸留 – Orca(Mukherjee et al., 2023)やPhi(Gunasekar et al., 2023)は、GPT-3.5やGPT-4からの高品質な 合成データを活用して、より優れた小規模な言語モデルのトレーニングを提案 10

11.

合成データの利用 合成データ生成のステップ① • タスクの分類: – 生成するタスクをいくつかのカテゴ リに分け、それぞれに異なるプロン プトテンプレートを適用 – 非対称タスク(Asymmetric Tasks): クエリとドキュメントが意 味的に関連しているが、パラフレー ズではないタスク。これをさらにク エリとドキュメントの長さに基づい て4つのサブグループに分ける。 – 対称タスク(Symmetric Tasks): クエリとドキュメントが意味的に類 似しているが、表現が異なるタスク <非対称タスク> • 短い-長い(short-long match) • 用途:商用検索エンジン • 例:短いキーワード → 長い製品説明 • 長い-短い(long-short match) • 用途:要約検索 • 例:長い文書 → 短いタイトル • 短い-短い(short-short match) • 用途:キーワードマッチング • 例:商品タグ → カテゴリ • 長い-長い(long-long match) • 用途:文書類似性 • 例:論文 → 関連論文 <対称タスク> • 単一言語での意味的テキスト類似性(STS) • 同じ言語で異なる表現の類似度を測るタスク。 • 二言語テキスト検索(bitext retrieval) • 2つの異なる言語間で、同じ意味を持つ文を検索 するタスク。 11

12.

合成データの利用 合成データ生成のステップ② – プロンプトテンプレートの活用: • 非対称タスクの場合 各タスクに対して、2段階のプロンプト戦略を使 用(1段階だと多様性が低かった) – タスクのアイデアを考えさせるプロンプト: » まず、LLMに「どんなタスクがある か?」をブレインストーミングさせ、候 補を出させる。 – 具体的なデータを生成するプロンプト: » 次に、特定のタスクに基づいた具体的な クエリとドキュメントのペア(例:検索 クエリとそれに対応する文書)を生成 • 対称タスクの場合 – ブレインストーミングステップを省略し、シ ンプルなプロンプトテンプレートを適用 12

13.

合成データの利用(prompt) short-long matching subgroup. long-short matching subgroup タスクごとにpromptを変える 13

14.

合成データの利用(generated data) 非対称タスク 対称タスク 14

15.

合成データの利用 合成データ生成のステップ③ – 多様性を出す工夫: • 各プロンプトテンプレートにはプレースホルダーを使用し、ランダムに値を設定 – クエリの長さを「5単語未満」「5-10単語」「10単語以上」など、ランダムに選ぶように。 – 多言語対応: • 多言語データを生成する際は、XLM-Rという多言語モデルに基づいた言語リストから 言語をランダムに選ぶ。 • 高リソース言語(英語や中国語など、データ量が多い言語)には優先的にウェイトを 置いた。 – 生成データの精度管理 • 事前に定義されたJSONフォーマットに従うように生成され、フォーマットに合わない データは削除 • 正確性を確保するため、重複データも削除 15

16.

合成データの統計 • 生成データの数: – • 生成された合成データに含まれるタスクの種類と、 カバーされている言語(93言語)の統計 トークンの消費: – • 合計で50万件のデータ例が生成さ れ、15万種類のユニークな指示を 使用。データの25%はGPT-35Turbo、残りはGPT-4を使って生成 データ生成において消費された トークンの合計は約1億8000万トー クン データ品質: – GPT-35-Turboで生成された一部の データはプロンプトテンプレート に完全に従っていなかった 16

17.

ファインチューニングの流れ • クエリに対してタスク指示を追加 – – – • トレーニングデータ – • 生成した合成データと13種類の公開データセットを使用し、合計約180万例のサ ンプルを使用 事前学習済みのLLM(mistral-7b-instruct)を使用 – – – • 元のクエリ に対して、事前に定義されたタスク指示を付加 既存のデータセット使う場合には、手動でタスク指示を追加 ドキュメントはそのまま保持 クエリとドキュメントの末尾に[EOS]トークンを追加。 その後、LLMに入力して、クエリとドキュメントの埋め込みを生成。 埋め込みは、LLMの最終レイヤーの[EOS]ベクトルを使用して取得。 ?最終レイヤーのEOSが本当に一番いいの?? InfoNCE損失関数を使用 – インバッチネガティブ(バッチ内の他のサンプル)やハードネガティブを利用 17

18.

ファインチューニング概要 • モデルのファインチューニング – – – – Mistral-7B 1エポックだけファインチューニング RankLLaMA(Ma et al., 2023)のトレーニングレシピを使用 LoRA(Low-Rank Adaptation)使用 • ランク16を使用 • メモリ使用量の最適化 – radient checkpointing: 計算グラフを一部再計算することで、メモリ使用量を抑える – Mixed precision training: 半精度のデータ型(fp16)を使用し、メモリ消費と計算を高速化 – DeepSpeed ZeRO-3: 大規模モデルの効率的なトレーニングをサポートする技術で、GPUメモリの 使用量をさらに削減 18

19.

実験 • モデルのパフォーマンス MTEB – MTEBベンチマーク(Muennighoff et al., 2023)で評価 • • • • 最も高い平均スコア タスク指示を追加していることに注意 合成データのみでもそこそこのスコア 約3日間、8つのV100 GPUを使用 – 多言語対応評価 • • 高リソース言語では良いスコア 低リソース言語ではmE5-baseに劣る 多言語対応 – 商用モデルとの比較 19

20.

実験 • 事前学習の必要性 – E5 mistral-7bは事前学習の必要 性なし – XLM-R largeは事前学習でスコア 改善 • ハイパーパラメータ – Mistral-7Bの初期化は、 LLaMA-2 7Bと比較して優位性 がある – インストラクションは必要 – プーリングタイプやLoRAランク の違いは全体のパフォーマンスに 大きな影響を与えない – この違いはどこに起因しているの か? • • Decoder-onlyだからなのか? 単純に元モデルの精度なのか 20

21.

まとめ • 合成データの活用 – – • 最新のLLMを使って埋め込みモデルの作成 – • 質の良い合成データを作成することで、競争力のあるモデルを作れる 合成データによって様々なタスクに対応できるデータを効率的に準備できる 事前学習の必要なく、高品質なモデルを作れる 制約 – BERTスタイルのエンコーダーと比較して、Mistral-7BなどのLLMをテキスト埋 め込みに使用することは、推論コストを大幅に増加させる • – 埋め込み次元の削減等が求められる 質の良い合成データの作成には、手動のプロンプトエンジニアリングに依存して いる • 自動プロンプト最適化が求められる 21