Qwen3-TTSの推論速度を最大5倍高めるTritonカーネル融合をオープンソース化
(github.com/newgrit1004)こんにちは。Qwen3-TTS 1.7Bモデルの推論ボトルネックを解消し、約5倍の高速化を実現したTritonカーネル融合ライブラリを作成し、共有します。
1. なぜ作ったのか?(背景)
TTSオーディオを実務で使ったことがある方ならご存じだと思いますが、Qwen3-TTSのような確率的(Stochastic)モデルは、生成結果(イントネーション、トーンなど)が毎回異なります。
そのため実運用では、複数の音声候補をすばやく生成し、その中から最も自然なものを選ぶ多重生成戦略が不可欠です。しかし従来の速度では作業パイプラインがあまりにも遅く、直接最適化に取り組むことになりました。今回の最適化によって、これまで1件作っていた時間で5件の候補を生成できるようになりました。
2. どのように作ったのか?(Claude Code + 徹底したテスト)
正直に言うと、私はカーネル最適化ライブラリであるOpenAI Tritonの強力さは知っていましたが、自分でカーネルコードを書いたことはありませんでした。そこで今回のプロジェクトのカーネルコードは、ほとんどをClaude Codeの支援を受けて作成しました。
その代わり、私自身のTriton実装経験の不足を補い、モデルの信頼性を100%保証するために、コードを書くことよりもテストを徹底的に行うことにすべてのエネルギーを注ぎました。
- 元のモデルと完全に同一の数学的結果を保証するため、90件の単体テストを書きました。
- 主要なチェックポイントレイヤーおよび最終出力のすべてで、Cosine Similarity > 0.997を達成しました。
3. エンジニアリング上のポイントと成果
LinkedInのLiger Kernelに着想を得て、推論時のボトルネックとなる4つの演算(RMSNorm、M-RoPE、Norm+Residual、SwiGLU)をTritonカーネルとして融合しました。
[性能ベンチマーク - RTX 5090基準]
- Base (PyTorch): 3,902 ms
- Hybrid (Faster+Triton): 919 ms(約4.7倍の高速化)
(※ Hybridモードは、CUDA Graphベースのfaster-qwen3-ttsに今回のTritonカーネル融合を組み合わせた結果です。)
4. おわりに
現在は私個人の機材であるRTX 5090環境でのみテストを終えた状態です。もしサーバークラス(A100、H100)やRTX 4090のような別の機材をお使いの方が試してみて、GitHubやコメントでフィードバックをいただけると本当に助かります。
長文を読んでいただき、ありがとうございました!
まだコメントはありません。