Tehnica LoRA (Low-Rank Adaptation) îngheață greutățile originale ale modelului pre-antrenat (W0) și introduce două matrice mici de descompunere (A și B) de rang redus (r << d), antrenând mai puțin de 1% din parametrii totali. QLoRA împinge această eficiență mai departe, cuantizând greutățile de bază în format NormalFloat4 (NF4).
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
import torch
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16
)
base_model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3-8B", quantization_config=bnb_config)
lora_config = LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM"
)
model = get_peft_model(base_model, lora_config)
model.print_trainable_parameters() # ~0.15% parametri antrenabili!
QLoRA permite adaptarea fină a unui model de 8 miliarde de parametri pe un simplu accelerator de 16GB VRAM fără degradarea capacității lingvistice.
Întrebări & Exemple practice:
Pipeline-uri de Finetuning Eficient cu LoRA și QLoRAAi o întrebare despre Pipeline-uri de Finetuning Eficient cu LoRA și QLoRA sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.