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

การเพิ่มประสิทธิภาพแคช KV

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

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

ภาพรวม

KV cache optimization shrinks and manages that memory so models serve longer contexts to more users at once.

เจาะลึก

ในหม้อแปลงไฟฟ้า แต่ละโทเค็นใหม่จะเข้าร่วมกับโทเค็นก่อนหน้าทั้งหมดผ่านคีย์ความสนใจ (K) และค่า (V) การคำนวณ K และ V ใหม่สำหรับลำดับทั้งหมดในทุกขั้นตอนจะเป็นกำลังสองและสิ้นเปลือง ดังนั้นโมเดลจึงแคชสิ่งเหล่านี้: แคช KV ข้อเสียคือขนาด แคชจะเพิ่มขึ้นเป็นเส้นตรงตามความยาวลำดับ ขนาดแบตช์ เลเยอร์ และส่วนหัว ดังนั้นคำขอที่มีบริบทยาวจึงอาจใช้หน่วยความจำ GPU มากกว่าน้ำหนักของโมเดลเอง การเพิ่มประสิทธิภาพจะจัดการกับปัญหานี้จากหลายมุม: หน่วยความจำเพจ (PagedAttention ของ vLLM) จะจัดเก็บแคชไว้ในบล็อกที่ไม่ต่อเนื่องกันเพื่อกำจัดการกระจายตัวและเปิดใช้งานการแบ่งปัน การหาปริมาณเก็บ K และ V ในรูปแบบ 8 บิตหรือ 4 บิต และการเปลี่ยนแปลงทางสถาปัตยกรรม เช่น Grouped-Query Attention (GQA) และ Multi-Query Attention (MQA) ทำให้ส่วนหัวของแบบสอบถามจำนวนมากแชร์ส่วนหัวของคีย์/ค่าน้อยลง ส่งผลให้ขนาดแคชที่ต้นทางลดลง

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

PagedAttention ยืมเพจหน่วยความจำเสมือนจากระบบปฏิบัติการ: แคชอยู่ในบล็อกขนาดคงที่ซึ่งแมปผ่านตารางการค้นหา ดังนั้นคำขอจะใช้เฉพาะบล็อกที่ต้องการและคำนำหน้าเหมือนกัน (เช่น ข้อความแจ้งของระบบที่ใช้ร่วมกัน) สามารถชี้ไปที่บล็อกเดียวกันได้ Multi-head Latent Attention (MLA) ที่ใช้ในโมเดล DeepSeek บีบอัด K และ V ให้เป็นเวกเตอร์แฝงขนาดเล็กที่ใช้ร่วมกัน ซึ่งจะตัดหน่วยความจำอย่างมากในขณะที่ยังคงความแม่นยำไว้

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

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

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

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

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

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

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

อนาคตของการเพิ่มประสิทธิภาพแคช KV

เมื่อหน้าต่างบริบทขยายออกไปเป็นโทเค็นหลายแสนหรือหลายล้านโทเค็น แคช KV จะกลายเป็นต้นทุนการให้บริการหลัก คาดว่าจะมีการบีบอัดแคชเชิงรุกและการขับไล่ (ทิ้งโทเค็นการเอาใจใส่ต่ำ), การแชร์คำนำหน้าคำขอข้ามเป็นค่าเริ่มต้น, ถ่ายโอนแคชเย็นไปยัง CPU หรือ NVMe และสถาปัตยกรรมเช่น MLA และ GQA กลายเป็นมาตรฐาน การจัดการแคชจะมีลักษณะคล้ายกับลำดับชั้นหน่วยความจำเต็มรูปแบบมากขึ้นด้วยระดับและการดึงข้อมูลล่วงหน้าแบบอัจฉริยะ

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

PagedAttention ของ vLLM ให้บริการเซสชันการสนทนาพร้อมกันจำนวนมากโดยบรรจุบล็อก KV โดยไม่มีการกระจายตัวของหน่วยความจำ

Grouped-Query Attention ในโมเดล Llama ที่ลดขนาดแคช KV เพื่อให้บริบทที่ยาวขึ้นพอดีกับหน่วยความจำ GPU

การกำหนดปริมาณแคช KV เป็น 8 บิต (KV8) เพื่อลดหน่วยความจำแคชลงครึ่งหนึ่งโดยประมาณในระหว่างการสรุปเอกสารขนาดยาว

การแคชคำนำหน้าที่ใช้บล็อก KV ของพรอมต์ระบบที่ใช้ร่วมกันกับคำขอ API หลายพันรายการ

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

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

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

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

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

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 KV Cache Optimization 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 KV Cache Optimization?

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

แคช KV เก็บอะไรและเพราะเหตุใด

การแคชคีย์และค่าจากโทเค็นก่อนหน้าช่วยหลีกเลี่ยงการทำซ้ำการคำนวณความสนใจบนโทเค็นใหม่ทุกอัน ซึ่งช่วยประหยัดเวลา

เหตุใดแคช KV จึงกลายเป็นปัญหาหน่วยความจำได้

ขนาดแคชจะปรับขนาดตามความยาวบริบทและความสอดคล้อง ดังนั้นคำขอที่ยาวจึงสามารถใช้หน่วยความจำ GPU จำนวนมหาศาลได้

PagedAttention ยืมแนวคิดระบบปฏิบัติการใดมา

PagedAttention เก็บแคชไว้ในบล็อกขนาดคงที่ที่ไม่ต่อเนื่องกันซึ่งแมปผ่านตาราง เช่นเดียวกับการเพจ OS

Grouped-Query และ Multi-Query Attention ลดขนาดแคช KV ได้อย่างไร

การใช้ส่วนหัวของคีย์/ค่าร่วมกันในส่วนหัวของแบบสอบถามหลายรายการ ส่งผลให้มีเวกเตอร์ K และ V ที่จะจัดเก็บน้อยลงมาก

ประโยชน์อย่างหนึ่งของการแบ่งปันคำนำหน้าในแคช KV คืออะไร

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