KV Cache
اكتشف كيف تحسّن ذاكرة KV المؤقتة نماذج Transformer مثل LLMs. تعرّف على كيفية خفض هذه التقنية لزمن استجابة الاستدلال وتعزيز الكفاءة في Ultralytics YOLO26.
يُعدّ ذاكرة التخزين المؤقت للمفاتيح والقيم (KV Cache) أسلوبًا مهمًا للتحسين يُستخدم أساسًا في نماذج اللغة الكبيرة (LLMs) وغيرها من البنى القائمة على Transformer، لتسريع زمن استجابة الاستدلال وخفض التكاليف الحاسوبية. وفي جوهرها، تخزّن ذاكرة KV مصفوفتَي المفتاح والقيمة اللتين تنتجهما آلية الانتباه للرموز السابقة في التسلسل. ومن خلال حفظ هذه الحسابات الوسيطة، يتجنب النموذج إعادة حساب حالات الانتباه لسجل المحادثة بأكمله في كل مرة ينشئ فيها رمزًا جديدًا. وتحول هذه العملية سير عمل توليد النص من عملية ذات تعقيد تربيعي إلى أخرى خطية، ما يجعل التفاعلات الفورية مع روبوتات المحادثة ووكلاء الذكاء الاصطناعي ممكنة.
آلية العمل والفوائد#
في نموذج Transformer تقليدي، يتطلب إنشاء الكلمة التالية الانتباه إلى جميع الكلمات السابقة لفهم السياق. ومن دون التخزين المؤقت، سيحتاج النموذج إلى إعادة حساب العلاقات الرياضية للتسلسل بأكمله في كل خطوة. وتحل ذاكرة KV هذه المشكلة من خلال عملها كبنك للذاكرة.
- تحسين السرعة: من خلال استرجاع المفاتيح والقيم المحسوبة مسبقًا من الذاكرة، يسرّع النظام محرك الاستدلال بدرجة كبيرة. وهذا ضروري للتطبيقات التي تتطلب زمن استجابة منخفضًا، مثل الاستدلال الآني في روبوتات خدمة العملاء.
- كفاءة الموارد: رغم أن هذا الأسلوب يزيد استخدام الذاكرة (VRAM)، فإنه يقلل بدرجة كبيرة العمليات الحسابية (FLOPs) المطلوبة لكل رمز. وغالبًا ما تُدار هذه المفاضلة باستخدام تقنيات مثل تكميم النموذج أو الترحيل، على غرار إدارة أنظمة التشغيل لذاكرة RAM.
- توسيع السياق: تتيح الإدارة الفعالة لذاكرة KV للنماذج التعامل مع نافذة سياق أكبر، ما يمكّنها من معالجة مستندات طويلة أو الحفاظ على محادثات مترابطة على مدى فترات ممتدة.
تطبيقات عملية#
تُعدّ ذاكرة KV مكوّنًا أساسيًا في نشر الذكاء الاصطناعي التوليدي الحديث، لكن مبادئها تمتد أيضًا إلى الرؤية الحاسوبية (CV).
-
روبوتات المحادثة التوليدية: تعتمد خدمات مثل ChatGPT أو Claude اعتمادًا كبيرًا على التخزين المؤقت لـ KV. فعندما يطرح المستخدم سؤال متابعة، لا يعيد النموذج قراءة سجل المحادثة كله من البداية، بل يضيف المدخل الجديد إلى الحالات المخزنة مؤقتًا للدور السابق، ما يتيح استجابات شبه فورية.
-
فهم الفيديو: في مهام فهم الفيديو، تعالج النماذج الإطارات بالتتابع. وعلى غرار رموز النص، يمكن تخزين السمات المرئية للإطارات السابقة مؤقتًا لمساعدة النموذج على تتبّع الكائنات أو التعرّف على الأفعال دون إعادة معالجة سجل الفيديو بأكمله. ويكتسب ذلك أهمية خاصة في التعرّف على الأفعال، حيث يكون السياق الزمني بالغ الأهمية.
إدارة الذاكرة بكفاءة#
مع ازدياد حجم النماذج، قد يصبح حجم ذاكرة KV عنق زجاجة، إذ قد تستهلك غيغابايتات من ذاكرة GPU. وتركز التطورات الحديثة على تحسين طريقة تخزينها.
- PagedAttention: استلهامًا من الذاكرة الافتراضية في أنظمة التشغيل، تتيح PagedAttention (التي قدمتها vLLM) تخزين ذاكرة KV في كتل ذاكرة غير متجاورة. ويحدّ ذلك من التجزئة ويتيح أحجام دفعات أكبر أثناء تقديم النماذج.
- تكميم ذاكرة KV: لتوفير المساحة، غالبًا ما يطبّق المطوّرون الدقة المختلطة أو تكميم int8 على القيم المخزنة مؤقتًا تحديدًا. ويقلل ذلك البصمة الذاكرية، ما يتيح لأجهزة الذكاء الاصطناعي الطرفي ذات ذاكرة RAM المحدودة تشغيل نماذج فعّالة.
- التخزين المؤقت للموجّهات: أسلوب ذو صلة تُحسب فيه حالات KV لموجّه نظام ثابت (مثل: «أنت مساعد برمجة مفيد») مرة واحدة، ثم يعاد استخدامها عبر جلسات مستخدمين مختلفة. وهذه ميزة أساسية لتحسين سير عمل هندسة الموجّهات على نطاق واسع.
التمييز بين المفاهيم ذات الصلة#
من المفيد التمييز بين ذاكرة KV وغيرها من مصطلحات التخزين المؤقت والتحسين:
- ذاكرة KV مقابل التخزين المؤقت للموجّهات: تشير ذاكرة KV عادةً إلى الذاكرة الديناميكية المستخدمة رمزًا تلو الآخر أثناء تدفق إنشاء واحد. أما التخزين المؤقت للموجّهات فيشير تحديدًا إلى تخزين الحالة المعالجة لتعليمة إدخال ثابتة، لإعادة استخدامها عبر استدعاءات استدلال مستقلة متعددة.
- ذاكرة KV مقابل التضمينات: التضمينات هي تمثيلات متجهية لبيانات الإدخال (نصوص أو صور) تلتقط المعنى الدلالي. أما ذاكرة KV فتخزّن التنشيطات (المفاتيح والقيم) المستمدة من هذه التضمينات داخل طبقات الانتباه، لغرض إنشاء التسلسلات تحديدًا.
- ذاكرة KV مقابل أوزان النموذج: أوزان النموذج هي المعلمات الثابتة المتعلّمة للشبكة العصبية. أما ذاكرة KV فتتكون من بيانات ديناميكية مؤقتة تُنشأ أثناء المرور الأمامي لتسلسل إدخال محدد.
مثال: السياق في نماذج الرؤية#
رغم أن التخزين المؤقت لـ KV اشتهر أكثر في معالجة اللغة الطبيعية، فإن مفهوم الحفاظ على الحالة ينطبق على نماذج الرؤية المتقدمة. في المثال أدناه، نحاكي فكرة تمرير الحالة (السياق) في سيناريو تتبّع فيديو باستخدام Ultralytics YOLO26. ويحافظ المتعقّب هنا على هويات الكائنات عبر الإطارات، بطريقة تشبه مفاهيميًا حفاظ الذاكرة المؤقتة على السياق عبر الرموز.
from ultralytics import YOLO
# Load the Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Track objects in a video, maintaining identity state across frames
# The 'track' mode effectively caches object features to link detections
results = model.track(source="https://ultralytics.com/images/bus.jpg", show=False)
# Print the ID of the tracked objects
if results[0].boxes.id is not None:
print(f"Tracked IDs: {results[0].boxes.id.numpy()}")يمكن للمطوّرين الراغبين في إدارة مجموعات البيانات ونشر نماذج محسّنة الاستفادة من منصة Ultralytics، التي تبسّط مسار العمل بدءًا من شرح البيانات وصولًا إلى نشر النماذج بكفاءة. وللمهتمين بآليات الانتباه التفصيلية، توفر مكتبات مثل PyTorch اللبنات الأساسية التي تُنفّذ فيها آليات التخزين المؤقت هذه.









