プロンプトエンジニアリング

大規模言語モデルを用いたテキスト埋め込みの改善

mm
Unite.AI を Google の優先ソースに追加

テキスト埋め込みは、単語、文章、段落、または文書の意味を捉えたベクトル表現であり、多くの自然言語処理(NLP)アプリケーションで重要な役割を果たしています。これには、情報検索、質問回答、意味検索などが含まれます。

ベクトル埋め込み

ベクトル埋め込み

最近の大規模言語モデル(LLM)における進歩、例えばGPT-3は、少-shot学習と自然言語生成において印象的な能力を示しています。LLMを利用してテキスト埋め込みを改善することができますか?Microsoftの研究者は、論文「大規模言語モデルを用いたテキスト埋め込みの改善」において、LLMを用いた新しい方法を提案しています。この方法では、LLMを用いて合成訓練データを生成し、そこでモデルをファインチューニングします。

既存手法の課題

従来のテキスト埋め込み手法、例えば単語ベクトルの加重平均またはTF-IDFは、テキストの豊富なコンテキスト情報を十分に捉えることができません。より最近の手法、例えばBERTを用いたものは、コンテキストを考慮した埋め込みを得ることができますが、

しかし、これらの手法では複雑なマルチステージの訓練パイプラインが必要です。

  • 数十億の弱いラベル付けまたは人工的なテキストペアで事前訓練
  • 限定された手作りのデータセットでファインチューニング

これには大量の計算リソースとデータ収集のための人間の労力が必要です。訓練データは多様性と言語のカバレッジが制限されています。例えば、BEIRベンチマークには英語でのみ15のリトリーバルタスクのデータセットが含まれています。

既存の手法は主に小規模なBERTスタイルのアーキテクチャをバックボーンモデルとして使用しており、より高度なLLMや関連技術を活用することができません。

提案手法:合成データ生成による大規模言語モデル

これらの限界を克服するために、研究者は大規模言語モデル(LLM)を用いた新しい手法を提案しています。LLMを用いて多様な合成訓練データを生成し、そこでモデルをファインチューニングします。

主要なステップは以下の通りです。

  1. タスク分類: テキスト埋め込みタスクを分類するタクソノミーを定義します。
    • 非対称タスク(クエリとドキュメントが同義ではない、例えば検索)
    • 対称タスク(クエリとドキュメントが同義、例えば意味的類似性)
  2. プロンプト設計: 各タスクタイプに合わせたプロンプトテンプレートを作成し、LLMが関連する訓練例を生成できるようにします。
  3. 合成データ生成: 設計したプロンプトでLLMをプロンプトし、93言語を含む幅広い意味タスクの(クエリ、ドキュメント)ペアを数十万件生成します。
  4. モデル訓練: 合成データで強力なオープンソースLLMであるMistralをファインチューニングします。コントラストロスを使用します。

この手法により、人間のラベル付け努力なしに多様なタスクと言語のための十分な訓練データを生成できます。LLMの事前訓練で得られた知識を活用して、高品質のデータを生成できます。

研究者は、2ステップのプロンプト戦略を使用してこの方法を実証しています。

  • GPT-4に潜在的なリトリーバルタスクを提案するようにプロンプトします

高レベルリトリーバルタスクの生成プロンプト

    高レベルリトリーバルタスクの生成プロンプト
  • タスクに基づいて(クエリ、ドキュメント)サンプルを生成するように再度プロンプトします

クエリ、ポジティブ、ハードネガティブのトリプレットを生成

    クエリ、ポジティブ、ハードネガティブのトリプレットを生成

プロンプト設計の重要な側面は以下の通りです。

  • 人間の直感に基づく自然言語プロンプト
  • 多様性を促進するためのプレースホルダー(例:クエリの長さ、明確性、ドキュメントの長さ)
  • 同じタスクタイプの複数のテンプレートからのデータの組み合わせ
  • 言語のリソース可用性に基づく言語の重み付け

合計で、500kのテキスト埋め込み例を180Mトークンの計算コストで生成しました。主な言語は英語(43%)で、ポーランド語、日本語、イタリア語などが続きました。

モデル訓練のため、7BパラメータのMistralモデルをファインチューニングしました。Mistralはすでに大量のテキストコーパスで事前訓練されていたため、追加のコントラスト事前訓練は必要ありませんでした。

ファインチューニング全体は1kステップ以下で完了し、合成データと人間がラベル付けしたデータの混合を使用しました。これは提案手法のサンプル効率を示しています。

結果

研究者は、MTEBベンチマークでモデルを評価しました。MTEBは、分類、クラスタリング、意味的類似性、要約、情報検索などのタスクをカバーしています。

彼らのモデルは、平均スコアで2.4ポイントを上回り、ほぼすべてのカテゴリで新しいベンチマークを樹立しました。

モデル 前のSOTA 提案モデル
分類 76.0 78.5
クラスタリング 46.1 50.3
ペアワイズ分類 87.1 88.3
リランキング 60.0 60.2
リトリーバル 54.3 56.9
STS 83.1 84.6
要約 31.6 31.4
平均 64.2 66.6

注目すべきは、ラベル付けされたデータを使用せずに合成データのみで訓練した場合でも、競合する精度を達成したことです。人間の注釈努力なしでテキスト埋め込みを生成することの可能性を示しています。

また、研究者は、18言語をカバーするMIRACLベンチマークで評価しました。高リソース言語では以前のベストを上回りましたが、低リソース言語では劣る結果となりました。低リソース言語でのLLMの事前訓練をさらに強化することでこのギャップを埋めることができる可能性があります。

まとめると、LLMによって生成された合成データで訓練されたテキスト埋め込みは、新しいベンチマークを樹立し、よりシンプルで効率的な訓練プロセスを実現しました。プロンプトエンジニアリングと合成データの品質に関するさらなる研究により、この手法は多言語テキスト埋め込みを大幅に改善する可能性があります。

分析

この研究からいくつかの価値ある洞察が得られます。

  • GPT-3やGPT-4のようなLLMは、適切なプロンプトが与えられれば、多様なNLPタスクのための高品質の合成訓練データを生成する能力があります。これにより、人間のラベル付けデータへの依存を減らすことができます。
  • テキスト埋め込みの場合、コントラスト事前訓練はすでに大量のテキストコーパスで事前訓練されたMistralのようなモデルでファインチューニングすることよりも、ほとんどの場合無視できる程度の改善しか提供しません。これは訓練効率に関する重要な洞察です。
  • リトリーバル増強生成方法は、LLMが外部知識に動的にアクセスできるようにしています。したがって、テキスト埋め込みの改善はこれらのLLMを強化するために重要です。
  • 低リソース言語のパフォーマンスの改善にはまだ余地があります。より代表的なデータで事前訓練された多言語LLMは、このギャップを埋めるのに役立ちます。
  • 概念的に言語モデルとテキスト埋め込みは同じコインの反対側です。言語の意味を理解することです。合成データプロンプトを使用すると、LLMは複雑なパイプラインなしで埋め込みモデルにファインチューニングできます。

将来の研究の有望な方向としては以下のものがあります。

  • GPT-NeoXのようなオープンソースLLMを使用して合成データを生成する
  • 埋め込みモデルをより長いコンテキストに適応させるための軽量な事後訓練を探索する
  • タスクカバレッジと品質を制御するためのプロンプトエンジニアリング技術の開発
  • 実用的な使用のための推論遅延とストレージコストの改善方法

ベンチマークを上回ること以外に、大規模言語モデルを用いてテキスト埋め込みを強化することは、将来のために興味深い可能性を開きます。LLMが自然言語のマスターを進化させると、その合成データ生成能力も向上する可能性が高いです。

しかし、現実世界への影響を実現するには、重要な研究方向が残っています。

カスタマイズと制御

合成データの重要な利点は、特定のニーズに合わせてプログラム的に例を生成できることです。論文で示されているように、プロンプトエンジニアリングにより、数十万の埋め込みタスクのための訓練データを生成できます。

しかし、現在のプロンプト設計の実践はまだ芸術であり、科学ではありません。生成データの特性を精密に制御するための体系的で再現可能な方法を開発することで、このテクニックの適用範囲を拡大できます。

例えば、例の複雑さ、曖昧さ、ニュアンスを調整するためのテクニックは、ダウンストリームタスクのロバスト性の問題に対処するのに役立ちます。実世界の分布の変化に合わせてプロンプトを動的に生成することは別の開かれた課題です。

大規模訓練

事前訓練済みのLLMはすでに大量の言語知識を内包していますが、そのデータ生成能力はさらにスケールアップによって向上する可能性があります。GPT-4のようなトリリオントークンのインターネットテキストで訓練されたモデルは、数ショット学習に強力ですが、特に訓練データの生成に最適化されていません。

合成データ生成をブートストラップするために、ウェブスケールでの自己教師付きデータ生成を促進するアーキテクチャと目的関数が開発されれば、この手法の品質と効率を大幅に向上させることができます。学習された知識を補完するために、効率的に外部知識を統合することも有望な方向です。

マルチタスクと多言語

論文で指摘されているように、低リソース言語のパフォーマンスの改善はまだ課題です。単一の大規模LLMを事前訓練するのではなく、特定のデータモダリティまたは言語ドメインを専門とする小規模なエキスパートモデルを訓練することもできます。

このアンサンブルアプローチにより、エキスパート間で学習された表現を共有することで、タスクと言語のカバレッジを向上させることができます。時間の経過とともに言語とタスクの専門知識を拡大させるための継続学習も興味深い展開です。

結論として、この論文はLLMを用いた合成訓練データ生成によるテキスト埋め込みの改善という革新的な概念を提案しています。結果は、この方法の有効性を実証しており、以前のベンチマークを上回っています。LLMと合成データ技術が進化するにつれて、埋め込みモデルを訓練するためにその知識を利用することは、非常に有望な方向になる可能性があります。

私は過去5年間、機械学習とディープラーニングの魅力的世界に没頭してきました。私の情熱と専門知識は、AI/MLに特に焦点を当てた50以上の多様なソフトウェアエンジニアリングプロジェクトに貢献することになりました。私の継続的な好奇心は、自然言語処理という分野にも私を引き付け、さらに探求したいと思っています。