Hugging Face Diffusers bibliotēka ir saņēmusi Nunchaku integrāciju, kas nodrošina četru bitu (W4A4) attēlu ģenerēšanas modeļu darbību. Šis risinājums samazina vajadzīgo videoatmiņu uz pusi un vienlaikus paātrina attēlu ģenerēšanu par aptuveni 30 procentiem.
Atmiņas ierobežojumu pārvarēšana lokālajās sistēmās
Lielie attēlu ģenerēšanas transformatori nodrošina izcilu vizuālo saturu. Tomēr to palaišanai parastajā BF16 precizitātē bieži vajag 20-30 GB videoatmiņas (VRAM). Tas padara šos modeļus nepieejamus lielākajai daļai parasto lietotāju videokaršu. Līdz šim izmantotie kvantēšanas rīki, piemēram, bitsandbytes vai GGUF, galvenokārt fokusējās tikai uz svaru (weight-only) saspiešanu. Šāda pieeja gan ietaupa atmiņu, bet parasti nepaātrina darbību vai pat rada papildu aizturi.
SVDQuant metode maina šo pieeju. Tā darbina galvenos transformatora slāņus ar 4-bitu svariem un aktivācijām (W4A4). Rezultātā samazinās atmiņas patēriņš un reizē palielinās attēlu veidošanas ātrums.
Kas ir SVDQuant un Nunchaku?
Kas ir SVDQuant? SVDQuant ir inovatīva kvantēšanas metode, kas atrisina galveno attēlu ģenerēšanas modeļu saspiešanas problēmu. Standarta 4-bitu kvantēšana parasti sabojā attēlu kvalitāti. Tas notiek tāpēc, ka gan svaros, gan aktivācijās parādās izteiktas novirzes (outliers). SVDQuant pārnes šīs aktivācijas novirzes uz modeļa svariem, sarežģītāko svaru matricas daļu saglabājot 16-bitu formātā, bet atlikušo daļu saspiežot līdz 4 bitiem. Nunchaku ir šīs metodes darbības dzinējs, kas nodrošina ātru izpildi ar pielāgotiem CUDA kodoliem.
SVDQuant un Nunchaku nodrošina ievērojamu ātruma pieaugumu, vienlaikus saglabājot zemu atmiņas patēriņu un augstu attēlu kvalitāti.
Viegla integrācija ar Nunchaku Lite
Oriģinālais Nunchaku dzinējs prasīja sarežģītu, modelim specifisku koda integrāciju. Jaunā Nunchaku Lite versija šo problēmu atrisina. Tā aizstāj attiecīgos modeļa lineāros slāņus ar optimizētiem SVDQuant un AWQ slāņiem pirms modeļa ielādes. Tas nozīmē, ka lietotājam nav jāveic lokāla CUDA koda kompilācija.
Sagatavotā modeļa palaišanai pietiek ar parastu instalāciju un dažām koda rindām:
pip install -U diffusers transformers accelerate kernels bitsandbytesPēc tam modeli var ielādēt tieši no Hugging Face platformas:
import torch
from diffusers import ErnieImagePipeline
pipe = ErnieImagePipeline.from_pretrained(
"lite-infer/ERNIE-Image-Turbo-nunchaku-lite-nvfp4_r32-bnb4-text-encoder",
torch_dtype=torch.bfloat16,
).to("cuda")
image = pipe(
prompt="A cinematic portrait of a red fox in a misty forest at sunrise",
height=1024,
width=1024,
num_inference_steps=8,
).images[0]
image.save("output.png")Atbalstītā aparatūra un saderība
Nunchaku Lite izmanto dažādus kodolus atkarībā no lietotāja videokartes paaudzes un izvēlētā modeļa precizitātes. Detalizētāka informācija par šo formātu atrodama Hugging Face blogā.
| Kvantēšanas shēma | Precizitāte | Atbalstītās videokartes (GPU) |
|---|---|---|
| svdq_w4a4 | nvfp4 | NVIDIA Blackwell (RTX 50 sērija, RTX PRO 6000, B200) |
| svdq_w4a4 | int4 | NVIDIA Turing / Ampere / Ada (RTX 30 & 40 sērija, A100, L40S) |
| awq_w4a16 | int4 | NVIDIA Turing / Ampere / Ada (RTX 30 & 40 sērija) |
Kas ir Nunchaku Lite? Nunchaku Lite ir Hugging Face izstrādāta integrācija, kas aizstāj parastos modeļa slāņus ar optimizētiem SVDQuant un AWQ slāņiem tieši pirms modeļa ielādes. Tas ļauj saglabāt modeļa elastību un ērti izmantot citus Diffusers ekosistēmas rīkus.
Biežāk uzdotie jautājumi (FAQ)
Vai Nunchaku Lite darbojas uz visām videokartēm?
Nē, šis risinājums pašlaik ir optimizēts NVIDIA videokartēm, sākot no Turing arhitektūras (RTX 20 sērija un jaunākas).
Vai attēlu kvalitāte pasliktinās pēc 4-bitu kvantēšanas ar SVDQuant?
SVDQuant izmanto unikālu metodi, kas saglabā svarīgākās svaru daļas 16-bitu precizitātē, tādēļ vizuālās kvalitātes zudums ir praktiski nemanāms salīdzinājumā ar pilno BF16 versiju.
Vai ir nepieciešams pašam kompilēt kodu lokāli?
Nē, jaunā integrācija izmanto Hugging Face kernels pakotni, kas automātiski lejupielādē nepieciešamos bināros failus, vienkāršojot uzstādīšanu.