ホームへ戻る

推論系統

vLLM‑Omni 0.29 RC、全二重音声を統一ランタイムへ統合。ただしバージイン能力はモデルごとに異なる

新版は、MiniCPM‑o 4.5、PersonaPlex、Nemotron VoiceChatを共通のWebSocket実行レイヤーで提供し、diffusion batching、並列化、コンポーネントのオフロードも追加した。現時点ではまだプレリリース版であり、一部のエンドポイントは警告なしにターン制音声へフォールバックするため、接続の成功だけでは全二重対応と判断できない。

https://www.youtube.com/@_TV10/featured · CC BY 3.0 · Image source
zh-Hant

vLLM‑Omniは9月10日に`0.29.0rc1`をリリースし、9月11日には全二重サービスのドキュメントを整備した。今回の変更では、従来は実験的な位置付けだった音声経路を統一ランタイムに統合。MiniCPM‑o 4.5、PersonaPlex、Nemotron VoiceChatは、永続的なWebSocket sessionを通じて、モデルが音声を出力している最中にも音声入力を受信できる。実行レイヤーは音声の重複、再生確認、接続復旧、session状態を処理する一方、アプリケーション側は引き続き録音、再生、リサンプリング、一部のVADを担う。

既存のOpenAI Realtimeユーザー向けの主要な入口は`WS /v1/realtime?duplex=1`で、低レベルのライフサイクルイベントが必要な場合は、実験的な`/v1/duplex`を利用できる。デプロイ設定では`session_mode: duplex`を明示的に指定し、モデルパイプラインにもduplex adapterを用意する必要がある。注意すべき点として、Realtimeエンドポイントはadapterがない場合、通常のターン制処理へフォールバックする可能性がある。そのため、クライアントは`session.created.session.capabilities`を確認すべきであり、HTTPまたはWebSocket接続の確立に成功しただけで対応能力を判定してはならない。

同じリリース候補版では、非テキストモデルのスケジューリング機能も拡張された。BAGELとBoogu‑Imageにはrequest batchingが追加され、SANA‑Videoではtensor、sequence、CFG parallelismを利用できるようになった。DiTとテキストエンコーダーは、選択的なオフロードにも対応する。マルチステージサービスは集中型の設定パーサーへ移行し、デバイスメモリのチェックとphase lockによる保護のもと、同一場所に配置されたステージを並列初期化できる。

制約も明確だ。PersonaPlexは重複音声を処理できるものの、現時点では`supports_barge_in=false`とされている。再生カーソルの位置で出力を破壊的に中断し、モデルの状態をロールバックできることは、まだ実証されていない。また、session容量はデプロイ用YAMLに依存する。PyPIでは本バージョンがpre-releaseに分類されており、ネイティブプロトコルも今後変更される可能性がある。エンジニアリングチームは、本番環境のturn-based serverを置き換える前に、中断セマンティクス、バックプレッシャー、再接続後の重複排除、GPUメモリのピーク使用量、複数session間の公平性を検証すべきだ。

出典

  1. vLLM-Omni v0.29.0rc1 release notes
  2. Full-Duplex WebSocket API
  3. vllm-omni 0.29.0rc1