คู่มือทางเทคนิค

PagedAttention และ vLLM

PagedAttention เป็นเทคนิคการจัดการหน่วยความจำที่เก็บแคชความสนใจของโมเดลภาษาไว้ในบล็อกขนาดเล็กที่นำกลับมาใช้ใหม่ได้ แทนที่จะเป็นก้อนใหญ่ที่ต่อเนื่องกัน

อ่าน 2 นาทีอัปเดตล่าสุด

ภาพรวม

It powers vLLM, an open-source serving engine that dramatically boosts how many requests a single GPU can handle.

เจาะลึก

เมื่อโมเดลภาษาสร้างข้อความ โมเดลจะเก็บ 'แคช KV' (เวกเตอร์คีย์และค่า) ไว้สำหรับโทเค็นทุกอันที่เห็น เพื่อให้โทเค็นถัดไปสามารถเข้าร่วมกับบริบททั้งหมดได้ ตามเนื้อผ้า แต่ละคำขอจะสงวนแผ่นหน่วยความจำ GPU ขนาดใหญ่ที่ต่อเนื่องกันหนึ่งแผ่นซึ่งมีขนาดตามความยาวสูงสุดที่เป็นไปได้ ซึ่งจะสิ้นเปลืองจำนวนมากเมื่อลำดับสั้นลงหรือมีความยาวต่างกัน PagedAttention ซึ่งเปิดตัวในรายงาน vLLM ปี 2023 จาก UC Berkeley ยืมแนวคิดเกี่ยวกับเพจหน่วยความจำเสมือนจากระบบปฏิบัติการ โดยจะแยกแคช KV ออกเป็นบล็อกขนาดคงที่ซึ่งสามารถอยู่ที่ใดก็ได้ในหน่วยความจำและจัดสรรได้ตามความต้องการ ตารางการค้นหาจะแมปตำแหน่งโทเค็นเชิงตรรกะกับบล็อกทางกายภาพ ซึ่งเกือบจะกำจัดการกระจายตัวของหน่วยความจำและอนุญาตให้ใช้บล็อกร่วมกัน เช่น ในหลายเอาต์พุตจากพร้อมท์เดียวกัน

ข้อมูลเชิงลึกทางเทคนิค

แคช KV ถูกแบ่งออกเป็นเพจที่มีขนาดคงที่ โดยแต่ละเพจจะเก็บคีย์และค่าสำหรับโทเค็นตามจำนวนที่กำหนด ตารางบล็อกตามลำดับจะแมปตำแหน่งโลจิคัลกับตำแหน่งเพจจริง ดังนั้นแคชของลำดับจึงไม่จำเป็นต้องอยู่ติดกัน เนื่องจากคำนำหน้าที่เหมือนกัน (พรอมต์ของระบบที่ใช้ร่วมกัน หรือสาขาการค้นหาบีม) สามารถชี้ไปยังเพจฟิสิคัลเดียวกันผ่านการคัดลอกเมื่อเขียน หน่วยความจำจึงถูกนำมาใช้ซ้ำแทนที่จะทำซ้ำ ช่วยลดการสูญเสียจากมากกว่า 60% เหลือเพียงไม่กี่เปอร์เซ็นต์

ผลกระทบเชิงกลยุทธ์

ต้นทุนและงบประมาณ

การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี

การตัดสินใจที่ชัดเจนยิ่งขึ้น

การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด

การควบคุมคุณภาพ

ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต

อนาคตของ PagedAttention และ vLLM

vLLM ได้กลายเป็นแกนหลักการอนุมานแบบโอเพ่นซอร์สเริ่มต้น และตอนนี้แนวคิดของ PagedAttention ก็ปรากฏในสแต็กที่ให้บริการส่วนใหญ่แล้ว คาดหวังการแคชคำนำหน้าที่ลึกยิ่งขึ้น (การนำระบบแคชมาใช้ซ้ำกับผู้ใช้) การกรอกข้อมูลล่วงหน้าแบบแยกส่วนและถอดรหัสบนเครื่องที่แยกจากกัน นโยบายการกำจัดที่ชาญฉลาดยิ่งขึ้น และการบูรณาการอย่างแน่นหนากับการกำหนดปริมาณและการถอดรหัสเชิงคาดเดา เมื่อหน้าต่างบริบทเติบโตขึ้นเป็นโทเค็นนับล้าน การจัดการเพจ KV ที่มีประสิทธิภาพจึงกลายเป็นศูนย์กลางมากขึ้นในการให้บริการในราคาที่ย่อมเยา

การใช้งานจริงในโลกแห่งความเป็นจริง

การโฮสต์ LLM API แบบโอเพ่นซอร์สโดยที่ vLLM ให้บริการผู้ใช้แชทพร้อมกันจำนวนมากจาก GPU ตัวเดียวที่มีปริมาณงานสูง

การแบ่งปันพร้อมท์ของระบบแบบยาวกับคำขอนับพันผ่านการแคชคำนำหน้า ดังนั้นจึงได้รับการประมวลผลเพียงครั้งเดียว ไม่ใช่ซ้ำๆ

เรียกใช้การค้นหาบีมหรือการสุ่มตัวอย่างหลายรายการที่แชร์บล็อก KV สำหรับพรอมต์ทั่วไปผ่านการคัดลอกเมื่อเขียน

ลดการสิ้นเปลืองหน่วยความจำ GPU จากการแตกแฟรกเมนต์ เพื่อให้ผู้ให้บริการสามารถแพ็คเซสชันพร้อมกันมากขึ้นไปยังฮาร์ดแวร์เดียวกัน

ความเสี่ยงและรั้ว

การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้

ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป

ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น

แผนงานการดำเนินงาน

1

กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน

2

เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง

3

การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้

4

เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด

สำรวจต่อไป

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the PagedAttention and vLLM quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

เริ่มแบบทดสอบ

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

คำแนะนำต่อไป

ความเป็นส่วนตัวที่แตกต่างกัน

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

What is PagedAttention and vLLM?

PagedAttention เป็นเทคนิคการจัดการหน่วยความจำที่เก็บแคชความสนใจของโมเดลภาษาไว้ในบล็อกขนาดเล็กที่นำกลับมาใช้ใหม่ได้ แทนที่จะเป็นก้อนใหญ่ที่ต่อเนื่องกัน โดยขับเคลื่อน vLLM ซึ่งเป็นเอ็นจิ้นการให้บริการโอเพ่นซอร์สที่ช่วยเพิ่มจำนวนคำขอที่ GPU ตัวเดียวสามารถรองรับได้อย่างมาก

'KV cache' จัดเก็บอะไรระหว่างการสร้างข้อความ

แคช KV เก็บเวกเตอร์คีย์และค่าไว้สำหรับโทเค็นก่อนหน้าทั้งหมด ทำให้โมเดลเข้าถึงบริบททั้งหมดโดยไม่ต้องคำนวณใหม่ในแต่ละขั้นตอน

แนวคิดระบบปฏิบัติการใดเป็นแรงบันดาลใจให้ PagedAttention

PagedAttention ยืมเพจหน่วยความจำเสมือน: แคช KV จะถูกแบ่งออกเป็นเพจขนาดคงที่ซึ่งสามารถอยู่ได้ทุกที่ โดยแมปโดยตารางบล็อก

PagedAttention แก้ปัญหาอะไรกับการจัดสรรแคช KV แบบดั้งเดิม

การจองแผ่นที่ต่อเนื่องกันขนาดใหญ่หนึ่งแผ่นต่อคำขอ ซึ่งมีขนาดตามความยาวสูงสุด จะทำให้สูญเสียหน่วยความจำ GPU จำนวนมาก เพจจิ้งจัดสรรบล็อกขนาดเล็กตามความต้องการ ช่วยลดการสูญเสีย

PagedAttention อนุญาตให้หลายเอาต์พุตแชร์หน่วยความจำสำหรับพรอมต์ทั่วไปได้อย่างไร

คำนำหน้าเหมือนกัน (พรอมต์ที่ใช้ร่วมกันหรือสาขาการค้นหาลำแสง) อ้างอิงถึงหน้า KV ทางกายภาพเดียวกัน โดยคัดลอกเฉพาะเมื่อสาขาแยกจากกัน

vLLM และ PagedAttention พัฒนามาจากที่ใด

vLLM และอัลกอริธึม PagedAttention ออกมาจาก UC Berkeley ในรายงานปี 2023 และกลายเป็นกลไกการให้บริการโอเพ่นซอร์สที่ใช้กันอย่างแพร่หลายอย่างรวดเร็ว