KV Cache
اكتشف كيف يعمل KV Cache على تحسين نماذج المحولات مثل LLMs. تعلم كيف تقلل هذه التقنية من وقت استجابة الاستنتاج وتعزز كفاءة Ultralytics YOLO26.
يُعد KV Cache (ذاكرة المفتاح والقيمة) تقنية تحسين حاسمة تُستخدم بشكل أساسي في نماذج اللغات الكبيرة (LLMs) وغيرها من البنى القائمة على Transformer لتسريع زمن استجابة الاستدلال وتقليل التكاليف الحسابية. في جوهرها، تخزن ذاكرة KV مصفوفات المفتاح والقيمة التي يولدها آلية الانتباه للرموز السابقة في التسلسل. ومن خلال حفظ هذه العمليات الحسابية الوسيطة، يتجنب النموذج إعادة حساب حالات الانتباه لكامل تاريخ المحادثة في كل مرة يقوم فيها بتوليد رمز جديد. تُحول هذه العملية سير عمل توليد النصوص من عملية ذات تعقيد تربيعي إلى عملية خطية، مما يجعل التفاعلات في الوقت الفعلي مع روبوتات الدردشة و**وكلاء الذكاء الاصطناعي** ممكنة.
Link to this sectionالآلية والفوائد#
في نموذج Transformer قياسي، يتطلب توليد الكلمة التالية الانتباه لجميع الكلمات السابقة لفهم السياق. بدون التخزين المؤقت، سيحتاج النموذج إلى إعادة حساب العلاقات الرياضية للتسلسل بأكمله في كل خطوة. تعالج ذاكرة KV ذلك من خلال العمل كبنك ذاكرة.
- تحسين السرعة: من خلال استرجاع المفاتيح والقيم المحسوبة مسبقًا من الذاكرة، يعمل النظام على تسريع محرك الاستدلال بشكل كبير. وهذا أمر ضروري للتطبيقات التي تتطلب زمن استجابة منخفض، مثل الاستدلال في الوقت الفعلي في روبوتات خدمة العملاء.
- كفاءة الموارد: على الرغم من أنها تزيد من استخدام الذاكرة (VRAM)، إلا أنها تقلل بشكل كبير من العمليات الحسابية (FLOPs) المطلوبة لكل رمز. غالبًا ما يتم إدارة هذه المقايضة من خلال تقنيات مثل تكميم النموذج أو التجزئة، على غرار كيفية إدارة أنظمة التشغيل لذاكرة الوصول العشوائي (RAM).
- السياق الممتد: تسمح الإدارة الفعالة لـ KV Cache للنماذج بالتعامل مع نافذة سياق أكبر، مما يمكنها من معالجة المستندات الطويلة أو الحفاظ على محادثات متماسكة على فترات ممتدة.
Link to this sectionتطبيقات العالم الحقيقي#
تعد KV Cache مكونًا أساسيًا في نشر الذكاء الاصطناعي التوليدي الحديث، لكن مبادئها تمتد أيضًا إلى رؤية الكمبيوتر (CV).
-
روبوتات الدردشة التوليدية: تعتمد خدمات مثل ChatGPT أو Claude بشكل كبير على التخزين المؤقت KV. عندما يطرح المستخدم سؤال متابعة، لا يقوم النموذج بإعادة قراءة تاريخ الدردشة بأكمله من البداية. بدلاً من ذلك، يقوم بإلحاق المدخلات الجديدة بحالات الذاكرة المؤقتة للتحول السابق، مما يسمح باستجابات فورية تقريبًا.
-
فهم الفيديو: في مهام فهم الفيديو، تعالج النماذج الإطارات بشكل متسلسل. على غرار رموز النص، يمكن تخزين الميزات المرئية من الإطارات السابقة مؤقتًا لمساعدة النموذج على تتبع الأشياء أو التعرف على الإجراءات دون إعادة معالجة تاريخ الفيديو بأكمله. وهذا وثيق الصلة بشكل خاص بـ التعرف على الإجراءات حيث يكون السياق الزمني أمرًا بالغ الأهمية.
Link to this sectionإدارة الذاكرة الفعالة#
مع نمو النماذج، يمكن أن يصبح حجم KV Cache عنق زجاجة، حيث يستهلك غيغابايت من ذاكرة GPU. تركز التطورات الأخيرة على تحسين هذا التخزين.
- PagedAttention: مستوحاة من الذاكرة الافتراضية في أنظمة التشغيل، تسمح PagedAttention (التي قدمتها vLLM) بتخزين KV Cache في كتل ذاكرة غير متجاورة. وهذا يقلل من التجزئة ويسمح بأحجام دفعات أكبر أثناء خدمة النموذج.
- تكميم KV Cache: لتوفير المساحة، غالبًا ما يطبق المطورون دقة مختلطة أو تكميم int8 خصيصًا على القيم المخزنة مؤقتًا. وهذا يقلل من بصمة الذاكرة، مما يسمح لأجهزة الذكاء الاصطناعي الطرفي ذات الذاكرة المحدودة بتشغيل نماذج قادرة.
- التخزين المؤقت للمطالبات: تقنية ذات صلة حيث يتم حساب حالات KV لمطالبة نظام ثابتة (على سبيل المثال، "أنت مساعد برمجة مفيد") مرة واحدة وإعادة استخدامها عبر العديد من جلسات المستخدم المختلفة. هذه ميزة أساسية لتحسين سير عمل هندسة المطالبات على نطاق واسع.
Link to this sectionالتمييز بين المفاهيم ذات الصلة#
من المفيد التمييز بين KV Cache ومصطلحات التخزين المؤقت والتحسين الأخرى:
- KV Cache مقابل التخزين المؤقت للمطالبات: تشير KV Cache عادةً إلى الذاكرة الديناميكية رمزًا برمز المستخدمة أثناء تدفق توليد واحد. يشير التخزين المؤقت للمطالبات تحديدًا إلى تخزين الحالة المعالجة لتعليمات إدخال ثابتة ليتم إعادة استخدامها عبر مكالمات استدلال مستقلة متعددة.
- KV Cache مقابل التضمينات: التضمينات هي تمثيلات متجهية لبيانات الإدخال (نص أو صور) التي تلتقط المعنى الدلالي. تخزن KV Cache التنشيطات (المفاتيح والقيم) المستمدة من هذه التضمينات داخل طبقات الانتباه، تحديدًا لغرض توليد التسلسل.
- KV Cache مقابل أوزان النموذج: أوزان النموذج هي المعلمات الثابتة والمُتعلمة للشبكة العصبية. تتكون KV Cache من بيانات ديناميكية ومؤقتة يتم توليدها أثناء التمرير الأمامي لتسلسل إدخال محدد.
Link to this sectionمثال: السياق في نماذج الرؤية#
بينما تشتهر KV Cache في معالجة اللغات الطبيعية (NLP)، فإن مفهوم الحفاظ على الحالة ينطبق على نماذج الرؤية المتقدمة. في المثال أدناه، نحاكي فكرة تمرير الحالة (السياق) في سيناريو تتبع الفيديو باستخدام 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 Platform، والتي تبسط خط الأنابيب من تصنيف البيانات إلى نشر النموذج الفعال. بالنسبة لأولئك المهتمين بالآليات الأعمق للانتباه، توفر مكتبات مثل PyTorch اللبنات الأساسية حيث يتم تنفيذ آليات التخزين المؤقت هذه.






