【Antigravity】バージョンアップで劣化?3.5から3.6への移行で起きた「余計なお世話」と開発現場のリアル
こんにちは!高橋です(*'▽')
先日Gemini 3.6 Flashが出たので、早速Antigravityでモデル選択をしてウキウキでつかってみました♪
普段メインウェポンとして使用している、Gemini 3.5 Flash(high)からどれだけ進化したのかと作業を行っていたところ、「バージョンアップによる悪化」に遭遇しました。
生成スピードは確実に速くなっているものの、
「頼んでいないことまで勝手にやる」
「『〇〇しないで』という指示を聞かない」
「シンプルな修正の精度が落ちる」
という現象が発生したのです。
そこで結局、モデルを3.5に戻したところ一気に精度が回復しました。
「バージョンアップ=全能力の向上」と思いがちですが、なぜこのような逆転現象が起きてしまうのでしょうか?
今回は、実際の開発現場で起きた具体的な事例をもとに、LLMのバージョンアップの裏で起きている 4つの技術的メカニズム と、エンジニアが持つべき実務的な割り切り について深掘り解説します。
実際に起きた「指示無視」の事例
今回遭遇したのは、以下のような非常にシンプルなタスクでした。
指示内容: 「1番から5番まで問題があるうち、5番の〇〇だけを修正してください。その際、1番から4番は変更しないでください。」
人間からすれば「5番だけ書き換えて、あとはそのままでいいんだな」と一瞬で理解できる内容です。
しかし、Gemini 3.6はこの指示に対して、頼んでもいない1番から4番の文章まで勝手に手を入れて改変してしまう という挙動を見せました。
「触らないで」と念押ししても聞く耳を持たず、修正依頼の精度自体も3.5より低く感じられる状態に。
なぜ最新の3.6でこのような「ポンコツ化」が発生したのでしょうか。
なぜバージョンアップで精度が下がるのか?4つの深掘り理由
1. 「気の利かせすぎ」によるオーバーチューニング(Helpfulness Bias)
最新モデルの開発では、より人間にとって有用(Helpful)な回答ができるよう、大規模な強化学習(RLHFなど)が行われます。
一般的なチャット用途であれば、
「気を回して背景を察し、全体を綺麗に整えて提案してくれる」のは優れた機能です。
しかし、厳密さが求められるコード修正では、この「親切心」が「余計なお世話」に化けます。
AIは「5番を直すなら、全体のフォーマットや表現も一貫性を持たせて統一したほうが親切だろう」と身勝手な全体最適化を行ってしまい、
結果として触ってほしくない1〜4番まで勝手に書き換えてしまうのです。
2. 「否定形(〜しないで)」に対する構造的な弱点
LLMの心臓部である「Attention(注意)機構」は、原理的に否定の指示を処理するのが苦手です。
「1から4は変更しないで」と入力すると、AI内部では「1」「2」「3」「4」という単語そのものに強い注意(Attention)が向いてしまいます。
その結果、「変更しない」という命令文の条件よりも、「1〜4のテキストを処理しなければ」という意識が勝ってしまうのです。
3.6のチューニングにおいて、指示の優先順位付けのバランスが一時的に変化したことで、この否定文に対する耐性が下がったと考えられます。
3. スピードと推論能力(思考の深さ)のトレードオフ
「3.6になって速くなった気がする」という感覚は非常に本質的です。
Flashシリーズは「高速・軽量・低コスト」を追求したモデルラインです。
モデルのアーキテクチャを最適化して応答速度を極限まで高めた結果、「単純なコピペ」や「厳密な条件分岐の維持」といった緻密な論理処理の能力が、スピードと引き換えにわずかに削られた可能性があります。
4. 「ベンチマークスコア向上」と「特定タスクの精度」の乖離
Googleなどの開発元は、モデルのリリース時に「総合スコアが上がったこと」を発表します。しかし、これはあくまで何千・何万という多種多様なテストの「平均値」です。
「全体として賢くなった(総合スコアUP)」としても、
「特定のプログラミング言語での単純な部分修正」のような局所的タスクにおいては、旧モデル(3.5)の方が優秀だったという局所的なデグレ(リグレッション)は日常茶飯事に発生します。
開発現場が出した「リアルな結論」
今回のトラブルを経て、最終的にどう解決したかというと、
「AIに何度も言い聞かせるのをやめ、人間が手作業でサクッと修正した」 でした。
AIに正しく理解させるためにプロンプトを推敲し、出力を確認し、修正されすぎた場所を指摘し……と繰り返すくらいなら、
数行のコードやテキストなら手で直した方が圧倒的に早く、ストレスもかかりません。
この経験から得られた、AI時代の開発における重要な教訓は以下の3つです。
「最新=最高」とは限らない 新しいバージョンが出ても飛びつかず、自分の用途(コード修正、文章要約、アイデア出しなど)において一番相性の良いバージョン(今回は3.5)を使い続けるのが正解。
「否定形」ではなく「隔離」で指示する AIに「〇〇するな」と頼むのは筋が悪い。全体を出力させず「5番の修正結果『だけ』を出力して」と対象を物理的に隔離して渡す工夫が必要。
「全自動」にこだわらない AIは「大きな構造を作る」「複雑なロジックを考える」といった大枠が得意。ピンポイントの微修正やフォーマット維持は、手動とのハイブリッド(手で直す)が結局最強。
おわりに
AIの進化は目覚ましいものですが、万能の魔法ではありません。
ツールが賢くなればなるほど、「気を利かせすぎて暴走する」という人間くさい(?)壁にぶつかるのが面白いところです。
モデルのアップデートに振り回されることなく、「今の自分の作業にとって一番素直に動いてくれるバージョンはどれか」を見極め、
時には手作業も交えながら道具として使いこなしていくスタンスこそが、AI時代の快適な開発ワークフローを作る鍵になりそうです。
それでは今回はここまで(*'▽')ノシ
いいなと思ったら応援しよう!
よろしければ応援お願いします!