Skip to main content
PromptQuorumPromptQuorum

ما هو التخزين المؤقت للـ Prompt في نماذج LLM المحلية؟

إجابة سريعة

يحفظ التخزين المؤقت للـ prompt ذاكرة key-value (KV) المحسوبة لبادئة الـ prompt، بحيث لا تحتاج إلى إعادة حسابها عندما يشترك طلب لاحق في البادئة نفسها — سواء كان system prompt ثابتًا، أو مستندًا معاد استخدامه، أو أدوارًا سابقة من المحادثة. يقلّص هذا وقت معالجة الـ prompt بشكل كبير في أحمال العمل ذات البادئة المتكررة، لكنه لا يقدّم أي فائدة عندما يكون كل طلب غير مرتبط بغيره.

  • يخزّن ذاكرة KV المؤقتة لبادئة الـ prompt، وليس مخرجات النموذج نفسها
  • أكبر فائدة: أوامر system prompt طويلة وثابتة، مستندات معاد استخدامها، محادثات متعددة الأدوار
  • لا فائدة للطلبات المنفردة التي لا تشترك في بادئة عبر الاستدعاءات

تحديث: ١٥ يوليو ٢٠٢٦

Technique & Concept Explainersمتوسط

النقاط الرئيسية

  • يحفظ التخزين المؤقت للـ prompt ذاكرة KV المحسوبة لبادئة الـ prompt، ما يتيح لطلب لاحق إعادة استخدامها بدل إعادة معالجة الـ tokens نفسها
  • كلما كانت البادئة المشتركة أكبر وأكثر تكرارًا، زادت سرعة التحسّن — فـ system prompt طويل وثابت يُعاد استخدامه عبر آلاف الطلبات يستفيد بشكل هائل
  • تستفيد المحادثات متعددة الأدوار تلقائيًا في معظم إعدادات الـ serving المحلية، لأن كل دور جديد يشترك في المحادثة السابقة بأكملها كبادئة له
  • التخزين المؤقت يساعد فقط في معالجة الـ prompt (المدخلات)، وليس في توليد الـ tokens (المخرجات) — فهو يقلّل الوقت حتى ظهور أول token، وليس عدد الـ tokens في الثانية بعد بدء التوليد

كيف يُسرّع التخزين المؤقت العمل فعليًا

معالجة الـ prompt تعني أن النموذج يحسب تمثيل key-value (KV) لكل token من المدخلات قبل أن يبدأ في توليد الرد. هذه الخطوة — معالجة الـ prompt — تحدث قبل بدء التوليد، وتكلفتها تتناسب مع طول الـ prompt. بدون تخزين مؤقت، يُعاد معالجة system prompt بطول 2000 token بالكامل في كل طلب على حدة، حتى لو كان مطابقًا تمامًا في كل مرة.

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

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

هيكلة الطلبات للاستفادة الفعلية

  • **ضع المحتوى المشترك والثابت أولاً.** يجب أن تأتي أوامر system prompt والتعليمات والمستندات المرجعية التي تبقى ثابتة عبر الطلبات قبل المحتوى المتغيّر والخاص بكل طلب — فالتخزين المؤقت يعمل فقط مع بادئة متطابقة تمامًا، لذا فإن كل ما يسبق أول نقطة اختلاف هو ما يُعاد استخدامه.
  • **حافظ على تطابق البادئة المشتركة تمامًا عبر الطلبات.** حتى اختلاف حرف واحد في system prompt (طابع زمني، معرّف عشوائي) يكسر تطابق البادئة ويفرض إعادة معالجة كاملة — انقل أي تغيّر خاص بالطلب إلى نهاية الـ prompt، بعد المحتوى القابل لإعادة الاستخدام.
  • **لا تتوقّع أن يساعد التخزين المؤقت الطلبات المنفردة وغير المرتبطة.** إذا كان حمل عملك يتكوّن غالبًا من أسئلة منفردة بلا إعداد مشترك، فلا يوجد شيء يمكن للتخزين المؤقت إعادة استخدامه — قيمة هذه التقنية تتناسب مع مقدار حركة المرور التي تشترك فعليًا في بادئة مشتركة.
  • **تستفيد المحادثات الطويلة الأمد أكثر من إعدادات الاحتفاظ بالذاكرة المؤقتة.** تحقق من المدة التي يحتفظ فيها إعداد الـ serving لديك بالبادئات المخزّنة مؤقتًا قبل إزالتها — فذاكرة مؤقتة تُزال بسرعة مفرطة لن تفيد المحادثات التي تتخللها فجوات بين الأدوار.

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

هل يغيّر التخزين المؤقت للـ prompt مخرجات النموذج؟
لا. يؤثر التخزين المؤقت فقط على كيفية معالجة البادئة المشتركة داخليًا — وينتج نتائج مطابقة رياضيًا لإعادة المعالجة الكاملة، لكن بشكل أسرع. إنه تحسين للأداء، وليس تغييرًا في سلوك النموذج أو جودته.
هل يساعد التخزين المؤقت للـ prompt سرعة توليد الـ tokens، أم فقط وقت الاستجابة الأولي؟
فقط وقت الاستجابة الأولي (الوقت حتى ظهور أول token). بمجرد بدء التوليد، تستمر الـ tokens في الإنتاج واحدًا تلو الآخر بنفس سرعة التوليد بغض النظر عن التخزين المؤقت — فالتخزين المؤقت يزيل العمل الزائد لمعالجة الـ prompt، وليس خطوة التوليد نفسها.
كم من VRAM يستخدمه التخزين المؤقت؟
تقيم بيانات KV المخزّنة مؤقتًا في VRAM جنبًا إلى جنب مع النموذج نفسه، ويتناسب حجمها مع مقدار السياق الذي يجري تخزينه مؤقتًا وعدد المحادثات المتزامنة. تخزين العديد من المحادثات الطويلة في وقت واحد قد يزيد استهلاك VRAM بشكل ملموس — وهذه مفاضلة حقيقية أمام عمق التخزين المؤقت على الأجهزة المحدودة بـ VRAM.
هل تدعم كل أداة serving محلية التخزين المؤقت للـ prompt؟
يختلف الدعم والسلوك الافتراضي حسب الأداة — بعضها يخزّن تلقائيًا للاستخدام متعدد الأدوار ضمن الجلسة الواحدة، وبعضها الآخر يتطلب إعدادًا صريحًا، كما أن مدة الاحتفاظ بالذاكرة المؤقتة (المدة التي تبقى فيها البادئة مخزّنة قبل إزالتها) تختلف أيضًا حسب الأداة. راجع توثيق أداة الـ serving المحددة التي تستخدمها لمعرفة سلوك التخزين المؤقت والإعدادات التي تتحكم فيه.