<style> .eg-hero{padding:clamp(26px,5vw,47px);border-radius:24px;color:#fff;background:linear-gradient(125deg,#171f45,#34509a 60%,#6e72dc)}.eg-hero h2{color:#fff;margin:.3em 0}.eg-kicker{color:#c9c9ff;font-size:.8rem;font-weight:800;letter-spacing:.13em}.eg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.eg-card{padding:18px;border:1px solid #ced3ee;background:#f2f3fd;border-radius:15px}.eg-card strong{display:block;color:#404b9a;font-size:1.35rem}.eg-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.eg-step{padding:16px;background:#edf0fb;border-radius:12px;border-top:4px solid #7985d7}.eg-step b{display:block;color:#3b4b9d}.eg-table{overflow:auto;margin:18px 0}.eg-table table{border-collapse:collapse;width:100%;min-width:610px}.eg-table th,.eg-table td{padding:11px;border:1px solid #cbd0e9;text-align:left;vertical-align:top}.eg-table th{background:#e9ecfa}.eg-note{padding:17px 19px;margin:20px 0;background:#fff7e8;border-left:5px solid #d59a3f;border-radius:10px}.eg-metric{padding:17px;border-radius:13px;background:#e8f7f6;border:1px solid #b6dad9;margin:20px 0}.eg-metric strong{color:#176e74}@media(max-width:720px){.eg-grid,.eg-flow{grid-template-columns:1fr}} </style>

MULTIMODAL / ON-DEVICE SEARCH

「あの場面、どこ?」を文字で探す

文書、写真、録音、動画を別々の検索システムに分けず、同じ意味空間で照合する。小型のオープンモデルがローカル検索の選択肢を広げた。

3行で要約

  • Google DeepMindは2026年10月6日、Apache 2.0ライセンスの埋め込みモデル「EmbeddingGemma 2」を公開した。[1][2]
  • テキスト・コード・画像・動画・音声を共通の768次元ベクトルに変換。270Mのテキスト専用から740Mのフル構成まで、必要な機能だけ読み込める。[1][2]
  • 256次元まで短縮するとベクトル保存量は理論上3分の1になるが、検索品質は用途とデータで変わる。量子化時の端末メモリー値も特定条件での報告だ。[1][2]

背景:埋め込みとは何か

埋め込みは、文章や画像などを意味の近さを比べられる数値の列に変換する技術だ。たとえば「夕日の海」という検索文と海辺の写真が近いベクトルになれば、ファイル名が分からなくても探し出せる。検索拡張生成(RAG)では、まず関連資料を埋め込みで探し、その資料を生成モデルに渡す。埋め込みモデル自身が回答文を生成するわけではない。

昨年のEmbeddingGemmaは主にテキスト向けだった。今回の第2世代は、異なる媒体を1つのベクトル空間で比較できる点が大きな変更だ。[1][2]

何が新しいのか

740M画像・音声を含むフル構成のパラメーター数
768次元媒体をまたいで比較する標準ベクトル長
8,192入力コンテキストのトークン数

Gemma 4を基盤に、テキスト部分が270M、画像用が170M、音声用が300Mパラメーター。画像用エンコーダーは動画フレームも処理する。テキストだけなら270M、テキスト+画像・動画なら440M、テキスト+音声なら570M、全部なら740Mを読み込む構成を選べる。[2][3]

入力文章・写真・録音・動画
埋め込み共通の768次元ベクトルへ
検索意味の近い項目を順位付け

GoogleはPixel 11 Proで量子化した場合、テキスト専用のアクティブRAMは約191MB、フル構成は約567MBからと説明する。これはモデルの特定の量子化・端末条件での値であり、アプリ全体の常時メモリー使用量ではない。[1]

ベンチマークで分かること、分からないこと

Google公開のモデルカードでは、フル精度・768次元でのMTEB Codeスコアが旧モデルの68.76から78.68へ上がった。一方、多言語テキストのMTEBスコアは61.15から61.36で、用途によって改善幅は異なる。コード検索の値は評価セット上の平均であり、個別の社内リポジトリで同じ差が出る保証はない。[1][2]

Googleモデルカード記載の評価値。高いほど良いが、異なる指標間の直接比較は不可
評価旧モデルEmbeddingGemma 2
MTEB Code/NDCG@1068.7678.68
MTEB 多言語/Mean(Task)61.1561.36

「最大6分の1の保存量」は768次元を128次元に切り詰めた場合のベクトル本体のサイズ比。モデルカード上では128次元のMMEB総合値が768次元の59.01から45.65へ下がるため、画像・動画混在の検索で無条件に128次元を選ぶべきではない。256次元では56.24だ。[1][2]

開発者・企業への影響:まず小さく試す

ローカルに置いた議事録、写真、研修動画、ソースコードを横断的に探す用途が考えられる。端末内処理なら素材を毎回外部APIへ送らずに済む構成を作れるが、モデル配布や端末のログ、検索インデックスの扱いは別途設計が必要だ。以下は公式開発ガイドのテキスト専用構成を使った最小例。動画・音声を使う場合は対応するエンコーダーを有効にする。[3]

pip install -U "sentence-transformers[image,audio,video]" transformers
from sentence_transformers import SentenceTransformer

model = SentenceTransformer(
    "google/embeddinggemma-2",
    config_kwargs={"vision_config": None, "audio_config": None},
)
query = model.encode("障害対応の手順", prompt_name="SearchQuery",
                     truncate_dim=256, normalize_embeddings=True)
doc = model.encode("title: 運用手順 | text: 障害時はログを確認する",
                   prompt_name="Document", truncate_dim=256,
                   normalize_embeddings=True)
print(model.similarity(query, doc))

検索文と文書には異なるタスク用プロンプトを付ける。短縮したベクトルは再正規化し、検索文と保存側の次元を必ず揃える。モデルカードもこの2点を明記している。[2][3]

リスクと限界、今後の注目点

埋め込みの近さは事実の正しさを保証しない。写真や音声の誤検索、機密資料の検索結果への露出、著作権・個人情報への配慮はアプリ側で対処する必要がある。Google公表の評価値は提供元の測定であり、量子化後、短縮後、日本語の固有名詞を多く含む社内データでの品質は別問題だ。

今後は端末別の量子化モデル、索引更新の運用、256次元などの圧縮率と実検索品質のバランスを見たい。生成モデルと組み合わせる場合は、検索の根拠表示と回答の検証も重要になる。

最終確認日:2026年10月7日(日本時間)

参照元

  1. Google DeepMind公式発表「EmbeddingGemma 2」 — 発表日、仕様、端末メモリーに関する提供元の説明。
  2. EmbeddingGemma 2公式モデルカード — 構成、評価値、短縮時の品質、プロンプトの注意点。
  3. Google Developers「EmbeddingGemma 2: The Developer Guide」 — 導入方法とコード例。

Previous Post Next Post