LoRA dan QLoRA untuk Penalaan Cekap Kos
Latih penyesuai pangkat rendah sahaja pada asas terkuantum — penalaan halus 70B boleh dilakukan pada satu GPU.
LoRA dan QLoRA untuk Penalaan Cekap Kos ialah pelajaran Ejen AI percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ejen AI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Sebahagian daripada pelajaran ini belum diterjemahkan dan dipaparkan dalam bahasa Inggeris.
Mengapa PEFT?
Penalaan halus penuh Llama 70B memerlukan 8+ H100 dan mengemas kini 70 bilion parameter. PEFT (Penalaan Halus Cekap Parameter) mengemas kini < 1% parameter dengan kualiti yang serupa. Penjimatan kosnya sangat besar.
LoRA: Penyesuaian Pangkat Rendah
LoRA (Hu et al. 2021) melatih matriks “penyesuai” kecil bersama pemberat asas yang dibekukan:
- Tambah matriks A x B apabila A ialah dxr dan B ialah rxd, dengan r kecil (8, 16, 64)
- Laluan hadapan: y = Wx + (BA)x
- Hanya latih A dan B — parameter yang jauh lebih sedikit
QLoRA: LoRA Terkuantum
QLoRA (Dettmers et al. 2023) mengurangkan kos dengan lebih lanjut dengan mengkuantumkan model asas kepada 4-bit semasa latihan:
- Model asas dalam NF4 (4-bit)
- Penyesuai LoRA dalam ketepatan yang lebih tinggi
- Penalaan halus 70B boleh dijalankan pada satu A100/H100
Setup with peft + transformers
# pip install peft transformers bitsandbytes
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
'meta-llama/Llama-3.1-8B-Instruct',
load_in_4bit=True, # QLoRA
device_map='auto'
)
lora_config = LoraConfig(
r=16, # rank
lora_alpha=32,
target_modules=['q_proj', 'v_proj'],
lora_dropout=0.05,
bias='none'
)
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# trainable params: ~0.5% of totalTraining Loop with TRL
from trl import SFTTrainer
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
tokenizer=tokenizer,
args=TrainingArguments(
per_device_train_batch_size=4,
gradient_accumulation_steps=4,
learning_rate=2e-4,
num_train_epochs=3,
output_dir='./lora-out'
)
)
trainer.train()
model.save_pretrained('./adapter')Menggunakan Unsloth
Unsloth ialah pustaka LoRA terpantas — 2x lebih pantas daripada peft biasa. Antara muka terus guna:
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name='meta-llama/Llama-3.1-8B-Instruct',
load_in_4bit=True
)
model = FastLanguageModel.get_peft_model(
model,
r=16,
target_modules=['q_proj', 'k_proj', 'v_proj', 'o_proj', 'gate_proj', 'up_proj', 'down_proj']
)Anggaran Kos
QLoRA pada Llama 3.1 8B dengan 10k contoh:
- ~4 jam pada satu H100
- ~$5-10 dalam kos GPU awan
- Fail penyesuai: 100-300 MB
Memilih Pangkat r
- r = 8 — minimum, untuk perubahan format/gaya
- r = 16-32 — kebanyakan kes
- r = 64+ — tingkah laku baharu yang ketara, kapasiti lebih besar
Modul Sasaran
Secara lalai, gunakan unjuran perhatian (q, v). Untuk kapasiti yang lebih besar, sertakan semua lapisan linear — kualiti lebih baik, lebih banyak parameter.
Hiperparameter Penting
- Kadar pembelajaran — 1e-4 hingga 5e-4 adalah lazim
- Epok — 2-5 untuk SFT
- Saiz kelompok — bergantung pada VRAM; gunakan pengumpulan kecerunan untuk mensimulasikan saiz yang lebih besar
Menggabungkan Penyesuai ke dalam Asas
Untuk inferens, Anda boleh menggabungkan LoRA semula ke dalam pemberat asas:
merged = model.merge_and_unload()
merged.save_pretrained('./full-model')Menyediakan Berbilang LoRAs
vLLM menyokong pertukaran LoRAs serta-merta pada masa inferens. Ini berguna untuk penalaan halus bagi setiap pelanggan pada asas yang dikongsi:
llm = LLM(model='base', enable_lora=True, max_lora_rank=64)
response = llm.generate(prompt, lora_request=LoRARequest('customer-a', 1, './customer-a-adapter'))Menilai Penyesuai
Sentiasa jalankan set penilaian YOUR pada model yang ditala. Kadangkala penalaan menghasilkan keputusan yang lebih buruk pada kes pinggiran — nyatakan kemerosotan dengan jujur.
Kelebihan LoRA
Apakah kelebihan praktikal utama LoRA berbanding penalaan halus penuh?
Rumusan
LoRA + QLoRA = penalaan halus yang cekap kos. Gunakan Unsloth untuk kelajuan, dan peft/TRL untuk liputan yang luas. Pangkat 16-32 sesuai untuk kebanyakan kes. Lakukan penilaian berbanding set emas Anda.
Pelajari Ejen AI dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 60
- Pelajaran
- 239
Soalan Lazim
Adakah pelajaran “LoRA dan QLoRA untuk Penalaan Cekap Kos” percuma?
Ya — teks penuh “LoRA dan QLoRA untuk Penalaan Cekap Kos” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Ejen AI, tingkat taraf kepada CoddyKit PRO. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “LoRA dan QLoRA untuk Penalaan Cekap Kos”?
Latih penyesuai pangkat rendah sahaja pada asas terkuantum — penalaan halus 70B boleh dilakukan pada satu GPU. Anda berlatih Ejen AI menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Ejen AI?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Ejen AI di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “LoRA dan QLoRA untuk Penalaan Cekap Kos” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Ejen AI ini?
Ya. Setiap pelajaran Ejen AI menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Apabila Penalaan Halus Mengatasi Pemberian Prompt
- Pengumpulan Data: Trajektori dan Ulang Main Jejak
- LoRA dan QLoRA untuk Penalaan Cekap Kos
- Menilai Model Terlaras berbanding Model Asas