SGLang-Omniで音声・マルチモーダルモデルの高速推論を設定する方法
本番環境に最新の音声モデルやマルチモーダルモデルをデプロイしようとしたことがある人なら、この痛苦は周知のはずです。テキストLLMのサービングはすでに確立されており、vLLMやSGLangを導入してバッチ処理を設定すれば準備完了です。しかし、音声がパイプラインに入ると、すべてが崩壊します。
音声モデルは単なる単一のトランスフォーマーではありません。まず音声エンコーダがあり、次に自己回帰ブロック(「シンカー」)が続き、その後に音声生成モジュール(「トーカー」)が続きます。出力には、クリーンな48kHzの音声トークンをアセンブルするボコーダもあります。各ステージにはそれぞれ独自のワークロードプロファイル、メモリ要件、レイテンシ要件があります。これを標準的なテキスト推論エンジンに押し込めようとすると、遅延が深刻化し、音声生成のFPSが不安定になるのは確実です。
SGLangチームは、このタスク向けに specialized solution をリリースしました — SGLang-Omniです。
SGLang-Omniとは
これは、オムニ、音声、TTSモデルのマルチステージ推論用のランタイムです。このプロジェクトは、複雑な計算パイプラインの管理、ステージ間のデータ転送、OpenAI仕様互換のすぐに使えるAPIの提供という、最も困難な部分を処理します。
主な特徴はマルチステージランタイムの概念にあります。すべてのパイプラインをモノリシックなプロセスに詰め込もうとする代わりに、SGLang-Omniは生成を分離されたフェーズに分割します:
- 入力ストリームの前処理
- エンコーダ処理
- SGLangカーネルベースの自己回帰エンジン
- 最終音声をアセンブルするデコーダとボコーダ
- 結果アグリゲータ
各ステップはそれぞれのスケジューラによって処理されます。例えば、テキスト生成や制御トークン生成はKVキャッシュサポートを備えたSGLangの最適化スケジューラで実行され、ボコーダはクライアントに音声チャンクを即座に配信する軽量ストリーミングループで動作します。
オーバーヘッドのないデータ転送
モデルが複数のコンポーネントに分割されている場合、GPU間またはプロセス間のテンソル転送がボトルネックになることが多いです。中間データを通常のCPU RAM経由でルーティングすると、リアルタイム対話のレイテンシが許容できなくなります。
SGLang-Omniでは、トランスポートレイヤが分離されています。コントロールプレーンはリクエストを同期し、データプレーンは最適化されたバックエンドを通じて転送されます:ローカルプロセスの場合は共有メモリ、分散運用の場合はNCCL、NIXL、Mooncakeです。これにより、ステージ間のオーバーヘッドを最小限に抑えます。
標準でサポートされているモデル
利用可能なモデルのセットは印象的で、特にリポジトリが積極的に開発されていることを考えるとそうです。すでに一般的なアーキテクチャ向けの готовые recipes(調理法)が含まれています:
- オムニチャット: Qwen3-OmniとMing-Omni。マルチモーダル入力(テキスト、音声)を受け取り、テキストまたはストリーミング音声を出力します。
- 音声合成(TTS): Higgs Audio v3、MOSS-TT(ネイティブ48kHzオーディオ対応のLocal Transformer v1.5バージョンを含む)、Fish Speech S2-Pro、Qwen3-TTS、Voxtral TTS、dots.tts、ZONOS2。
- 音楽生成: テキストとスタイル説明から32kHzステレオトラックをアセンブルできるMiniMax Music 3。
- 音声認識とダイアリゼーション(ASR): Qwen3-ASR、Fun-ASR、ARK-ASR、MOSS-Transcribe-Diarizeで、タイムスタンプと話者ラベルをJSON形式で配置可能。
これらすべては、/chat/completions、/audio/speech、/audio/transcriptions といった馴染みのあるエンドポイントでデプロイされます。すでにOpenAI API用のクライアントを作成しているなら、独自のバックエンドへの切り替えはできるだけシンプルに。
クイックスタートと起動
パッケージはPyPIで利用可能で、pipでインストールするのが最も簡単です:
本番環境では、プロジェクト独自のルータ(SGLang-Omni Router)を備えています。ワーカーの健全性/準備状態チェック、複数のGPUノード間での負荷分散、特定のインスタンスの能力に基づくリクエストルーティングを処理します。
ハードウェアに関しては、NVIDIA CUDAが主要なバックエンドのままです。しかし、開発者はPyTorch XPU経由でIntel GPU(XPU)の実験的サポートを追加しました。Qwen3-ASR、Qwen3-TTS、Qwen3-Omni(推論ブロックのテンソル並列処理を含む)はすでにIntel Arcカードで動作します。
このプロジェクトが今すぐ誰役に立つのか
音声アシスタント、リアルタイム翻訳、話者ダイアリゼーション付きの通話文字起こしサービス、コンテンツ吹き替えプラットフォームを構築している場合、FastAPIと生スクリプトで車輪の再発明をする必要はもうありません。
このプロジェクトはまだ若く、リポジトリには数百の未解決issueがあり、ドキュメントは時にはソースコードを参照しています。しかし、背後には強力なLMSYSチームとSGLangエコシステムがあり、アーキテクチャは堅実です。特にストリーミング対話で最初の音声トークンまでの時間を最小化する必要があるなら、試す価値は十分あります。
関連プロジェクト