同じモデルなのにローカル版が劣る理由、推論スタックの数値差に注目
導入
同じ重みを使っているのに、ローカルで動かすとモデルが「賢くない」と感じるのはなぜか。Level1Techsフォーラムのユーザーthr3eが行った実験は、その原因がモデルの重みではなく、推論スタックにある可能性を示した。Qwen3.6-27BをRTX PRO 6000 Blackwellで実行し、実際のAgentワークフローから10万Token超のlogitを取得。注意機構のバックエンド、KVキャッシュの精度、重みの量子化、テンソル並列を比較した。
Logitは、各候補Tokenに対するモデルの生のスコアである。理論上は同じ重みと入力から同じ値が得られるが、浮動小数点精度、加算順序、CUDAカーネル、GPU間のリダクション処理が微小な差を生む。短い入力では見えにくい差も、長い文脈では累積し、後続の判断を変えることがある。
主なポイント
- 注意機構の実装で出力が変わる。 FlashAttention 2、Flash Inference、Triton Attentionは序盤ではほぼ同じ出力だったが、文脈が伸びるにつれてTop-1の選択が分岐した。あるツール呼び出しではインターフェース名を誤り、その後のコマンドにも誤りが連鎖した。
- KVキャッシュの圧縮には注意が必要だ。 報告されたテストではBF16が安定し、INT8は一部で反転したものの回復した。一方、INT4は長文脈で差が大きくなり、ツール呼び出しの軌道を戻せなかった。
- 低ビット化が常に有利とは限らない。 テスト対象のコミュニティ製INT8 W8A16は、公式FP8およびNVFP4より高いTop-1一致率を示した。BF16の活性値を維持し、一部の層を量子化対象から外したことが要因と分析されている。ただし、すべてのモデルやGPUに当てはまる順位ではない。
- マルチGPUにも数値差がある。 同じBF16重みでも、TP1、TP2、TP4で結果が異なった。実験ではNCCLによるGPU間リダクションの差が関係すると説明されている。
意味と影響
推論結果を決めるのはチェックポイントだけではない。コンテナにはPython、CUDA、通信、コンパイル関連の多くのソフトウェアが含まれ、実際に使われる計算経路を左右する。KLダイバージェンスの数値も、参照チェックポイント、実行環境、文脈長、サンプリング位置、校正データ、集計方法が示されなければ比較は難しい。
量子化やローカル推論を避けるべきだという意味ではない。コード実行、ツール利用、長文脈Agentを評価するなら、短い質問応答だけでは不十分だということだ。開発者は各バージョンと設定を固定し、注意バックエンド、KV精度、量子化方式、並列度、ドライバー、ハードウェアを記録したうえで、自分のタスクによるlogitまたは行動回帰テストを行う必要がある。
出典:QbitAI
コメント
ログイン状態を確認中…
コメントを読み込み中…