ローカル音楽生成

ローカル音楽生成の速度とハードウェア比較:RTFの正しい読み方

音楽モデルの速度表は、測定範囲から異なります。モデルを読み込んだ後のサンプリング時間だけを測る表もあれば、歌詞の計画やデコード1まで含む表もあります。RTF2は生成にかかった時間を出力音声の長さで割った値で、リアルタイム倍率はその逆数です。このガイドでは確認できる公式数値だけを並べ、欠けている条件は欠けていると明記します。GPU3を購入する前に、使いたいモデルとソフトウェアのバックエンドがその機器で動くか確認してください。

実行条件と要点
  • RTF = 生成秒数 ÷ 音声秒数です。RTF 0.5は実時間の2倍速、RTF 2は音声の2倍の時間がかかる状態です。
  • モデル読み込み、計画、ボコーダー/VAEデコード、ファイル保存を含むか確認して初めて比較できます。
  • YuE2モデルカードにはRTX 4090のモード別実測とH800での確認結果があります。ACE-Step 1.5の概要主張、旧版ACE-Stepの表、YuE2-TurboのRTX 5090サービング結果は条件や実装が異なるため、共通のGPU順位として読まないでください。

まず同じ種類の出力を比べる

テキストから短い効果音を作るモデル、歌詞を歌うモデル、既存のメロディーを拡張するモデルでは役割が違います。出力の長さや条件も異なるため、生成時間だけの一覧は誤解を招きます。比較する前に、用途、出力時間、ステレオ設定、ボーカルや歌詞の有無をそろえましょう。

たとえば「30秒のボーカルなしシンセポップのループ」が必要なら、各候補がテキスト条件付きの伴奏を生成できるか先に確認します。歌詞付きの曲専用経路と効果音生成経路を無理に同じ順位表に入れないでください。共通の用途に対応するモデルだけを測り、対象外の理由も記録すると購入判断に役立ちます。

出力に合った単位を選びます。1曲を作る場合は1曲あたりの時間と実際の長さを記録し、長い曲を複数区間でつなぐなら区間数と結合時間も記録します。バッチを増やすと1時間あたりの曲数が変わることがありますが、1曲の生成が速くなったとは限りません。1リクエストの待ち時間と全体処理量は別々に報告しましょう。

RTFとリアルタイム倍率は逆方向の指標

RTF(リアルタイムファクター)は、生成にかかった実時間を出力音声の再生時間で割った値です。60秒の音声を30秒で作ればRTFは0.5、つまり実時間の2倍速です。120秒かかればRTFは2で、実時間より遅くなります。リポジトリによっては逆数の「34倍」をRTFと呼ぶ場合もあります。定義と単位を読み、可能なら元の秒数から計算し直してください。

モデル読み込み時間と生成時間を分ける

初回実行にはチェックポイント4読み込み、メモリ確保、コンパイルやカーネル準備が含まれることがあります。モデルを常駐させた後の連続生成ではこの費用が除かれるため、アプリを起動した利用者の待ち時間とは異なります。初回(コールドスタート)とウォームアップ後の実行を分け、利用者が感じる全体待ち時間も別に記録してください。

公式資料で確認できる数値と未記載の項目

以下は公式リポジトリやモデルカードの数値ですが、根拠の詳しさには差があります。旧版ACE-Stepの表とACE-Step 1.5 READMEの速度主張は別バージョンの情報です。後者はプロファイラーで再現した機器別の結果表ではありません。空欄は遅いという意味ではなく、条件を確認できる数値が見つからなかったという意味です。

公式資料で確認したハードウェア速度の根拠と未記載条件
モデル・公式資料機器・実行経路公開された速度・出力条件未記載の条件
ACE-Step(旧版)RTX 4090、MacBook M2 Max。公式リポジトリの推論スクリプト。ランタイム詳細は未記載27 steps:4090は34.48倍(1分生成に1.74秒)、M2 Maxは2.27倍(26.43秒)。60 steps:4090は15.63倍(3.84秒)、M2 Maxは1.03倍(58.25秒)。出典が公開した倍率と分あたりの生成時間チェックポイント/コミット、サンプル数、バッチ、プロンプト、ウォームアップ・読み込みの扱い、反復・ばらつきは未記載
ACE-Step 1.5READMEの主張:A100で「full song」2秒未満(一部条件0.5〜10秒)、RTX 3090で10秒未満。macOS向けMLXスクリプト、プロファイラー資料にCUDA/MPS/CPU、LLM用vLLM/PyTorch/MLXを記載公式プロファイラーは時間・バッチ・thinking・steps、計画/DiT/VAE/保存/全体を計測するが、再現条件付き機器別時間表は未公開full songの長さ、チェックポイント、バッチ、think/steps、cold/warm、指標定義・ばらつきは未記載。概要主張を別版・別機器に一般化しない
YuE2-3B (HF pipeline)モデルカード条件:Linux、Python 3.10+、24GBのBF16対応NVIDIA GPU。HF経路はPyTorch 2.10、Transformers 4.57.6、CUDA graphs/FlashAttention、AR/NAR BF16+VAE FP32、量子化なしRTX 4090:full 71.04秒/音声214.85秒(warm 32回)、melody 68.68/214.67秒、off 57.91/196.88秒。H800:full 54.74/224.96秒(1回)。同期pipeline呼び出しで初回のパス解決と保存は除外。カード記載値GPU結果はモデルカードの機器別測定。H800はn=1。1回に候補1つ。初回読み込み・保存を含む利用者の総待ち時間とは異なる
YuE2-Turboオープンな推論・サービング実装。同一YuE2重み・32 flow stepsと主張。5090単体でのテストRTX 5090 32GB、warm:単一リクエストRTF 0.290→0.173(1.68倍)。4件同時のsystem RTF 0.317→0.096(処理量3.31倍)。PyTorch 2.10/CUDA 12.8/vLLM 0.19/BF16。別の指標プロジェクトREADMEの測定:単一リクエストは3曲×3回、同時処理は4件×3ウェーブ。YuE2標準実装とは異なるサービング経路で、RTX 4090の数値ではない
HeartMuLa-oss-3B公式例の既定はCUDA。モデル/codecの配置指定と遅延読み込みに対応「RTF ≈ 1.0」のみ。機器と出力時間は未記載測定定義、モデル版、長さ、サンプル数、cold/warm条件、Apple経路は未記載
Stable Audio Open 1.0モデルカード例:CUDAまたはCPUのPyTorch。MPS/MLX速度表なし最大47秒、44.1kHzステレオ。tools例は100 steps/30秒、diffusers例は200 steps/10秒。機器別速度は未公開使用例は速度測定ではない。GPU、生成時間、ウォームアップ、全体範囲は未記載
MusicGen / AudioCraftGPU中心の公式案内。mediumモデルは約16GBのGPUメモリを推奨。公式Apple MLX経路なし300M/1.5B/3.3Bモデルを案内。機器別生成時間表は未記載GPU、出力時間、steps/token、デコードの扱い、cold/warm区分は未記載

公式資料で確認したハードウェア速度の根拠と未記載条件

ACE-Step(旧版)

機器・実行経路
RTX 4090、MacBook M2 Max。公式リポジトリの推論スクリプト。ランタイム詳細は未記載
公開された速度・出力条件
27 steps:4090は34.48倍(1分生成に1.74秒)、M2 Maxは2.27倍(26.43秒)。60 steps:4090は15.63倍(3.84秒)、M2 Maxは1.03倍(58.25秒)。出典が公開した倍率と分あたりの生成時間
未記載の条件
チェックポイント/コミット、サンプル数、バッチ、プロンプト、ウォームアップ・読み込みの扱い、反復・ばらつきは未記載

ACE-Step 1.5

機器・実行経路
READMEの主張:A100で「full song」2秒未満(一部条件0.5〜10秒)、RTX 3090で10秒未満。macOS向けMLXスクリプト、プロファイラー資料にCUDA/MPS/CPU、LLM用vLLM/PyTorch/MLXを記載
公開された速度・出力条件
公式プロファイラーは時間・バッチ・thinking・steps、計画/DiT/VAE/保存/全体を計測するが、再現条件付き機器別時間表は未公開
未記載の条件
full songの長さ、チェックポイント、バッチ、think/steps、cold/warm、指標定義・ばらつきは未記載。概要主張を別版・別機器に一般化しない

YuE2-3B (HF pipeline)

機器・実行経路
モデルカード条件:Linux、Python 3.10+、24GBのBF16対応NVIDIA GPU。HF経路はPyTorch 2.10、Transformers 4.57.6、CUDA graphs/FlashAttention、AR/NAR BF16+VAE FP32、量子化なし
公開された速度・出力条件
RTX 4090:full 71.04秒/音声214.85秒(warm 32回)、melody 68.68/214.67秒、off 57.91/196.88秒。H800:full 54.74/224.96秒(1回)。同期pipeline呼び出しで初回のパス解決と保存は除外。カード記載値
未記載の条件
GPU結果はモデルカードの機器別測定。H800はn=1。1回に候補1つ。初回読み込み・保存を含む利用者の総待ち時間とは異なる

YuE2-Turbo

機器・実行経路
オープンな推論・サービング実装。同一YuE2重み・32 flow stepsと主張。5090単体でのテスト
公開された速度・出力条件
RTX 5090 32GB、warm:単一リクエストRTF 0.290→0.173(1.68倍)。4件同時のsystem RTF 0.317→0.096(処理量3.31倍)。PyTorch 2.10/CUDA 12.8/vLLM 0.19/BF16。別の指標
未記載の条件
プロジェクトREADMEの測定:単一リクエストは3曲×3回、同時処理は4件×3ウェーブ。YuE2標準実装とは異なるサービング経路で、RTX 4090の数値ではない

HeartMuLa-oss-3B

機器・実行経路
公式例の既定はCUDA。モデル/codecの配置指定と遅延読み込みに対応
公開された速度・出力条件
「RTF ≈ 1.0」のみ。機器と出力時間は未記載
未記載の条件
測定定義、モデル版、長さ、サンプル数、cold/warm条件、Apple経路は未記載

Stable Audio Open 1.0

機器・実行経路
モデルカード例:CUDAまたはCPUのPyTorch。MPS/MLX速度表なし
公開された速度・出力条件
最大47秒、44.1kHzステレオ。tools例は100 steps/30秒、diffusers例は200 steps/10秒。機器別速度は未公開
未記載の条件
使用例は速度測定ではない。GPU、生成時間、ウォームアップ、全体範囲は未記載

MusicGen / AudioCraft

機器・実行経路
GPU中心の公式案内。mediumモデルは約16GBのGPUメモリを推奨。公式Apple MLX経路なし
公開された速度・出力条件
300M/1.5B/3.3Bモデルを案内。機器別生成時間表は未記載
未記載の条件
GPU、出力時間、steps/token、デコードの扱い、cold/warm区分は未記載

各時間項目が答える問いは異なる

音楽生成には、テキストや歌詞の計画モデル、音声トークン5生成または拡散モデル6、ボコーダーやVAE7デコーダー、保存・変換処理が含まれる場合があります。エンドツーエンド時間は利用者の総待ち時間で、工程別時間はボトルネックを探す診断値です。ACE-Step 1.5の公式プロファイラーはLLM8計画、DiT9拡散、VAEデコード、音声保存、全体の実時間を分けて測れます。

音楽生成を計画、音声合成、デコード、保存に分けたタイムライン
総待ち時間にはモデル準備や音声保存が含まれる場合があります。

YuE2モデルカードのRTX 4090速度をモード別に見る

YuE2公式モデルカードはRTX 4090で3つの生成モードを比較しています。RTX 4090の値はウォームアップ後32回の平均で、GPUメモリはNVMLによる全実行のピークです。音声秒数は各出力の長さ、生成秒数は同期されたpipeline10呼び出し時間です。表のRTFは参考値として生成秒数÷音声秒数で算出しました。カードの説明では初回のパス解決と保存時間を除外しているため、アプリ起動からファイル保存までの待ち時間ではありません。

YuE2-3B公式モデルカードの時間・メモリ測定
機器・モード音声の長さ生成時間算出RTFGPUメモリピーク
RTX 4090 · full214.85秒71.04秒0.33111.18 GiB
RTX 4090 · melody214.67秒68.68秒0.32011.02 GiB
RTX 4090 · off196.88秒57.91秒0.29411.09 GiB
H800 · full(1回)224.96秒54.74秒0.24310.34 GiB

YuE2-3B公式モデルカードの時間・メモリ測定

RTX 4090 · full

音声の長さ
214.85秒
生成時間
71.04秒
算出RTF
0.331
GPUメモリピーク
11.18 GiB

RTX 4090 · melody

音声の長さ
214.67秒
生成時間
68.68秒
算出RTF
0.320
GPUメモリピーク
11.02 GiB

RTX 4090 · off

音声の長さ
196.88秒
生成時間
57.91秒
算出RTF
0.294
GPUメモリピーク
11.09 GiB

H800 · full(1回)

音声の長さ
224.96秒
生成時間
54.74秒
算出RTF
0.243
GPUメモリピーク
10.34 GiB

公平な比較のために実行条件を記録する

同じプロンプトと歌詞、出力時間、サンプルレート、チャンネル、品質設定を使い、チェックポイント、コード版、バックエンド、精度、ステップ数を記録します。機器名だけでなくOSやドライバー/フレームワークの版も残してください。初回とウォームアップ後の実行を分け、複数回測定して中央値と範囲を報告します。失敗、メモリ不足、途中で切れた出力も記録に残します。

最初は小さな記録表で十分です。「モデル/リビジョン、機器、バックエンド、精度、長さ、steps、初回秒数、ウォームアップ後1〜5回の秒数、実際の出力時間、ピークメモリ、状態」を列にします。同じプロンプトと設定を各モデルのリクエストにコピーし、出力ファイルとログに同じ実験IDを付けます。設定を変えた実行は別の行にします。

初回が42秒、その後5回の中央値が18秒、出力が30秒だったとします。ウォーム実行11の一般的なRTFは18÷30=0.60、リアルタイム倍率は約1.67倍です。初回を含む42秒の待ち時間は別に示します。出典が1.67倍と報告している場合は「RTF」という名称だけを写さず、何を何で割った値かも書けば、速度の方向を読み違えません。

測定後は一つの数値だけで勝者を決めず、用途に沿って解釈します。曲を作るたびにアプリを起動するなら初回待ちが重要です。サーバーを常時稼働させるならウォーム実行の中央値や処理量が重要になるでしょう。工程別時間を見れば、長い出力ではDiTや音声トークン生成が支配的か、短い出力では計画や読み込みの固定費が大きいかを確認できます。品質設定や長さを下げて得た速度は、元の条件と分けて示します。

LLMのトークン毎秒から音楽生成速度を推測しない

音楽モデルでは計画工程だけがLLMで、音声そのものは拡散反復、自己回帰12型の音声トークン、デコードで作られることがあります。テキストトークン処理が速い機器でも、別工程が遅い可能性があります。音声生成では、音声フレーム13/トークン毎秒、拡散ステップ、出力時間、エンドツーエンド秒数を合わせて見てください。

ノートPCとグラフィックカードの横にCUDA、MPS、MLXの実行経路カードがある場面
機器の仕様より先に、モデルが対応するバックエンドを確認します。

対応経路と作業量に合わせて機器を選ぶ

NVIDIA CUDA14、Apple MPS、MLX15は互換の名称ではなく、各プロジェクトが実装・対応する必要のある実行経路です。ACE-Step 1.5はCUDA/MPSと、言語モデル向けのvLLM・PyTorch16・MLX経路を文書化していますが、性能は構成ごとに確認が必要です。

YuE2の文書ではLinuxと24GBのBF1617対応NVIDIA GPUが基準です。HeartMuLaの公式例はCUDAが既定です。

Macのユニファイドメモリ18やRTX 5090の仕様だけでは、未確認の対応状況や処理速度は判断できません。

スコアより先に聴き、利用条件を確認する

歌詞の明瞭さ、プロンプトへの追従、曲の構成、音色を一つの普遍的な点数にまとめることはできません。短いサンプルを聴き、用途に合わせて判断してください。モデルの重みとコードでライセンスが異なる場合があります。配布や商用利用の前に該当版の条件と学習データの説明を確認し、権利者の許可がない歌詞・音源・著名人の声を入力・再現しないようにしましょう。

二つの音楽波形を映すノートPC、ヘッドホン、試聴ノートがある机
速度とは別に、求める音楽になっているか実際に聴いて確かめましょう。

用語の注釈

  1. デコードLLMでは入力処理後に出力トークンを生成する段階です。VAEやオーディオコーデックでは、圧縮表現や符号化データから元の形式を復元する処理を指すことがあります。

    本文に戻る
  2. リアルタイム係数生成にかかった時間を出力の再生時間で割った値です。条件をそろえて比べる場合、値が小さいほど生成が速いことを示します。

    本文に戻る
  3. GPU多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。

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

    本文に戻る
  5. トークンモデルが入力や出力を分けて処理する単位です。1トークンが1文字や一定の時間に相当するわけではありません。

    本文に戻る
  6. 拡散モデルノイズを段階的に除去・変換してデータを生成するモデル群です。画像・音声・動画などに使われ、段数や実装はモデルごとに異なります。

    本文に戻る
  7. VAEVariational Autoencoderの略です。入力を圧縮した潜在表現に変換したり、その表現から出力を復元したりします。

    本文に戻る
  8. 大規模言語モデル大量のテキストデータで学習し、テキストを処理・生成する言語モデルです。機能や対応入力はモデルごとに異なります。

    本文に戻る
  9. DiTDiffusion Transformerの略です。Transformer構造を使い、拡散過程でノイズを含む表現を段階的に整えるモデル構造です。

    本文に戻る
  10. パイプライン入力から出力まで続く処理段階のまとまりです。段階ごとに異なるモデルやツールを使うことがあります。

    本文に戻る
  11. ウォーム実行モデルの読み込みと初期化を終えた後の測定です。初回実行時の読み込み時間を含まないことがあります。

    本文に戻る
  12. AR / NARAR(自己回帰)は先行出力を条件に順番に生成し、NAR(非自己回帰)はより並列的に生成する方式です。

    本文に戻る
  13. フレーム動画を構成する1枚の画像です。フレームレートとフレーム解像度は別の属性です。

    本文に戻る
  14. CUDANVIDIA GPUで汎用計算を行うソフトウェア基盤です。CUDA向けのプログラムが他のGPUでそのまま動くとは限りません。

    本文に戻る
  15. MLXApple silicon向けの機械学習フレームワークです。統合メモリ構造を活用し、対応モデルや機能はMLXの各ツールで異なります。

    本文に戻る
  16. PyTorchAIモデルを作成・実行するソフトウェアフレームワークです。モデルと合わせて、対応するPyTorchの版やハードウェアも確認します。

    本文に戻る
  17. BF16モデルの数値を保存・計算する16ビット浮動小数点形式です。利用可否はハードウェアと実行環境によります。

    本文に戻る
  18. ユニファイドメモリCPUとGPUが同じ物理メモリ領域を共有する構造です。メモリ総量が増えるわけではなく、利用可能量はシステムによります。

    本文に戻る