Googleが新たにリリースしたEmbedding Gemmaは、オンデバイスでの検索拡張生成(RAG)を大幅に簡易化する軽量埋め込みモデルである。Gemma 3をベースとした3億パラメータのこのモデルは、わずか200メガバイトのVRAMで動作し、100以上の言語をサポートしながら検索、分類、トピックモデリングなど多様なタスクに対応する。出力次元は128から768まで調整可能で、用途に応じて精度と計算コストのバランスを取ることができる。本動画では基本的なRAGシステムでの使用方法から、ファインチューニングまで実践的な導入方法を解説している。

Embedding Gemma:軽量埋め込みモデルの登場
GoogleがオンデバイスRAG(検索拡張生成)を大幅に簡単にしてくれる新しい軽量埋め込みモデルをリリースしました。その名もEmbedding Gemmaです。これはGemma 3の上に訓練された極めて軽量なモデルで、オンデバイスでの実行に非常に有用です。必要なVRAMは約200メガバイト程度ですが、単純な検索を超えた機能を持っています。
同じモデルを分類やトピックモデリングなど、他の自然言語処理タスクにも使用できます。後ほど動画の中で、このモデルを異なるタスクに効果的に設定する方法をお見せしますが、設定は少し複雑な場合があります。
モデル自体は約3億パラメータで、非常に小さく軽量ですが、その重量クラスでは最高性能です。後ほど、このモデルを使った簡単なRAGセットアップと、分類例をお見せします。
技術的詳細
まず、技術的詳細を見てみましょう。これはGemma 3アーキテクチャの上に訓練されており、100以上の言語をサポートしているため、多言語タスクに優れています。
このモデルの出力次元はカスタマイズ可能です。最大次元は768で、最小は128です。これはマトリョーシカ表現を使用しており、本質的には埋め込みモデルの次元削減技術です。基本的に、異なる次元でモデルを切り捨てることができます。
ただし、これは精度の低下も招くことを覚えておいてください。予想通り、出力の次元数が多いほど精度は保たれます。埋め込みモデルの出力次元数を減らすにつれて、精度も低下しますが、速度と計算コストの両方を節約できます。軽量な埋め込みモデルを探しているなら、これは優れた候補となるでしょう。
ベンチマーク比較
MTEBベンチマークでの簡単な比較をご覧ください。現在、10億パラメータ未満で最高の埋め込みモデルはQwen Embeddingで6億パラメータです。しかし、これはほぼ半分のサイズでありながら、他の埋め込みモデルに対して相対的なパフォーマンスを維持していると思います。これは軽量検索にとって優れた選択となるでしょう。
全てのフロンティアラボの中で、Googleは現在非常に興味深いポジションにいます。開発者向けにはGemma 3やより軽量なGemma 3Nなどのオープンウェイトモデルを提供しています。一方、フロンティアモデルを使用したい場合は、Gemini 2.5 Proがあり、埋め込みについても、マルチモーダルな性質を持つ最先端のGemini埋め込みを提供しています。
彼らは本当に開発者のニーズに応えようとしています。
DeepMindの研究成果
コード例をお見せする前に、DeepMindチームの非常に興味深い研究を強調したいと思います。おそらくこれについて別の詳細な動画を作成しますが、埋め込みベースの検索の理論的限界に関する興味深い論文がありました。これは、RAGシステムにおける密な埋め込みベースの検索には固有の欠陥があり、正しい文書を検索する際に理論的限界があることを示しています。
使用している埋め込みモデルのサイズや性能に関係なく、検索には理論的限界があります。これは、密な埋め込みモデルだけに頼っていると、多くの可能性を見逃している可能性があることを意味します。Embedding Gemmaも密な埋め込みモデルなので、同様の理論的限界に悩まされることになります。
実装とタスク別設定
動画の残りの部分では、これを検索拡張生成システムで使用する方法の例をお見せします。まず、複数の異なる次元をサポートしており、検索の精度は出力ベクトルの長さに依存するため、効果的な使用方法をお見せします。
平均して、最高次元から最低次元まで約3%の精度低下が予想されます。コード関連タスクについては、もっと大幅で約6%の低下が見られます。また、量子化が利用可能なので異なる精度で実行できますが、量子化の影響は次元や出力サイズほど顕著ではありません。
実行するタスクに基づいて、プロンプト指示を異なる方法で設定する必要があります。従うフォームは、タスクの性質です。つまり、検索、分類、質問応答なのか、そしてユーザーが提供するクエリまたは文書です。
例えば、検索を行い、ユーザークエリを提供している場合、タスクは検索結果となり、クエリ内容となります。文書を埋め込んでいる場合は、文書のタイトルを使用します。これはnoneに設定でき、その後実際のテキストとなります。このメタデータは、埋め込みモデルがより良い検索を行うのに役立ちます。
また、質問応答もサポートしています。この場合、タスクは質問応答で、クエリはユーザークエリとなります。また、事実確認、分類、トピックモデリングやクラスタリング、類似性、コード検索もサポートしています。これらは、この埋め込みモデルを使用できる異なる明確なタスクです。
RAGセットアップの実践
これはRAG(検索拡張生成)を設定するためにGemmaチームが提供した簡単なノートブックです。この場合、transformerパッケージを使用しています。パイプラインを設定します。RAGでテキスト生成に使用されるモデルは、Gemma 3 4bit instruct fine-tuneバージョンです。
埋め込みには、embedding gemma 3億パラメータを使用しています。アーキテクチャを見ると、モデルに入力できる最大シーケンス長は8192トークンです。つまり、チャンクサイズはこの大きさまで可能です。
出力次元はデフォルトで768ですが、前にお見せしたように、ニーズに基づいて異なるサイズに切り捨てることができます。transformerパッケージを使用している場合、タスク定義の性質は少し異なります。文書またはクエリを提供します。
その後、プロンプト指示はプロンプト名、そしてタスクの性質となります。この場合、ユーザークエリを埋め込んでおり、タスクの性質は検索クエリとなります。文書を埋め込んでいる場合は、このように設定するだけです。文書のタイトル、その後実際のテキストとなります。
文書のタイトルがない場合は、タイトルをnoneに設定し、実際のテキストのみを提供します。これが文書埋め込みの方法です。最初の部分はクエリ埋め込みに関連していました。
そして、ここに再び利用可能な異なるタスクのリストがあります。実際、もっと多くのことができます。同じモデルを再ランキングや要約にも使用できます。多ラベル分類、指示検索、分類、クラスタリング、そして他にもいくつかのオプションがあると思います。
実際のRAGシステム実装
この簡単なRAGセットアップでは、コーパスはHRと休暇ポリシーで構成されています。それぞれに対して異なる文書カテゴリがあります。文書タイトルと実際の内容があります。これは異なるポリシー文書の辞書です。
ユーザークエリは「パスワードをリセットするにはどうすればよいですか?」です。類似度閾値を設定し、最適なマッチを計算するためのいくつかの有用な関数があります。基本的に、すべての文書にわたって類似度を計算し、最高の類似度を持つ文書を選択します。
まず、文書のカテゴリを見ています。HRと休暇ポリシー、ITとセキュリティ、財務と経費、オフィスと施設があります。そして、それらの中で最適な文書を探しています。これが基本的に生成のための検索部分です。
Gemma 3Nモデルが必要です。ここに、提供されたコンテキストに基づいて質問に答えるようモデルに指示する簡単なプロンプトテンプレートがあります。コンテキストは検索された文書となり、質問はユーザークエリから来ます。
ここでもtransformersパッケージを使用しています。ユーザークエリが「パスワードをリセットするにはどうすればよいですか?」の場合、文書カテゴリを調べ、アカウントパスワード管理が最適なカテゴリであることを発見し、その特定の質問に対して検索を行いました。
ファインチューニング
このモデルを特定のタスクに合わせてファインチューニングすることもできます。データセットを収集する必要があります。データセットは三重項を持つことになっています。この場合、各例は3つの異なるサンプルを含むことになります。
そのうち2つは関連性があり、1つは完全に無関係です。例は、アンカー、ポジティブ例、ネガティブ例となります。次に、訓練に使用したい損失を選択します。
ここでは、sentence transformer訓練パッケージを使用しています。モデルを配置したい出力ディレクトリ、エポック数とバッチサイズ、学習率を提供します。残りの訓練は、ニューラルネットワークを訓練する方法と非常に似ています。
ここに、ファインチューニング前に同じコーパスで検索を行った場合の類似度スコアがどのようになる可能性があるか、そしてモデルをファインチューニングした場合との簡単な例があります。
埋め込みモデルをファインチューニングする方法についてのより詳細なチュートリアルに興味があるかどうか教えてください。しかし全体的に、これは比較的少数の文書を持ち、高速検索を望む場合の軽量検索に優れた埋め込みモデルだと思います。
ぜひチェックしてみてください。あなたの経験がどのようなものか教えてください。また、埋め込みモデルのファインチューニングに興味があるかどうかも教えてください。とにかく、この動画が役に立ったことを願っています。ご視聴ありがとうございました。いつものように、次回またお会いしましょう。


コメント