元OpenAIの研究者らが設立したThinking Machines Labが、AIの応答が毎回揺らぐ根本原因を解明した。それによれば、犯人は長年信じられてきたGPUの並列処理ではなく、サーバー負荷に起因する「バッチ不変性の欠如」だという。
シリコンバレーを揺るがす新星、AIの「再現性」にメス
2025年9月10日、元OpenAIのCTO、Mira Murati氏が率い、20億ドルものシード資金を調達して評価額120億ドルに達したスタートアップ「Thinking Machines Lab」がひっそりと公開した1本の論文の内容は、世界に衝撃を与えるに足るものだった。
タイトルは「Defeating Nondeterminism in LLM Inference(LLM推論における非決定性の打破)」。 執筆者は、同社の研究者であるHorace He氏。この論文が持つ意味は、単なる技術報告に留まらない。ChatGPTのような大規模言語モデル(LLM)に同じ質問を投げかけても、なぜか毎回少しずつ違う答えが返ってくるという、このAIの根源的な「気まぐれ」とも言える現象、すなわち「非決定性」問題の真犯人を、かつてない解像度で特定し、その解決策までをも提示したのだ。
これまでAI業界では、この非決定性は「GPUの並行処理に伴う、避けられない制約」として、半ば常識のように受け入れられてきた。しかし、He氏の研究は、その通説に真っ向から異を唱える。AIの信頼性と再現性を巡る長年の議論に、終止符が打たれるかもしれない。この発表は、120億ドルの期待を背負うThinking Machines Labが、その技術的卓越性を世界に初めて示した、注目すべき一手なのだ。
通説への挑戦状:「GPUと浮動小数点」仮説の限界
我々が日常的にAIと対話する中で感じる、ある種の不可解さ。その根源に、この非決定性問題は存在する。
なぜ同じ質問で答えが変わるのか?AIの永遠の謎
ChatGPTを使ったことがある方なら、一度は経験したことがあるはずだ。同じプロンプトを入力しても、生成される文章が微妙に、時には全く異なるものになる現象。これは多くの場合、応答の多様性を生むための「サンプリング」という確率的なプロセスによるものと説明される。
しかし、問題はもっと根深い。AIモデルには「temperature」という設定値があり、これを「0」に設定すると、モデルは確率に頼らず、常に最も可能性の高い単語(トークン)を選択する「貪欲法(greedy sampling)」で応答を生成するようになる。 理論上、これで応答は完全に固定的、つまり決定的になるはずだ。
だが、現実は違う。temperature=0に設定してもなお、LLMのAPIやオープンソースの推論ライブラリは、同じ入力に対して異なる出力を返すことが広く知られている。 この不可解な現象こそが、AIの信頼性を議論する上で、常に付きまとってきた根本的な問題だった。
「犯人はGPU」- これまでの有力な仮説
では、なぜ理論通りに決定的にならないのか。この問いに対し、これまで最も有力とされてきたのが「並行処理+浮動小数点」仮説である。
この仮説を噛み砕いて説明しよう。
- GPUの超並列処理: 現代のAIを支えるGPUは、何千もの計算コアが同時に稼働する超並列プロセッサーである。LLMが行う膨大な計算は、これらのコアに分散されて一斉に処理される。
- 計算順序の揺らぎ: 多数のコアが同時に計算を終えようとするとき、その完了順序はOSのスケジューリングやチップの微細な状態によって、実行ごとに僅かに変動する。これは「どのコアが一番速くゴールテープを切るか」が毎回変わるようなものだ。
- 浮動小数点数の非結合性: コンピュータが扱う数値、特に小数点を含む「浮動小数点数」には、
(a + b) + cの結果とa + (b + c)の結果が必ずしも一致しない「非結合性」という特性がある。これは、限られた桁数で数値を表現するための丸め誤差が、計算の順序によって異なる形で現れるために起こる。
この3つが組み合わさることで、非決定性が生まれる、というのが従来の通説だった。つまり、GPUコアの計算順序がランダムに変わり、その都度、浮動小数点数の誤差の累積の仕方が変わるため、最終的な出力もビットレベルで異なってしまう、というわけだ。 この説明は直感的にも分かりやすく、多くの技術者に受け入れられてきた。
Horace He氏が投じた一石「その説明は不完全だ」
しかし、Thinking Machines LabのHe氏はこの通説に対し、鋭い疑問を投げかける。もしこの仮説が全てなら、説明できない現象があるではないか、と。
彼は、シンプルな実験結果を提示している。PyTorchのような標準的なライブラリを使い、GPU上で単純な行列乗算 torch.mm(A, B) を1000回繰り返す。すると驚くべきことに、その結果は毎回、ビット単位では完全に一致するのである。
「我々は間違いなく浮動小数点数を使っている。そして、我々のGPUは間違いなく多くの並行処理を行っている。なぜこのテストでは非決定性が見られないのだろうか?」
Horace He, Thinking Machines Lab
この実験は、通説の根幹を揺るがすものだ。GPUと浮動小数点演算が非決定性の「メカニズム」であることは事実かもしれないが、ランダム性を引き起こす「真のトリガー」は別の場所にあるのではないか。He氏の探求は、この素朴かつ本質的な問いから始まった。「個々の部品は決定的(deterministic)なのに、なぜ最終製品は非決定的(nondeterministic)になるのか?」と。
真犯人は「バッチ不変性の欠如」- システムレベルの課題
He氏が突き止めた真犯人は、ハードウェアのミクロな挙動ではなく、ソフトウェアシステム全体のアーキテクチャに潜んでいた。その名は「バッチ不変性の欠如(lack of batch invariance)」である。
あなたのリクエストは孤独ではない:「バッチ処理」の仕組み
我々がChatGPTに質問を投げかけるとき、そのリクエストはサーバー内で単独で処理されているわけではない。LLMの推論サーバーは効率を最大化するため、ほぼ常に世界中の複数のユーザーから送られてきたリクエストを一つのかたまり、すなわち「バッチ」にまとめて処理する。
ここで重要なのは、このバッチのサイズが常に変動しているという事実だ。サーバーの負荷、つまりその瞬間にサービスを利用している他のユーザーの数は、個々のユーザーから見れば完全にランダムで予測不可能である。あなたの質問が、他の7人のリクエストと一緒に処理されることもあれば、次の瞬間には他の255人のリクエストとまとめて処理されることもあるのだ。
「バッチ不変性」という理想と現実
数学的な観点から言えば、あなたのリクエストに対する計算結果は、たまたま同じバッチに含まれた他のリクエストや、バッチの大きさそのものに影響されるべきではない。この「バッチの構成要素(サイズや他のデータ)が変わっても、個々の計算結果はビット単位で同じであるべき」という性質を、He氏は「バッチ不変性(batch invariance)」と呼ぶ。
しかし、現実はこの理想からかけ離れている。He氏が示すように、LLMの推論に使われるGPUカーネル(GPU上で実行される個々の計算プログラム)の多くは、このバッチ不変性を満たしていない。なぜなら、これらのカーネルは性能を極限まで引き出すために、与えられたバッチのサイズに応じて内部の計算戦略を動的に変更するように設計されているからだ。
例えば、256件のリクエストを含む大きなバッチを処理するカーネルは、GPUの全コアをフル活用する高度に最適化されたアルゴリズムを選択する。一方で、8件しかない小さなバッチでは、同じアルゴリズムを使うと多くのコアが遊んでしまい効率が悪い。そのため、カーネルは複数のコアで一つの計算を分担するような、全く異なる戦略に切り替えるのだ。 この戦略変更こそが、非決定性を生む元凶となる。
計算戦略が変われば、内部での浮動小数点数の足し算や掛け算の順序も変わる。前述の「非結合性」により、計算順序が変われば、最終的な結果に無視できない差異が生じる。
犯行の構図:ランダムな負荷 → 変動するバッチサイズ → 変化する計算戦略 → 異なる結果
これで全てのピースが繋がった。非決定性発生の真の因果関係は、以下の通りである。
- ランダムなサーバー負荷: 個々のユーザーにとって、サーバー全体の負荷は予測不可能な変数である。
- 変動するバッチサイズ: サーバー負荷に応じて、リクエストをまとめるバッチのサイズが常に変動する。
- 計算戦略の変化: 性能最適化されたGPUカーネルが、バッチサイズに応じて内部の計算アルゴリズムを切り替える。
- 異なる計算結果: 計算順序が変わることで浮動小数点演算の誤差の出方が変わり、最終的にビット単位で異なる出力が生成される。
つまり、LLM推論サーバー自体は、もし全く同じユーザーリクエストのバッチを再現できれば、同じ結果を返す「技術的には決定的な」システムかもしれない。 しかし、個々のユーザーの視点から見れば、自分以外のリクエストという「制御不能な変数」によって結果が左右されるため、システム全体は「非決定的」となるのだ。
これはもはやGPUだけの問題ではない。CPUやGoogleのTPUで動作するLLMであっても、バッチ処理と性能最適化カーネルを用いる限り、同様の問題が発生しうる、根深いシステムレベルの課題なのである。
決定性へのロードマップ:3つの核心的オペレーションの改革
原因を特定したHe氏は、次にその解決策を提示する。その核心は、性能をある程度犠牲にしてでも、LLMの基本構成要素であるTransformerの各演算カーネルを「バッチ不変」に再設計することにある。
具体的には、リダクション(複数の値を一つにまとめる)処理を含む3つの核心的オペレーション、すなわち「RMSNorm」「行列乗算」「アテンション」の改革が必要となる。
改革①:RMSNorm – 標準化処理の落とし穴
RMSNormは、モデル内の数値のスケールを安定させるための正規化処理だ。この処理では、多数の値を平均化するリダクションが行われる。
従来のカーネルでは、バッチサイズが小さい場合、GPUを飽和させるために「Split-Reduction」という戦略が取られる。これは、一つの正規化計算を複数のコアに分割して並列処理するものだ。しかし、この戦略はバッチサイズに応じて計算順序を変えてしまうため、バッチ不変性を破壊する。
解決策: 最も簡単な方法は、バッチサイズが小さくても常に単一の計算戦略(例えば、一つの処理を一つのコアで完結させるデータ並列戦略)を強制することだ。これにより、たとえGPUの一部がアイドル状態になり性能が僅かに低下しても、計算結果の一貫性は保たれる。
改革②:行列乗算 – LLMの心臓部を再設計する
行列乗算は、LLMの計算の大部分を占める心臓部である。ここでも、バッチサイズが小さい場合に性能を稼ぐため、「Split-K」と呼ばれるリダクション次元での分割戦略が用いられることがある。これもまた、計算順序を変え、バッチ不変性を損なう原因となる。
さらに、NVIDIA GPUのTensor Coreのような特殊な計算ユニットは、効率的に扱えるデータの「タイルサイズ」が決まっており、入力される行列のサイズが小さいと、より小さなタイルを扱う別の命令に切り替えたり、そもそもTensor Coreを使わない戦略にフォールバックしたりする。これらの切り替えもまた、非決定性の源となる。
解決策: あらゆる行列サイズ(シェイプ)に対して、単一の堅牢なカーネル構成をコンパイルし、それのみを使い続けること。特にLLM推論では、モデルの次元数は常に大きいという特性があるため、Split-Kが必須となるケースは限定的であり、このアプローチによる性能低下は許容範囲内に収まることが多いという。He氏らの実験では、このアプローチにより、標準的なライブラリ(cuBLAS)と比較して約20%の性能低下でバッチ不変性を達成できたとしている。
改革③:アテンション – 最も複雑な挑戦
アテンション機構は、文脈を理解するためのTransformerモデルの核であり、最も改革が難しい部分だ。アテンションの計算結果は、バッチサイズだけでなく、入力文の長さ(シーケンス長)や、推論エンジンが長い文章をどう分割して処理するか(チャンク化など)といった、より複雑な要因にも依存してしまう。
特に、過去の計算結果を保存しておく「KVキャッシュ」の扱いが問題となる。推論エンジンによっては、キャッシュ内のデータと現在処理中のデータを別々に計算してから合算することがあり、これが処理の状況によって計算順序を大きく変えてしまう。
解決策: 2段階のアプローチが提案されている。
- KVキャッシュの事前統合: アテンションカーネルを実行する前に、キャッシュと現在のデータを常にメモリ上で一貫したレイアウトに統合する。これにより、処理の状況(プリフィルかデコードかなど)によらず、カーネルは常に同じ構造のデータを扱うことができる。
- 固定分割サイズ戦略: アテンションでも小さなバッチサイズで性能を維持するためにリダクションの分割が必要になるが、ここでも一工夫する。従来の「全体の長さを必要な並列数で均等に割る」戦略ではなく、「常に固定サイズのチャンクに分割し、余りを最後のチャンクで処理する」という「固定分割サイズ」戦略を採用する。これにより、全体の長さが変わっても、各チャンク内部の計算順序は不変に保たれる。
これらの緻密なエンジニアリングによって、ついにバッチ不変なアテンション実装への道筋が示されたのだ。
「予測可能なAI」が拓く未来と、残された課題
Thinking Machines Labの研究は、単なる学術的な探求に留まらない。AIが社会基盤として浸透していく上で不可欠な「信頼性」と「再現性」を、工学的に確立する可能性を秘めている。
企業の信頼を勝ち取るために – 金融・医療分野へのインパクト
同じ入力に対して常に同じ出力を保証する「決定的なAI」は、特に規制が厳しく、高い信頼性が求められるエンタープライズ領域で絶大な価値を持つ。
- 金融: ローン審査や不正取引検知モデルにおいて、なぜその結論に至ったのかを常に正確に再現・検証できることは、監査や説明責任の観点から不可欠だ。
- 医療: 診断支援AIが、同じ患者データに対して毎回同じ見解を示すことは、医師が判断を下す上での最低条件と言えるだろう。
- 法務: 契約書レビューAIの出力が安定しなければ、法的なリスクを評価することはできない。
これまで「AIは気まぐれだから」と導入をためらってきた分野への扉を、この技術は大きく開く可能性がある。
「真のオンポリシー強化学習」への道
He氏の研究は、強化学習(RL)の分野にも大きな影響を与える。RLでは、AIエージェントが生成した応答(サンプリング)を評価し、その結果をモデルの学習にフィードバックする。このとき、サンプリングを行う推論プロセスと、勾配を計算する学習プロセスで、計算結果がビット単位で完全に一致していることが理想(オンポリシー)とされる。
しかし、非決定性が存在すると、両者の計算結果に微妙なズレが生じ、本来のオンポリシー学習が事実上のオフポリシー学習(異なる方策で得たデータで学習すること)になってしまう。これにより学習が不安定になったり、複雑な補正(重点サンプリングなど)が必要になったりしていた。
He氏らの実験では、決定的な推論エンジンを用いることでこのズレをゼロにし、補正なしでも安定して強化学習が進むことを示している。 これは、より効率的で純粋な強化学習の実現に繋がり、Thinking Machines Labが目指す「RLを用いたビジネス向けモデルのカスタマイズ」という目標の核心技術となりうる。
残された課題 – 性能、創造性、そして検証
もちろん、この技術は万能薬ではない。
第一に、性能とのトレードオフが存在する。決定性を確保するために、最適化されたカーネルの一部を諦めることで、He氏らの実験でも約20%の性能低下が見られた。 コストと速度が重視されるアプリケーションにおいて、このトレードオフがどう評価されるかは未知数だ。
第二に、創造性とのバランスという哲学的な問いがある。非決定性がもたらす「揺らぎ」が、AIの創造性や多様な応答を生む一因であったことも事実だ。全てのAIが完全な決定性を備えるべきか、あるいは用途に応じて使い分けるべきか、議論が必要だろう。
最後に、独立した検証の必要性だ。今回の成果は画期的だが、現時点ではThinking Machines Lab内部での報告に留まる。この技術の有効性と汎用性は、今後、より広いコミュニティでの実装と検証を経て、真価が問われることになる。
120億ドルの期待を背負う新星の第一歩
今回の研究発表は、秘密のベールに包まれていたThinking Machines Labが、AIの最も根源的かつ難解な問題の一つに正面から取り組んでいることを世界に示した。彼らが狙うのは、単なるモデル開発競争ではなく、AIという技術そのものの土台をより強固で信頼できるものに作り変えることなのかもしれない。
かつてOpenAIが設立当初に掲げたオープンな研究文化を彷彿とさせる今回のブログ公開は、Murati氏率いるチームの自信の表れだろう。 数ヶ月以内に発表されるという同社の最初の製品に、この決定性技術がどう組み込まれるのか。AIの「気まぐれ」を克服した先にある、真に予測可能で信頼できるAIの世界。その扉は、今、静かに、しかし確かな手応えをもって開かれようとしている。
Sources
- Thinkin Machines: Defeating Nondeterminism in LLM Inference