GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/高度な活用
高度な活用/2026-06-01上級

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

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

Gemini API191Embedding3ベクトル検索3RAG15コスト最適化26本番運用47

プレミアム記事

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 表現

ふつうの埋め込みモデルでベクトルを途中で切ると、残った部分は意味を成しません。情報が全次元に均等に散らばっているため、後半を捨てると前半だけでは何も復元できないのです。

gemini-embedding-001 が違うのは、Matryoshka Representation Learning(MRL、入れ子人形のような表現学習)で訓練されている点です。学習時にモデルは、全 3072 次元だけでなく、先頭 768・1024・1536・2048 次元といった「途中で切ったベクトル」でも良い成績を出すように罰則を受けます。その結果、最も重要な意味情報がベクトルの前方に集まるように仕上がります。入れ子人形の一番外側だけを見ても全体の形が分かるのと同じ発想です。

これは公開ベンチマークにも表れています。MTEB の総合スコアは 3072 次元と 1536 次元がともに 68.17、768 次元でも 67.99 で、768 まで削っても差はごくわずかです。私自身、レビュー分類のタスクで 3072 と 768 を比較しましたが、クラスタの分かれ方に実用上の違いは感じませんでした。

ここで宮大工だった祖父のことを思い出します。祖父は「手を動かすことが一つの信心だ」と言う人でしたが、同時に、削るべきところを見極める目を何より大切にしていました。次元を削るのは、雑にするのとは正反対の作業です。何が本質で、どこからが飾りなのかを見極める。Matryoshka はその見極めを、モデルの側があらかじめ済ませてくれている仕組みだと私は理解しています。

なお、2026 年 3 月にプレビュー公開された後継の gemini-embedding-2-preview も同じ MRL の性質を持ちます。本記事は本番で長く使える安定版として gemini-embedding-001 を軸に書きますが、次元を削る設計の考え方はそのまま後継モデルにも引き継げます。

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

この記事の続きを読む

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

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

この記事を購入する

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

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

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

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

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

関連記事

高度な活用2026-05-31
Gemini Embedding モデルを切り替える日:無停止リインデックスの設計
埋め込みモデルを新しくすると、過去に作った全ベクトルが使えなくなります。サービスを止めずに数十万件のベクトルを作り直す二重インデックス方式を、再開可能な再生成ジョブとクエリ側の抽象化層のコード付きで設計します。
高度な活用2026-07-17
日本語で引いた検索に、対訳の英語記事が出てこない — 埋め込みが内容より先に言語を見ている件
gemini-embedding-2 で日英の対訳ペアを埋め込むと、同じ内容なのに最近傍になりません。言語そのものが類似度を押し上げているためです。対訳ペアを正解として再現率を測り、言語重心を引く方法と翻訳ブリッジを比べた記録をまとめます。
高度な活用2026-07-15
分類ラベルの近ミスはリトライで直らない — 閉じた語彙を正規化する層を挟んだ実測ノート
responseSchema の enum を外したラベルをリトライで直そうとすると同じ近ミスが返ります。壁紙アプリの30分類バッチで外れ方の分布を測り、別名表と埋め込み最近傍で正規化する受け入れ層を挟んだ実装と実測値をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →