GEMINI LABEN
ROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応していますROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応しています
記事一覧/API / SDK
API / SDK/2026-04-27上級

Gemini API の seed パラメータで応答を再現可能にする — テストとデバッグで効く使い方

Gemini API の seed で応答を再現可能にする実践手順です。100回計測の一致率、テストケースIDから seed を導出する掃き出しジョブ、比較の厳しさを4段階に分ける設計、seed を落とすラッパーの直し方までまとめました。

Gemini API228seed2reproducibilityテストデバッグ2Python44Node.js2

プレミアム記事

「昨日と同じプロンプトを投げているのに、応答が毎回違って比較できない」— Gemini API でテストやプロンプト改善を進めようとして、最初にぶつかる壁ではないでしょうか。私も個人開発でアプリのリグレッションテストを書こうとして、出力のゆらぎに何度も悩まされました。半日かけて「モデルが非決定論的だから仕方ない」と諦めかけたところで、原因が自前ラッパーの側にあったと気づいたときは、思わず天を仰ぎました。

実はこの問題、seed パラメータを正しく使うだけで多くの場合解消できます。ただし「seed を渡せば常に同じ応答が返ってくる」という単純な話ではなく、効く場面と効かない場面があります。ここでは seed の仕組みを押さえたうえで、テスト・デバッグで本当に役立つ使い方、私の手元で計測した一致率、そしてハマりやすい落とし穴を整理します。

seed が制御しているのは「サンプリングのランダム性」

Gemini API の seed は、生成時のサンプリングで使う擬似乱数の起点を固定するパラメータです。同じ seed・同じプロンプト・同じモデル・同じパラメータを与えると、サンプリングの順序が同じになり、出力が一致しやすくなります。

ここで気をつけたいのは、seed は temperature の代わりではないという点です。

  • temperature=0.0 だけでは、内部的には貪欲法に近い挙動になり、決定論寄りになりますが、モデル側のバッチング順序や微小な数値誤差で結果が揺れることがあります
  • seed を併用すると、サンプリング過程まで揃うため、より一貫した結果が得られます

私の体感では、温度を下げただけより seed + low temperature の組み合わせのほうが、リグレッションテストの安定度がはっきり違います。この「体感」を数字で確かめたのが次のセクションです。

実測: 同一プロンプトを100回投げて一致率を測る

体感で語っても仕方がないので、gemini-2.5-flash に同じ短いプロンプト(「日本の首都を1単語で答えてください。」)を各条件で100回ずつ投げ、1回目の応答と完全一致した割合を数えました。判定は文字列の完全一致(前後の空白も含む)で行っています。

条件完全一致した回数備考
temperature=0.0 / seed=42(固定)100 / 100ばらつきゼロ。テスト用の基準にできる
temperature=0.0 / seed 未指定97 / 100ごく稀に末尾の句点有無で割れる
temperature=0.7 / seed=42(固定)41 / 100seed があってもサンプリング空間が広く揺れる
temperature=0.7 / seed 未指定18 / 100比較には使えない水準

読み取れることは2つあります。まず、テスト目的なら temperature=0.0 + seed 固定 が明確に最良で、私の環境では100回すべて一致しました。次に、温度を上げると seed を固定しても一致率は 41% まで落ちます。つまり seed は「温度が生むゆらぎ」を消してくれるわけではなく、あくまで同じ温度・同じ条件下でのサンプリング順序を揃えるだけ、ということです。この切り分けを最初に腹落ちさせておくと、後の落とし穴で迷わなくなります。

なお、応答が長くなるほど末尾の1トークンで割れる確率は上がります。上の計測は数トークンの短い応答なので一致率が高く出ていますが、数百トークンの応答では temperature=0.0 + seed 固定 でも稀に末尾が揺れることがあります。スナップショットの粒度は、この現実を踏まえて決めるのが安全です。

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

この記事の続きを読む

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

この記事で得られること
同一プロンプトを100回投げて計測した「seedあり/なし・温度別」の一致率データ
テストケースIDから seed を導出する実装と、8 seed 掃き出しで単一 seed の緑が崩れた6本の実測
比較の厳しさを4段階に分ける compare 実装と、出力の種類ごとに許す段を決める表
seed を握り潰すラッパーの Before/After と、5秒でできる健全性チェック
揺れの原因を上から潰す切り分けフローと、logprobs によるゆらぎ診断コード
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

API / SDK2026-04-28
Gemini API が社内プロキシ・SSL検証エラーで接続できないときの対処法
個人PCでは動いた Gemini API が、会社支給のマシンや社内ネットワークから繋がらない。プロキシ環境変数・SSL検証エラー・証明書バンドルの3層を切り分けて解決する実践的なトラブルシューティングです。
API / SDK2026-08-27
Gemini に渡す前に表が壊れる場所は結合セルと2行ヘッダ
スプレッドシートの表をそのまま Gemini に渡すと、結合セルと2行ヘッダで行の所属が失われます。抽出時点で何が消えるかを実測し、平坦化と集計行の検出までを Python で組みます。
API / SDK2026-08-23
Gemini TTS を streamGenerateContent で受け取り、先頭のチャンクから鳴らす
Gemini の TTS をストリーミングで受け取ると、音声は「ファイル」ではなく PCM の断片で届きます。チャンクごとに WAV ヘッダを付けた場合に何が起きるかを手元で測り、連結とヘッダの正しい順序を実装まで示します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →