لماذا تنمو ذاكرة KV المؤقتة مع طول سياق الذكاء الاصطناعي المنزلي؟

إيفا وونغ هي كاتبة تقنية و ومهندسة هاوية في ZimaSpace. مهووسة بالتكنولوجيا مدى الحياة ولديها شغف بالمختبرات المنزلية والبرمجيات مفتوحة المصدر، تتخصص في تبسيط المفاهيم التقنية المعقدة إلى أدلة عملية وسهلة الفهم. تؤمن إيفا بأن الاستضافة الذاتية يجب أن تكون ممتعة وليست مخيفة. من خلال دروسها، تمكّن المجتمع من تبسيط إعدادات الأجهزة، بدءًا من بناء أول نظام تخزين شبكي NAS وحتى إتقان حاويات Docker.

تنمو ذاكرة التخزين المؤقت KV مع طول السياق لأن وقت التشغيل يخزّن مفاتيح وقيم الانتباه لكل رمز محتفظ به عبر طبقات النموذج المتعددة.

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

كل رمز محتفظ به يضيف حالة انتباه

أثناء استدلال المحوّل، تنتج كل طبقة موترات المفاتيح والقيم من الرموز التي عولجت بالفعل. ويحتفظ وقت التشغيل بهذه الموترات حتى يتمكن الرمز التالي من الانتباه إلى السياق السابق من دون إعادة حساب التسلسل الكامل.

تحدّد دراسة vLLM حالة KV لكل رمز باعتبارها أحد المتطلبات الرئيسية لذاكرة تقديم النماذج. وتضيف الرموز الجديدة إدخالات جديدة إلى ذاكرة التخزين المؤقت، بينما تظل الإدخالات المحتفظ بها سابقًا متاحة لخطوات الانتباه اللاحقة.

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

ينمو حجم ذاكرة التخزين المؤقت تقريبًا خطيًا مع طول التسلسل المحتفظ به

بالنسبة إلى بنية نموذج ثابتة ودقة ثابتة لذاكرة التخزين المؤقت، تؤدي مضاعفة عدد الرموز المحتفظ بها إلى مضاعفة تقريبية لإدخالات KV الموجودة لهذا الطلب. ويُحتسب كل من الطلب والإجابة المُنشأة ضمن التسلسل النشط.

توضح دراسة H2O كيف تتناسب ذاكرة KV مع طول التسلسل وحجم الدفعة. وتظل العلاقة خطية تقريبًا لأن كل رمز إضافي يضيف مفاتيح وقيمًا في كل طبقة تُنتج ذاكرة تخزين مؤقت.

ولهذا السبب، يمكن أن يؤدي رفع إعداد وقت التشغيل من سياق صغير إلى حد أقصى أكبر بكثير إلى تغيير سقف الذاكرة العملي، حتى عندما يستخدم النموذج الأوزان نفسها.

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

تغيّر بنية النموذج عدد البايتات لكل رمز

يمكن لنموذجين لهما العدد نفسه من المعلمات أن يتطلبا قدرًا مختلفًا من ذاكرة KV، لأنهما قد يستخدمان أعدادًا مختلفة من الطبقات، وأبعادًا مختلفة للرؤوس، وعددًا مختلفًا من رؤوس الانتباه، أو انتباه الاستعلامات المجمّعة، أو الانتباه متعدد الاستعلامات.

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

تشارك تصميمات الاستعلامات المجمّعة ومتعددة الاستعلامات رؤوس المفاتيح والقيم بين عدد أكبر من رؤوس الاستعلام، ما قد يقلل عدد بايتات التخزين المؤقت لكل رمز مقارنة بالانتباه الكامل متعدد الرؤوس. ومع ذلك، يظل عدد الطبقات وعرض الرأس عاملين مضاعفين للحالة المحتفظ بها.

لذلك يجب أن يستخدم التقدير المفيد بنية النموذج الدقيقة وتنسيق ذاكرة التخزين المؤقت في وقت التشغيل، لا مجرد قاعدة عامة لعدد البايتات لكل رمز منقولة من نموذج آخر.

تواصل الرموز المُنشأة تمديد ذاكرة التخزين المؤقت بعد التهيئة الأولية

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

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

قد يتجاوز طلب يلائم الذاكرة بسهولة حدودها أثناء إجابة طويلة. لذلك تحمي حدود الإخراج الذاكرة بالإضافة إلى طول الاستجابة ووقت التوليد.

يضاعف المستخدمون المتزامنون حالة السياق المنفصلة

يمكن مشاركة أوزان النموذج بين الطلبات، لكن كل محادثة نشطة تحمل عادةً سجل الرموز الخاص بها وذاكرة KV المؤقتة. ولا يتشارك خمسة مستخدمين ذوي سياقات طويلة ذاكرة تخزين مؤقت عالمية واحدة لمجرد أنهم يستخدمون النموذج نفسه.

تصوغ الأبحاث الحديثة حول إدارة KV الحجوزات الخاصة بكل طلب باعتبارها مفاضلة محورية بين كفاءة الذاكرة ومخاطر الإيقاف المؤقت. وتجعل أطوال الإخراج غير المعروفة ذروة الاستخدام المجمّعة أصعب في التنبؤ بها من مجرد حساب عدد المستخدمين.

يمكن أحيانًا إعادة استخدام بادئات الطلبات المشتركة عندما يدعم وقت التشغيل المطابقة الدقيقة للبادئة، لكن سجل المحادثة الخاص والمخرجات المتباينة يظلان ينشئان فروعًا منفصلة.

يتعامل دليل ZimaSpace للأجهزة مع السياق والتزامن باعتبارهما متطلبات للذاكرة تتجاوز ملف النموذج. لذلك قد يقلل اختبار مستخدم واحد من تقدير ذاكرة RAM أو VRAM اللازمة لمساعد منزلي.

يغيّر التقسيم والتكميم والإخلاء الحد، لا السبب

يقلل التخصيص المقسّم من التجزئة عبر تقسيم حالة ذاكرة التخزين المؤقت إلى كتل أصغر، بحيث لا يحتاج وقت التشغيل إلى حجز متصل واحد ضخم لكل تسلسل محتمل.

يوفّر PagedAttention تخصيصًا قائمًا على الكتل، بينما يقلل تكميم ذاكرة التخزين المؤقت عدد البايتات لكل قيمة مخزنة، وتتخلص سياسات الإخلاء من إدخالات قديمة محددة. تغيّر كل طريقة مقدار السياق الذي يمكن استيعابه، لكن حالة الانتباه المحتفظ بها تواصل النمو مع تراكم الرموز.

يمكن للإخلاء أو النوافذ المنزلقة تحديد سقف الذاكرة عبر إزالة الرموز الأقدم، لكن النموذج لن يعود قادرًا على الانتباه إلى الحالة المحذوفة عبر مسار السياق الكامل المعتاد. وقد يضيف الضغط والاحتفاظ الانتقائي أيضًا مفاضلات تتعلق بالجودة أو بحمل العمل.

قِس استخدام ذاكرة التخزين المؤقت باستخدام النموذج الفعلي والسياق ودقة التخزين المؤقت وحجم الدفعة وعدد المستخدمين. ويُبلَغ الحد العملي عندما يتعذر قبول رمز أو طلب آخر من دون إخلاء أو نقل إلى ذاكرة أخرى أو إعادة حساب أو فشل.

الأسئلة الشائعة

هل يصبح ملف النموذج أكبر عند زيادة طول السياق؟

لا. تظل أوزان النموذج كما هي. الذاكرة الإضافية هي حالة وقت التشغيل التي تُنشأ للطلب النشط والرموز المُنشأة.

هل يؤدي ضبط حد أقصى كبير للسياق دائمًا إلى تخصيص كل ذاكرة KV فورًا؟

لا. يعتمد سلوك التخصيص على وقت التشغيل. إذ تحجز بعض الأنظمة السعة مبكرًا، بينما تخصص الأنظمة المقسّمة الكتل مع قبول الرموز.

هل يمكن لذاكرة النظام RAM استيعاب ذاكرة KV عندما تمتلئ VRAM؟

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

مركز التكنولوجيا والذكاء الاصطناعي

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.