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