LoRA dan QLoRA untuk Penyetelan Hemat Biaya
Latih hanya adaptor peringkat rendah pada basis terkuantisasi — cukup untuk menyetel halus model 70B pada satu GPU.
LoRA dan QLoRA untuk Penyetelan Hemat Biaya adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Mengapa PEFT?
Penyetelan halus penuh untuk Llama 70B memerlukan 8+ H100 dan memperbarui 70 miliar parameter. PEFT (Penyetelan Halus Hemat Parameter) memperbarui < 1% parameter dengan kualitas yang serupa. Penghematan biaya sangat besar.
LoRA: Adaptasi Peringkat Rendah
LoRA (Hu dkk. 2021) melatih matriks "adaptor" kecil di samping bobot dasar yang dibekukan:
- Tambahkan matriks A x B, dengan A berukuran dxr dan B berukuran rxd, sedangkan r bernilai kecil (8, 16, 64)
- Lintasan maju: y = Wx + (BA)x
- Hanya latih A dan B—jumlah parameter jauh lebih sedikit
QLoRA: LoRA Terkuantisasi
QLoRA (Dettmers dkk. 2023) semakin mengurangi biaya dengan mengkuantisasi model dasar menjadi 4-bit selama pelatihan:
- Model dasar dalam NF4 (4-bit)
- Adaptor LoRA dengan presisi lebih tinggi
- Memungkinkan penyetelan halus 70B 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 adalah pustaka LoRA tercepat—2x lebih cepat daripada peft biasa. Antarmuka yang dapat langsung digunakan:
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']
)Perkiraan Biaya
QLoRA pada Llama 3.1 8B dengan 10k contoh:
- ~4 jam pada satu H100
- ~$5–10 untuk biaya GPU komputasi awan
- Berkas adaptor: 100–300 MB
Memilih Peringkat r
- r = 8—minimal, untuk perubahan format/gaya
- r = 16–32—sebagian besar kasus
- r = 64+—perilaku baru yang substansial, dengan kapasitas lebih besar
Modul Sasaran
Secara default, gunakan proyeksi perhatian (q, v). Untuk kapasitas yang lebih besar, sertakan semua lapisan linier—kualitas lebih baik dengan lebih banyak parameter.
Hiperparameter yang Penting
- Laju pembelajaran—1e-4 hingga 5e-4 adalah nilai yang umum
- Epoch—2–5 untuk SFT
- Ukuran kelompok—bergantung pada VRAM; gunakan akumulasi gradien untuk menyimulasikan ukuran yang lebih besar
Menggabungkan Adaptor ke Model Dasar
Untuk inferensi, Anda dapat menggabungkan kembali LoRA ke dalam bobot dasar:
merged = model.merge_and_unload()
merged.save_pretrained('./full-model')Menyediakan Beberapa LoRA
vLLM mendukung penggantian LoRA secara langsung saat inferensi. Ini berguna untuk penyetelan halus per pelanggan pada model dasar bersama:
llm = LLM(model='base', enable_lora=True, max_lora_rank=64)
response = llm.generate(prompt, lora_request=LoRARequest('customer-a', 1, './customer-a-adapter'))Mengevaluasi Adaptor
Selalu jalankan set evaluasi milik YOUR pada model yang disetel. Terkadang hasil penyetelan lebih buruk pada kasus-kasus khusus—bersikaplah jujur tentang regresi.
Keunggulan LoRA
Apakah keunggulan praktis utama LoRA dibandingkan penyetelan halus penuh?
Ringkasan
LoRA + QLoRA = penyetelan halus yang hemat biaya. Gunakan Unsloth untuk kecepatan, serta peft/TRL untuk cakupan luas. Gunakan peringkat 16–32 untuk sebagian besar kasus. Lakukan evaluasi terhadap set acuan Anda.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “LoRA dan QLoRA untuk Penyetelan Hemat Biaya” gratis?
Ya — teks lengkap “LoRA dan QLoRA untuk Penyetelan Hemat Biaya” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “LoRA dan QLoRA untuk Penyetelan Hemat Biaya”?
Latih hanya adaptor peringkat rendah pada basis terkuantisasi — cukup untuk menyetel halus model 70B pada satu GPU. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AI Agents?
Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “LoRA dan QLoRA untuk Penyetelan Hemat Biaya” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?
Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Saat Penyetelan Halus Lebih Unggul daripada Pemberian Perintah
- Pengumpulan Data: Trajektori dan Pemutaran Ulang Jejak
- LoRA dan QLoRA untuk Penyetelan Hemat Biaya
- Mengevaluasi Model yang Disetel vs Basis