応答速度と加速

ReplaySSMとは?Nemotron・Qwenサーバーの生成を速くする仕組み

複数リクエストの回答生成で、繰り返す状態保存を減らします。

ReplaySSMはSSM層が過去の入力を保持する方法を変える推論最適化です。基準の状態と最近の入力を分け、各トークン1で大きな状態全体を書き直す処理を減らします。同時リクエストを処理するハイブリッドモデルのサーバーで検討する技術です。

QwenやNemotronのサーバーに複数の要求が来ると、各会話の状態を繰り返し読み書きします。SSM層は過去の文脈を固定サイズの状態へ要約します。ReplaySSMはこのメモリ読み書きの負担を減らし、トークン生成を速くします。

実行条件と要点
  • 最近の入力をため、定期的に基準状態へ反映して書き込みを減らします。
  • 採用された候補入力だけを残し、speculative decodingの巻き戻しを処理します。
  • 大きなbatchの通常decodeでは、kernelとステップ全体の改善率が異なりました。

状態を毎回保存する代わりに最近の入力をためます

SSM層は新しいトークンを処理すると、過去の状態へ情報を反映します。同時リクエストが増えると、会話ごとの状態を読み書きする量も増えます。ReplaySSMは基準状態のcheckpoint2を持ち、最近の入力を小さなbufferへためます。両方から出力を計算し、bufferがいっぱいになると入力をまとめてcheckpointへ反映します。

NemotronやQwenのハイブリッドモデルにはSSMとattention3が共存します。ReplaySSMが減らすのはSSM状態の読み書きです。重みの量子化4と併用できますが、ファイル容量を減らす設定は別に選びます。

小型デスクトップとPC本体が置かれた作業机
エンジン変更前に同じ入出力で基準時間を記録します。

MTP候補を検証した後の巻き戻しも軽くなります

MTP5や別のdrafterが複数候補を出すと、本モデルは先頭から採用できる部分を決めます。残りを捨てた後は会話の状態も採用トークンへ合わせます。ReplaySSMは最近の入力bufferの末尾を調整して採用部分だけを残し、候補ごとに大きな状態のコピーを保存する負担を減らします。

これはエンジン内部の状態計算と保存を変える最適化です。LiLiCorrは採用されやすい候補を作る側を改善します。候補の採用長と状態検証のコストを分けて記録すると、どの変更が役立ったか分かりやすくなります。

1リクエストと大きなbatchでは結果が異なりました

NVIDIAとPrincetonの研究者はMamba-2とGDNを使う4モデルをvLLMで比較しました。表はspeculative加速なしの通常decode6です。kernel単体とdecodeステップ全体の改善を分けて読むと、サーバーでの効果を把握しやすくなります。

ReplaySSM通常decode・公開実験の範囲
条件結果
Batch 1この実験では速度向上なし
Batch 256・SSM kernel1.46~1.80倍
Batch 256・decodeステップ全体1.20~1.47倍

4BはH100×1、120B級はB300×1・tensor並列なし・FP327 SSM状態・window L=16・tuned vLLM基準

公開実験の通常decodeではBatch 1で速度向上がなく、Batch 256で改善がありました。個人PCでは1リクエストのTTFT8と生成速度を先に測ります。チームのサーバーでは実際の同時数を再現し、各要求の遅延と総処理量を比べます。

ケーブルで接続された2台のデスクトップ
同時処理サーバーでは総処理量と各要求の遅延を比べます。

運用サーバーへ適用するときの比較記録

ReplaySSMはTensorRT-LLM・vLLM・FlashInferに統合されています。使用版が対象モデルのSSM処理に対応するか調べ、テストサーバーで始めます。モデル、入出力長、状態精度、drafterの設定を固定して現在のエンジンを記録し、変更後に同じ要求でTTFT、完了時間、最大メモリ、失敗回数を比較します。

個人PCの高速化なら、まず対応するMTP・DFlashや効率的な量子化を比べてください。複数エージェントが使うサーバーではReplaySSMも候補にし、混雑時の要求がどれだけ早く終わるかまで確認してから移行します。

デスクトップの横に録音機とノートが置かれた机
個人PCでは1リクエストの応答時間を基準に設定を選びます。

用語の注釈

  1. トークン — モデルが入力や出力を分けて処理する単位です。

    本文に戻る
  2. チェックポイント — 学習済みモデルの重みなどを保存したファイルです。同じモデル系列でも、版や用途によって異なるチェックポイントを使うことがあります。

    本文に戻る
  3. Attention — 入力トークン間の関連度を計算し、各位置の情報を現在の表現に反映するニューラルネットワーク演算です。

    本文に戻る
  4. 量子化 — モデルの重みや計算値を少ないビット数で表し、保存容量やメモリ使用量を減らす方法です。表現が粗くなるため、精度にも影響することがあります。

    本文に戻る
  5. MTP — 複数の将来トークンを一度に予測する学習目標、またはそれを行うモデル構成です。投機的デコーディングでは、その予測を候補トークンとして提案できます。

    本文に戻る
  6. トークンのデコード — 入力とそれまでの回答をもとに、次の出力トークンを順に生成する段階です。

    本文に戻る
  7. FP32 — 32ビット浮動小数点形式です。BF16より値あたりのメモリを多く使い、数値をより細かく表現できます。

    本文に戻る
  8. 最初のトークンまでの時間 — リクエスト送信から最初の出力トークンが届くまでの時間です。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
ReplaySSMはSSM層が過去の入力を保持する方法を変える推論最適化です。基準の状態と最近の入力を分け、各トークンで大きな状態全体を書き直す処理を減らします。同時リクエストを処理するハイブリッドモデルのサーバーで検討する技術です。
必要なメモリはどのくらいですか?
ReplaySSMはTensorRT-LLM・vLLM・FlashInferに統合されています。使用版が対象モデルのSSM処理に対応するか調べ、テストサーバーで始めます。モデル、入出力長、状態精度、drafterの設定を固定して現在のエンジンを記録し、変更後に同じ要求でTTFT、完了時間、最大メモリ、失敗回数を比較します。