世界を動かす技術を、日本語で。

ジェミニ埋め込み: RAGとコンテキストエンジニアリングを支える

概要

  • Gemini Embedding モデルの一般提供開始と開発者による急速な採用
  • 文書検索・分析、RAG、分類 など多様な応用事例の紹介
  • コンテキストエンジニアリング によるAIエージェントの性能向上
  • 各業界における 実装例と成果、他モデルとの比較
  • 今後のAIエージェント基盤 としての重要性の強調

Gemini Embedding モデルの業界応用事例

  • Gemini Embedding モデル、開発者による高度なAIアプリケーション構築への活用
  • 分類・セマンティック検索・RAG など従来用途に加え、 コンテキストエンジニアリング で運用文脈の完全提供
  • 埋め込み技術 により、文書・会話履歴・ツール定義など重要情報を効率的にモデルのワーキングメモリへ統合

グローバルなコンテンツインテリジェンス向上(Box)

  • Box、Gemini Embedding を統合し、複雑な文書からの質問応答・洞察抽出を実現
  • gemini-embedding-001、正答率81%以上・他モデル比3.6%リコール向上
  • 多言語対応 により、世界中のユーザーが多様な言語・地域コンテンツから洞察取得可能

金融データ分析の精度向上(re:cap)

  • re:cap、B2B銀行取引大量分類に Gemini Embedding を活用
  • F1スコア、従来Googleモデル比1.9%・1.45%向上(21,500件の取引データで検証)
  • 高精度分類 により、顧客向け流動性インサイトの提供力強化

法務分野でのセマンティック精度(Everlaw)

  • Everlaw、大規模リーガルドキュメントの精密セマンティックマッチングに Gemini Embedding を採用
  • gemini-embedding-001、1.4百万件の専門文書で87%精度を達成(Voyage: 84%、OpenAI: 73%)
  • Matryoshka特性 により、情報を少次元で圧縮・検索効率とストレージコスト削減を両立

開発者向けコードベース検索の進化(Roo Code)

  • Roo Code、Gemini Embedding でコードベースのインデックス・セマンティック検索を実装
  • Tree-sitter との連携で論理的コード分割、曖昧なクエリにも高い関連性
  • LLM駆動のコード検索 で柔軟性・正確性・開発者ワークフロー適合性を向上

個別化メンタルウェルネス支援(Mindlid)

  • Mindlid、会話履歴理解によるリアルタイム適応型AIウェルネスコンパニオンを提供
  • gemini-embedding-001、420msの低遅延と82%のTop-3リコール率(OpenAI比4%向上)
  • 関連性・応答速度 の大幅改善によるユーザー体験向上

AIアシスタントの文脈理解と効率化(Interaction Co.)

  • Poke(Interaction Co.)、Gmailからの情報抽出・タスク自動化に Gemini Embedding を活用
  • ユーザーメモリ・関連メール抽出 の高速化・精度向上
  • 100通のメール埋め込み時間、Voyage-2比90.4%短縮(21.45秒で完了)

次世代AIエージェントの基盤としての展望

  • AIシステムの自律性向上、提供する文脈品質が効果を左右
  • gemini-embedding-001 のような高性能埋め込みモデルが、情報検索・推論・自律行動型エージェント構築の要
  • 導入開始方法 は Gemini API ドキュメント参照
  • パフォーマンス指標 は各開発者による報告であり、Googleの独自検証ではない旨の注意

Hackerたちの意見

マトリョーシカの埋め込みは面白そうだね。

「ジェミニ埋め込みモデル、gemini-embedding-001は、マトリョーシカ表現学習(MRL)技術を使ってトレーニングされていて、モデルが高次元の埋め込みを学ぶのを教えるんだ。その初期セグメント(またはプレフィックス)は、同じデータのよりシンプルで役立つバージョンでもあるんだ。output_dimensionalityパラメータを使って、出力埋め込みベクトルのサイズを調整できるよ。小さい出力次元を選ぶと、ストレージスペースを節約できて、下流アプリケーションの計算効率も上がるけど、品質はあまり犠牲にならない。デフォルトでは3072次元の埋め込みを出力するけど、品質を落とさずに小さいサイズに切り詰めることもできるよ。768、1536、または3072の出力次元を使うことをおすすめする。」

マトリョーシカのトリックは本当に面白いね。ここにいい説明があるよ: https://huggingface.co/blog/matryoshka いくつかのモデルで見たことあるけど、Nomic Embed 1.5が最初だったね。https://www.nomic.ai/blog/posts/nomic-embed-matryoshka

Googleのチームは、そのマトリョーシカ技術に夢中みたいだね。どこまでスケールするのか気になるな。

面白いけど、彼らが主張してる改善はそんなに画期的じゃないよね。

OpenAIのtext-embedding-3-largeやtext-embedding-3-smallの埋め込みモデルにはマトリョーシカ特性があるのかな?

こういうアプリケーションに関わってる人に聞きたいんだけど、テキストのエージェント検索と比べて埋め込みってまだ価値あるのかな?例えば、テキストファイルのディレクトリがある場合、全部の埋め込みをVDBに保存して使う方がいいのか、それともLLMが十分に良くなったから、ripgrepとか使って自分で検索させる方がいいのかな?

セマンティック検索はまだ重要だと思う。特にコーディングエージェントにとって、正規表現検索も急速に重要性を増してるね。

RAGを使うのに真剣に時間をかけてないけど、AWSのナレッジベースを使ってエージェント検索と比較した時は、結局エージェント検索(ClaudeコードSDK経由)に戻っちゃった。RAGには調整できる部分がたくさんあって、全体的に複雑だなって印象を受けた。もしかしたら、テキストの量が十分に多くなればその複雑さが報われるかもしれないけど、今はエージェント検索がすごくうまくいってて、始めるのもずっと簡単だよ。

もしあなたのLLMが十分に良ければ、grepやFTSエンジンを使ったツールコールの方が良い結果が得られると思うよ。良いモデルは「犬 OR 犬科」みたいに検索パターンを適応させることもできるし、以前はベクトルの類似性が大きな利点だったかもしれない。埋め込みを使うには色々と手間がかかる。チャンク戦略を決めて、埋め込みを実行して、素早く取り出せるように保存方法を考えなきゃいけない。大きなデータ量になると、埋め込みストアをメモリに保持しなきゃいけなくなることが多いから、結構な負担になるよ。去年は埋め込みにたくさん取り組んだけど、ツールベースの検索がこんなに強力になった今は、あんまり興味を失っちゃった。埋め込みを使ったツールベースの検索をつなげるのは探る価値があるけど、ripgrepから得られる結果が十分良ければ、かなりの追加労力をかける価値はないかもしれないね。

ちょっと気になるんだけど、テキスト以外のファイルはどうやって扱うの?PDFファイルがたくさんあったらどうするの?

使い方やスケールによるね。もし無構造テキストが100万件あったら(よくあることだけど、商品説明やユーザーレビューのウェブスクレイピングとか)、それに対して埋め込み検索をして、最も関連性の高いドキュメントを見つけたいよね。もし100個の.pyファイルがあったら、エージェントにはgrepツールでそれをナビゲートさせたい。

他のGCPユーザーに質問だけど、Googleの古い埋め込みモデルの積極的な廃止についてどう感じてる?毎年12ヶ月ごとにデータを再実行するためにお金を払わなきゃいけない気がする。

これがまさに、ベクタリゼーションについて私が心配していたリスクなんだ。オープンソースのモデルが価値があるかもしれないって考えたのは、誰かがホストしてくれるし、自分で非推奨の速度をコントロールできるから。

あなたは、改善や新機能のために年に一度もファインチューニングや埋め込みを再実行する必要がないLLMを使ったアプリをたくさん知ってる?物事がすごく早く進んでるから、「12ヶ月ごと」ってちょっと遅い気がするんだよね…。

埋め込みのコストは推論に比べてかなり小さいから、あまり気にならないんだ。でも、私が狂ってるのか、それともgemini-embedding-001のプレプロダクション版はもっと大きな最大コンテキスト長を持ってたんじゃないかな?編集:実際そうだったみたい?8kから2kにダウングレード?もし本当なら、すごく残念だな。実験モデルがGAに到達するのを楽しみにしてたのに。

ツールコールがRAGを殺した気がするけど、取得したデータをコンテキストに注入する方法のコントロールが少なくなるね。

数百万の文書をフィルタリングするのにツールコーリングをどう使うつもり?古典的な検索でも埋め込み検索でも、何かしらの検索機能が必要だよ。もし文書が数千しかないなら、検索は必要ないかもね。全部LLMに渡せるから。

検索ツールの呼び出しはRAGって呼ばれてるよね。もっと流行りに乗るために「RAGエージェント」って呼んでもいいかも、へへ。でもRAGはベクターデータベースの埋め込みの類似検索だけじゃないんだ。RAGは、推論の前にリトリーバルとコンテキスト注入のステップを含むあらゆるタイプのものだよ。実際、RAGエージェントは、grepやFTSクエリ、KB API呼び出しなんかを使って、ベクターデータベースでコサイン差分を実行して、広範囲なリコール(候補生成)をしてから、結果を再ランク付け(関連性優先)することもできる。多くのユースケースでは、検索ツールの呼び出しがRAGを動かすための埋め込みの類似検索よりも実用的だと思う。

ツールコールはRAGを補完する。フルスケールのRAG(埋め込み、再ランク、プロンプト作成、LLMからの出力取得)を構築して、それを他のエージェントが見えるツールに接続する。それで両方の力を組み合わせるんだ。

埋め込みはここで重要で、文書や会話履歴、ツール定義などの重要な情報をモデルの作業メモリに効率的に統合するんだ。ちょっと置いていかれてる気がするけど、誰かこれを説明してくれない?私の埋め込みに関する高レベルな理解は、テキストをプロバイダーに送って、それをトークン化してから、特定のサイズの数値ベクトルを出力するニューラルネットを通すって感じなんだ(この場合は768、1536、3072などの可変サイズみたい)。その後、類似検索(例えばコサイン差)をしたい時にベクトルDBでそれらの埋め込みを使える。さらに、その類似性を使ってクラスタリングもできるから、分類機能も得られる。でも、これが「モデルの作業メモリに直接」どうつながるの?私の理解では、RAGでは埋め込みをベクトルDBにキーとして放り込むだけで、最終的にLLMに送るテキストはそのキーが表すソーステキストなんだ。実際には埋め込み自体をLLMに送ってない。だから「モデルの作業メモリに直接」っていうマーケティングの話は何なの?私の考え方は間違ってるの?

その通りだね。「高度な」RAG技術は結局マーケティングのウソで、やってることはテキストをモデルのコンテキストウィンドウに渡すだけだよ。

LLMは検索エンジンをツールとして使えるよ。一つの可能性は、Googleが検索クエリをこれらの埋め込みを通して埋め込み、そこから取得して、取得した結果をモデルの思考の流れに貼り付けるってこと(外部メモリモジュールがモデルにない限り、基本的にはモデルの唯一の作業メモリだね)。

だから「モデルの作業メモリに直接」っていうマーケティングの話は何なの?私の考え方は間違ってるの?コンテキストは時々作業メモリとも呼ばれるよ。でも、あなたの理解は正しいよ:コサイン類似性(つまり埋め込みを通して)で正しい文書を見つけて、その文書の内容をコンテキストに追加するんだ。

理論的にはそうだよね。同じモデルなら、埋め込みを再計算するんじゃなくて、モデルが再利用できるはず。多分、これが彼らの言いたいことだと思う。実際には、モデルの変更はどれくらい早いのか(トークナイザーも含めて)?ベクターデータベースはモデルのバージョンに合わせてどれくらい早く完全にバックフィルされるのか?それが「キャッシュヒット率」みたいなもので、どれだけ役立つかは特定のコーパスやクエリのボリュームによると思う。

RAGは、いくつかのドキュメントを取り込んで、それを特定の長さのテキストブロックに分割して(どうやってやるのがベストかは議論中)、クエリ(Google検索みたいな)を受け取ってドキュメントのチャンクと比較する検索APIを作ることだよ(君が説明してる通りだね)。返されたチャンクを取り出して、ベクター検索のスコアは無視して、元のクエリと一緒に再ランカーにそのチャンクを入れる(このステップは重要、ベクター検索はほとんど役に立たないから)。再ランク付けされた上位1/2の結果をフィルタリングして、プロンプトを整形する。例えば、「ユーザーが'長いクエリ'を聞いたから、いくつかのドキュメントを取得した(下を見てね)、そのドキュメントに基づいてクエリに答える(気が向いたらドキュメントを参照してもいいよ)」みたいな感じ。Doc1.pdf - チャンクN チーズを食べる Doc2.pdf - チャンクY チーズは食べない。そしたら、その検索APIをLLMが呼び出すための「ツール」として公開して、上のプロンプトを少し再フォーマットしてマルチターンの会話にして、あっという間に成功する。でも、ユーザーがその結果に満足したら、最新のサッカーのスコアみたいなバカなことを求めてくるから、ウェブツールが必要になって、終わりがないんだよね。とはいえ、一度整備すればかなり強力だよ。

あなたが理解していないのは、LLMも内部で埋め込みを使っているってこと。トークンを表現する方法なんだ。ただ、埋め込みは見えないから、内部の仕組みなんだよ。

あなたの考え方は合ってるよ。彼らはその用途を示すためにサードパーティのアプリケーションをリストアップしてるけど、これはそのベクターを生成するためのモデルに過ぎないんだ。

直接的に作業メモリに入る部分はナンセンスだけど、解決する価値のある問題を指摘してるね。KVキャッシュをもっとポータブルにして、カット&ペーストできるようにするには何が必要なんだろう?理論的には、長いドキュメントの処理を終えたら、そのままKVキャッシュを保存できるはずだよね?次回はそれをロードして、続けられるってこと?続けるためには、無関係な不連続なKVキャッシュセグメントを操作できるようにモデルをトレーニングする必要があるんだけど、今のところそれはできないと思う。KVを「unRoPE」してから「re-RoPE」することで再利用しようとした論文を見た記憶があるけど、最新の情報は見てないな。今の状況を知ってる人いる?同じコンテキストを何度も再処理しないと新しいクエリを聞けないなんて、ちょっとおかしいよね。

書いた人も混乱してるかもしれないね。Geminiの埋め込みモデルは多言語サポートを提供してると思うけど、何でも使えるんだよね。開発者が自分のストレージやクエリの実装(自分のベクターデータベース)でこれらの埋め込みを使う前提になってるみたい。混乱するのは、この記事がそのプロセスが埋め込みをGeminiに送ると自動的に行われると示唆していることだね(それは意味がないと思うけど、テキストだけでいいんじゃないの?)。

Everlawは、法務専門家が大量の発見文書を分析するための検証可能なRAGを提供するプラットフォームで、数百万の専門テキスト間で正確なセマンティックマッチングが必要です。内部ベンチマークを通じて、Everlawはgemini-embedding-001が最も優れていて、業界特有の複雑な法律用語が含まれる140万の文書から関連する回答を87%の精度で引き出すことができることを発見しました。Voyage(84%)やOpenAI(73%)のモデルを上回っています。さらに、Gemini Embeddingのマトリョーシカ特性により、Everlawはコンパクトな表現を使用し、重要な情報を少ない次元に集中させることができます。これにより、パフォーマンスの損失が最小限に抑えられ、ストレージコストが削減され、より効率的な検索が可能になります。これで多くの若手弁護士やその仕事が不要になるかもしれません。このトピックに関する良いポッドキャストがあります。AIが法律業界に与える影響についてです。

HNでOdd Lotsが言及されてるのを見るのは本当にクールだね。私のお気に入りのポッドキャストの一つなんだけど、今回のエピソードのゲストは質問に答えたり、法律の世界でAIを使う可能性を探ったりするにはちょっと力不足だったと思う。

語彙が足りないけど、コンテンツの埋め込み類似性を使って関連する(チャンクの)コンテンツを見つけてLLMに供給するのは、LLMを使って自動的にキュレーションされたコンテンツチャンクを取り入れて文脈を豊かにするのとは別の話のように思えるんだけど、合ってる?このタイプのコンテンツ選択が人気になった理由が気になるし、多くの点でRAGのデファクトスタンダードになっているのに、一般的な検索にはあまり使われていないのはどうしてなんだろう?

自動的にキュレーションされたコンテンツチャンクってどういう意味?埋め込み検索を使ったRAGは、ボットの文脈にどのチャンクを入れるかを決めるプロセスで、ユーザーの質問に答えるためにそれを参照できるようにするんだ。

一般的な検索にはあまり使われないのは、今までのところ、セマンティックベースの検索のパフォーマンスが複雑さのトレードオフに見合わなかったからかも。NLPは難しい問題だったし、伝統的なキーワードベースの検索を何十年も調整してきたからね。

いくつかのオープンウェイトモデルがMTEBでgemini-embedding-001よりも高いスコアを出していることを指摘する価値があるかもしれないね。特にQwen3-Embedding-8BとQwen3-Embedding-4Bがそうだよ。

そのベンチマークを再現できてる人はあまりいないと思う。モデルがちょっと変だし。

誰か、Geminiの埋め込みとOpenAIの埋め込みAPIの簡単なレイテンシプロファイリングやった人いる?そのAPIコールがシンプルなRAGセットアップの中で一番時間がかかる部分みたいだよね。

自分の経験では、APIコールはLLMがレスポンスを作成する時間に比べたらほんとに些細なことだよ。

グローバルにスケールしたRAGシステムが待ちきれない!これが検索エンジンの転機になると思う。今のところ、似たようなことをやってるのはhttps://exa.ai/だけみたい。