本文へスキップ
原文
Google Developers Blog·· 22 時間前注目記事AIスコア62

Google、Gemma 4ベースの埋め込みモデルEmbeddingGemma 2を公開、5種類のデータを統一空間に

EmbeddingGemma 2: The Developer Guide

AIによる概要

GoogleはGemma 4をベースにしたApache 2.0ライセンスのオープンモデルEmbeddingGemma 2を公開した。テキスト、コード、画像、動画、音声を768次元の共通ベクトル空間に変換し、270Mから740Mパラメータまで必要なエンコーダーだけを読み込める。MTEB (Code)ではEmbeddingGemma 1より14%高いスコアを示している。

解説

EmbeddingGemma 2は1B未満のモデルで、テキスト、コード、画像、動画、音声を768次元の共通空間に埋め込む。構成はモジュール式で、テキストとコード用の270Mを基本に、視覚エンコーダー(+170M)で440M、音声エンコーダー(+300M)で570M、すべて載せると740Mになる。全モダリティは8,192トークンのコンテキストウィンドウを共有し、Gemma 4と組み合わせるオンデバイスRAGではトークナイザーと音声エンコーダーのアーキテクチャを共有してメモリを抑えられる。

ベクトルの保存量はMatryoshka Representation Learning(MRL)で768次元から512、256、128次元へ切り詰められる。256次元ではテキストとコードで品質の大半、画像・動画・音声で約95%を維持し、保存量は3分の1になる。128次元はテキストとコードで約90%だが、画像・動画・音声では約75%に落ちるため、マルチモーダル用途では事前検証が勧められている。bfloat16で100万本の768次元ベクトルは約1.5GB、128次元なら250MBで、6倍の削減になる。

使い方はsentence-transformers v6.1.0以降で、`SentenceTransformer("google/embeddinggemma-2")`でモデルを読み込む。`config_kwargs`で`vision_config`や`audio_config`をNoneにすれば不要なエンコーダーはメモリに載らない。検索では`prompt_name`に`SearchQuery`と`Document`を使い分け、画像・動画・音声は辞書形式で渡す。テキストとメディアの混在入力には`<|image|>`などのマーカーを使う。4つの構成は同じチェックポイントから読み込まれ、同一のベクトル空間を共有するため、後からエンコーダーを追加しても計算済みの埋め込みを再計算する必要はない。

デモでは270Mのテキスト専用構成でHugging Face transformersのコードベースを埋め込み、Gemma 4 26B A4BとPi agent harnessのエージェントが類似度で検索した。重みはHugging Faceで入手でき、vLLM、Transformers、SGLang、MLX、Ollama、LMStudio、LiteRTなどで実行できる。Unslothによるファインチューニングや、Google AI Edge GalleryのオンデバイスデモInstant Media SearchとVideo Moments Finderも紹介されている。

注目の理由

モジュール式エンコーダーと次元削減の選び方が数値付きで整理されており、自分の検索基盤の構成を検討する際の比較材料になる。

出典: Google Developers Blog · developers.googleblog.com