توجيه ذاكرة التخزين المؤقت KV: تقليل العمل الزائد لملء LLM مسبقًا

توجيه ذاكرة التخزين المؤقت KV مهم عندما تستمر ظهور مقدمات الطلب المتكررة عبر حركة المرور الخاصة بنموذج اللغة الكبير (LLM). إذا وصلت الطلبات الصحيحة إلى النسخة الصحيحة، يمكن لمحرك الخدمة إعادة استخدام حالة الانتباه المخزنة بدلاً من إعادة حساب نفس الرموز التمهيدية مرارًا وتكرارًا.
قد يبدو ذلك كأنه تفصيل بنية تحتية، لكنه سرعان ما يصبح مشكلة منتج. يمكن أن تجعل المطالبات النظامية الطويلة، وسياق RAG، وأمثلة قليلة اللقطات، وسجل المحادثات متعدد الأدوار العمل التمهيدي مكلفًا. عندما تعيد كل نسخة حساب نفس المقدمة، تدفع الفرق في زمن الاستجابة، ووقت وحدة معالجة الرسومات (GPU)، وتخطيط السعة.
توفر ShareAI للمطورين واجهة برمجة تطبيقات واحدة لأكثر من 150 نموذجًا، ورؤية السوق، والتوجيه، والتبديل التلقائي. يقع توجيه ذاكرة التخزين المؤقت KV في طبقة أدنى، داخل بنية خدمة النماذج. الخلاصة المفيدة لقراء ShareAI بسيطة: قرارات التوجيه مهمة في كل طبقة من طبقات كومة الذكاء الاصطناعي، بدءًا من اختيار النموذج وصولاً إلى أي نسخة GPU تتعامل مع طلب مكرر.
لماذا يهم توجيه ذاكرة التخزين المؤقت KV
أثناء استدلال نموذج اللغة الكبير (LLM)، يعالج النموذج أولاً طلب الإدخال في مرحلة التمهيد. يقوم ببناء ذاكرة تخزين مؤقت للمفاتيح والقيم، تُعرف عادةً باسم ذاكرة التخزين المؤقت KV، بحيث يمكن للرموز التي يتم إنشاؤها لاحقًا الرجوع إلى السياق الذي تمت معالجته بالفعل.
يسمح تخزين المقدمات المؤقت لمحركات الخدمة بإعادة استخدام تلك الذاكرة المؤقتة عندما يشارك طلب لاحق نفس بداية الطلب. توثيق التخزين التلقائي للمقدمات في vLLM يصف هذا بأنه إعادة استخدام ذاكرة التخزين المؤقت KV للمقدمات المشتركة بحيث يمكن للطلب الجديد تخطي الحساب للجزء المشترك. تخزين المقدمات المؤقت في SGLang يستخدم فكرة ذات صلة لمشاركة ذاكرة التخزين المؤقت KV لتسلسلات الرموز الشائعة.
هذا مهم بشكل خاص لأعباء العمل حيث تبدأ العديد من الطلبات بنفس الطريقة: وكلاء الدعم بمطالبة نظام كبيرة، تطبيقات RAG التي تستخدم أجزاء متكررة من الوثائق، وكلاء البرمجة مع تعليمات المستودع، أو منتجات الدردشة التي تحمل تاريخ المحادثة عبر الأدوار.
أين ينهار التوزيع الدائري
يكون تخزين المقدمات المؤقت أسهل على نسخة واحدة. ترى نفس العملية المقدمة المتكررة ويمكنها إعادة استخدام ذاكرتها المؤقتة إذا كانت الذاكرة متاحة. تظهر المشكلة عندما يتوسع الخدمة أفقيًا.
مع موزع تحميل دائري قياسي، قد يقوم الطلب الأول بتسخين الذاكرة المؤقتة على النسخة A، بينما يهبط الطلب الثاني بنفس المقدمة على النسخة B. النسخة B لا تحتوي على تلك الحالة المخزنة، لذا تعيد حساب نفس العمل التمهيدي. قد يذهب الطلب الثالث إلى النسخة C ويفقد مرة أخرى.
مع زيادة عدد النسخ، يمكن أن يؤدي التوزيع المتوازن البسيط إلى نشر الطلبات ذات الصلة عبر المزيد من الأجهزة. قد تبدو أسطول خدمة النماذج متوازنة، لكن معدل ضربات ذاكرة التخزين المؤقت للمقدمة ينخفض. هذا هو الفجوة التي يحاول توجيه ذاكرة التخزين المؤقت KV سدها.
ثلاثة مستويات عملية للتوجيه
1. التوافق الجلسة
يقوم توافق الجلسة بتوجيه حركة المرور من نفس المستخدم أو مساحة العمل أو المستأجر أو المحادثة إلى نفس النسخة. إنه أبسط مكان للبدء في الدردشة متعددة الأدوار لأن المطالبات المتابعة غالبًا ما تشترك في السياق السابق.
المقايضة هي أن هوية المستخدم ليست دائمًا نفس تشابه المطالبات. قد يشترك مستخدمان في نفس المطالبة النظامية الطويلة ومع ذلك يتم توجيههما إلى نسخ مختلفة. يمكن أن يتعطل توافق الجلسة أيضًا عند إضافة أو إزالة النسخ.
2. التوجيه باستخدام تجزئة المقدمة
يستخدم التوجيه باستخدام تجزئة المقدمة المطالبة نفسها كمفتاح التوجيه. يقوم الموجه بتجزئة بداية المطالبة المستقرة ويرسل المقدمات المطابقة إلى نفس النسخة.
يعمل هذا بشكل أفضل عندما تكون المطالبات النظامية المتكررة أو أمثلة قليلة أو السياق المسترجع المشترك أكثر أهمية من هوية المستخدم. الجزء الصعب هو اختيار حدود المقدمة. إذا تضمنت التجزئة الطابع الزمني أو معرف الطلب أو حقل خاص بالمستخدم، فإن مفتاح التوجيه يتجزأ ويصبح إعادة استخدام ذاكرة التخزين المؤقت غير فعالة.
3. التوجيه المدرك لحدث ذاكرة التخزين المؤقت
النهج الأكثر تقدمًا يتتبع الكتل المخزنة في ذاكرة التخزين المؤقت الموجودة على أي نسخة، ثم يوجه كل طلب إلى النسخة التي تحتوي على أفضل تداخل مع ذاكرة التخزين المؤقت مع مراعاة الحمل أيضًا. مشروع llm-d router يصف منتقي نقطة النهاية الذي يأخذ في الاعتبار موقع ذاكرة التخزين المؤقت KV، الحمل الحالي، والأولوية عند اختيار مكان توجيه الطلب.
هذا أكثر تعقيدًا، ولكنه الاتجاه الصحيح للأساطيل ذات الإنتاجية العالية حيث يتم قياس فقدان ذاكرة التخزين المؤقت، وهو مكلف ومتكرر.
متى يجب تخطيه
التوجيه باستخدام ذاكرة التخزين المؤقت KV ليس دائمًا يستحق التعقيد. إنه ضعيف الملاءمة عندما تكون المطالبات قصيرة، فريدة في الغالب، أو تتم معالجتها في دفعات ذات هيكل متكرر قليل.
تلخيص الوثائق، الإبداع في التوليد، الاستخراج لمرة واحدة، والعديد من وظائف الدفعات غير المتزامنة قد لا تحتوي على تداخل كافٍ في المقدمة المشتركة لتبرير التوجيه المدرك لذاكرة التخزين المؤقت. في هذه الحالات، قد يكون التوازن العادي للحمل أكثر وضوحًا.
الاختبار العملي هو القياس: معدل ضربات ذاكرة التخزين المؤقت، الوقت للوصول إلى أول رمز، الإنتاجية، عمق قائمة الانتظار، ضغط ذاكرة GPU، وتكلفة كل مهمة مكتملة. إذا لم تؤثر التوجيهات المدركة لذاكرة التخزين المؤقت على هذه الأرقام، قم بإصلاح هيكل الطلب أولاً.
كيف يتناسب هذا مع ShareAI
ShareAI هو سوق للذكاء الاصطناعي وواجهة برمجة تطبيقات، وليس موازن تحميل لنماذج الخدمة داخل مجموعة GPU الخاصة بك. يستخدم المطورون ShareAI للوصول إلى العديد من النماذج عبر واجهة برمجة تطبيقات واحدة، مقارنة إشارات السوق، توجيه الطلبات، إدارة الاستخدام، والتعامل مع الفشل عندما يتدهور مسار معين.
هذا يجعل توجيه ذاكرة التخزين المؤقت KV لا يزال ذا صلة. إذا كنت تدير مجموعة الاستنتاج الخاصة بك، فإنه يساعدك على طرح أسئلة أفضل حول البنية التحتية. إذا كنت تستخدم نماذج مستضافة، فإنه يساعدك على تقييم سبب تصرف مسارين بأسماء نماذج متشابهة بشكل مختلف تحت أعباء العمل الحقيقية.
بالنسبة للبناة، هذا يرتبط أيضًا بالتسعير. يمكن لتطبيق يحتوي على طلبات طويلة، سياق RAG متكرر، أو حلقات وكيل أن يخلق استخدامًا غير متساوٍ للذكاء الاصطناعي. يتيح ShareAI Builder لأصحاب التطبيقات توجيه حركة مرور استنتاج الذكاء الاصطناعي عبر ShareAI، تحديد هامش أو رسوم إضافية، دفع العملاء لـ ShareAI مقابل الاستخدام الموجه، وتلقي دفعات شهرية بناءً على الاستخدام المُولد. يبقى التطبيق نفسه مبنيًا خارج ShareAI.
بالنسبة لاختيار النموذج وتقييم المسار، ابدأ بـ سوق نماذج ShareAI. بالنسبة لأساسيات التنفيذ، استخدم مرجع API لـ ShareAI.
قائمة التحقق لتوجيه ذاكرة التخزين المؤقت KV
- ضع محتوى الطلب الثابت أولاً: طلب النظام، قواعد الأدوات، الأمثلة، والسياق المتكرر.
- انقل الحقول الديناميكية لاحقًا: الطوابع الزمنية، معرفات الطلب، الحقائق الخاصة بالمستخدم، والتعليمات الفريدة.
- قم بقياس معدل ضربات ذاكرة التخزين المؤقت قبل وبعد تغييرات التوجيه.
- راقب الوقت للوصول إلى أول رمز، الإنتاجية، عمق قائمة الانتظار، وضغط VRAM معًا.
- ابدأ بتوجيه تجزئة المقدمة قبل بناء التوجيه المدرك لأحداث ذاكرة التخزين المؤقت.
- قم بتقسيم قواعد التوجيه حسب عبء العمل بدلاً من فرض سياسة عالمية واحدة.
- حافظ على التكلفة والكمون مرئيين على مستوى التطبيق، وليس فقط داخل مجموعة الاستنتاج.
الأسئلة الشائعة
ما هو توجيه ذاكرة التخزين المؤقت KV؟
توجيه ذاكرة التخزين المؤقت KV هو استراتيجية توجيه ترسل الطلبات ذات البادئات المتكررة إلى النسخ المتماثلة التي من المحتمل أن تحتوي بالفعل على ذاكرة التخزين المؤقت KV المطابقة. الهدف هو تقليل الحساب المسبق الزائد.
كيف يختلف توجيه ذاكرة التخزين المؤقت KV عن تخزين البادئات؟
تخزين البادئات هو قدرة محرك تقديم النماذج على إعادة استخدام الحالة المخزنة مؤقتًا للبادئات المشتركة. توجيه ذاكرة التخزين المؤقت KV هو استراتيجية وضع حركة المرور التي تساعد الطلبات المطابقة على الوصول إلى المكان الذي توجد فيه تلك الحالة المخزنة بالفعل.
لماذا يضر التوجيه بالتناوب بتخزين البادئات؟
التوجيه بالتناوب يوزع الطلبات عبر النسخ المتماثلة دون معرفة أي نسخة تحتوي على أي بادئة مخزنة. قد تفقد البادئة المتكررة التخزين المؤقت ببساطة لأنها تصل إلى نسخة متماثلة مختلفة.
ما هي أحمال العمل التي تستفيد أكثر من توجيه ذاكرة التخزين المؤقت KV؟
الدردشة متعددة الأدوار، RAG، وكلاء البرمجة، وكلاء الدعم، التوجيه القليل، والتطبيقات ذات البادئات النظامية الطويلة المشتركة هي أقوى المرشحين لأنها تعيد استخدام بادئات كبيرة.
متى يجب على الفريق تخطي توجيه ذاكرة التخزين المؤقت KV؟
تخطاه عندما تكون البادئات قصيرة، فريدة في الغالب، أو موجهة نحو الدُفعات مع هيكل متكرر قليل. في هذه الحالات، قد تضيف تعقيدات التوجيه قيمة قليلة.
هل يدعم vLLM وSGLang تخزين البادئات؟
نعم. توثق vLLM التخزين التلقائي للبادئات، وتوثق SGLang تخزين البادئات لذاكرة التخزين المؤقت KV المشتركة عبر تسلسلات الرموز الشائعة. لا يزال محرك التقديم بحاجة إلى مساعدة التوجيه عند وجود نسخ متماثلة متعددة.
هل توجيه ذاكرة التخزين المؤقت KV هو نفسه التخزين المؤقت الدلالي؟
لا. يعمل توجيه ذاكرة التخزين المؤقت KV مع إعادة استخدام البادئات الهيكلية الدقيقة أو القريبة داخل تقديم الاستدلال. التخزين المؤقت الدلالي يخزن ويعيد استخدام الردود أو النتائج الوسيطة بناءً على المعنى، عادةً باستخدام التضمينات أو عتبات التشابه.
هل يستبدل ShareAI موازن تحميل مدرك لذاكرة التخزين المؤقت KV؟
لا. ShareAI هو سوق الذكاء الاصطناعي وطبقة API للوصول إلى النماذج، التوجيه، الفشل الاحتياطي، الاستخدام، والفوترة. التوجيه المدرك لـ KV-cache هو بنية تحتية منخفضة المستوى لخدمة النماذج للفرق التي تشغل نسخ الاستدلال.
كيف يجب أن يفكر البناة في توجيه ذاكرة التخزين المؤقت KV؟
يجب أن يعامل البناة سلوك ذاكرة التخزين المؤقت كعامل تكلفة داخل التطبيقات الثقيلة بالذكاء الاصطناعي. إذا كان تطبيقهم لديه استخدام غير متساوٍ، يمكن لـ ShareAI المساعدة في توجيه وتسييل حركة المرور الخاصة بالذكاء الاصطناعي بينما يبقى التطبيق مبنيًا ومملوكًا خارج ShareAI.
ماذا يجب أن تقيس الفرق قبل تغيير التوجيه؟
قياس معدل ضربات ذاكرة التخزين المؤقت، الوقت لأول رمز، الإنتاجية، عمق الطابور، ضغط VRAM، التكلفة لكل مهمة، وجودة المخرجات. يجب أن تؤدي تغييرات التوجيه إلى تحسين عبء العمل، وليس فقط لوحة التحكم.
هل يمكن لتوجيه ذاكرة التخزين المؤقت KV تقليل تكاليف واجهات برمجة التطبيقات للذكاء الاصطناعي؟
يمكن أن يقلل من تكلفة البنية التحتية للفرق التي تخدم النماذج بنفسها لأن العمل المسبق الأقل تكرارًا يمكن أن يحسن كفاءة GPU. بالنسبة لواجهات برمجة التطبيقات المستضافة، يعتمد التأثير على ما إذا كان المزود يكشف عن تلك التوفيرات في السعر أو الأداء.