Buckets:
BFL (fp8r / nvfp4)
Black Forest Labs, Flux3 dönüştürücülerinin kuantize edilmiş varyantlarını iki şema ile sunar; bunlar, orijinal bf16 ağırlıklarının yanında tek dosyalık kontrol noktaları olarak saklanır:
fp8r: satır bazlı FP8. Her kuantize doğrusal, bir E4M3weightve satır başına bir fp32weight_scalesaklar. Aktivasyonlar çalışma zamanında satır bazında E4M3'e kuantize edilir.nvfp4: ModelOpt yerleşimindeki NVFP4. Her kuantize doğrusal, paketlenmiş E2M1weight(bayt başına iki değer), 16'lı E4M3 blok ölçekleri (weight_scale), küresel fp32weight_scale_2ve kalibre edilmiş fp32 aktivasyon ölçeğiinput_scalesaklar.
Diffusers, her ikisini de BFLQuantizationConfig ile ~FromSingleFileMixin.from_single_file üzerinden yükler. Şema, checkpoint'ten okunduğu için aynı yapılandırma her iki dosya için de geçerlidir. Yalnızca önceden kuantize edilmiş checkpoint'lerin yüklenmesi desteklenir; pipeline düzeyinde yükleme desteklenmez.
Aşağıdaki örnek, model deposundaki variants/fp8r/model.safetensors konumunda bulunan FLUX 3 Image Klein Base'in fp8r kontrol noktasını yükler. Model yapılandırmasının o depodaki Diffusers klasöründen okunması için config parametresini iletin, ardından diğer bileşenleri adlarıyla yükleyin (bkz. Single-file loading).
import torch
from diffusers import BFLQuantizationConfig, Flux3Transformer2DModel, ModularPipeline
ckpt_path = "https://huggingface.co/black-forest-labs/flux-3-image-klein-base/blob/main/variants/fp8r/model.safetensors"
transformer = Flux3Transformer2DModel.from_single_file(
ckpt_path,
config="black-forest-labs/flux-3-image-klein-base",
subfolder="transformer",
quantization_config=BFLQuantizationConfig(compute_dtype=torch.bfloat16),
dtype=torch.bfloat16,
)
pipe = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein-base")
pipe.load_components(dtype=torch.bfloat16)
pipe.update_components(transformer=transformer)
pipe.to("cuda")
prompt = "A wide-angle wildlife photograph of a red fox standing alert in a snow-covered forest clearing at golden hour."
image = pipe(prompt=prompt, generator=torch.Generator().manual_seed(0), output="images")[0]
image.save("flux3-klein-base-fp8r.png")
variants/fp8r yerine variants/nvfp4 yazarak nvfp4 varyantını yükleyin. Adım-distilled FLUX 3 Image Klein aynı iki varyantı içerir; bunları config ve pipeline olarak deposunun kimliğiyle yükleyin.
Çekirdekler
Kantize ağırlıklar, düşük hassasiyetli depolama veri türlerinde kalır. Hangi GEMM'in çalışacağı cihaza bağlıdır:
| Şema | Fused çekirdek | Gereksinimler |
|---|---|---|
fp8r |
Satır bazlı ölçeklerle torch._scaled_mm |
Hesaplama yeteneği 8.9 veya daha yüksek olan CUDA GPU |
nvfp4 |
flashinfer.mm_fp4 (CUTLASS) ve aktivasyonlar için flashinfer.nvfp4_quantize |
Blackwell GPU (hesaplama yeteneği 10.0 veya daha yüksek), nvcc içeren bir CUDA araç seti ve aynı sürümde flashinfer-python ile flashinfer-cubin |
İki FlashInfer paketini aynı sürümde yükleyin, örneğin pip install flashinfer-python==0.6.13 flashinfer-cubin==0.6.13. flashinfer-cubin sürümü flashinfer-python sürümünün gerisinde kalabilir ve sürümler farklı olduğunda FlashInfer içe aktarmayı reddeder.
FlashInfer, NVFP4 çekirdeklerini ilk kullanımda ortamın CUDA araç setiyle derler ve hedef mimariyi görünür GPU'dan (veya ayarlanmışsa FLASHINFER_CUDA_ARCH_LIST değişkeninden) seçer. Tüketici ve iş istasyonu Blackwell GPU'ları (hesaplama yeteneği 12.0) için 12.9 veya daha yeni bir CUDA araç seti gereklidir. Daha eski bir araç seti kullanıldığında FlashInfer uygun bir mimari bulamaz ve ilk NVFP4 çağrısı FlashInfer requires GPUs with sm75 or higher hatasıyla başarısız olur.
Diğer herhangi bir cihazda, ağırlıklar her ileri geçişte compute_dtype tipine dekuantize edilir ve katman normal bir doğrusal katman olarak çalışır. Bu durumda aktivasyonlar kuantize edilmediğinden, çıktılar füzyonlu çekirdeklerden hafifçe farklılık gösterir.
Xet Storage Details
- Size:
- 4.55 kB
- Xet hash:
- 033808b85cc8e9c112e9f8945f391a3b39ed4ee9f3a34c391dee42d05d7f4e48
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.