การลดความละเอียดและการถอดรหัสแบบคาดการณ์
สำหรับโมเดลที่โฮสต์เอง: ใช้การลดความละเอียดแบบ int8/int4 เพื่อประหยัดหน่วยความจำ และการถอดรหัสแบบคาดการณ์เพื่อเพิ่มปริมาณงาน
การลดความละเอียดและการถอดรหัสแบบคาดการณ์ เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
การปรับปรุงแบบจำลองที่โฮสต์เอง
สำหรับแบบจำลองเปิดที่โฮสต์เอง มีวิธีเพิ่มความเร็วและลดต้นทุนที่สำคัญสองวิธี:
- การควอนไทซ์ — น้ำหนักมีขนาดเล็กลง ใช้ RAM/VRAM น้อยลง และอนุมานได้เร็วขึ้น
- การถอดรหัสแบบคาดการณ์ — สร้างโทเค็นหลายตัวต่อขั้นตอน
พื้นฐานการควอนไทซ์
โดยปกติแบบจำลองจะจัดเก็บเป็น FP16 (16 บิตต่อน้ำหนักหนึ่งค่า) การควอนไทซ์จะลดจำนวนบิตลง:
- FP16 — ค่าพื้นฐาน
- INT8 — มีขนาดเล็กลง 2 เท่า คุณภาพลดลงเล็กน้อยจนแทบสังเกตไม่ได้
- INT4 / Q4_K_M — มีขนาดเล็กลง 4 เท่า คุณภาพลดลงเล็กน้อย
- INT2 / 1.58-bit — มีขนาดเล็กลงมากกว่า 8 เท่า คุณภาพลดลงอย่างเห็นได้ชัด
GGUF และระดับการควอนไทซ์
GGUF เป็นรูปแบบที่ llama.cpp ใช้ ระดับที่พบได้บ่อยมีดังนี้:
- Q4_K_M — สมดุลดีที่สุดระหว่างคุณภาพกับขนาด
- Q5_K_M — ใหญ่ขึ้นเล็กน้อย แต่คุณภาพดีขึ้นเล็กน้อย
- Q8_0 — คุณภาพใกล้เคียง FP16 และบีบอัดได้ 2 เท่า
Quantise With llama.cpp
./llama-quantize models/llama-3-8b-f16.gguf models/llama-3-8b-q4_k_m.gguf Q4_K_M
# Or download pre-quantised from TheBloke / unsloth on HuggingFaceผลกระทบต่อฮาร์ดแวร์
แบบจำลอง 8B FP16 ต้องใช้ VRAM ประมาณ 16GB แบบจำลองเดียวกันในรูปแบบ Q4 ใช้ VRAM ประมาณ 5GB จึงทำงานบน GPU ที่ราคาถูกกว่ามากได้
การถอดรหัสแบบคาดการณ์
เคล็ดลับคือใช้แบบจำลองขนาดเล็กแบบ "ร่าง" เพื่อเสนอชุดโทเค็น แล้วตรวจสอบด้วยแบบจำลองขนาดใหญ่แบบ "เป้าหมาย" ในการส่งผ่านไปข้างหน้าเพียงครั้งเดียว โดยมักเพิ่มความเร็วได้ 2–3 เท่า
from transformers import AutoModelForCausalLM
target = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-70B')
draft = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-8B')
outputs = target.generate(
input_ids,
assistant_model=draft, # speculative decoding
max_new_tokens=200
)เหตุผลที่วิธีนี้ใช้ได้ผล
แบบจำลองร่างเสนอ K โทเค็น แบบจำลองเป้าหมายประมวลผลทั้งหมดแบบ PARALLEL (การส่งผ่านไปข้างหน้าเพียงครั้งเดียว) โทเค็นที่ยอมรับแต่ละตัวจึงไม่ต้องเสียต้นทุนเพิ่มเติม หากถูกปฏิเสธ ระบบจะย้อนกลับ โดยปกติจะยอมรับโทเค็นส่วนใหญ่
วิธีเพิ่มความเร็วในการถอดรหัสอื่น ๆ
- การถอดรหัสแบบมองล่วงหน้า — สร้างร่างหลายชุดต่อขั้นตอน
- Medusa — หัวถอดรหัสหลายหัวที่ฝึกร่วมกัน
- EAGLE — การคาดการณ์แบบต้นไม้ที่รวดเร็ว
เครื่องมือที่นำวิธีเหล่านี้ไปใช้
- vLLM — รองรับทั้งการควอนไทซ์ (AWQ, GPTQ, FP8) และการถอดรหัสแบบคาดการณ์
- llama.cpp — รองรับการควอนไทซ์และการคาดการณ์ผ่าน --draft-model
- TensorRT-LLM — เซิร์ฟเวอร์สำหรับระบบใช้งานจริงของ NVIDIA
- SGLang — เซิร์ฟเวอร์ที่รวดเร็ว รองรับการประมวลผลเป็นชุด และจัดชุดประมวลผลอย่างต่อเนื่อง
การจัดชุดประมวลผลอย่างต่อเนื่อง
คุณสมบัติเด่นของ vLLM คือประมวลผลคำขอหลายรายการที่มีความยาวแตกต่างกันในการส่งผ่านไปข้างหน้าครั้งเดียว ช่วยเพิ่มอัตราการประมวลผลของเซิร์ฟเวอร์ระบบใช้งานจริงได้อย่างมาก
การเลือกระดับการควอนไทซ์
ทดสอบระดับที่เป็นไปได้แต่ละระดับกับชุดประเมินของ YOUR ระดับ Q4_K_M เป็นจุดเริ่มต้นมาตรฐาน หากคุณภาพต่ำกว่าเกณฑ์ ให้เลือกระดับที่สูงขึ้น
เวลาแฝงต่อโทเค็นเทียบกับอัตราการประมวลผล
การปรับปรุงแต่ละแบบช่วยเมตริกที่แตกต่างกัน:
- เวลาแฝงของคำขอเดียว: การถอดรหัสแบบคาดการณ์
- อัตราการประมวลผลสำหรับผู้ใช้หลายคน: การจัดชุดประมวลผลอย่างต่อเนื่อง
- ต้นทุนหน่วยความจำ: การควอนไทซ์
ผลของการควอนไทซ์
ผลหลักของการควอนไทซ์ int4 คืออะไร
สรุปทบทวน
ควอนไทซ์เป็น Q4 เพื่อประหยัดหน่วยความจำและเพิ่มความเร็ว ใช้การถอดรหัสแบบคาดการณ์เพื่อลดเวลาแฝง ใช้การจัดชุดประมวลผลอย่างต่อเนื่องเพื่อเพิ่มอัตราการประมวลผล vLLM และ llama.cpp รองรับทั้งสามวิธี
คำถามที่พบบ่อย
บทเรียน “การลดความละเอียดและการถอดรหัสแบบคาดการณ์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การลดความละเอียดและการถอดรหัสแบบคาดการณ์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การลดความละเอียดและการถอดรหัสแบบคาดการณ์”
สำหรับโมเดลที่โฮสต์เอง: ใช้การลดความละเอียดแบบ int8/int4 เพื่อประหยัดหน่วยความจำ และการถอดรหัสแบบคาดการณ์เพื่อเพิ่มปริมาณงาน คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การลดความละเอียดและการถอดรหัสแบบคาดการณ์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- งบประมาณโทเค็นต่อขั้น
- การเลือกเส้นทางโมเดล (ราคาถูก -> ราคาแพง)
- การแคชคำสั่งและผลลัพธ์ (Anthropic, Vertex)
- การลดความละเอียดและการถอดรหัสแบบคาดการณ์