🚀 DFloat11壓縮模型:black-forest-labs/FLUX.1-schnell
這是使用我們自定義的 DFloat11 格式對 black-forest-labs/FLUX.1-schnell
進行 無損壓縮 的版本。該壓縮模型的輸出與原始BFloat16模型 逐位相同,同時將GPU內存消耗降低了約 30%。
✨ 主要特性
- 無損壓縮:壓縮過程完全無損,保證模型輸出與原始模型逐位相同。
- 高效的GPU處理:無需CPU解壓縮或主機 - 設備數據傳輸,所有操作都在GPU上完成。
- 節省內存:減少約30%的GPU內存消耗。
- 快速推理:比CPU卸載方法快得多,適用於內存受限的環境。
📦 安裝指南
- 安裝DFloat11的pip包(會自動安裝CUDA內核;需要支持CUDA的GPU並已安裝PyTorch):
pip install dfloat11[cuda12]
💻 使用示例
基礎用法
import torch
from diffusers import FluxPipeline
from dfloat11 import DFloat11Model
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-schnell", torch_dtype=torch.bfloat16)
pipe.enable_model_cpu_offload()
DFloat11Model.from_pretrained('DFloat11/FLUX.1-schnell-DF11', device='cpu', bfloat16_model=pipe.transformer)
prompt = "A futuristic cityscape at sunset, with flying cars, neon lights, and reflective water canals"
image = pipe(
prompt,
guidance_scale=0.0,
num_inference_steps=4,
max_sequence_length=256,
generator=torch.Generator("cpu").manual_seed(0)
).images[0]
image.save("flux-schnell.png")
📚 詳細文檔
工作原理
DFloat11使用BFloat16指數位的 霍夫曼編碼 來壓縮模型權重,並結合 硬件感知的算法設計,實現直接在GPU上進行高效的即時解壓縮。在推理過程中,權重在GPU內存中保持壓縮狀態,並在 矩陣乘法之前進行解壓縮,使用後 立即丟棄 以最小化內存佔用。
關鍵優勢
- 無需CPU解壓縮或主機 - 設備數據傳輸:所有操作都完全在GPU上處理。
- DFloat11比CPU卸載方法快得多:能夠在內存受限的環境中進行實際部署。
- 壓縮完全無損:保證模型的輸出與原始模型 逐位相同。
更多信息
🔧 技術細節
屬性 |
詳情 |
模型類型 |
基於black-forest-labs/FLUX.1-schnell 的無損壓縮版本 |
訓練數據 |
未提及 |
壓縮格式 |
DFloat11 |
壓縮方法 |
霍夫曼編碼結合硬件感知算法 |
內存節省 |
約30%的GPU內存消耗 |
輸出一致性 |
與原始BFloat16模型逐位相同 |