No. 003決定論1 分で読める

自信満々に間違った売上数字:LLMが計算できない理由

モデルは完璧な体裁で売上数字を差し出す。その背後に算術はない。研究が示すのは、この失敗が構造的なものだということ——そして解決策もまた、構造的でなければならない。

2025年10月、デロイトはオーストラリア政府に報酬を返還した。同社は雇用・職場関係省に44万豪ドルの調査報告書を納品していたが、公開された報告書には連邦裁判所判決からの捏造された引用と、実在しない学術論文への参照が含まれていた(The Guardian, 2025)。修正版では、GPT-4oが草稿作成に使用されたことが開示された。その後の報道によれば、返還額は約9万7,000豪ドル——契約の最終支払い分に相当する。

一つの事実が、金額よりも重要だ。捏造を発見したのは、同社のレビューでも、クライアントのレビューでもなかった。参照文献を確認した外部の研究者だった。この成果物は、設計上通過すべきあらゆる審査層を通過していた——見た目に何も問題がなかったからだ。

これが問題の本質だ。失敗するモデルではなく、答えを返すモデル。言語モデルに200行にわたる売上の合計を求めると、桁数が正しく、通貨記号が正しく、自信に満ちた文章を伴った答えが返ってくる。しかし確実に得られないのは、正しい合計値だ。答えがなければ気づかれる。体裁の整った誤答は、取締役会に転送される。

そして体裁は決して崩れない。なぜなら、その自信もまた生成されたテキストだからだ。モデルは自分が間違っていることを知らない——抑制すべき内部アラームなど存在しない。数値を断言する文章と数値そのものは、同じ場所から来ている——次の確率的なトークンとして。

もっともらしいことと計算されることは違う

誤った数値をモデルの成熟度の問題として片付けたくなる——次のバージョンなら正しく計算できるはずだ、と。しかし研究はこの失敗が構造的なものだと示しており、その理由について異例なほど一致している。

GPT-4に3桁の数の掛け算を求めたところ、ゼロショットで正解率59%、ChatGPTは55%だった(arXiv, 2023)。4桁になるとGPT-4は3%に落ち、5桁では0%になった。Faith and Fateの著者たちはそのメカニズムを追跡した:トランスフォーマーは、学習済みの線形化されたフラグメントを照合することで複合的な問題を処理する——手続きではなく、パターン照合だ。崖はパターンが尽きるところに正確に現れる。

加算も安全ではない。2025年の分析によれば、LLMは1桁先読みのヒューリスティックで加算を行っており、アルゴリズムではない——プロンプトやトークン化に関わらず、繰り上がりが1桁を超えて連鎖する箇所で正確さが崩壊し、その失敗は繰り上がり構造だけから予測可能だ(arXiv, 2025)。ランダムではなく、系統的だ。モデルは計算に近いことをしているのではない。計算と結果が一致することが多い、別の何かをしているのだ。

AppleのGSM-Symbolicは残る逃げ道を塞いだ——難しい算術にしか当てはまらないのではないか、という可能性だ(Apple, 2024)。小学校レベルの文章題を取り上げ、数値だけを変えると:テストされたすべての最先端モデルの成績が悪化した。もっともらしいが無関係な一文を加えると:正確さは最大65%低下した。さらに、同じ問題テンプレートを新たにインスタンス化するたびに、正確さが目に見えて変動した——同じ問題を言い換えると、異なる答えの分布が返ってくる。この最後の発見がデモの問題を説明する。デモは分布からの1回の抽出だ。監査は分布そのものだ。

著者たちの結論——「現在のLLMは真の論理的推論ができない」——は研究論文としては異例なほど率直だ。誰もこれを覆していない。

100 50 0 accuracy, % zero-shot scratchpad 59 92 3×3-digit 4 4×4-digit 0 5×5-digit
GPT-4のn桁×n桁の掛け算における正確さ:ゼロショット対ステップバイステップのスクラッチパッド。Faith and Fate, NeurIPS 2023。

明白な修正策を測定する

この失敗に直面したチームは、どこも同じ4つの修正策に手を伸ばす。それぞれが測定されている。

検索拡張。 FinanceBenchは、検索システムが文書を提供する環境でGPT-4-Turboに公開財務書類に関する150の質問をした。81%の質問に対して誤答または回答拒否だった(Patronus AI, 2023)。16の構成——GPT-4-Turbo、Llama 2、Claude 2、ベクターストア、長いコンテキスト——で2,400件の手動レビュー済み回答全体にわたって弱点が示され、証拠ページが完璧に提供されない場合にモデルは数値を幻覚した。検索は文書を取得する。モデルは依然として数値を誤る。

グラウンディング。 BBCはChatGPT、Copilot、Gemini、Perplexityに自社記事への直接アクセスを与え、ニュースについて質問した。51%の回答に重大な問題があり、91%に何らかの問題があった。BBCコンテンツを引用した回答の19%が事実誤り——誤った記述、誤った数値、誤った日付——を含み、BBC記事に帰属された引用の13%は改変されているか、存在しないものだった(BBC, 2025)。情報源は手元にあった。それでも数値は歪んだ。

より賢いモデル。 OpenAI自身のシステムカードによれば、o3はPersonQAプロンプトの33%で幻覚を起こし、o4-miniは48%——旧モデルo1の16%に対して(OpenAI, 2025)。ベンダー自身の測定によれば、新しい推論モデルは前世代の2〜3倍の頻度で幻覚を起こす。o3は単により多くの主張をする——正しいものも、捏造されたものも、同じ確信の温度で。

より良いプロンプト。 ステップバイステップのスクラッチパッドプロンプティングにより、GPT-4の3桁の掛け算は59%から92%に向上する(arXiv, 2023)。改善された——それでも12回に1回は誤答だ。GPT-3を4桁の掛け算で徹底的にファインチューニングしても、未見の4桁問題で約40%、5桁では0%だった。上限はメカニズムにあり、プロンプトにはない。

どの修正策も確率を動かす。しかし誰が算術を行うかは変わらない。答えは依然としてもっともらしい数値の分布からサンプリングされており、その分布の中で正しい合計値はただ一つだ。

0 50 100 % RETRIEVAL · FINANCEBENCH 2023 wrong or refused 81% GROUNDING · BBC 2025 significant issues 51% factual errors introduced 19% REASONING · PERSONQA, OPENAI 2025 o1 (predecessor) 16% o3 33% o4-mini 48%
修正策適用後の失敗率。FinanceBench 2023 · BBC 2025 · OpenAI o3 / o4-mini システムカード 2025。

算術を担う主体を変える

構造的な答えは、能力の境界線に沿って引かれた分業だ。言語モデルは言語において卓越しており、台帳においては信頼できない——だからモデルが計算を担ってはならない。

SQAI はその分割の上に構築されている。モデルは型付きインテント——region = "east" の条件で amount を合計する——を作成し、決定論的エンジンがそれをコンパイル済みコードとして実行する:ハッシュで固定されたコントラクトに対して検証され、ポリシーに照合され、単一スレッドでfloat64で計算され、出所情報とともに返される。

{
  "status": "ok",
  "value": 2130.5,
  "rows_matched": 5
}

この2130.5は確率的なトークンではない。445モジュールにわたる4,574の読み取り専用ケイパビリティ——そのうち4,564が完全に決定論的——の上で、決定論的カーネルが計算した合計値であり、ウォーム状態で0.83〜0.93ミリ秒で応答する。

決定論的であることは検証可能であることを意味する。finance.npv(0.1, [-1000, 300, 420, 560, 680]) は計算ハッシュ b74f67d0… のもとで505.020148896933を返す——TypeScript からであれ Python からであれ、結果は一つの正規 JSON 形式でハッシュ化されるため、同じ値と同じハッシュが得られる。この主張は正直にスコープされている:宣言された実行スコープ内での決定論であり、過大な主張をするのではなく、ランタイムバージョン、プラットフォーム、精度モード、スレッド数を記録したエンベロープを伴う。同じプロンプトに対するモデルの答えは、次回の実行で自身と一致することを約束できない。これは何ヶ月後でも、どちらの言語でも、バイト単位で同一に再現される。

もう一つの漏れがあり、ほとんどのスタックはそれを放置している。計算エンジンを接続し、生のクエリ行を「要約のため」としてコンテキストに流し込む——するとモデルは静かに行から数値を再導出し、再発明する。SQAI はコンテキストをガバナンスされた境界として扱う:モデルに届くのは最大25行、250セル、32,000バイトであり、デフォルト上限は100行、ハード実行上限は1,000行だ。切り捨ては常に宣言されるため、モデルは見たものを合計したと正直に主張できない。部分的な行は表示されないため、半端なレコードが想像による補完を誘発しない。集計は境界の前に計算される。モデルが受け取るのは答えであり、宿題ではない。

そしてポリシーはプロンプトではない。許可されたソース、フィールド、関数は createSQAI() 時にコードで固定され、実行前にインプロセスで確認される。モデルのツール入力にはポリシーフィールドが一切含まれないため、それを拡張する余地はない。ポリシー外のケイパビリティを要求しても、創造的な回避策は生まれない——policy_denied_function が返るだけだ。この論拠はエージェントにSQLを書かせない理由と同じだ:生成されたテキストをベストエフォートの指示でガバナンスするのではなく、テキストが触れられないホワイトリストで実行をガバナンスする。

GOVERNED BOUNDARY MODEL language in, language out sum(amount) · region = "east" typed intent — never a SQL string ENGINE contract → policy → execute float64 · 1 thread · sub-ms warm value 2130.5 · rows 5 plan_hash f87610d8afeb… byte-identical replay · TS ≡ PY answer, not rows ≤ 25 rows · ≤ 250 cells · ≤ 32,000 B truncation always declared
分業の構造:モデルが型付きインテントを作成し、float64カーネルが計算する。行上限により生データはコンテキストから遮断される。

誰が算術を担ったか

次にAIシステムが売上数字を差し出したとき、市場のあらゆるアーキテクチャを仕分ける問いが一つある:誰が算術を担ったか?

答えが「モデル」であれば、あなたが手にするのは体裁の整った、出所不明の数値だ。唯一の検証手段は人間が作業をやり直すことであり——それはまさに自動化しようとしていたことだ。デロイトの捏造が発覚したのは、プロセス外の一人の研究者が確認しようと決めたからだ。それはコントロールではない。運だ。

答えが「決定論的エンジンであり、ハッシュはこれだ」であれば、検証は再現だ:同じインテント、同じエンジン、同じバイト。誤りはより微妙に——そしてより静かに——なる。誤った数値が加算の誤りではなく展開されたジョインから来る場合は、それ自体が別の話だ。しかし規律は一文に収まる:モデルは問いを書く、答えは書かない。

誤った売上数字は自ら名乗り出ない。整形され、引用され、自信を持って届く——そして5桁の掛け算では、決して正しくない。それが入り込めないパイプラインを構築せよ。