Transformers documentation

Bir model ince ayarı yapın

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.23.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Bir model ince ayarı yapın

Kantize ağırlıklar doğrudan gradyanlarla güncellenemez, bu nedenle kantize bir modeli ince ayarlamak için dondurulmuş kantize ağırlıkların üzerine küçük bir adaptör eğitilir. 4-bit bir modelde LoRA adaptörü eğitmek QLoRA olarak bilinir ve bu, bf16'da belleğe sığmayacak bir modelin ince ayarını yapmanızı sağlar.

Trainer, eğitimden önce modeli kontrol eder ve şunlardan emin olur:

  • Kantizasyon yöntemi eğitimi destekler. Yöntem seçin bölümündeki İnce ayar sütununa bakın.
  • Model, eğitilebilir bir adaptöre bağlıdır. Kuantizasyon farkında eğitimi destekleyen yöntemler istisnadır ve bunlar aşağıda ele alınmaktadır.
  • Model torch.compile ile derlenmemiş.

Bir adaptör eğitin

PEFT paketini yükleyin.

pip install -U peft

Modeli eğitim destekleyen bir yöntemle yükleyin, add_adapter() ile bir LoRA adaptörü ekleyin ve modeli Trainer'a iletin. Aşağıdaki örnek 4-bit bitsandbytes kullanır ve train_dataset'in tokenize edilmiş bir veri seti olduğunu varsayar.

import torch
from peft import LoraConfig
from transformers import AutoModelForCausalLM, BitsAndBytesConfig, Trainer, TrainingArguments

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
)
model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-0.6B",
    quantization_config=quantization_config,
    device_map="auto",
)

lora_config = LoraConfig(r=16, lora_alpha=32, target_modules="all-linear", task_type="CAUSAL_LM")
model.add_adapter(lora_config)

trainer = Trainer(
    model=model,
    args=TrainingArguments(output_dir="qwen3-qlora", bf16=True),
    train_dataset=train_dataset,
)
trainer.train()

Yalnızca adaptör ağırlıkları eğitilir. Kuantize edilmiş temel ağırlıklar donmuş kalır.

Adaptörü kaydet

save_pretrained() yalnızca birkaç megabayt olan adaptör ağırlıklarını kaydeder. Bu, kuantize edilmiş ağırlıklarını kaydedemeyenler dahil olmak üzere her yöntemle çalışır.

model.save_pretrained("qwen3-qlora-adapter")

Adaptörü kullanmak için, temel modeli aynı kuantizasyon yapılandırmasıyla yükleyin ve adaptörü bunun üzerine yükleyin. Ayrıntılar için Adaptör yükleme bölümüne bakın.

Kantizasyona duyarlı eğitim

BitNet ve compressed-tensors, ağırlıklar eğitilebilir bir formda kaldığı sürece, bir adaptör olmadan tam modeli eğitebilir.

  • BitNet, BitNetQuantConfig içinde linear_class="autobitlinear" ve quantization_mode="online" gerektirir.
  • compressed-tensors, sıkıştırılmamış bir checkpoint gerektirir veya CompressedTensorsConfig içinde dequantize=True parametresi kullanılmalıdır. FP8 çekirdeklerini kullanan checkpoint'lerle eğitim yapılamaz.

Kantlama farkında eğitimin eğitim sonrası kantlamadan nasıl farklılaştığını görmek için Kantlama kavramları bölümüne bakın.

Update on GitHub