ذاكرة المفتاح-القيمة (KV-Cache)
ذاكرة المفتاح-القيمة (KV-Cache) هي مخزن مؤقت للذاكرة يحفظ موتّرات المفتاح والقيمة التي ينتجها طبقات الاهتمام في محول (transformer) للرموز المعالجة بالفعل، مما يلغي إعادة الحساب الزائد أثناء الإنشاء الانحداري. إنها الآلية الأساسية التي تجعل إنشاء نموذج اللغة الكبير عملياً بكمون إنتاجي.
في آلية الاهتمام متعدد الرؤوس الخاصة بمحول (transformer)، ينتج كل رمز إدخال ثلاثة متجهات: استعلام (query)، مفتاح (key)، وقيمة (value). أثناء الإنشاء الانحداري — حيث ينبعث النموذج رمزاً واحداً في المرة — يجب أن ينتبه استعلام كل رمز جديد على جميع مفاتيح وقيم الرموز السابقة. بدون التخزين المؤقت، كانت تلك موتّرات المفتاح والقيمة ستُحسب من الصفر في كل خطوة إنشاء، مما يسبب تكلفة الاستدلال أن تتوسع بشكل تربيعي مع طول السلسلة. تحفظ ذاكرة KV-Cache موتّرات المفتاح والقيمة المحسوبة في ذاكرة GPU أو CPU بحيث يتم حساب كل زوج مرة واحدة بالضبط وإعادة استخدامه لجميع خطوات الإنشاء اللاحقة.
في بداية طلب الإنشاء، يقوم النموذج بتنفيذ مرحلة "الملء المسبق" (prefill): يتم معالجة مطالبة الإدخال بأكملها في تمريرة أمامية واحدة متوازية وموتّرات المفتاح والقيمة الناتجة لكل رمز مطالبة تُكتب في الذاكرة المؤقتة. تعالج المرحلة اللاحقة "فك الترميز" (decode) رمزاً جديداً واحداً لكل خطوة؛ تقرأ كل خطوة ذاكرة KV-Cache الكاملة لحساب الاهتمام وتُلحق إدخال المفتاح/القيمة الخاص بالرمز الجديد بالذاكرة المؤقتة. يتسع حجم الذاكرة المؤقتة كـ O(num_layers × num_key_value_heads × head_dim × sequence_length)، حيث تصل إلى عشرات جيجابايت للسياقات الطويلة في النماذج الكبيرة، مما يجعل سعة ذاكرة GPU قيداً أساسياً في الخدمة الإنتاجية.
بدون ذاكرة KV-Cache، كانت تكلفة فك الترميز لكل رمز ستنمو كـ O(n) لأن السلسلة الكاملة المتنامية كانت ستُعاد معالجتها في كل خطوة. مع الذاكرة المؤقتة، كل خطوة فك ترميز هي O(1) في الحساب (استثناء نطاق ذاكرة عرض النطاق الترددي)، مما يحافظ على الكمون تقريباً ثابتاً بغض النظر عن عدد الرموز التي تم إنشاؤها بالفعل. تمكّن ذاكرة KV-Cache أيضاً تحسينات الخدمة المتقدمة: يطبق vLLM's PagedAttention (2023) ترحيل الذاكرة الافتراضية على تخزين KV-Cache لإزالة التجزئة ودعم أحجام دفعات متزامنة أكبر؛ يستخدم فك الترميز المضاربة ذاكرة KV-Cache مشتركة بين نموذج مسودة صغير والتحقق الكبير لزيادة الإنتاجية الفعالة.
اعتباراً من 2026، إدارة ذاكرة KV-Cache هي تركيز مركزي لهندسة استدلال نموذج اللغة الكبير. تكميم موتّرات KV-Cache إلى INT8 أو INT4 (بشكل مستقل عن تكميم الأوزان) هو ممارسة معيارية في مكدسات الخدمة الإنتاجية بما في ذلك vLLM و TensorRT-LLM و SGLang، مما يقلل تقريباً نصف استهلاك ذاكرة التفعيل المخزنة مؤقتاً. يقلل Flash Attention 2 و 3 تكلفة عرض النطاق الترددي للذاكرة من قراءة وكتابة الذاكرة المؤقتة. البحث في إزاحة الذاكرة المؤقتة (سكب الموتّرات إلى CPU أو NVMe عند امتلاء ذاكرة GPU) وضغط الذاكرة المؤقتة (Infini-Attention و H2O token eviction) نشط، موجه نحو الأنشطة حيث يتجاوز طول السياق ذاكرة GPU المتاحة.