世界を動かす技術を、日本語で。

Nvidia GPUでの「GPT-OSS-120B」を1秒間に500トークンで実行する

2025年8月7日原文(baseten.co)

概要

  • OpenAIの新しいオープンソースLLM「gpt-oss-120b」 のリリース当日に最高性能を目指した最適化事例
  • NVIDIA GPU上でのレイテンシ・スループット で業界リーダーとなった実績
  • TensorRT-LLM、vLLM、SGLang など複数のフレームワークを活用したベンチマークと互換性確保
  • バグ修正・パフォーマンス改善 を迅速に繰り返し、オープンソースコミュニティにも貢献
  • 今後の最適化方針と採用情報 についても言及

OpenAI GPT-OSS-120Bパフォーマンス最適化事例

  • OpenAIのgpt-oss-120b リリース直後から顧客向けに最適なパフォーマンスを追求
  • OpenRouterの実データ によると、NVIDIA GPU上でレイテンシ・スループット共に業界トップ
  • 柔軟な推論スタック とモデルパフォーマンスエンジニアリングチームによる迅速な改善体制
  • 数時間単位でトークン生成速度を向上 し、稼働率100%を維持
  • TensorRT-LLM、vLLM、SGLang など複数の推論フレームワークでベンチマーク実施
  • HopperおよびBlackwellアーキテクチャ との互換性を確保し、幅広いGPUサポートを実現
  • NVIDIA DynamoやKVキャッシュ対応ルーティング、Eagleによる推測デコーディング など独自最適化も導入

モデル推論最適化のステップ

  • Step 1: ベースライン推論の実行

    • 新モデル対応の推論フレームワーク・ハードウェア・サーバーの準備
    • 複数エンジニアが並列でvLLM、SGLang、TensorRT-LLM を検証
    • TensorRT-LLMの開発版 を活用し、Hopper/B200両方のGPUで稼働
    • 柔軟性の高いBaseten Inference Runtime により、新アーキテクチャにも素早く対応
  • Step 2: 互換性バグの修正

    • 新アーキテクチャやHarmony形式 対応で発生するバグの修正
    • 速度・正確性を重視した反復的なテストと修正
    • オープンソースコミュニティへバグフィックスを還元
    • 多様なOSS推論フレームワークの急速な改善 により安定稼働を実現
  • Step 3: モデル設定の最適化

    • GPT-OSS-120Bは単一H100でも稼働可能 だが、4~8枚GPUの並列化で性能向上
    • Tensor ParallelismとExpert Parallelism の比較検証
      • Tensor Parallelismは低レイテンシ
      • Expert Parallelismは高スループット
      • レイテンシ重視のため Tensor Parallelismを選択
    • TensorRT-LLM MoE Backend の採用でCUDAカーネル最適化(Blackwell対応、Hopper非対応)
    • モデルライブラリに最適化済み設定をパッケージ化 し、API提供も実施

今後のパフォーマンス最適化と展望

  • 現状でもSOTAのレイテンシ・スループット を達成
  • Speculative Decoding(推測デコーディング) の導入を検討
    • Eagle 3 など10種類以上のアルゴリズムに対応
    • ドラフトモデルで先読みし、ターゲットモデルで検証 することで推論速度を大幅向上
  • モデルパフォーマンスエンジニアを積極採用中
  • AIエンジニアリングチーム向けに最適化支援サービス も提供
    • GPT-OSS-120Bや他のオープンソース・カスタムモデルの最適化 相談受付

まとめ

  • gpt-oss-120bのリリース初日からSOTA性能を実現
  • 柔軟な推論基盤・積極的なバグ修正・最適化ノウハウ が鍵
  • 今後もさらなる最適化と技術革新 を推進

Hackerたちの意見

すごく興味深い記事だね。モデルがうまく動くようにするために、どれだけマッサージが必要か全然気づかなかったよ。てっきり、そのまま使えるもんだと思ってた。

個人的には、大きな企業はもっと積極的に動いて、人気のある推論エンジンの開発者たちと協力して、リリース前に特別なLLMを動かすべきだと思う。結局のところ、すべてが実験的な感じだしね。あの開発者たちは、私たちが予算に優しいハードウェアで使えるように神の仕事をしてくれてるんだ。

今朝は特に頭が回ってないのかもしれないけど、投機的デコーディングの意味がわからない。ターゲットモデルは、通常通り推論を行わずにドラフトトークンをどうやって検証するの? もしそれをやってるなら、ドラフトトークンが検証される前は信頼できないから、結局ターゲットモデルを待つことになるじゃん。

確かに推論は行うけど、ドラフトされたトークンのバッチに対して、プレフィルフェーズに似た形で行うんだ。だから、ドラフトモデルがN個の新しいトークンをデコードした後、実際のモデルがそのN個の新しいドラフトトークンをスコアリングするために1回の推論を行うんだ。プレフィルは計算に依存していて、デコードは帯域幅に依存してるから、実際にはN個のトークンに対して1回のプレフィルを行う方が、N回のデコードを行うよりも安上がりなんだ。

専門家じゃないけど、私の理解はこんな感じ。入力トークンが出力トークンより安いって知ってる?それに関係してるんだ。例えば、モデルが「フランスの首都は」と言ってるとするよ。小さいモデルが「パリです。」を生成するんだけど、これが5トークンだとしよう。大きいモデルには「フランスの首都はパリです。」を渡して、5つのトークンを一度のフォワードパスで検証するんだ。

私の簡単な理解では、ターゲットモデルはドラフトトークンを一度のフォワードパスで一気に検証できるんだ。そのフォワードパスの出力は、各ドラフトトークンの確率リストで、それがドラフトモデルが出した確率と比較される。もしターゲットモデルの確率がドラフトモデルと同じかそれ以上なら、そのトークンは受け入れられる。最悪の場合、ドラフトトークンが一つも受け入れられず、ターゲットモデルが通常通り次のトークンを選ぶことになる。

あなたの誤解の核心は、1トークンを生成するのにK回呼び出すのが、Kトークンを生成するのに1回呼び出すのと同じくらい高いと思ってることだと思う。実際には、シリアルで生成する方が小さなバッチで生成するよりもずっと高コストなんだ。

例えば、f2(f1(x))を実行したいとするよ。f1とf2はどちらもGPT4を1回通過するものだと仮定して、これには2秒かかる。1回の通過に1秒かかるとしたらね。代わりに、f1(x)を別のスレッドで起動して、g1はGPT-nanoを1回通過するものとしてf2(g1(x))を実行することにする。これには1 + 0.1秒かかる、gpt nanoが1回の通過に0.1秒かかると仮定してね。この1.1秒の間に、2番目のスレッドで起動したf1(x)が終わってるはず(1秒かかるから)。だから、1.1秒でf1(x)とf2(g1(x))が利用できるし、中間のg1(x)も保存しておく。g1(x)とf1(x)を比較する。もし等しいなら、つまりg1(x) = f1(x)なら、答えはf2(g1(x))で、たった1.1秒で出る。もし等しくなければ、2番目のスレッドからのf1(x)の出力に対してf2を計算することになり、さらに1秒かかるから合計で2.1秒になる。小さいモデルが大きいモデルと2/3のケースで等しいなら、この計算には平均で2/3 * 1.1 + 1/3 * 2.1 = 1.433秒かかる。投機的デコーディングがない場合は、常に2秒だね。

ターゲットモデルは、通常通り推論を実行せずにドラフトトークンをどうやって検証するの? ちゃんと通常通り推論を実行してるよ、他の推論と並行してね。 > それをやってるなら、何がポイントなのか分からないな。 並行して推論を実行することで、N回の並行推論のためにモデルの重みをメモリから一度だけ読み出せるんだ。これに対して、N回の直列推論のためにはN回もメモリから読み出さなきゃいけない。推論はメモリ帯域幅に大きく制約されるから、計算に比べて1桁か2桁も遅くなることがあるんだよ。だから、これがすごく助けになるんだ。

ちょっと提案したいんだけど、LLMに聞いてみて! o3みたいな推論モデルにアクセスできるなら、すごく役立つよ。今までのスレッドの中で人間が生成した回答と同じくらい良いと思うけど、実際の力はフォローアップの質問ができるところだね。 https://chatgpt.com/share/6894504f-4458-8008-a8c9-f371588259...

これを読んで、GPT-OSS 20Bのセットアップがどれだけ簡単かに気づいたよ。Llamaのおかげで、5分でMacで動かせたんだ。

リソースがあれば、CPUで120Bを動かすのも簡単だよ。GGUFをダウンロードして、git pullして、llama-serverを再構築するのにかかった時間と同じくらいで、家のLLM CPU推論ボックスで120Bを動かせた。特に努力せずに40t/sで動かせて、ちょっと調整したら50t/sにもなった。残念なのは、120Bですら他のモデルに比べてあまり価値がないってことだね。ggerganovとllama.cppチームが、巨大なGPUファームを持てない個人のためにLLMを民主化したのは本当にすごいことだよ。

Hacker Newsで議論の続きを見る