Ce face BitsAndBytesConfig (cuantizare 4-bit NF4 și 8-bit)
Biblioteca bitsandbytes înlocuiește straturile liniare PyTorch cu variante cuantizate (Linear8bitLt, Linear4bit). Oferă două metode principale: LLM.int8(), pe 8 biți, care păstrează precizie mai mare pentru calculele sensibile, și cuantizarea pe 4 biți folosită de QLoRA, la care se antrenează doar adaptoare LoRA mici peste modelul cuantizat.
Pentru 4 biți contează trei opțiuni: bnb_4bit_quant_type="nf4" (tipul NormalFloat4 din lucrarea QLoRA, recomandat pentru antrenare), bnb_4bit_use_double_quant=True (cuantizare imbricată, care economisește încă 0,4 biți pe parametru fără cost de performanță) și bnb_4bit_compute_dtype (tipul folosit la calcule; implicit float32, iar bf16 grăbește calculul).
Cerințe hardware din documentație: pe GPU-uri NVIDIA, LLM.int8() cere arhitectura Turing (RTX 20xx, T4) sau mai nouă, iar NF4/FP4 Pascal sau mai nouă. Biblioteca suportă și Intel XPU, Intel Gaudi și CPU.
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
load_in_8bit=True |
Cuantizare LLM.int8(). |
load_in_4bit=True |
Cuantizare pe 4 biți. |
bnb_4bit_quant_type |
"nf4" sau "fp4". |
bnb_4bit_compute_dtype |
Tipul de calcul; implicit float32, recomandat torch.bfloat16. |
bnb_4bit_use_double_quant=True |
Cuantizare imbricată: încă 0,4 biți / parametru economisiți. |
Exemple practice
Exemplul 1: Cuantizare pe 8 biți
bnb_8bit = BitsAndBytesConfig(load_in_8bit=True)
Exemplul 2: Tipul de calcul schimbat în bf16
quantization_config = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_compute_dtype=torch.bfloat16)
Exemplul 3: Bază pentru QLoRA
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.1-8B", quantization_config=bnb_config, device_map="auto")
Exemplul 4: Instalare
pip install --upgrade transformers accelerate bitsandbytes
Greșeli frecvente și bune practici
- Lași
bnb_4bit_compute_dtypela valoarea implicită (float32). Documentația recomandă bf16 pentru calcul mai rapid. - Folosești LLM.int8() pe GPU-uri mai vechi decât Turing. Verifică tabelul de compatibilitate hardware.
- Antrenezi direct greutățile cuantizate. Pentru antrenare adaugi adaptoare LoRA cu PEFT (QLoRA).