h3-metal: Apple Silicon向けネイティブ MiniMax-H3 推論
h3-metal は、Apple Silicon 用のネイティブ MiniMax-H3 推論を提供します。決定論的なホスト/モデルメタデータ、ポータブルな Metal ブロックのパリティ、そして prompt-to-video/audio、first/last-frame conditioning、および ordered references へのエンドツーエンドのサポートを含む、最適化された垂直スライスの一連の実装を行っています。このプロジェクトは、M3 Max および M5 Max ハードウェア上でのパフォーマンスとメモリ効率の最大化に焦点を当てています。
高パフォーマンス推論プリセット
ユーザーは、いくつかの独立したコントロールを通じて、生成速度と出力品質のバランスを調整できます。デフォルトの設定は、50 個の transformer blocks と reuse factor が 1 の 20 回の denoising passes です。
スピードと品質のトレードオフ
| Control | Slow Reference | Default | Aggressive | Main Impact |
|---|---|---|---|---|
| Denoising Passes | --steps 50 |
--steps 20 |
--steps 4..7 |
実際の denoising passes の総数。 |
| Whole Denoiser Reuse | --reuse 1 |
--reuse 2 |
--reuse 3 |
新しい DiT 評価の回数を減らします (例: 20 steps $\to$ 11 または 8)。 |
| Active DiT Blocks | --layers 50 |
--layers 45 |
--layers 40 |
計算量と常駐する transformer weights を削減します。 |
| Core Residual Reuse | --core-reuse 1 |
--core-reuse 4 |
--core-reuse 6 |
各ステップで patch/head の作業を更新しますが、高コストな core を実行する頻度を下げます。 |
| Token Reduction | Off | Optional | --token-reduction |
中央のブロックで水平方向のビデオトークンをペアにします。高速化されますが、構成に影響を与える可能性があります。 |
| Internal Canvas | Output Size | 384x384 |
320x320 |
DiT/VAE をより小さく実行し、その後 vImage を介してアップスケールします。 |
パフォーマンス・ベンチマーク
M5 Max 上では、512-square、22-frame のテストにおいて、4 回の denoise が約 3.5 秒かかりました。これは、29 回の denoise を行う reference 設定と比較して 26.4 秒でした。512-square の canvas 上で token reduction を使用すると、denoise 時間が 16.69 秒から 12.60 秒に短縮されました。
高度な Conditioning とメディア・サポート
h3-metal は、単純なテキストプロンプトを超えてビデオ生成を制御するための、複数の conditioning パスをサポートしています。
Frame Anchoring と References
- FL2VA Path:
--first-frameと--last-frameを使用して、ビデオシーケンスの開始と終了を固定します。 - Ref2VA Path:
--ref-image、--ref-silent-video、および--ref-videoを介した ordered references を使用して、被写体と設定の一貫性を維持します。 - Audio Integration:
--ref-audioを介したスタンドアロンのオーディオ・リファレンス、またはビデオ・リファレンス内の埋め込みオーディオをサポートします。オーディオ入力は、最大 3 つの入力全体で合計 15 秒までに制限されます。
解像度と期間
幅と高さは 32 の倍数である必要があり、最大積は $768 \times 1344$ ピクセルです。モデルは、フレーム要求を特定の時間的形状 ($5 + 17n$) に向かって上方修正して整列させます。例えば、22 フレームは 24 fps で約 0.917 秒のビデオになり、243 フレームは 10.125 秒になります。
技術的実装と Metal の最適化
h3-metal は、Apple Silicon 上でのメモリ使用量を抑え、スループットを向上させるために、いくつかの深いレベルの最適化を採用しています。
メモリと Weight 管理
M5 クラスの GPU では、transformer weights は safetensor shards から直接マップされ、37 GiB のモデルファイルをファイルバックアップとして保持し、再利用可能にします。Qwen テキストエンコーダーは、I/O ワーカーによって埋められる将来のレイヤー・バッファのリングを使用したストリーム方式を採用しており、エンコーディングと Metal 実行をオーバーラップさせます。
Metal 4 と TensorOps
M5 GPU は、DiT QKV および attention-output プロジェクションのために、ネイティブ BF16 Metal 4/TensorOps を利用します。実装では、コンパクトな Morton schedule を使用して Q/K/V を head-major attention 入力に直接ルーティングし、3 つの MPSGraph 入力トランスポーズを回避します。
Int8 量子化
デフォルトの M5 パスは、動的な活性化量子化と出力チャネルごとの weight scales を備えたネイティブ int8 MLP エンジンを使用します。これにより、ピーク・テンソル・ストレージが 36.4 GiB (BF16) から 25.9 GiB に大幅に削減されます。さらなる最適化には以下が含まれます:
- Quantized QKV: M5 上での denoising 時間を 25.80 秒から 19.32 秒に短縮します。
- Fused Kernels: QKV と MLP 活性化量子化を、直前の gated AdaLN カーネルに統合し、50 レイヤーのフォワードパスにおいて 99 個の独立した quantizer dispatch を削除します。
コミュニティの洞察と代替案
ユーザー間の議論では、ネイティブ Metal 実装と汎用フレームワークとの間の大きなパフォーマンス・ギャップが浮レ彫りになっています。
"On my 128GB M4 Max Mac Studio, generating a 15s 480p video with MiniMax H3 in ComfyUI takes an hour and a half."
ユーザーは、高いメモリ構成(例: 128GB)がピーク・パフォーマンスに理想的である一方、Mac ハードウェア上でこれらのモデルをローカルで実行できることは、ローカル・ファーストのワークフローにとって、たとえ専門的な CUDA ハードウェアがより高速であっても、重要な進歩であると指摘しています。
Sources
関連
- プロジェクト
- Dispatch
- Dispatch
- Dispatch
- Dispatch