Transformers documentation
Bir model ince ayarı yapın
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.compileile 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"vequantization_mode="online"gerektirir. - compressed-tensors, sıkıştırılmamış bir checkpoint gerektirir veya CompressedTensorsConfig içinde
dequantize=Trueparametresi 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