Gemini Embedding 2(モデルID gemini-embedding-2)は、テキスト・画像・音声・動画・PDFを1つのベクトル空間に埋め込むGoogleのモデルです。2026年3月10日にプレビュー、4月22日に一般提供(GA)となりました。料金はテキスト100万トークンあたり0.20ドル、Batchなら半額です。この記事では公式の料金表を1件あたりの実額に直し、プレビュー期の解説やgemini-embedding-001の書き方のまま実装すると外れる点(task_typeが使えない、複数入力が1本に集約される)をSDKの挙動とあわせて整理します。
まとめ:Gemini Embedding 2の料金と実装の要点
- 料金(100万トークン・有料枠):テキスト0.20ドル、画像0.45ドル、音声6.50ドル、動画12.00ドル。Batchは半額。無料枠はあるが入力が製品改善に使われる。
- 1件あたり:テキスト1,000トークン0.0002ドル、画像1枚0.00012ドル、音声180秒0.0288ドル、動画は最大32フレームで約0.0253ドル。
- 入力上限:全体で8,192トークン。画像6枚、音声180秒、動画120秒(音声トラックは処理しない)、PDFは1ファイル6ページ。
- 実装の注意:
task_typeは使えずタスク接頭辞で用途を指定する。文字列のリストは1本に集約されるので、個別のベクトルが欲しければContentで包むかBatch APIを使う。 - 期限:
gemini-embedding-2-previewは2026年8月10日に終了済み。gemini-embedding-001は2028年5月14日に終了予定で、空間が非互換のため移行時は全件を埋め込み直す。 - 選び方:PDF・画像・音声を同じ検索に載せるならGemini Embedding 2、テキストだけで単価優先ならOpenAI text-embedding-3-small、データを外に出せないならEmbeddingGemma 2。
Gemini Embedding 2の料金:GA版の単価とBatch・無料枠
料金はGoogleのGemini API料金ページに、モデルIDgemini-embedding-2の行として載っています(2026年10月20日に確認)。料金表に載っているのは入力の単価だけで、出力側の項目はありません。単価はモダリティごとに違い、テキストと動画では60倍の差があります。
| 入力 | 標準(100万トークン) | Batch(100万トークン) | 単位あたり(標準) | 無料枠 |
|---|---|---|---|---|
| テキスト | 0.20ドル | 0.10ドル | – | 無料 |
| 画像 | 0.45ドル | 0.225ドル | 0.00012ドル/枚 | 無料 |
| 音声 | 6.50ドル | 3.25ドル | 0.00016ドル/秒 | 無料 |
| 動画 | 12.00ドル | 6.00ドル | 0.00079ドル/フレーム | 無料 |
Batchは同じ料金ページで全モダリティとも標準の50%です。Gemini Enterprise Agent Platformの料金表でも、オンラインの単価はテキスト0.20ドル・画像0.45ドル・音声6.50ドル・動画12.00ドルで同じです。ただしBatchは無料枠では使えません(料金表の無料枠列が「Not available」)。
1件あたりの実額:チャンク・画像・音声・動画
100万トークン単価のままでは見積もりにくいので、1回の入力あたりに直します。動画はEmbeddingsガイドが「1本あたり最大32フレームを処理し、32秒以下は1fps、それより長い動画は32フレームに均等サンプリング」と定めているため、下表は処理フレーム数で数えた値です。実際の課金は応答の使用量で確かめてください。
| 入力の例 | 数え方 | 標準 | Batch |
|---|---|---|---|
| テキスト1,000トークン | 1,000トークン | 0.0002ドル | 0.0001ドル |
| テキスト8,192トークン(上限) | 8,192トークン | 約0.0016ドル | 約0.0008ドル |
| 画像1枚 | 1枚 | 0.00012ドル | 0.00006ドル |
| 音声180秒(上限) | 180秒 | 0.0288ドル | 0.0144ドル |
| 動画10秒 | 10フレーム | 0.0079ドル | 0.00395ドル |
| 動画120秒(上限) | 32フレーム | 約0.0253ドル | 約0.0126ドル |
規模に直すと差がはっきりします。500トークンの文書10万件(計5,000万トークン)は標準で10ドルですが、180秒の音声1万本は288ドル、120秒の動画1万本は約253ドルです。テキストは全件埋め込み、音声・動画は対象を絞る、という配分が基本になります。処理フレーム数で数えると、動画は32秒を超えてもフレーム数が増えないため、33秒の動画も120秒の動画も1本あたりの額は同じになります。長尺動画を120秒ごとに切ると本数分だけ費用が増えるので、検索で拾いたい場面の細かさから切り方を決めます。
無料枠と有料枠の入力データの取り扱い
無料枠でも全モダリティを試せますが、料金ページの「Used to improve our products」は無料枠が「Yes」、有料枠が「No」です。社内文書や顧客データを埋め込むなら、検証段階から有料枠(請求先アカウントをリンクしたプロジェクト)に切り替えるべきです。無料枠は公開データでのプロトタイプに限るのが安全です。
File Searchで使うときの課金
Gemini APIのマネージドRAGであるFile Searchは、2026年5月5日のリリースノートでgemini-embedding-2による画像の埋め込み・検索に対応しました。料金ページのFile Searchの行は「埋め込みは100万トークンあたり0.15ドル、検索で取り出した文書トークンは利用モデルの通常の入力料金」です。一方でFile Searchのガイドは「インデックス作成時に既存の埋め込み料金で課金する」とだけ書いており、0.15ドルがgemini-embedding-2を選んだ場合にも適用されるのかは公式の記述から確定できません。File Searchで2を使う場合は、少量で取り込んで請求額を確かめてから本番の量を流してください。
Gemini Embedding 2の仕様:入力上限・対応形式・出力次元
入力上限はEmbeddingsガイドの「Supported modalities and limits」が正本です。全モダリティを合わせた上限は8,192トークンで、テキストだけでなく画像やPDFのトークンもこの枠を共有します。
| 入力 | 1リクエストの上限 | 形式 | 注意点 |
|---|---|---|---|
| テキスト | 8,192トークン | テキスト | 100以上の言語 |
| 画像 | 6枚 | PNG・JPEG | インラインかFiles API |
| 音声 | 180秒 | MP3・WAV | 文字起こし不要 |
| 動画 | 120秒 | MP4・MOV | 最大32フレーム・音声トラックは処理しない |
| 1ファイル6ページ | 1ページ258トークン+本文トークン |
動画の音声トラックの非処理とPDFの上限超過時の切り捨て
見落としやすい制約が2つあります。1つ目は、Gemini APIでは動画ファイル内の音声トラックが処理されないことです。会議動画やウェビナーを「話している内容」で検索したいなら、音声を別ファイルに切り出して音声として埋め込みます。2つ目はPDFです。ガイドによるとPDFは各ページを画像として描画して1ページ258トークンを使い、さらに抽出した本文のトークンが加わります。合計が8,192トークンを超えると、エラーにならず黙って切り捨てられます。文字の多いPDFを6ページまとめて送ると後半が検索に効かなくなるため、ガイドも1ファイル1ページを強く推奨しています。
出力次元の推奨値768・1536・3072と保存容量
出力は既定で3,072次元で、output_dimensionalityで128〜3,072の範囲に縮められます(Matryoshka Representation Learning=MRLで学習されているため、先頭の次元だけでも意味を保つ)。推奨は768・1536・3072です。gemini-embedding-001では3,072未満に縮めたベクトルを自分でL2正規化する必要がありましたが、gemini-embedding-2は3,072未満を指定すると自動で正規化して返します。
ストレージはfloat32で1次元4バイトなので、1ベクトルは3,072次元で12,288バイト、768次元で3,072バイトです。1,000万件のベクトル値だけなら約123GBと約31GBで、768次元は4分の1に収まります。ベクトルDBの実容量には、検索用インデックスやメタデータなどが別途加わります。どの次元でも、クエリと文書は同じ次元にそろえて埋め込みます。
Gemini Embedding 2のPython実装と入力の指定
SDKはgoogle-genaiを使います。以下はgoogle-genai 2.31.0(2026年10月20日時点の最新版)を前提にしたコード例です。この章で触れるSDKの変換処理と送信前のエラーは手元のSDKで確かめましたが、APIへの実リクエストは行っていません。APIキーはGoogle AI Studioで発行し、環境変数GEMINI_API_KEYに入れます。
pip install "google-genai==2.31.0"
export GEMINI_API_KEY="発行したキー"
task_type非対応とタスク接頭辞による用途指定
gemini-embedding-2はGemini APIでtask_typeパラメータを受け付けません。Embeddingsガイドは「You cannot use the task_type field for the gemini-embedding-2 model」と明記し、代わりにテキストの先頭へタスク接頭辞を付けるよう求めています。gemini-embedding-001やプレビュー期の解説を見てRETRIEVAL_DOCUMENTなどを指定すると、この前提から外れます。
| 用途 | クエリ側 | 文書側 |
|---|---|---|
| 検索 | task: search result | query: {本文} | title: {題名} | text: {本文} |
| 質問応答 | task: question answering | query: {本文} | title: {題名} | text: {本文} |
| ファクトチェック | task: fact checking | query: {本文} | title: {題名} | text: {本文} |
| コード検索 | task: code retrieval | query: {本文} | title: {題名} | text: {本文} |
| 分類 | task: classification | query: {本文}(両側同じ) | |
| クラスタリング | task: clustering | query: {本文}(両側同じ) | |
| 類似度 | task: sentence similarity | query: {本文}(両側同じ) | |
題名が無い文書はtitle: noneとします。インデックス作成時は文書用、検索時はクエリ用の接頭辞を対応させて使います。適切な接頭辞は検索精度の改善に役立ちます。また、画像などと一緒に送るマルチモーダル入力では、テキスト部分に接頭辞を付けることをガイドは一般に推奨していません。
Contentによる文書ごとの個別ベクトル生成
もう1つの落とし穴が集約です。gemini-embedding-001は文字列のリストを渡すと文字列ごとにベクトルを返しましたが、gemini-embedding-2はcontentsに並べた入力をまとめて1本のベクトルにします。google-genai 2.31.0の変換処理を手元で確かめると、文字列2件のリストは「parts=2のContent 1件」に変換され、Contentで包んだ2件は「Content 2件」のまま送られました。文書ごとのベクトルが欲しいときは、次のように1件ずつtypes.Contentで包みます。
from google import genai
from google.genai import types
client = genai.Client() # 環境変数 GEMINI_API_KEY を読む
def prepare_query(query):
return f"task: search result | query: {query}"
def prepare_document(content, title=None):
return f"title: {title or 'none'} | text: {content}"
docs = ["返品は到着後30日以内に受け付けます。", "送料は全国一律550円です。"]
# 文書ごとに Content で包む -> 文書の数だけベクトルが返る
contents = [types.Content(parts=[types.Part.from_text(text=prepare_document(d))]) for d in docs]
doc_res = client.models.embed_content(
model="gemini-embedding-2",
contents=contents,
config=types.EmbedContentConfig(output_dimensionality=768),
)
query_res = client.models.embed_content(
model="gemini-embedding-2",
contents=prepare_query("返品の期限は?"),
config=types.EmbedContentConfig(output_dimensionality=768),
)
print(len(doc_res.embeddings), len(doc_res.embeddings[0].values))
大量の文書を流すなら、Contentで包む方法よりBatch APIの方が単価も半分で済みます。逆に、ECの商品説明と商品画像のように「複数の入力で1つの意味」を表したいときは、あえて同じContentに並べて集約ベクトルにします。SNS投稿のように画像が何枚も付く対象は、ガイドの推奨どおり画像ごとのベクトルを取ってから平均します。
画像・音声・動画・PDFの入力方法とMIMEタイプ
メディアはバイト列をtypes.Part.from_bytesで渡し、mime_typeだけを変えます。大きなファイルはFiles APIでアップロードしてから参照を渡すと、リクエストの容量を抑えられます。
from google import genai
from google.genai import types
client = genai.Client()
with open("manual_p1.pdf", "rb") as f:
pdf_bytes = f.read()
res = client.models.embed_content(
model="gemini-embedding-2",
contents=[types.Part.from_bytes(data=pdf_bytes, mime_type="application/pdf")],
)
vec = res.embeddings[0].values # 3072次元
画像はimage/png・image/jpeg、音声はaudio/mpeg・audio/wav、動画はvideo/mp4を指定します。120秒を超える動画は、ガイドの推奨どおり重なりを持たせて区切り、区間ごとに埋め込みます。
Gemini APIとGemini Enterprise Agent Platformの違い
gemini-embedding-2はGemini APIのほか、Vertex AIから改称したGemini Enterprise Agent Platformでも使えます。同じSDKでgenai.Client(vertexai=True, ...)に切り替えるだけですが、挙動は同じではありません。google-genai 2.31.0のソースと手元の実行、およびAgent Platformのモデルページで、次の差を確かめました。
- 1リクエスト1件:Agent Platform経路で
contentsにContentを2件渡すと、SDKが送信前にValueError: The embedContent API for this model only supports one content at a time.を出します。前章の「Contentで包んで複数ベクトル」はGemini API専用の書き方です。 - Agent Platform専用の設定:
EmbedContentConfigのaudio_track_extraction(動画から音声を取り出す)・document_ocr(PDFのOCR)は、SDKの説明に「Gemini Enterprise Agent Platform only」とあります。Gemini APIではPDFのOCRは常に有効で無効化できません。同じ設定群にあるauto_truncateは、RESTリファレンスで「テキスト専用の埋め込みモデルにのみ適用」とされており、Gemini Embedding 2には効きません。 - 入力の上限と形式:Agent Platformのモデルページでは、動画は音声ありで80秒・音声なしで120秒、画像はPNG・JPEGに加えてWebP・BMP・HEIC・HEIF・AVIFが載っています。
動画の音声も含めて1本のベクトルにしたい場合は、Agent Platformの音声抽出設定が候補になります。ただし、音声抽出を有効にした動画の上限は80秒で、Gemini APIの音声なし動画の上限120秒とは異なります。文書を大量に個別ベクトル化するだけなら、Gemini APIの方が書き方が単純です。
gemini-embedding-001からの移行:期限と手順
移行の期限はGemini APIの非推奨ページで確定しています。プレビュー版のgemini-embedding-2-previewは2026年8月10日に終了済みで、gemini-embedding-001は2028年5月14日に終了予定です。どちらも推奨移行先はgemini-embedding-2です。text-embedding-004は2026年1月14日に終了しています。
| モデルID | 公開 | 終了日 | 状態(2026年10月20日) |
|---|---|---|---|
| gemini-embedding-2 | 2026-04-22 | 未発表 | GA |
| gemini-embedding-2-preview | 2026-03-10 | 2026-08-10 | 終了済み |
| gemini-embedding-001 | 2025-07-14 | 2028-05-14 | 利用可・終了予定 |
| text-embedding-004 | 2024-04-09 | 2026-01-14 | 終了済み |
プレビュー版のIDをコードに残したままだと、8月10日以降は呼び出しが失敗しています。春に試作したまま止まっている検証環境は、まずIDを確認してください。
移行で変わる4点
Embeddingsガイドの「Migration from gemini-embedding-001」が挙げる差分は次の4つです。
- 埋め込み空間が非互換:001と2のベクトルは比べられません。既存データは全件を埋め込み直します。
- task_typeが使えない:前章のタスク接頭辞に書き換えます。
- 複数入力が集約される:文字列リストを渡すコードは、Contentで包むかBatch APIに直します。直さないと返るベクトルが1本になり、文書の件数とベクトルの件数が合わなくなります。
- 次元縮小時の正規化が自動:001向けに入れていた手動のL2正規化は外してかまいません(二重に掛けても単位長のままで害はありません)。
止めずに切り替える手順
本番の検索を止めずに移すなら、新旧のインデックスを並べて運用します。
- Gemini Embedding 2用のインデックス(またはコレクション)を既存とは別に作る。次元は既存と同じでなくてよい。
- 全文書をBatch APIで埋め込み直して新インデックスへ入れる。標準の半額で済む。
- 代表的なクエリと正解文書の組で、新旧の再現率・上位の一致率を比べる。類似度のしきい値やリランカーの設定は新しい空間で決め直す。
- 再索引中に追加・更新・削除された文書を新インデックスへ反映し、文書件数と更新時点を照合する。その後、読み取りを少しずつ新インデックスへ寄せ、問題がなければ旧インデックスと001の呼び出しを止める。
取り込み系と検索系を分けて再索引する設計はRAGパイプラインとは?取り込み系と推論系に分ける工程設計と再索引の実装判断で詳しく扱っています。
急いで移さなくてよいケース
テキストだけの検索で、001のtask_type前提で評価済みのシステムが安定しているなら、2028年5月の終了までは急ぐ理由がありません。001の入力上限は2,048トークンなので、長いチャンクを使いたい、画像やPDFも同じ検索に載せたい、という要件が出たときが移行のきっかけです。移行コストの大半は全件の埋め込み直しと評価のやり直しで、モデルの単価差より大きくなりがちです。
他の埋め込みモデルとの比較と選び方
「動画・音声を埋め込める商用モデルはGemini Embedding 2だけ」という説明は、2026年10月時点では当てはまりません。AWSのAmazon Nova Multimodal Embeddingsは2025年10月28日に一般提供され、テキスト・画像・文書画像・動画・音声を同じ空間に埋め込めます。Voyage AIのvoyage-multimodal-3.5もテキスト・画像・動画を扱います。比べる軸は、入力の種類、1回に入る長さ、単価、どこで動かすかです。
| モデル | 入力 | 最大入力 | 既定次元 | テキスト単価(100万トークン) |
|---|---|---|---|---|
| Gemini Embedding 2 | テキスト・画像・音声・動画・PDF | 8,192トークン | 3,072 | 0.20ドル |
| gemini-embedding-001 | テキスト | 2,048トークン | 3,072 | 料金ページに行なし |
| OpenAI text-embedding-3-small | テキスト | 8,192トークン | 1,536 | 0.02ドル |
| OpenAI text-embedding-3-large | テキスト | 8,192トークン | 3,072 | 0.13ドル |
| Cohere embed-v4.0 | テキスト・画像・PDF | 128kトークン | 1,536 | 公式料金ページで確認 |
| voyage-multimodal-3.5 | テキスト・画像・動画 | – | – | 0.12ドル |
| Amazon Nova Multimodal Embeddings | テキスト・画像・文書画像・動画・音声 | – | – | Bedrockの料金ページ |
| EmbeddingGemma 2(オープン) | テキスト・画像・動画・音声 | 8,192トークン | 768 | 自前の計算資源 |
出典は各社の公式ドキュメントです(OpenAIはEmbeddingsガイド、CohereはEmbedモデルのページ、Voyageは料金ページ、EmbeddingGemma 2はHugging Faceのモデルカード)。gemini-embedding-001は2026年10月20日時点のGemini API料金ページに単独の行がありません。Voyageの画像・動画は10億ピクセルあたり0.60ドルの別単価です。Novaの使い方と料金はAmazon Nova Multimodal Embeddingsとは?使い方・料金・次元の選び方とBedrockでの制約で扱っています。
入力形式・単価・実行環境別のモデル選定
- PDF・画像・音声を同じ検索に載せ、Google Cloudで動かす:Gemini Embedding 2。PDF・画像・音声・動画を1つのAPIで同じ空間に入れられ、PDFはページ画像と本文の両方から埋め込まれます。
- テキストだけで、単価を最優先する:OpenAI text-embedding-3-small。テキスト単価はGemini Embedding 2の10分の1です。
- 数万トークンの長文を1本のベクトルにしたい:Cohere embed-v4.0。入力上限が128kトークンあります。
- AWS上で動画・音声を扱う:Amazon Nova Multimodal Embeddings。Bedrockの権限管理とそのまま組み合わせられます。
- データを外部APIに出せない・端末で動かしたい:EmbeddingGemma 2。Apache 2.0で、テキストだけなら2億7,000万パラメータ分だけ読み込んで動かせます。
埋め込みモデルの選定からベクトルDB・評価の設計までを一緒に進めたい場合は、当社のRAG構築支援でも対応しています。
Gemini Embedding 2を選ぶべきでない場面
Agent Platformのモデルページがgemini-embedding-2の提供先として載せているのはglobal・us・euの3つで、日本のリージョンは含まれません。データ所在地のページは保存場所とモデル計算(ML処理)の場所を分けて扱い、globalエンドポイントはリージョン分離やデータ所在地を保証しないと明記しています。推論時のデータ処理も日本国内に限定する社内規程があるなら、Agent Platform経由でも採用を見送るべきです。保存場所だけを制限する規程なら、保存先と推論処理先を分けて確認します。また、テキストだけの検索で月に数十億トークンを埋め込むなら、OpenAI smallとの単価差(100億トークンで2,000ドル対200ドル)が精度差を上回るかを先に評価してください。
ベンチマークと導入事例の数字の読み方
第三者評価のAgentsetの埋め込みリーダーボードでは、Gemini Embedding 2はEloレート1605で首位、2位のzembed-1が1590、3位のVoyage 4が1586です(2026年10月20日に確認)。一方、同じ表のnDCG@10ではGemini Embedding 2が0.628で、OpenAI text-embedding-3-large(0.709)の方が高く、指標によって順位が変わります。上位3つの差は小さく、データが変われば入れ替わる幅です。GoogleのDevelopers Blog(2026年4月30日)は導入企業の数字として、法律調査のHarveyが法務ベンチマークのRecall@20で3%向上、Supermemoryが検索のRecall@1で40%向上、衣料レンタルのNuulyが倉庫で撮った写真の照合でMatch@20を60%から約87%へ上げた例を挙げています。いずれも各社のデータでの比較なので、自社では代表クエリ数十件で再現率を測ってから決めます。なお、Embeddingsガイドにある次元別のMTEBスコア(768次元で67.99など)はgemini-embedding-001の値で、Gemini Embedding 2の値ではありません。
検索精度の不足を埋め込みモデルの交換だけで解決しようとしないことも大切です。候補を埋め込みで広く拾い、クロスエンコーダで並べ替える2段構成にすると、モデルを替えずに上位の精度を上げられます。並べ替え側の選び方はクロスエンコーダとは?バイエンコーダとの違いと精度・速度の判断基準【2026年版】にまとめています。
よくある質問
Gemini Embedding 2の料金はいくらですか?
Gemini APIの有料枠で、100万トークンあたりテキスト0.20ドル・画像0.45ドル・音声6.50ドル・動画12.00ドルです。単位あたりでは画像1枚0.00012ドル、音声1秒0.00016ドル、動画1フレーム0.00079ドルです。Batch APIはいずれも半額で、無料枠もあります(2026年10月20日の料金ページで確認)。
無料で使えますか?
無料枠で全モダリティを試せます。ただし無料枠の入力はGoogleの製品改善に使われ、Batch APIも使えません。社内データを扱うなら有料枠で使ってください。
gemini-embedding-001とgemini-embedding-2はどう違いますか?
001はテキスト専用で入力上限2,048トークン、2は5モダリティで8,192トークンです。2ではtask_typeが使えずタスク接頭辞で用途を指定し、複数入力は1本のベクトルに集約され、3,072未満の次元は自動で正規化されます。埋め込み空間は互換性が無いため、移行には全件の埋め込み直しが必要です。001は2028年5月14日に終了予定です。
gemini-embedding-2-previewはまだ使えますか?
使えません。非推奨ページで2026年8月10日に終了しており、推奨移行先はGA版のgemini-embedding-2です。
EmbeddingGemma 2との違いは何ですか?
EmbeddingGemma 2はGoogle DeepMindが2026年10月6日に公開したオープンモデル(Apache 2.0・7億4,000万パラメータ)で、自前のサーバーや端末で動かせます。モデルカードの対応入力はテキスト・画像・動画・音声の4つで、PDFは含まれず、出力は最大768次元です。API課金を避けたい、データを外に出せない場合はEmbeddingGemma 2、PDFや3,072次元が要る場合はGemini Embedding 2が向きます。