◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/高度な活用
⬡ 高度な活用/2026-06-01上級

Gemini Embedding の次元を 3072 から 768 へ切り詰める — ベクトルDBのコストとレイテンシを下げる Matryoshka 設計

gemini-embedding-001 は 3072 次元の埋め込みを返しますが、Matryoshka 表現のおかげで前方だけを切り出しても精度がほとんど落ちません。次元を 768 へ削ってベクトルDBのストレージとレイテンシを下げる設計を、再正規化の落とし穴と粗密二段検索のコード付きで組み立てます。

Gemini API248Embedding3ベクトル検索3RAG15コスト最適化25本番運用49

✦ プレミアム記事

Gemini Embedding の次元を 3072 から 768 へ切り詰める — ベクトルDBのコストとレイテンシを下げる Matryoshka 設計

ベクトル検索の機能は、作った直後よりも半年後にこそ本性を現します。私が2014年から運営しているアプリ群では、ストアレビューの意味的クラスタリングと、壁紙アプリのカテゴリ分類に埋め込み(Embedding)を使っています。最初の数千件のうちは何も問題が起きません。ところが件数が10万件、30万件と積み上がってきたある日、ベクトルDBの請求額と、検索の応答時間のグラフが、静かに、しかし確実に右肩上がりになっていることに気づきます。

そのとき私が最初に手を伸ばしたのは、より速いDBへの乗り換えでも、インデックスの種類を変えることでもありませんでした。1件あたりのベクトルそのものを小さくすることでした。gemini-embedding-001 は既定で 3072 次元のベクトルを返します。これを 768 次元へ切り詰めると、ストレージはおよそ 4 分の 1 になり、距離計算の負荷もほぼ次元数に比例して軽くなります。しかも、やみくもに切り捨てているわけではありません。Matryoshka 表現という仕組みのおかげで、前方の次元だけを残しても意味のほとんどが保たれるのです。

ここからは、その「次元を削る」という判断を、勘ではなく根拠を持って行えるように設計していきます。再正規化という見落としやすい一手と、768 で粗く絞って 3072 で精緻化する二段構えの検索まで、実際に動くコードとともに組み立てます。

3072 次元がじわじわと効いてくる場所

埋め込みのコストは、API を呼ぶ瞬間だけの話だと思われがちです。実際には、生成したあとの方がずっと長く効いてきます。

一番分かりやすいのはストレージです。float32 で 3072 次元のベクトルを 1 件保存すると 12,288 バイト、おおよそ 12 KB です。これが 30 万件あれば、ベクトルだけで約 3.5 GB になります。マネージドなベクトルDBの多くは保存量とメモリ常駐量で課金するため、この 3.5 GB がそのまま月々のコストに乗ります。次元を 768 へ落とせば 1 件 3 KB、合計でおよそ 0.9 GB。保存量で約 75% の削減になります。

二番目はレイテンシです。最近傍探索の距離計算は、内積にせよコサイン類似度にせよ、次元数に比例した演算量がかかります。HNSW のようなグラフ系インデックスでも、グラフを辿るたびに次元数ぶんの内積を繰り返すため、次元を 4 分の 1 にすると 1 ホップあたりの計算も理屈の上では 4 分の 1 近くまで軽くなります。私の環境では、レビュー検索の p95 レイテンシが目に見えて下がりました。

三番目はメモリ帯域です。これは見落とされがちなのですが、大規模な検索では CPU がベクトルを読み込む帯域そのものが律速になります。1 件あたりのバイト数が小さいほど、同じ時間でより多くの候補を評価できます。

つまり 3072 次元は「いちばん良い数字」ではあっても、「いつも最適な数字」ではありません。問題は、品質を落とさずにどこまで削れるか、です。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦Matryoshka 表現がなぜ「前方の次元だけ」で意味を保てるのかを理解し、3072 を 768 へ削る判断材料が手に入る
✦次元を切り詰めたあとに必ず必要な L2 再正規化を、忘れると検索が静かに壊れる理由とコードで押さえられる
✦768 で粗く絞り 3072 で精緻化する粗密二段検索を実装し、ストレージとレイテンシを下げつつ精度を守る設計ができる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

◈ API / SDK2026-05-15
Gemini API Embedding で詰まった3か所 — 壁紙アプリのカテゴリ自動分類で踏んだエラーと対処
Gemini API の Embedding をカテゴリ自動分類に組み込んで踏んだ INVALID_ARGUMENT・429・精度不足の3点を、次元の固定・切り詰め後の正規化・チェックポイント付きバッチ・recall@5 の計測台という形で整理した記録です。
⬡ 高度な活用2026-09-24
Gemini に「合っていますか」と聞くのをやめ、答えを伏せたまま分類し直してもらう設計に変えました
自分で付けたラベルの確認を Gemini に頼むと、頷く答えが返りがちです。確認型・反論指示型・伏せ型の三つを比べて伏せ型を選んだ理由と、答えが漏れる経路の塞ぎ方、食い違いだけを人が見る振り分けのコードまで書き残します。
⬡ 高度な活用2026-09-14
BLOCK_NONE を入れても結果が変わらないとき — Gemini のブロックを閾値で動かせるかどうかの見分け方
安全フィルタで止まったとき、閾値を緩めて直る場合と、何をしても直らない場合があります。返ってきたレスポンスのどこを見て、その境目を先に判定するかをまとめました。