Vue d'ensemble
PEFT (Parameter-Efficient Fine-Tuning) adapte les grands modèles préentraînés en n'entraînant qu'un petit sous-ensemble de paramètres. Supporte LoRA, QLoRA, AdaLoRA, IA3, Prefix Tuning, P-Tuning et Prompt Tuning. Réduit la mémoire GPU de 4 à 16 fois par rapport à l'ajustement complet.
Installation
uv pip install peft
LoRA
from transformers import AutoModelForCausalLM
from peft import LoraConfig, get_peft_model, TaskType
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct")
peft_config = LoraConfig(
r=16, lora_alpha=32,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
task_type=TaskType.CAUSAL_LM,
)
model = get_peft_model(model, peft_config)
model.print_trainable_parameters()
Sauvegarde & fusion
model.save_pretrained("adapter")
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct")
merged = PeftModel.from_pretrained(base, "adapter").merge_and_unload()
QLoRA
from transformers import BitsAndBytesConfig
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct",
quantization_config=BitsAndBytesConfig(load_in_4bit=True), device_map="auto")
model = get_peft_model(model, peft_config)