-- Views
September 29, 26
スライド概要
東京大学松尾・研究室が運営する「松尾研LLMコミュニティ」でのイベント資料などを公開します。 ◾️ 松尾研LLMコミュニティとは 松尾研LLMコミュニティは、「大規模言語モデルについて知って学べるオンライン空間」として、東京大学松尾・岩澤研究室が運営するコミュニティです。 現在、学生を中心とした10,000名以上が、原則無償で参加しています。 また、本コミュニティでは様々なイベント等を定期的に開催しております。 是非下記のリンクより参加申し込みをお待ちしております。 ◾️ 松尾研LLMコミュニティの各種リンク ・今後のイベント開催情報/参加申込;https://tr.ee/7d_W4DsImD ・松尾研LLMコミュニティ参加フォーム;https://tr.ee/RyDfuRzS55 ・過去イベントアーカイブ;https://tr.ee/wqdbFJJZ25
決定論的推論 (Deterministic Inference) in LLM 浮動小数点、多数決の罠、ディベートの本質 異業種データサイエンス研究会 樋口 千洋 ���� 年 � 月 �� 日 松尾研 LLMコミュニティ Paper & Hacks 1 / 35
目次 1 決定論的推論とは何か 2 非決定論の根本原因 3 SGLang の解決策 4 実証実験: モデル横断での決定論性評価 5 多数決の罠 6 ディベート vs 多数決 7 まとめと展望 8 9/15 リリースの Jev の決定論性検証 2 / 35
なぜ決定論的推論が重要か 決定論的推論 =同じモデル・ソフト・チップ・設定・入力に対し、実行条件によらず同じ結果 ※バッチサイズなどの実行条件を含む。HW/SWバージョンを跨ぐ同一性までは意味しない ユースケース 強化学習 (GRPO) :logprobs の再現性 テスト・デバッグ:回帰テストの信頼性 LLM-as-a-Judge :評価の再現性 マルチエージェント :状態遷移の予測可能性 ベンチマーク:結果の普遍的再現性 現状の問題 temperature=0に設定しても LLM 推論は非決定論的である。 Dynamic batching によりバッチサイズが変動 バッチサイズの変動 → GPU カーネルの数値 結果が変化 同じプロンプトでも 異なる出力 が得られる Thinking Machines Lab (����) | Ding et al. (arXiv:����.�����) | SGLang --enable-deterministic-inference 3 / 35
浮動小数点の非結合性 浮動小数点演算には結合律が成り立たない: (a + b) + c ≠ a + (b + c) 具体例 (0.1 + 1e20) - 1e20 # -> 0 0.1 + (1e20 - 1e20) # -> 0.1 桁の大きい数同士を加算すると、 小さい値の情報が丸め落ちする。 3桁精度の例: 1230 + 23.4 = 1253.4を 3桁で丸めると 1250 なぜ順序で変わるのか 有限精度のため、加算時に 指数を揃える過程などで小さい 値が丸め落とされる。順序が変 わると丸めの当たり方が変わる。 これは非決定論の必要条件 だが十分条件ではない →次 ここまでは「順番が変われば答えが変わる」という話。残る疑問は「順番は何で変わるのか?」 スライド 4 / 35
一般的な誤解 vs 真の原因 × 誤解:“Concurrency + FP” 仮説 “GPU は並列計算を行うため、同じ計 算でも 実行のたびに加算順序がランダムに変 わり、結果が異なる” 同じ行列積計算を 1000 回繰り返しても 常に同一の結果 (run-to-run 確定的) 典型的な順伝播の主要な足し合わせ では、 実行順のランダムさは主要因ではない ✓ 今回扱う主要因:バッチ不変性の欠如 バッチ不変性: バッチサイズが変わっても各要 素の結果が不変であること out1 = torch.mm(a[:1], b) out2 = torch.mm(a, b)[:1] print((out1 - out2).abs().max()) # -> tensor(1669.2500) ! バッチ =1 とバッチ =2048 で 同じ行の計算結果が異なる Source: Thinking Machines Lab, Defeating Nondeterminism in LLM Inference (2025) 整理:①足す順番で答えは変わる (前スライドの通り、正しい)②同じ条件なら順番 毎回同じ (ランダムではない)③順番を変える主要因はバッチサイズの変化 →次スライド 5 / 35
バッチ不変性が壊れるメカニズム バッチサイズに応じてカーネルの並列戦略が変わる RMSNorm 行列積 Attention 大きなバッチ: 各行を 1コアに割当 →還元戦略が不変 Split-K: K次元を複数コアに分割 →結合順序が変化 FlashAttention2: Q方向の並列化 →通常はデータ並列 小さなバッチ: 行数 <コア数 → Split reductionに切替 →異なる還元順序 Stream-K: 出力タイルごとに 異なる分割パターン →バッチ位置依存 必要な不変性: batch sizeだけでなく chunked prefill・prefix cache・ KV cacheの分割配置など、 系列の処理の仕方自体に 還元順序を不変に 共通の鍵: バッチサイズが変化 →並列戦略が変わる →浮動小数点の還元順序が変わる →結果が変わる 6 / 35
推論サーバーにおける非決定論の連鎖 ↓↓↓↓ Dynamic Batching: batch_size = 4, 3, 2 … ユーザー A ユーザー B ユーザー C ユーザー D ↓ 負荷変動 ⇒ バッチサイズ変動 Forward Pass (run-to-run確定的) ↓ バッチ不変性 violated 結果がバッチサイズに依存 →非決定論 核心: 負荷の変動 →バッチサイズの変動 →結果の変動 “コンカレンシー + 浮動小数点”仮説は不完全。バッチ不変性の欠如が主要因。 7 / 35
【引用】バッチ不変性欠如の構造 (TML, 2025) 出典: Thinking Machines Lab, Defeating Nondeterminism in LLM Inference (2025), §Batch invarianceより引用 (サイズのみ調整)。サーバ視点では確定的な forward passも、他ユーザのリクエスト (バッチサイズ)に依存するためユーザ視点では非確定的になる。 8 / 35
SGLang: バッチ不変カーネルの統合 Thinking Machines Lab のアプローチ 1 2 3 RMSNorm: データ並列戦略を固定 SGLang での統合 行列積:単一カーネル設定を全形状に使用 (性能損失 ∼20%) python -m sglang.launch_server \ --model Qwen/Qwen3-8B \ --enable-deterministic-inference \ --attention-backend fa3 Backend Attention: Q 方向の並列化を固定し chunked prefill に不変な還元順序を保証 github.com/thinking-machineslab/batch_invariant_ops FlashInfer FA3 Triton CUDA Graph Chunk. Prefill Radix Cache Non-greedy (T>0) ✓ ✓ — ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ GRPO 対応: seed指定で 再現可能な非貪欲サンプリング ※対応 kernel/backend使用時に成立。対応状況 は version依存 9 / 35
TP (Tensor Parallel) 跨ぎの決定論性 Ding et al. (2511.17826): RL 訓練における追加課題 Training Engine (FSDP, TP=1) −−−− → ↙ ↘ 結果 A Rollout Engine (TP=4) bitwise異なり! → RL訓練が不安 定化 Tree-Based Invariant Kernels (TBIK): GPU 間の還元順序を統一二分木構造で揃える TP サイズが変わっても bitwise identical を保証 SGLang でも TP を含む決定論的対応が進行中 (TBIK とは別の実装) 10 / 35
【引用】RL訓練における確率乖離 (Ding et al., Fig. 1) 出典: Ding et al., arXiv:2511.17826, Figure 1より引用 (サイズのみ調整)。 vLLM rollout (TP=8)と FSDP forward (TP=1)が同一応答に与える確率の差 (右:トークン別最 大確率差)を示す。 11 / 35
実験概要: 6 モデル ×21 プロンプト ×3 ラン 研究問い: SGLang の --enable-deterministic-inference は実際にどのモデルで 動作するのか? 対象モデル 環境 NVIDIA RTX PRO 6000 Blackwell (96 GB), TP=1 1 SGLang 0.5.17, --attention-backend triton temperature=0 , sampling_seed=42 , max_tokens=1024 3 2 4 5 6 Qwen3-32B (Dense モデル) Phi-4 14B (Dense モデル) Gemma-3-27B-it (Dense モデル) MedGemma-27B (Dense モデル) Qwen3.8-27B (Dense hybrid: GDN + Attention) gpt-oss-20b (MoE, 21B/3.6B active, fp8) 21 固定プロンプト (7 ジャンル ×3)、3 回ずつ 実行 → 63 ペア / モデル gpt-oss: --moe-runner-backend triton --fp8-gemm-backend triton --disable-flashinfer-autotune 12 / 35
結果 1: Dense vs Hybrid vs MoE — 全体比較 モデル アーキテクチャ 平均類似度 完全一致率 最小類似度 Qwen3-32B Phi-4 14B Gemma-3 27B MedGemma 27B Denseモデル Denseモデル Denseモデル Denseモデル 1.0000 1.0000 1.0000 1.0000 1.000 1.000 1.000 1.000 1.00 1.00 1.00 1.00 Qwen3.8-27B gpt-oss-20b Dense hybrid (GDN) MoE (fp8) 0.9517 0.8454 0.746 0.683 0.520 0.180 本実験条件では Denseモデルは全ペア MD5一致(本実験の全 63実行ペア) 。 MoEの gpt-oss avg 0.845 / min 0.18 (実質的に異なる回答)。“Dense”表記の Qwen3.8も平均 0.952 — 〜非決定的。 13 / 35
結果 2: 初回実行のみ乖離 — cold/warm 経路差の可能性 完全一致ペア数 (21 プロンプト中) ペア gpt-oss-20b Qwen3.8-27B Qwen3-32B 11/21 11/21 21/21 13/21 13/21 21/21 21/21 21/21 21/21 run1 vs run2 run1 vs run3 run2 vs run3 パターンの意味 不一致は 全て run1 に集中 run2 ≡run3: always perfect ランダム性ではなく、初回実行経路差 見立て (仮説・ログ未確認) run1: full prefill (cold radix cache) run2–3: prefix cache hit (fast decode path) カーネル経路が異なり → 浮動小数点還 元順序が変化 MoE も GDN もこの経路差に脆弱 run1 = cold・run2/3 = cache hitは結果からの推定。ここから先は仮説です。 14 / 35
結果 3: 医療ドメインは MoE を保護しない (negative result) ジャンル別 平均類似度 ジャンル 一般知識 創作 数学・論理 金融 医学 プログラミング 法律 Qwen3.8-27B gpt-oss-20b Dense 全 4 モデル 1.0000 1.0000 0.9990 0.9008 0.9886 0.9236 0.8502 1.0000 1.0000 0.8864 0.8912 0.7319 0.7672 0.6412 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 「臨床入力はルーティングが安定する → 決定論が保たれる」は否定的結果 。医療ドメインの gpt-oss は avg 0.73 (min 0.36) — 金融 より低い。法律 (avg 0.64, min 0.18) が最も不安定。 15 / 35
結果 4: 出力長との相関 — なぜ一般知識は完全一致するのか Qwen3.8-27B 不一致ペアの平均出力長: 1,026 字 一致ペアの平均出力長: 473 字 不一致は長い出力に集中 完全一致ジャンル (一般知識,創作)は出力が短 く、不一致ジャンル (法律,プログラミング)は長 い gpt-oss-20b 不一致ペアの平均出力長: 2,092 字 一致ペアの平均出力長: 1,916 字 長さ差は比較的小さいが 不一致ペアは 確実に長い 例外: gpt-ossは出力が全体的に長いため長さ依 存が薄まる —ただし不一致率は高い 見られた関連: 不一致ケースの方が長い。仮説(未検証): 初回の小さな差が、一番確からし い言葉を選び続ける方式で広がり、長いほど目に見えるずれになりやすい。 16 / 35
結論: 決定論的推論はアーキテクチャ依存の経験的性質 核心: --enable-deterministic-inference が完全に機能するのは、実行される全 カーネルがバッチ不変実装を持ち、且つバージョンで修正済みのときのみ。 型 Dense MoE Hybrid/GDN 本実験での結果 4/4 モデルで完全一致 gpt-oss-20b で不一致 Qwen3.8-27B で不一致 決定論性は型そのものではなく、使う全カーネル/裏側方式の実装・版・実行条件に依存 する経験的性質。 実証: determinism_results/summary_*.json 17 / 35
GRPO + 決定論的推論: 非貪欲サンプリングの再現性
seed 指定で再現可能な多様な応答を生成
curl -X POST http://localhost:30000/generate \
-H "Content-Type: application/json" \
-d '{"text": "What is 2+2?",
"sampling_params": {"temperature": 0.8,
"seed": 42,
"max_new_tokens": 16}}'
保証される性質(同一環境・設定・対応部品の場合)
同じ seed → 同一の応答
異なる seed → 多様な応答
バッチサイズが変わっても結果不変
18 / 35
Self-Consistency: 多数決の基礎 Wang et al. (2023, ICLR), arXiv:2203.11171 Self-Consistency: Chain-of-Thought を N 回サンプリングし、最頻出の最終回答を採用 なぜ効果的とされてきたか エラーが独立であると仮定 多くサンプリングすれば正し い回答が過半数を占める 容易なベンチマークでは 実際に効果あり 隠された仮定 正答へのバイアス > 誤答へのバイアス エラーが相関しない 自信 ( 合意度) が 正答率を追跡する 19 / 35
【引用】 Self-Consistency の 3 手順 (Wang et al., Fig. 1) 出典 : Wang et al., arXiv:2203.11171 (ICLR 2023), Figure 1 より引用 ( サイズのみ調整) 。(1) CoT プロンプト、(2) 多様な推論パスのサンプリング、(3) 多数決による 集約。 20 / 35
バックファイア: 多数決が過半数の問題を悪化させる “When Self-Consistency Backfires” (arXiv:2608.11403, 2025) GPQA Diamond (大学院レベル科学問題 198問)での結果 指標 バックファイア率 N = 1の精度 N = 64の精度 最悪問題の損失 最大問題の向上 Qwen2.5-7B Llama-3-8B 56.6% の問題で悪化 0.342 0.369 65.7% の問題で悪化 0.273 0.313 −47pt +66pt −46pt +70pt 集合精度は微増だが、問題個別に見ると過半数が悪化。 少数の問題で大きな向上がある一方、多くの問題で小さく悪化し、平均では相殺される。 21 / 35
【引用】問題別多数決ゲイン分布 (Backfire, Fig. 1) 出典: Bahuguna, arXiv:2608.11403, Figure 1より引用 (サイズのみ調整)。 mv_gain = MV_acc(64)−MV_acc(1)の問題別分布。濃色がバックファイア (Qwen 112/198問、Llama 130/198問)。 22 / 35
̸ なぜ多数決は失敗するか: 自信 = 正答 核心メカニズム: confidence は correctness を追跡しない 合意度ビン 低合意度 中合意度 高合意度 Llama の逆転現象 高合意度ビンの精度が 低合意度ビンより低い 合意度と正答率の間に 単調関係がない “ 自信を持って間違えている” Qwen 正答率 Llama 正答率 40.0% 50.0% 52.5% 35.7% 37.5% 28.6% ↓ Verifier-free ゲートも失敗 合意度ゲート: 精度差 0.002 以下 エントロピーゲート: 同様に効果なし サ “ ンプル数を増やせば単調に改善す る” とは限らない 23 / 35
オラクル上界とルーティングの余地 Grid Oracle 各問題で最適な N ∈ {1, 2, 4, 8, 16, 32, 64}を選択 Oracle精度 N = 1からの改善 Qwen Llama 0.482 +14pt 0.439 +17pt Snell et al. (2408.03314): 困難な問題では 検証を使う探し方は多数決とは 異なる選択肢 問題: このヘッドルームは実現可能か? Grid oracle は正解を知っている → 実用的方法ではない Verifier-free ゲートは 余地の 0.2%–31.2% しか捕捉できない 外部検証者 (PRM, ORM) が必要 多数決は “ノイズの平均化”であり 構造的誤りを修正できない。 エラーパターンが相関しているとき、 サンプル増加は害になる。 24 / 35
【引用】テスト時計算の Compute-Optimal Scaling (Snell et al., Fig. 1) 出典: Snell et al., arXiv:2408.03314, Figure 1より引用 (サイズのみ調整)。上段:反復改訂、下段: PRM verifierに対する探索。左が生成予算に対する精度、右が pretraining拡大との FLOPs matched比較。 25 / 35
̸ ディベート = 多数決: 構造的対比 Irving, Christiano, Amodei (2018), arXiv:1805.00899 多数決の構造: 対称的集約 全サンプルが同等の権重 エラーが系統的なら lock-in 複雑さ: NP の範囲 敵対的検証: なし 信念の更新: なし ディベートの構造: 非対称的対抗 ∃x0 ∀x1 ∃x2 · · · H(q, x0, x1, . . .) 2 エージェントがゼロサムゲームで対抗 “ 嘘をつくより嘘を暴く方が容易” 複雑さ: PSPACE 敵対的検証: 反論による誤りの発見 信念の更新: 反論による更新 ※複雑さの対応は理想条件での理論的アナロジー (Complexity-theoretic analogy) 26 / 35
【引用】ディベート木と囲碁アナロジー (Irving et al., Fig. 1) 出典: Irving et al., arXiv:1805.00899, Figure 1より引用 (サイズのみ調整)。 (a)ディベートの可能木と強いエージェントが選ぶ単一パス、 (b)囲碁の着手木とのアナロ ジー。 27 / 35
ディベートの威力: 複雑さ理論的アナロジー 例: 素数カウント問題 π(x) 直接判断 → Alice: π(x) = 42 → Bob: “[0, x/2)が嘘” → Alice: π(x/4) = 10 → ··· →単一の p まで絞り込み → Hが素数性を検証 → PSPACE 多数決 計算は困難 → NPの範囲 (検証は容易だが 発見は困難) ディベート 各サンプルが π(x)を推定 →系統誤差なら lock-in MNIST 実験結果: 設定 ランダムピクセル (4個) ランダムピクセル (6個) この設定では正直な AIが高い勝率 Judge 精度 正直者の勝率 48.2% 59.4% 85.2% 88.9% 28 / 35
3つの概念の関連性 “同じ入力 →常に同じ出力” —バッチ不変カーネルで実現 SGLang / batch_invariant_ops / TBIK 決定論的推論 ⏐⏐ ↓ 再現可能な確率的推論の基盤 “温度 >0で複数サンプル →多数決” —確定的サンプリングで 再現可能な多数決が可能に Self-Consistency (多数決) ⏐⏐ ↓ 多数決の仮定 (独立性) が崩壊する “対抗的検証 →真実への収束” —回答間の独立性を前提としない別の構造 ※計算量理論との接続はアナロジーとして扱う Debate (ディベート) 確定的推論は再現可能な推論の土台。多数決は集約手法だが難問で裏目に出る。 ディベートは独立性を前提としない敵対的構造。 29 / 35
Key Takeaways 1 2 3 4 温度 0 でも非決定的 バッチ不変性の欠如が主要因 (concurrency 説は不完全) 多数決は安全ではない 困難な問題の過半数でバックファイア (56‒66%) GPQA Diamond で事前登録済み実験により確認 ̸ 合意度 = 正答率 高い合意度は「自信を持って間違えている」場合がある Verifier-free ゲートも効果なし ̸ ディベート = 多数決 ゼロサムの敵対的構造 (PSPACE) vs 対称的集約 (NP) 5 確定的推論はアーキテクチャ依存 今回の 4 Dense モデルは一致、 gpt-oss・ Qwen3.8 は不一致 ( 実証 : 6 モデル ) 6 確定的推論は基盤 再現可能な RL 、ベンチマーク、マルチエージェントの前提 30 / 35
未解決の問題と今後の方向性 未解決問題 推論ネイティブモデル (o1, R1 等 )でも バックファイアは発生するか? 参考文献詳細は最終頁「参考文献」に集約。 引用論文 6件 + SGLangリポジトリ・ドキュメン ト。 Verifier-free な 外部検証信号の探索 (PRM, ORM) ディベート型の 敵対的検証を LLM 推論 パイプラインに統合する方法 Batch-invariant ops の 性能最適化 (現在 ∼20% のオーバーヘッド) 31 / 35
9/15 リリースの Jev の決定論性検証: その 1 動作環境: NVIDIA DGX Spark Table 1: 正答率 (lenient, 1988問, 3回) Run 1 87.02% 85.51% 25.80% 30.58% (A) TypeSafe (B) llama/Qwen3.8-27B (C) laya (D) modernbert Run 2 Run 3 87.07% 85.51% 25.80% 30.58% 87.02% 85.51% 25.80% 30.58% Mean ± std 87.04 ± 0.03% 85.51 ± 0.00% 25.80 ± 0.00% 30.58 ± 0.00% (A)/(B)は 85‒87% で安定。(C)/(D)はチャンスレベル —基盤モデルのドメイン能力が支配的 Table 2: 評価規則別の正答率分解 (run 1) Lenient (1988) Single-only (1690) Multi-lenient (298) First-only (1988) (A) (B) (C) (D) 87.0% 85.6% 95.3% 80.5% 85.5% 84.3% 92.3% 83.7% 25.8% 21.4% 51.0% 22.0% 30.6% 26.9% 51.3% 27.2% Multi-answerは弱いモデルを過大評価 (C: 21%→51%)。single-onlyを主指標とすべき 32 / 35
9/15 リリースの Jev の決定論性検証: その 2 Table 3: レイテンシと再現性 (A) TypeSafe (B) llama (C) laya (D) modernbert (B)(C)(D) Mean Median P95 3回一致 0.60秒 0.71秒 0.022秒 0.026秒 0.59秒 0.64秒 0.017秒 0.026秒 0.68秒 1.16秒 0.037秒 0.053秒 96.6% 100% 100% 100% は完全に決定的。(A) はクラウド側に微小な非決定性。小型モデルは 25–30 Table 4: 汎用ドメイン × 日英テスト (100問 ×2言語) (A) TypeSafe (B) llama/Qwen3.8-27B (C) laya (D) modernbert-310m 日本語 英語 IgakuQA single-only 100% 94.0% 30.0% 60.0% 96.3% 96.0% 38.0% 35.0% 85.56% 84.32% 21.36% 26.92% 両言語でベースライン付近。日英で大きな劣化なし。汎用でも同傾向 — Jevの汎用性が確認された 33 / 35
本資料の作成について: Feynman 本資料の実験・分析・スライド作成には、オープンソースの AI研究エージェント Feynman を用いた。 本資料での利用 文献調査:論文検索・精読・引用図の 抽出 実験の設計・実行・結果集計 (6 モデル × 21 プロンプト × 3 回) Feynman の特徴 根拠優先:論文・公式文書など一次情報を 重視 再現性:手順・コード・成果物を一体で保存 検証の明示:出典確認と修正履歴を残す 公開リポジトリ github.com/Companion-Inc/feynman (The open source AI research agent) 34 / 35
参考文献 引用論文・実験 引用論文 1 Thinking Machines Lab (H. He et al.), Defeating Nondeterminism in LLM Inference , Connectionism Blog, Sep 2025. thinkingmachines.ai/blog/ defeating-nondeterminism-in-llm-inference/ 2 3 4 5 6 Z. Zhang, X. Ding et al., Deterministic Inference across Tensor Parallel Sizes That Eliminates Training–Inference Mismatch , arXiv:2511.17826 (2025). X. Wang et al., Self-Consistency Improves Chain of Thought Reasoning in Language Models , ICLR 2023. arXiv:2203.11171. U. Bahuguna, When Self-Consistency Backfires: Majority Vote Hurts the Majority of Hard Science Problems for Small LLMs , arXiv:2608.11403 (2025). 樋口, extitCan Jev and Its Clones Solve a National Medical Licensing Exam? (2026) 使用したリソース TypeSafe AI ̶ Jev ( 判定専用モデル) github.com/typesafe-ai kishida/llama.cpp (Jev fork) github.com/kishida/llama.cpp IgakuQA ベンチマーク (Kasai et al.) github.com/jungokasai/IgakuQA SGLang・関連リソース リポジトリ github.com/sgl-project/sglang C. Snell et al.,Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters 決定論的推論ドキュメント docs.sglang.io/docs/advanced_ features/deterministic_inference G. Irving, P. Christiano, D. Amodei, , arXiv:1805.00899 (2018). Batch-invariant ops (TML) , arXiv:2408.03314 (2024). ı AI Safety via Debate github.com/thinking-machines 35 / 35 -lab/