在 Mac 上使用進階 Core ML 量化的 Stable Diffusion XL
Hugging Face 與 Apple 已發布 Stable Diffusion XL 的 Core ML 移植版,使得在 Apple Silicon Mac 上能夠生成高品質 1024x1024 圖像。此版本引入了混合位元調色板量化,這是一種壓縮技術,能顯著降低模型大小和記憶體需求,而不會像均勻量化那樣造成嚴重的品質損失。
Core ML 實作與效能
Stable Diffusion XL 現在已以 Core ML 格式提供,使其能在執行 macOS 14 公測版的 Apple Silicon Mac 上的 Swift 應用程式中原生運行。該實作目前使用了專為 CPU 與 GPU 運算單元設計的 ORIGINAL 注意力實作。請注意,精煉階段尚未移植。
硬體效能基準
在使用 CPU_AND_GPU 運算單元和 ORIGINAL 注意力實作時,端到端延遲與擴散速度會隨設備而異:
| 裝置 | 端到端延遲 (s) | 擴散速度 (iter/s) |
|---|---|---|
| MacBook Pro (M1 Max) | 46 | 0.46 |
| MacBook Pro (M2 Max) | 37 | 0.57 |
| Mac Studio (M1 Ultra) | 25 | 0.89 |
| Mac Studio (M2 Ultra) | 20 | 1.11 |
混合位元調色板技術
混合位元調色板量化是一種事後訓練量化方法,透過根據各層對輸出品質的影響分配不同的位元深度來優化模型大小。與標準的 6 位元調色板量化(會套用統一位元深度)不同,混合位元調色板量化會決定每層的最佳位元數,以最小化品質下降。
混合位元調色板量化的運作方式
該流程包含兩個主要階段:
- 分析階段:系統會檢查每一層並測試各種位元深度(1、2、4、8 位元)。透過使用一組輸入來比較量化模型與原始
float16模型的峰值訊號對雜訊比(PSNR),來量化品質下降。目標是找出每層能保持 PSNR 高於特定閾值的最低位元深度。 - 應用階段:`