KV Cache Transform Coding for Compact Storage in LLM Inference
يُعد KVTC مشفر تحويل خفيف الوزن ومستقل عن النموذج، يحقق ضغطاً يصل إلى 20 ضعفاً (أو أكثر) لذاكرة التخزين المؤقت للمفاتيح والقيم (Key-Value caches) لنماذج اللغات الكبيرة من خلال الجمع بين إلغاء الارتباط القائم على تحليل المكونات الرئيسية (PCA)، والكمية التكيفية، وترميز الإنتروبيا، مما يتيح تقديم الخدمة بكفاءة في استهلاك الذاكرة مع استخدام ذاكرة تخزين مؤقت قابلة لإعادة الاستخدام مع الحفاظ على دقة الاستنتاج والسياق الطويل.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك تدير مطعماً فاخراً ومزدحماً للغاية (النموذج اللغوي الكبير أو LLM) حيث يقوم الطهاة بطهي أطباق معقدة لآلاف الزبائن في وقت واحد.
لطهي طبق ما، يحتاج الطهاة إلى تذكر كل مكون أضافوه حتى الآن. وفي عالم الذكاء الاصطناعي، تُسمى هذه "الذاكرة" بـ KV Cache (ذاكرة المفتاح والقيمة).
المشكلة: المطبخ مزدحم للغاية
كلما طالت المحادثات (مثل طلب زبون لقصة من 10 صفحات أو إصلاح كود برمجي معقد)، يحتاج الطهاة إلى تذكر مكونات أكثر.
- العائق: طاولة المطبخ (ذاكرة وحدة معالجة الرسومات GPU) صغيرة ومكلفة. إذا امتلأت الطاولة بالأطباق القديمة نصف المأكولة (الذاكرة المخزنة القديمة/Stale Caches)، فلن يكون هناك متسع للطلبات الجديدة.
- المعضلة:
- التخلص منها: ستفقد الذاكرة، وسيتعين على الطاهي بدء طهي الطبق بالكامل من الصفر. هذا بطيء ومحبط للزبون.
- نقلها إلى القبو: يمكنك نقل الأطباء القديمة إلى غرفة تخزين باردة (وحدة المعالجة المركزية CPU أو القرص الصلب)، لكن نقلها ذهاباً وإياباً يستغرق وقتاً ويبطئ الخدمة.
- إبقاؤها على الطاولة: ستنفد المساحة وتضطر لرفض زبائن جدد.
الحل: "بدلة الضغط السحرية" (kvtc)
قدم مؤلفو هذه الورقة البحثية أداة جديدة تسمى kvtc (ترميز تحويل المفتاح والقيمة). فكر فيها كأنها بدلة ضغط سحرية لذاكرة الطهاة.
إليك كيف تعمل، باستخدام تشبيهات بسيطة:
1. إيجاد النمط (خطوة "PCA")
تخيل أن لديك كومة من 1,000 صورة لغروب الشمس. إذا نظرت بتمعن، ستلاحظ أن 90% من البكسلات هي مجرد درجات من اللون البرتقالي والأزرق. الألوان تتكرر كثيراً.
- ما يفعله kvtc: ينظر إلى ذاكرة الذكاء الاصطناعي ويقول: "مهلاً، هذه الأرقام متشابهة جداً في الواقع! إنها مكررة". إنه يجد النمط الأساسي (مثل موضوع البرتقالي/الأزرق) ويتجاهل التفاصيل الصغيرة غير الضرورية.
- التشبيه: بدلاً من تخزين كل بكسل في الصورة، يقوم kvtc بتخزين "وصفة" لغروب الشمس: "ابدأ بالبرتقالي، أضف القليل من الأزرق، ثم تدرج نحو الأسود". هذا يشغل مساحة أقل بكال كثير.
2. حزم الحقائب (الكمية - Quantization)
بمجرد العثية على الأنماط، تظل البيانات ضخمة نوعاً ما.
- ما يفعله kvtc: يستخدم خوارزمية حزم ذكية (البرمجة الديناميكية) ليقرر مقدار "المساحة" التي يحتاجها كل جزء من المعلومات.
- التشبيه: تخيل أنك تحزم حقائب للسفر. أنت لا تعطي معطف الشتاء الثقيل نفس مساحة الحقيبة التي تعطيها لأقراط أذنيك الصغيرة. يعطي kvtc الأجزاء "المهمة" من الذاكرة مساحات كبيرة ومريحة، ويضغط الأجزاء "الأقل أهمية" في زوايا ضيقة وصغيرة. بل إنه يتخلص من الأجزاء التي لا تهم على الإطلاق (مثل المكونات ذات الـ 0-بت).
3. الضغط النهائي (ترميز الإنتروبي - Entropy Coding)
- ما يفعله kvtc: يقوم بضغط كل شيء بإحكام باستخدام أداة ضغط قياسية (مثل ملف Zip الرقمي).
- التشبيه: هذه هي الخطوة النهائية حيث تسحب الهواء من حقيبة مفرغة من الهواء. أصبحت الذاكرة الآن مضغوطة بشكل لا يصدق.
النتائج: لماذا يعد هذا تغييراً جذرياً؟
اختبرت الورقة البحثية هذا على نماذج ذكاء اصطناعي شهيرة (مثل Llama 3 و Mistral) ووجدت نتائج مذهلة:
- ضغط من 20 إلى 40 ضعفاً: استطاعوا تقليص الذاكرة المطلوبة للمحادثة بمقدار 20 إلى 40 مرة.
- التشبيه: الحقيبة التي كانت تشغل صندوق سيارة كامل، أصبحت الآن تتسع في درج السيارة الأمامي.
- لا يوجد فقدان في الجودة: حتى مع ضغط الذاكرة بهذا الشكل الصغير، لا يزال الذكاء الاصطناعي يجيب على الأسئلة، ويكتب الكود، ويحل المسائل الرياضية تماماً كما كان يفعل من قبل. الأمر يشبه تناول وجبة تم تفريغها من الهواء؛ طعمها يبقى كما هو تماماً بمجرد فتحها.
- السرعة: لأن الذاكرة أصغر، فإنها تستقر على "طاولة المطبخ" السريعة (GPU) لفترة أطول. وهذا يعني أن الذكاء الاصطناعي يمكنه التعامل مع المزيد من الزبائن في وقت واحد دون أن يصبح بطيئاً.
"الخلطة السرية": لماذا يعمل بشكل جيد جداً؟
اكتشفت الورقة البحثية شيئاً مثيراً للاهتمام: أجزاء مختلفة من دماغ الذكاء الاصطناعي متشابهة جداً في الواقع.
- عادةً، تعامل نماذج الذكاء الاصطناعي كل "رأس" (جزء من آلية الانتباه) ككيان فريد.
- أدرك kvtc أنه إذا قمت بتدوير البيانات قليلاً (مثل تدوير مكعب روبيك)، فإن جميع الرؤوس المختلفة ستبدو متطابقة تقريباً. وهذا يسمح لهم بضغطها معاً بكفاءة أكبر بكثير من الطرق السابقة.
الملخص
kvtc هو مثل شركة نقل فائقة الكفاءة لذاكرة الذكاء الاصطناعي. بدلاً من التخلص من الذكريات القديمة (مما يجعل الذكاء الاصطناعي بطيئاً) أو تركها في قبو بطيء (مما يضيع الوقت)، فإنه يقوم بطيها في حزم صغيرة ومنظمة. هذا يسمح للذكاء الاصطناعي بتذكر محادثات أطول بكثير، والإجابة على أسئلة أكثر تعقيداً، وخدمة عدد أكبر من الناس، وكل ذلك دون الحاجة إلى كمبيوتر أكبر أو أكثر تكلفة.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.