انتقل إلى المحتوى

مصطلح في خيطين

ذاكرة المفاتيح والقيمKV Cache

المعنى في سطر

ذاكرة مؤقتة تخزن متجهات المفاتيح والقيم المحسوبة سابقًا حتى لا يعيد النموذج حسابها مع كل رمز جديد — أهم تحسين مفرد في سرعة توليد النص.

باختصار

الـ KV Cache ذاكرة مؤقتة تحتفظ بمتجهات المفاتيح keys والقيم values التي حسبها النموذج للرموز السابقة، حتى لا يعيد حسابها مع كل رمز جديد.

بالتفصيل

في نماذج التوليد الانحدارية الذاتية، يُحسب الانتباه لكل رمز جديد اعتمادًا على كل الرموز السابقة. من غير ذاكرة مؤقتة، النموذج بيعيد نفس الحسابات في كل خطوة، فتتضاعف الكلفة بشكل هائل مع طول النص.

الحل هو تخزين ما حُسب مرة واحدة وإعادة استخدامه. توثيق مكتبة Transformers يصف عدة أنواع من هذه الذاكرة، لكل منها مقايضة مختلفة بين السرعة والذاكرة:

الذاكرة الديناميكية DynamicCache هي الافتراضية، وتنمو مع تقدم التوليد، واستهلاكها للذاكرة متوسط. الذاكرة الثابتة StaticCache تحجز حجمًا أقصى مسبقًا، فتتيح تجميع مرحلة فك الترميز عبر torch.compile وتقليل زمن الاستجابة، لكن باستهلاك ذاكرة أعلى وهدر في الرموز المقنّعة. والذاكرة المكمّمة QuantizedCache تخفض دقة القيم إلى int2 أو int4 أو int8 عبر واجهتي hqq أو quanto، فتقل الذاكرة كثيرًا — لكن التوثيق يحذّر من أن التكميم قد يضر بزمن الاستجابة لو كان النص قصيرًا والذاكرة كافية أصلًا.

وهناك خيار «الإنزال» offloading الذي ينقل ذاكرة الطبقات إلى المعالج المركزي ويبقي طبقة واحدة فقط على معالج الرسوم، وهو مفيد لو كنت تواجه أخطاء نفاد الذاكرة، مقابل تراجع طفيف في الإنتاجية.

مثال عملي

لو عندك محادثة طويلة مع مساعد، والموجّه الثابت في بدايتها 2000 رمز: من غير ذاكرة مؤقتة، هيتم إعادة معالجة الـ 2000 رمز دول مع كل رمز جديد يخرج. مع الذاكرة المؤقتة، تُحسب مرة واحدة وتُقرأ بعدها. التوثيق يوضح كذلك نمط «الملء المسبق» prefix caching: تحسب ذاكرة موجّه ثابت مرة، ثم تنسخها لتوليد عدة ردود مختلفة من نفس البداية.

مصطلحات مرتبطة

آلية الانتباه (Attention Mechanism)، السياق الطويل (Long Context)، التكميم (Quantization)، ذاكرة الفيديو (VRAM)، تخزين الموجّه مؤقتًا (Prompt Caching).

المصادر: Hugging Face — 2026-09-04