h3-metal: Apple Silicon 原生 MiniMax-H3 推理引擎
h3-metal 為 Apple Silicon 提供原生的 MiniMax-H3 推理功能,實作了一系列優化的垂直切片技術,包括確定性的主機/模型元數據、可移植的 Metal block 等效性,以及對 prompt-to-video/audio、首/尾幀條件控制和有序參考的端到端支援。該專案專注於在 M3 Max 和 M5 Max 硬體上實現效能與記憶體效率的最大化。
高效能推理預設值
使用者可以透過幾個獨立的控制項來平衡生成速度與輸出品質。預設配置為 20 次去噪次數(denoising passes)、50 個 transformer blocks 以及 1 的重用因子(reuse factor)。
速度與品質權衡
| 控制項 | 慢速參考值 | 預設值 | 激進模式 | 主要影響 |
|---|---|---|---|---|
| 去噪次數 | --steps 50 |
--steps 20 |
--steps 4..7 |
實際去噪次數的總量。 |
| 整體去噪器重用 | --reuse 1 |
--reuse 2 |
--reuse 3 |
減少新的 DiT 評估次數(例如,20 步 $\to$ 11 或 8 步)。 |
| 啟動 DiT Blocks | --layers 50 |
--layers 45 |
--layers 40 |
減少運算量與常駐的 transformer weights。 |
| 核心殘差重用 | --core-reuse 1 |
--core-reuse 4 |
--core-reuse 6 |
每一步都刷新 patch/head 工作,但減少昂貴的核心運算次數。 |
| Token 減少 | Off | Optional | --token-reduction |
在中間層將水平影片 Token 配對;速度較快但可能影響構圖。 |
| 內部畫布 | 輸出尺寸 | 384x384 |
320x320 |
以較小的 DiT/VAE 運行,然後透過 vImage 進行放大。 |
效能基準測試
在 M5 Max 上,針對 512 平方、22 幀的測試進行四次去噪大約需要 3.5 秒,而 29 次去噪的參考值則需要 26.4 秒。在 512 平方畫布上使用 token reduction 將去噪時間從 16.69 秒減少到 12.60 秒。
進階條件控制與媒體支援
h3-metal 支援多種條件控制路徑,以實現超越簡單文字提示詞的影片生成控制。
幀錨定與參考
- FL2VA 路徑: 使用
--first-frame和--last-frame來錨定影片序列的開始與結束。 - Ref2VA 路徑: 透過
--ref-image、--ref-silent-video和--ref-video使用有序參考,以維持主體與場景的一致性。 - 音訊整合: 支援透過
--ref-audio使用獨立音訊參考,或在影片參考中嵌入音訊。音訊輸入總計上限為 15 秒,最多支援三個輸入。
解析度與時長
寬度與高度必須是 32 的倍數,最大乘積為 $768 \times 1344$ 像素。模型會將幀請求向上對齊到特定的時間形狀 ($5 + 17n$)。例如,22 幀會產生大約 0.917 秒的影片(在 24 fps 下),而 243 幀則會產生 10.125 秒。
技術實作與 Metal 優化
h3-metal 引擎採用了多種深層優化技術,以減少 Apple Silicon 上的記憶體佔用並提高吞吐量。
記憶體與權重管理
在 M5 級別的 GPU 上,transformer weights 直接從 safetensor shards 映射,以保持 37 GiB 的模型檔案為檔案後備(file-backed)且可回收。Qwen 文字編碼器使用串流方式,透過由 I/O 工作員填充的未來層緩衝區環形結構,使編碼過程與 Metal 執行重疊。
Metal 4 與 TensorOps
M5 GPU 利用原生的 BF16 Metal 4/TensorOps 進行 DiT QKV 與注意力輸出投影。實作中使用了緊湊的 Morton schedule 來將 Q/K/V 直接路由至 head-major 注意力輸入,從而避免了三次 MPSGraph 輸入轉置。
Int8 量化
預設的 M5 路徑使用原生的 int8 MLP 引擎,具備動態激活量化與每輸出通道的權重縮放。這顯著地將峰值張量儲存從 36.4 GiB (BF16) 減少到 25.9 GiB。進一步的優化包括:
- 量化 QKV: 在 M5 上將去噪時間從 25.80 秒減少到 19.32 秒。
- 融合核心(Fused Kernels): 將 QKV 與 MLP 激活量化整合進前一個 gated AdaLN kernel,在每次 50 層的前向傳播中減少了 99 次獨立的量化器派遣(dispatches)。
社群洞察與替代方案
使用者之間的討論突顯了原生 Metal 實作與通用框架之間的顯著效能差距。
"在我的 128GB M4 Max Mac Studio 上,使用 ComfyUI 中的 MiniMax H3 生成 15 秒 480p 影片需要一個半小時。"
使用者指出,雖然高記憶體配置(例如 128GB)對於達到峰值效能是理想的,但能夠在 Mac 硬體上本地運行這些模型是對於「本地優先」工作流的重要進展,即使專門的 CUDA 硬體仍然更快。
Sources
相關
- 專案
- Dispatch
- Dispatch
- Dispatch
- Dispatch