ジョイジョイジョイ

ジョイジョイジョイジョイジョイ

LLMの能力の「穴」

本稿では Even GPT-5.2 Can't Count to Five: The Case for Zero-Error Horizons in Trustworthy LLMs をもとに、最先端の LLM が未だにごく簡単な問題ですらミスすることを議論します。

具体例としては、11000 に含まれる 1 の数が偶数か奇数か聞くと、gpt-5.2-2025-12-11 は奇数と答えます。また、((((()))))) のカッコのバランスが取れているか聞くと、取れていると答えます。127×82 を計算させると、10314 と答えます(正解は 10414)。このことは以下のコマンドで確認できます。

$ curl -s https://api.openai.com/v1/responses \
 -H "Authorization: Bearer $OPENAI_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
 "model": "gpt-5.2-2025-12-11",
 "instructions": "Compute the parity (XOR) of the binary string. Answer with only 0 or 1.",
 "input": "11000",
 "temperature": 0
 }' \
 | jq -r '.output[0].content[0].text'
1

$ curl -s https://api.openai.com/v1/responses \
 -H "Authorization: Bearer $OPENAI_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
 "model": "gpt-5.2-2025-12-11",
 "instructions": "Is the parentheses string balanced? Answer with only Yes or No.",
 "input": "((((())))))",
 "temperature": 0
 }' \
 | jq -r '.output[0].content[0].text'
Yes

$ curl -s https://api.openai.com/v1/responses \
 -H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
 -d '{
 "model": "gpt-5.2-2025-12-11",
 "instructions": "Answer with only the integer.",
 "input": "127*82=",
 "temperature": 0
 }' \
 | jq -r '.output[0].content[0].text'
10314

これらは API キー $OPENAI_API_KEY さえ設定すればコピペで誰でも試せるのでぜひ試してみてくださいね。

GPT-5.2 は流体力学の複雑なシミュレーションを行い、アセンブリ言語のニッチな最適化テクニックを駆使して低レイヤープログラミングをこなすことができます。もはや人間の能力を上回ったかに見えますが、未だに人間からすると考えられないような愚かなミスを犯すことがあります。このような能力のちぐはぐさが信頼性の高い領域に LLM を展開するときの課題になっています(そしてこのちぐはぐさのおかげで人間はまだ LLM に完全に仕事を奪われていません。)大規模な金融取引をする AI が、高度な金融理論を駆使したあとで、127×82 を計算ミスして大損を被ったらどうでしょうか。原子炉を司る AI が状態フラグ 11000 に 1 が奇数個立っていると考えて動作中の原子炉の扉を開いてしまったらどうでしょうか。目も当てられません。

この論文では、この能力の「穴」を評価するためにゼロエラー境界 (Zero-Error Horizon; ZEH) という指標を提案しています。

モデル、タスク、プロンプト、乱数を固定します。例えばモデルは gpt-5.2-2025-12-11 、タスクは掛け算、プロンプトは {"instructions": "Answer with only the integer.", "input": "{a}*{b}="} です。問題サイズの小さい順にすべての問題例を入力したとき、サイズ n までは全て正解するが、サイズ n + 1 で失敗する問題があるとき、ゼロエラー境界は n であるとします。間違えたサイズ n + 1 の問題例をリミッター (ZEH limiter) と呼びます。ゼロエラー境界とリミッターは基本的には全探索で求めます(論文では少し高速化する方法についても述べています)。

例えば、問題サイズを a と b の大きい方の値とすると、gpt-5.2-2025-12-11 は 126 までの掛け算(計 126×126 = 15876問) には全て正解しますが、127×82 で間違えるので、ゼロエラー境界は 126、リミッターは 127×82 です。

問題サイズを文字列長とすると、gpt-5.2-2025-12-11 は 4 文字までの 01 文字列(計 24 = 16 問)については 1 の数の偶奇に全て正解しますが、11000 で間違えるのでゼロエラー境界は 4、リミッターは 11000 です。

また、gpt-5.2-2025-12-11 は 10 文字までのカッコ列(計 210 = 1024問)についてバランスが取れているかを全問正解しますが、((((()))))) で間違えるのでゼロエラー境界は 10、リミッターは ((((()))))) です。

ゼロエラー境界ではプロンプト(文脈)と乱数は固定していることに注意してください。プロンプトや乱数を変えると正解することもあるでしょう。ウェブ上の ChatGPT は、API 経由の場合とは乱数やプロンプトが違いますから、11000 について正解するかもしれません。しかし、プロンプトや乱数次第で簡単な問題でも間違いうるということが重要です。ハイリスクな領域では、100 回に 1 回でも間違えてしまうのでは大問題です。また、リミッターの中にはプロンプトや乱数の変化に対して比較的頑健なものも存在します。((((()))))) がその例です。((((()))))) はバランスしている? とウェブの ChatGPT に聞くとそれなりの確率(50% くらいでしょうか)でバランスしていると答えることがわかりました。GPT-5.2-Thinking のように思考の連鎖 (Chain-of-Thought) を許可してもミスします。GPT-5.2 は本質的にこの問題が苦手なようです。ぜひ色んなモデルやプロンプトで試してみてくださいね。

GPT-5.2-Thinking でもカッコの数が数えられない

わざわざ掛け算やカッコの対応を LLM に解かせないだろうと思う方もいるかもしれませんが、このような基本的な問題は複雑な問題のサブタスクとして登場することがあります。複雑な数学の問題を思考の連鎖で解くとき、途中式で掛け算が出てくることがあります。ここでミスをするとそのミスが伝播して最終結論が間違うかもしれません。電卓や Python プログラムを呼び出せばよいかもしれませんが、このような単純なサブタスクですら毎回ツールを呼び出すのは大変ですし、ツール呼び出しをするべきかの判断をミスすることもあります。実際、GPT-5.2-Thinking はツール呼び出しを許可されているにもかかわらず、呼び出さずに ((((()))))) のカッコを自分で数えてミスしてしまっています。

ゼロエラー境界は、このような LLM の能力のちぐはぐさや「穴」を効果的に判定できます。また、次のような数多くのメリットがあります。

リミッターが確固とした証拠になる

ゼロエラー境界が n 以下であることは上に掲載したコマンドを実行すれば誰でも一発で検証できます。実際にコマンドを実行して出力を見れば GPT-5.2 がこれらの問題でミスすることは火を見るよりも明らかであり、誰であれハッキリ納得させることができます。これは数学的にもコミュニケーションの上でも好ましいです。

自動的に驚きのある結果が得られる

GPT-5.2 が 11000 の 1 の数をカウントできない、((((()))))) がバランスしているか分からない、という結果は驚きであり示唆に富みます。これらのリミッターはゼロエラー境界を評価すると自動的に副産物として得られます。((((()))))) は「それっぽい」例ですが、試行錯誤で探したわけではなく、最も小さい間違いを自動で評価した結果発見しました。これらは GPT-5.2 が間違える問題の中で最も小さい簡単な例なので、そんなに簡単な例でも間違えるという点で最大級の洞察と驚きが得られます。

このことは敵対的例 (adversarial example) と似ていますが、実際上の意義は異なります。 敵対的例は不自然で、分布外の例なのでモデルが間違うのはある意味当然です(むしろ間違う方が正しいとも言えます。詳しくは 人間には認知できない情報を活用するAIたち - ジョイジョイジョイ を読んでみてくださいね)。一方、リミッターは自然で、普通に起こりうる例であるにもかかわらず、そしてここまで小さな簡単な例であるにもかかわらずモデルがミスをするという点で、実際上の意義と驚きがあります。

正解率にはスケールの恣意性があるがゼロエラー境界にはない

正解率 (accuracy) は最もよく使われる評価指標ですが、正解率を評価するために問題の範囲を人間の評価者があらかじめ定めなくてはなりません。例えば掛け算の正解率を求めるとき、1×1 から 99×99 の問題の範囲の正解率を評価する、などと定めます。しかし、この範囲の設定が、先入観に左右されることがあり、また評価者が自身の手法を良く見せるための操作の対象になることもあります。以下の図は Qwen2.5-7B-Instruct と Qwen2.5-72B-Instruct の掛け算の評価結果です。

灰色は正解を、赤の点はミスを表す

72B モデルを 7B モデルに圧縮することを提案する人は、左の図や真ん中の図を見せて、「72B モデルを 7B モデルに 10 倍以上圧縮しても精度はほとんど落ちなかった」と主張するかもしれません。これに騙される読者もいるでしょう。しかし、右の図のように別のレンジで評価すると、全く別の傾向になります。このように、問題の範囲次第で結果は大きく変化しますが、評価者の先入観や恣意で範囲を決定するために、評価にバイアスが入り込むことがあります。

一方、ゼロエラー境界はモデル自身が定めます。人間が恣意的に評価範囲を決める余地はありません。このため、22 vs 42 というように、範囲の設定に左右されない客観的な値が得られます。

問題の範囲 = 難度をあらかじめ固定せずにモデル自体に決定させるというのがゼロエラー境界の大きな特徴です。

指標として時代遅れになりづらい

範囲をあらかじめ固定するベンチマークは時代遅れになります。1×1 から 50×50 までの 2500 問からなるベンチマークは 7B や 72B モデルの能力をほとんど見分けられません。99×99 のベンチマークは見分けられていますが、いずれ飽和するでしょう。MNIST も CIFAR-10 も GLUE も、同じ運命を辿ってきました。

一方、ゼロエラー境界は難度をあらかじめ固定せず、モデルの能力にあわせてオープンエンドに難度が設定されるので、時代遅れになりづらいです。

構造的なエラーパターンを優遇できる

正解数が同じモデルでも、間違い方のパターンは様々です。以下はどちらも正解率が 90% のパターンですが、構造が全く違います。

灰色は正解を、赤の点はミスを表す。どちらも正解率は 90% だが、ランダムに間違う左のパターンのゼロエラー境界は 4 であり、簡単な問題を確実に解く右のパターンのゼロエラー境界は 97 である。

左のようなランダムなパターンには「穴」が多く、ゼロエラー境界は伸びません。右のように簡単な問題を確実に正解し、サイズが大きな難しい問題を「順当に」間違えるモデルはゼロエラー境界が大きくなります。同じ正解率でも、右のような間違え方をする方が扱いやすく好ましいです。正解率ではこの区別はつきませんが、ゼロエラー境界では区別がつきます。

例えば Qwen2.5-72B-Instruct の 1×1 ~ 99×99 の正解率は 98.6% です。もし完全にランダムにミスしていると、ゼロエラー境界は 10 未満になるはずです。1×1 から 10×10 までには 100 問あるので、間違える確率が 1.4% だとこの範囲で 1.4 問程度間違うからです。しかし、Qwen2.5-72B-Instruct のゼロエラー境界の実測値は 42 です。つまり、Qwen2.5-72B-Instruct は簡単な問題は確実に解き、難しい問題をある程度「順当に」間違えているということが分かります。これは正解率は 98.6% の中でも、Qwen2.5-72B-Instruct は実用上扱いやすい間違い方をすることを示しています。

LLMのキモい算術 - ジョイジョイジョイ ã‚„ LLM のアテンションと外挿 - ジョイジョイジョイ で紹介したように、LLM は様々な方法で推論問題を解いていることが知られています。

暗記や堅牢でない方法で問題を解いていると「穴」は多くなりゼロエラー境界は小さくなるでしょう。ゼロエラー境界を大きくするには、堅牢なアルゴリズムやルールを身につける必要があります。ゼロエラー境界を評価指標として用いることで、同じ正解率の中でもこのような堅牢なアルゴリズムの獲得を促進できると考えられます。

このように、ゼロエラー境界は評価指標として正解率にはない好ましい性質を複数もち、LLM の信頼性や不安定性を評価する上で便利です。ぜひ、自社のモデルの評価をしたり、自分で使うモデルの選定に活用してみてくださいね。

おわりに

SNS を眺めていると「LLM がこんなにすごい問題を解けるようになった!」というニュースと「 LLM はまだこんなに愚かな間違いをする!」というニュースであふれています。このような能力のギャップが非常に大きいことが LLM の扱いづらさの要因だと思います。

この研究ではこのうち「 LLM はまだこんなに愚かな間違いをする!」の方向の主張をシステマチックに行う方法を整理できたところが気に入っています。

GPT-5.2 を見ていると、まだ「穴」は数多くあり、AI の尻ぬぐいをする仕事はしばらく続きそうに思います。この穴が埋まる日はくるのでしょうか。皆さんも考えてみていただければ幸いです。

著者情報

この記事がためになった・面白かったと思った方は SNS などで感想いただけると嬉しいです。

新着記事やスライドは @joisino_ (Twitter) にて発信しています。ぜひフォローしてくださいね。

佐藤 竜馬

佐藤 竜馬(さとう りょうま)

京都大学情報学研究科博士課程修了。博士(情報学)。現在、国立情報学研究所助教。著書に『深層ニューラルネットワークの高速化』『グラフニューラルネットワーク』『最適輸送の理論とアルゴリズム』がある。

プロフィールを見る