เทอร์โบชาร์จเจอร์ LLMs
PagedAttention, vLLM, Self-Debugging, PowerInfer และ EG-MLA — วิธีปรับขนาดเอเจนต์ LLM โดยไม่เปลืองแคช GPU KV
Workstationเกี่ยวกับวิธีการเทอร์โบชาร์จโมเดลภาษาขนาดใหญ่ในการผลิต: PagedAttention, vLLM, Self-Debugging, PowerInfer และ EG-MLA — พร้อมข้อดีข้อเสียที่จะแสดงบน GPU จริงๆ เจาะลึก: บทความยาวไพรเมอร์:LLMs อธิบาย + Kubernetes
Watch: LLM แท้จริงแล้วคือ
บริบทไม่ใช่การสาธิตผลิตภัณฑ์:ข้อมูลเบื้องต้นเกี่ยวกับรุ่นภาษาขนาดใหญ่(Andrej Karpathy) จับคู่กับคู่มือภาษาอังกฤษธรรมดา LLM + Kubernetesของเรา
ปัญหาการปรับขนาด
LLMs ปลดล็อก AI การสนทนาและการสร้าง จากนั้นจึงกลายเป็นปัญหาการให้บริการทันที แต่ละขั้นตอนการถอดรหัสจะผนวกคีย์และค่าเข้ากับแคช KV ที่ขยายตามความยาวของลำดับและขนาดแบตช์ เครื่องยนต์ไร้เดียงสาจะจองแผ่นคอนกรีตที่ต่อเนื่องกันขนาดใหญ่ไว้ล่วงหน้า หน่วยความจำส่วนใหญ่นั้นไม่ได้ใช้งานในขณะที่คำขออื่นรออยู่ ปริมาณงานลดลงแม้ว่า GPU จะดู "เต็ม"
PagedAttention: หน่วยความจำเสมือนเพื่อความสนใจ
PagedAttention (Kwon และคณะ, SOSP 2023) ปฏิบัติต่อแคช KV เช่น การเพจ OS: บล็อกขนาดคงที่, ตารางบล็อกต่อคำขอ, หน้าทางกายภาพที่ไม่ต่อเนื่องกัน[arXiv:2309.06180]เคอร์เนลรวบรวมบล็อกในเวลาที่สนใจ คุณยังคงต้องปรับแต่งขนาดบล็อก,ความยาวโมเดลสูงสุดและลำดับชั้นแคช(GPU HBM กับ CPU ออฟโหลดเทียบกับแคชคำนำหน้า) บล็อกที่เล็กเกินไปจะเพิ่มค่าใช้จ่ายในการทำแผนที่ บล็อกขนาดใหญ่เกินไปจะทำให้เกิดขยะอีกครั้ง
vLLM: ของเสียเกือบเป็นศูนย์ที่ให้บริการ
vLLM คือระบบการให้บริการที่สร้างขึ้นโดยใช้ PagedAttention โดยกำหนดเป้าหมายของเสีย KV ที่เกือบเป็นศูนย์ การแบ่งกลุ่มอย่างต่อเนื่อง และพื้นผิว HTTP ที่เข้ากันได้กับ OpenAI ในการผลิต ให้ดูสามสิ่ง: (1)gpu_memory_utilizationกับ OOM, (2) โทเค็นเวลาถึงโทเค็นแรกเทียบกับโทเค็นการถอดรหัส/วินาที (3) ว่าการแคชคำนำหน้า / พรอมต์จะเปลี่ยนคำตอบสำหรับชุดการประเมินของคุณหรือไม่ การแคชคือการชนะปริมาณงาน มันไม่ได้ปราศจากความถูกต้องและผลกระทบจากความล่าช้าหาง
from vllm import LLM, SamplingParams llm = LLM(model="meta-llama/Llama-3.1-8B-Instruct", gpu_memory_utilization=0.90) params = SamplingParams(temperature=0.2, max_tokens=256) outs = llm.generate(["Explain PagedAttention in one paragraph."], params) print(outs[0].outputs[0].text)
นั่นคือการใช้งาน vLLM จริง ๆ การเรียก Hugging Face BERTforward()คือไม่ใช่PagedAttention — อย่าสับสนกับบันทึกของตัวแยกประเภทกับการแสดงเพจ KV
Self-Debugging: ลูปคุณภาพพร้อมงบประมาณแฝง
Self-Debugging (Chen และคณะ) สอนแบบจำลองเพื่อแก้ไขโปรแกรมที่คาดการณ์ไว้ของตัวเองจากการติดตามแบบไม่กี่ช็อต การจับคู่หรือการเอาชนะเส้นพื้นฐานที่ปล่อยผู้สมัครมากกว่า 10 เท่า[arXiv:2304.05128]สำหรับตัวแทน นั่นคือทองคำ — จนกว่าผลตอบรับจะรวมกัน จำกัดจำนวนข้อความแก้ไขข้อบกพร่อง บันทึกในแต่ละรอบ และปิดความล้มเหลวให้กับบุคคลหรือโมเดลผู้เชี่ยวชาญที่มีขนาดเล็กลงเมื่องบประมาณหมด
Watch: การแสดงและการอนุมานบริบท
พูดคุยตามบริบทเกี่ยวกับการให้บริการ LLM ที่รวดเร็ว — ไม่ใช่การสาธิต Workstation อย่างเป็นทางการ จับคู่กับกระดาษ vLLM และdocs.vllm.ai
PowerInfer: โทเค็นบน GPU
ไขมันตัวเดียวPowerInfer แยกเซลล์ประสาทร้อน/เย็น ดังนั้นผู้บริโภค GPU บวก CPU จึงสามารถสร้างโทเค็นได้อย่างรวดเร็ว ตัวเลขที่รายงาน:13.20 โทเค็น/วินาทีโดยเฉลี่ย, จุดสูงสุด29.08 โทเค็น/วินาทีบน NVIDIA RTX 4090 หนึ่งตัว สูงสุด11.69xเทียบกับ llama.cpp ในขณะที่ยังคงความแม่นยำ[PowerInfer]ในระดับกลุ่มยานพาหนะ คุณยังคงต้องการตำแหน่ง: เลเยอร์ใดที่อยู่บน GPU วิธีที่คุณแบ่งส่วนข้ามโหนด และโปรไฟล์ตำแหน่งท้องถิ่นของข้อความแจ้งของคุณตรงกับรุ่นของกระดาษหรือไม่
EG-MLA: ลดขนาด KV โดยไม่ทำลายม้านั่ง
EG-MLA (ความสนใจแฝงแบบหลายหัวที่มีการฝังรั้วรอบขอบชิด) รายงานมากกว่า 91.6% การลดแคช KVเทียบกับความสนใจแบบหลายหัวที่มีการลดลงเล็กน้อย การประหยัดเพิ่มเติมเทียบกับ MLA (สูงถึง 59.9%) และคะแนนที่ดีกว่าในชุดการให้เหตุผล โดยปรับขนาดพารามิเตอร์ 1B ที่ผ่านมา[กระดาษ EG-MLA]ถือว่าเป็นทางเลือกทางสถาปัตยกรรม ไม่ใช่ธงแบบดรอปอินบนจุดตรวจสอบ vLLM ที่ค้าง — ตรวจสอบสายรัดประเมินผลของคุณก่อนที่คุณจะเฉลิมฉลองกราฟหน่วยความจำ
เอามาต่อกัน
รวม PagedAttention + vLLM สำหรับการให้บริการคลัสเตอร์, PowerInfer เมื่อกล่องนั้นเป็นเวิร์กสเตชัน GPU, Self-Debugging ภายในเอเจนต์การเข้ารหัสที่มีขีดจำกัดแบบฮาร์ดรอบ และ EG-MLA เมื่อคุณควบคุมตระกูลโมเดล การให้บริการแบบกระจายจะเพิ่มความซับซ้อน: ความขนานของ KV, การแยกการเติมล่วงหน้า/การถอดรหัส และการปรับขนาดอัตโนมัติที่ไม่กระทบกับตารางหน้า วัด. จากนั้นเขียน ADR
อ่าน
ถัดไป- บทความแบบยาว— ปุ่มหมุน, โหมดความล้มเหลว, บันทึกย่อ Kubernetes
- LLMs อธิบาย + รันของคุณเองบน Kubernetes
- Muse Glimmer / ตัวแทนท้องถิ่น·Enterprise AI Lab
เผยแพร่โดยWorkstation.