peft

Par mkurman · zorai

Bibliothèque Parameter-Efficient Fine-Tuning (PEFT). LoRA, QLoRA, AdaLoRA, IA3, Prefix Tuning, P-Tuning, Prompt Tuning. Fine-tunez de grands modèles avec une empreinte mémoire minimale. Intégration dans l'écosystème Hugging Face.

npx skills add https://github.com/mkurman/zorai --skill peft

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)

Références

Skills similaires