0Pricing
AI Agents · บทเรียน

LoRA และ QLoRA เพื่อการปรับแต่งที่ประหยัดค่าใช้จ่าย

ฝึกเฉพาะตัวปรับแต่งอันดับต่ำบนฐานโมเดลที่ลดความละเอียดแล้ว — ทำการปรับแต่งโมเดล 70B ได้บน GPU เดียว

LoRA และ QLoRA เพื่อการปรับแต่งที่ประหยัดค่าใช้จ่าย เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

เหตุใดจึงใช้ PEFT

การปรับแต่ง Llama 70B แบบเต็มรูปแบบต้องใช้ H100 อย่างน้อย 8 ใบ และอัปเดตพารามิเตอร์ 70 พันล้านรายการ PEFT (การปรับแต่งที่ใช้พารามิเตอร์อย่างมีประสิทธิภาพ) อัปเดตพารามิเตอร์น้อยกว่า 1% โดยให้คุณภาพใกล้เคียงกัน ช่วยประหยัดต้นทุนได้มหาศาล

LoRA: การปรับให้เข้ากับแรงก์ต่ำ

LoRA (Hu et al. 2021) ฝึกเมทริกซ์ "อะแดปเตอร์" ขนาดเล็กร่วมกับน้ำหนักฐานที่ตรึงไว้:

  • เพิ่มเมทริกซ์ A x B โดย A มีขนาด dxr และ B มีขนาด rxd ส่วน r มีขนาดเล็ก (8, 16, 64)
  • การส่งต่อ: y = Wx + (BA)x
  • ฝึกเฉพาะ A และ B เท่านั้น ทำให้มีพารามิเตอร์น้อยลงหลายลำดับขั้น

QLoRA: LoRA แบบควอนไทซ์

QLoRA (Dettmers et al. 2023) ลดต้นทุนเพิ่มเติมด้วยการควอนไทซ์โมเดลฐานเป็น 4 บิตระหว่างการฝึก:

  • โมเดลฐานอยู่ในรูปแบบ NF4 (4 บิต)
  • อะแดปเตอร์ LoRA ใช้ความละเอียดสูงกว่า
  • สามารถปรับแต่งโมเดล 70B บน 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 total

Training 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')

การใช้ Unsloth

Unsloth เป็นไลบรารี LoRA ที่เร็วที่สุด เร็วกว่า peft แบบดั้งเดิม 2 เท่า มี API ที่นำมาใช้แทนได้ทันที:

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']
)

ประมาณการต้นทุน

QLoRA บน Llama 3.1 8B พร้อมตัวอย่าง 10k รายการ:

  • ประมาณ 4 ชั่วโมงบน H100 เพียงใบเดียว
  • ประมาณ 5-10 ดอลลาร์สำหรับต้นทุน GPU บนคลาวด์
  • ไฟล์อะแดปเตอร์: 100-300 MB

การเลือกแรงก์ r

  • r = 8 — ขั้นต่ำ เหมาะกับการเปลี่ยนรูปแบบหรือสไตล์
  • r = 16-32 — เหมาะกับกรณีส่วนใหญ่
  • r = 64+ — เหมาะกับพฤติกรรมใหม่ที่เพิ่มขึ้นอย่างมาก และต้องการความจุมากขึ้น

โมดูลเป้าหมาย

โดยค่าเริ่มต้นให้ใช้โพรเจกชันของกลไกความสนใจ (q, v) หากต้องการความจุมากขึ้น ให้รวมเลเยอร์เชิงเส้นทั้งหมด ซึ่งจะให้คุณภาพดีขึ้นแต่มีพารามิเตอร์มากขึ้น

ไฮเปอร์พารามิเตอร์ที่สำคัญ

  • อัตราการเรียนรู้ — โดยทั่วไปอยู่ที่ 1e-4 ถึง 5e-4
  • จำนวนรอบการฝึก — 2-5 รอบสำหรับ SFT
  • ขนาดแบตช์ — ขึ้นอยู่กับ VRAM ใช้การสะสมกราเดียนต์เพื่อจำลองแบตช์ที่ใหญ่ขึ้น

การรวมอะแดปเตอร์เข้ากับโมเดลฐาน

สำหรับการอนุมาน คุณสามารถรวม LoRA กลับเข้าไปในน้ำหนักฐานได้:

merged = model.merge_and_unload()
merged.save_pretrained('./full-model')

การให้บริการ LoRA หลายชุด

vLLM รองรับการสลับ LoRA ขณะทำงานในเวลาอนุมาน ซึ่งมีประโยชน์สำหรับการปรับแต่งแยกตามลูกค้าบนโมเดลฐานที่ใช้ร่วมกัน:

llm = LLM(model='base', enable_lora=True, max_lora_rank=64)
response = llm.generate(prompt, lora_request=LoRARequest('customer-a', 1, './customer-a-adapter'))

การประเมินอะแดปเตอร์

เรียกใช้ชุดประเมินของ YOUR กับโมเดลที่ปรับแต่งเสมอ บางครั้งการปรับแต่งทำให้ผลลัพธ์ในกรณีขอบแย่ลง จึงควรยอมรับการถดถอยอย่างตรงไปตรงมา

ข้อได้เปรียบของ LoRA

ข้อได้เปรียบเชิงปฏิบัติหลักของ LoRA เหนือการปรับแต่งแบบเต็มรูปแบบคืออะไร

สรุปทบทวน

LoRA + QLoRA = การปรับแต่งที่ประหยัดต้นทุน ใช้ Unsloth เพื่อความเร็ว และใช้ peft/TRL เพื่อความครอบคลุม ใช้แรงก์ 16-32 สำหรับกรณีส่วนใหญ่ ประเมินเทียบกับชุดข้อมูลอ้างอิงของคุณ

คำถามที่พบบ่อย

บทเรียน “LoRA และ QLoRA เพื่อการปรับแต่งที่ประหยัดค่าใช้จ่าย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “LoRA และ QLoRA เพื่อการปรับแต่งที่ประหยัดค่าใช้จ่าย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “LoRA และ QLoRA เพื่อการปรับแต่งที่ประหยัดค่าใช้จ่าย”

ฝึกเฉพาะตัวปรับแต่งอันดับต่ำบนฐานโมเดลที่ลดความละเอียดแล้ว — ทำการปรับแต่งโมเดล 70B ได้บน GPU เดียว คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “LoRA และ QLoRA เพื่อการปรับแต่งที่ประหยัดค่าใช้จ่าย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เมื่อการปรับแต่งโมเดลดีกว่าการเขียนคำสั่ง
  2. การรวบรวมข้อมูล: เส้นทางการทำงานและการเล่นร่องรอยซ้ำ
  3. LoRA และ QLoRA เพื่อการปรับแต่งที่ประหยัดค่าใช้จ่าย
  4. การประเมินโมเดลที่ปรับแต่งเทียบกับโมเดลฐาน
← กลับไปที่ AI Agents