GEMINI LABEN
OMNI — gemini-omni-flash-preview は9月30日で廃止されます。残り19日です。移行を扱う記事を書くなら、実質これが最後の機会になりますMIGRATE — 移行先は8月27日に GA となった gemini-omni-1.1-flash。extend で末尾を延長でき、2枚の画像を渡せばそのあいだを補間しますRESOLUTION — video_config の resolution は 360p / 720p / 1080p / 4k から選べます。1080p と 4K はアップスケーリングによる生成ですSAMPLING — temperature と top_p、top_k は非推奨として整理されました。揺れを抑えたいなら、プロンプトと構造化出力の側で決めることになりますTRANSCRIBE — gemini-3.5-transcribe は85言語以上の発話単位の言語判定、話者分離、単語単位のタイムスタンプ。カスタム語彙は最大1,000語までですFLASH — Gemini 3.8 Flash は9月2日に GA。9月3日には Lyria 3.5 がパブリックプレビューとなり、テキストと画像から楽曲を生成しますOMNI — gemini-omni-flash-preview は9月30日で廃止されます。残り19日です。移行を扱う記事を書くなら、実質これが最後の機会になりますMIGRATE — 移行先は8月27日に GA となった gemini-omni-1.1-flash。extend で末尾を延長でき、2枚の画像を渡せばそのあいだを補間しますRESOLUTION — video_config の resolution は 360p / 720p / 1080p / 4k から選べます。1080p と 4K はアップスケーリングによる生成ですSAMPLING — temperature と top_p、top_k は非推奨として整理されました。揺れを抑えたいなら、プロンプトと構造化出力の側で決めることになりますTRANSCRIBE — gemini-3.5-transcribe は85言語以上の発話単位の言語判定、話者分離、単語単位のタイムスタンプ。カスタム語彙は最大1,000語までですFLASH — Gemini 3.8 Flash は9月2日に GA。9月3日には Lyria 3.5 がパブリックプレビューとなり、テキストと画像から楽曲を生成します
記事一覧/高度な活用
高度な活用/2026-07-28上級

番号が世代を表さなくなった — モデルIDを正規表現で分解する集計を作り直した記録

モデルIDから世代とティアを導く集計が、Flash が 3.6 で Pro の最上位が 3.5 という並びで、音もなく壊れました。正規表現派生とレジストリ結合の按分差を実行結果で並べ、IDを不透明な主キーとして扱い直すまでの記録です。

Gemini API236モデル管理2コスト按分オブザーバビリティ3設計4

プレミアム記事

7月21日の週、手元のダッシュボードで「3.5系」と束ねていた帯が、説明のつかない下がり方をしました。

呼び出し回数は減っていません。落ちているのは出力トークンの比率だけです。障害の匂いはしないのに、数字だけが静かにずれていました。

原因を辿ったら、モデルを止めた話でも、プロンプトを変えた話でもありませんでした。集計側が、モデルIDという文字列から世代とティアを読み取っておりました。その読み取りが、ラインナップの並びが変わった瞬間に意味を失っていたのです。

個人開発で回している壁紙アプリの分類処理と、周辺の自動化。呼び出し先が増えるたびに、私はモデルIDを主キーではなく「情報が詰まった文字列」として扱っていました。便利だったぶん、崩れ方も静かでした。

「3.5系」という帯が、何を指しているのか分からなくなった

集計の実装はごく普通のものでした。日次の使用量テーブルに model_id を持ち、ダッシュボード側で正規表現を当てて generationtier を導出していました。ダッシュボードの定義を触らずにモデルを増やせるので、しばらくは快適に動いていました。

前提にしていたのは、次の2つです。

  1. モデルIDの数字は世代を表し、大きいほど新しいということ
  2. ハイフンで区切られた3番目の語がティア(flash / pro)を表すということ

2026年7月のラインナップは、この2つをどちらも満たしません。Flash 系の最新は 3.6、Pro 系の最上位は 3.5、画像系は 3.1、そして Omni Flash には番号がありません。番号の大小は、世代でも能力でもなくなっていました。

モデルID位置づけ番号から読める?
gemini-3.6-flashFlash 系の新しい版(7/21 公開)読める
gemini-3.5-proPro 系の最上位番号は 3.6 より小さい
gemini-3.5-flash-lite大量処理向けの軽量版3語目が flash
gemini-3.1-flash-lite-image画像生成・編集3語目が flash
gemini-omni-flash動画生成のプレビュー番号がない
imagen-4.0-generate-001停止予定の画像モデル接頭辞が違う

モデル名と提供状況は変わります。手元で表を持つ場合も、判断の前に公式のモデル一覧料金ページで確かめてください。

実際のラインナップに、その正規表現を当ててみる

議論より先に、手を動かしました。当時使っていた正規表現をそのまま取り出し、7月時点の実IDに当てて出力を眺めます。

# parse_probe.py — 当時の派生ロジックを実IDに当てる
import re
 
MODELS = [
    "gemini-3.6-flash", "gemini-3.5-flash", "gemini-3.5-flash-lite",
    "gemini-3.5-flash-cyber", "gemini-3.5-pro", "gemini-3.1-flash-lite-image",
    "gemini-omni-flash", "gemini-flash-latest", "imagen-4.0-generate-001",
]
 
PAT = re.compile(r"^gemini-(?P<major>\d+)\.(?P<minor>\d+)-(?P<tier>[a-z]+)")
 
print(f"{'model_id':<30} {'gen':<8} {'tier':<8} note")
print("-" * 62)
for m in MODELS:
    hit = PAT.match(m)
    if not hit:
        print(f"{m:<30} {'-':<8} {'-':<8} UNPARSED -> falls to default bucket")
        continue
    gen = f"{hit['major']}.{hit['minor']}"
    print(f"{m:<30} {gen:<8} {hit['tier']:<8} parsed")

実行結果です。

model_id                       gen      tier     note
--------------------------------------------------------------
gemini-3.6-flash               3.6      flash    parsed
gemini-3.5-flash               3.5      flash    parsed
gemini-3.5-flash-lite          3.5      flash    parsed
gemini-3.5-flash-cyber         3.5      flash    parsed
gemini-3.5-pro                 3.5      pro      parsed
gemini-3.1-flash-lite-image    3.1      flash    parsed
gemini-omni-flash              -        -        UNPARSED -> falls to default bucket
gemini-flash-latest            -        -        UNPARSED -> falls to default bucket
imagen-4.0-generate-001        -        -        UNPARSED -> falls to default bucket

厄介だったのは、失敗の出方です。

パースできなかった3件は、まだ救いがあります。バケットが - になるので、グラフを見れば「知らないものが来ている」と気づけます。

問題は、成功したように見える4件のほうでした。flash-liteflash-cyberflash-lite-image も、すべて tier=flash として通ってしまいます。例外は出ません。ログにも残りません。値だけが混ざります。

パースエラーは目に入りますが、意味の取り違えは目に入りません。私が半日溶かしたのは、後者のほうでした。

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

この記事の続きを読む

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

この記事で得られること
2026年7月のラインナップに実際の正規表現を当て、flash-lite と flash-lite-image が flash に吸い込まれる様子を実行結果で確認します
「最新モデルを選ぶ」の3実装が gemini-3.5-pro / gemini-3.6-flash / gemini-3.10-flash と別々の答えを返す再現コード
出力トークン毎コールの指標が、正規表現集計で 26.52、レジストリ結合で 100.00 と約3.8倍ずれる SQLite の検証台
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

高度な活用2026-09-05
長い動画を Gemini に辿らせるとき、見つける問いと「無い」を確かめる問いは別々に投げています
9月1日に来たエージェント的動画理解では、どこを観るかをモデル自身が決めます。見つける問いには効きますが、映り込みが無いことの確認には被覆の保証がありません。問いの形で処理モードを分ける判断と、被覆を自分で担保する実装を書き残します。
高度な活用2026-08-31
画像の重複検査に埋め込み検索を足す前に、重複の定義を三つに分ける
同じ構図で色だけ違う二枚を、検査は重複と判定しました。知覚ハッシュと File Search の埋め込み検索の守備範囲を距離の実数で切り分け、何を重複と呼ぶかの定義から検査の構成を組み直した判断の記録です。
高度な活用2026-08-09
記憶が消えたのではなく、別のプロファイルに書かれていました — Memory profiles のスコープキーを実測で正す
Memory Bank のプロファイルはスキーマとスコープの組で一意になります。呼び出し側でスコープの形がわずかにぶれると、エラーを出さないまま別のプロファイルが増えていきます。分裂の量と、3種類の対処の効き目を同じ条件で測った記録です。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます