Prompt compression — ضغط المُوجِّه

From Systems analysis wiki
Jump to navigation Jump to search

ضغط المُوجِّه (بالإنجليزية: prompt compression) هو مجموعة من الأساليب في هندسة المُوجِّهات، تهدف إلى تقليص طول النص المدخل (المُوجِّه) لـنماذج اللغة الكبيرة (LLM) مع الحفاظ على المعلومات الأساسية[1]. مع تزايد حجم نافذة السياق في نماذج اللغة الكبيرة إلى ملايين التوكنات (على سبيل المثال، لدى Google Gemini)، أصبحت معالجة النصوص الطويلة جدًا ممكنة، ولكن هذا أدى إلى ظهور تحديات جديدة: ارتفاع تكلفة الاستدعاءات، وزيادة زمن الاستجابة، وانخفاض جودة الاستدلال بسبب تأثير «الضياع في المنتصف»[2].

يعالج ضغط المُوجِّه هذه المشكلات من خلال تركيز البيانات الأكثر أهمية في مدخل مختصر وتجاهل البيانات الزائدة. وهذا يقلل من خطر تجاوز حد السياق، ويسرّع عملية التوليد، ويخفض التكلفة، مع الحفاظ على دقة الإجابات في الوقت نفسه[3].

أساليب ضغط المُوجِّه

يمكن تقسيم أساليب ضغط المُوجِّه إلى عدة فئات رئيسية.

حذف التوكنات (التصفية)

يعتمد هذا النهج على إزالة التوكنات أو العبارات أو الجمل الأقل أهمية من النص الأصلي دون تعديل الأجزاء المتبقية. يتم تحديد أهمية التوكنات بشكل استرشادي.

  • LLMLingua: أسلوب طورته شركة مايكروسوفت، يقوم بحساب الحيرة (perplexity) لكل توكن ويزيل التوكنات التي لها تأثير ضئيل على قابلية التنبؤ بالنص. في إصدار LongLLMLingua، تم تكييف هذا النهج للمستندات الطويلة، مع الأخذ في الاعتبار مدى صلة الأجزاء بطلب محدد من المستخدم[4].
  • Selective-Context: يستخدم نموذج لغة صغير لتقييم self-information (المعلومات الذاتية) لكل توكن ويتجاهل التوكنات ذات المعلوماتية الأقل[5].
  • PCRL (Prompt Compression via Reinforcement Learning): يدرب وكيلاً باستخدام التعلم المعزز لاتخاذ قرار لكل توكن — إما "الإبقاء" أو "الحذف" — بهدف تعظيم مقياس الجودة (مثل ROUGE) للإجابة النهائية[6].

الضغط التجريدي (التلخيص)

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

  • RECOMP (Retrieval-Compression-Prompting): لكل مستند في قاعدة المعرفة، يتم مسبقًا توليد ملخص موجز (summary) يأخذ في الاعتبار الاستعلامات المحتملة من المستخدم (query-aware summary). هذا يسمح ليس فقط بالضغط، بل أيضًا بالمعالجة المسبقة للمعلومات[7].
  • PRCA (Prompt Compression with Reinforced Context Aggregation): يجمع بين تدريب نموذج الملخص والتعلم المعزز لتوليد ملخصات تعمل على تحسين جودة إجابات نموذج اللغة الكبير الرئيسي إلى أقصى حد[8].
  • Prompt-SAW (Semantic Aware Winnowing): قبل التلخيص، يستخرج من النص رسمًا بيانيًا للمعرفة (الكيانات والعلاقات)، ويختار العقد ذات الصلة في الرسم البياني، وبناءً عليها يولد النص المضغوط[9].

الضغط الاستخلاصي

تستخلص هذه الطريقة الأجزاء الرئيسية (الجمل، الفقرات) من النص الأصلي دون إعادة صياغتها.

  • Reranker-LLMs: تستخدم نموذجًا لإعادة الترتيب (reranker) يقوم بتقييم أهمية كل فقرة أو مستند بالنسبة للاستعلام الحالي ويختار فقط الأكثر صلة[10].
  • CompAct: يقدم استخلاصًا وتلخيصًا تكراريًا. يأخذ النموذج أجزاء من النص الطويل بشكل متسلسل، ويضغطها، ويتحقق مما إذا كانت المعلومات كافية للإجابة. إذا لم تكن كذلك، يضيف الجزء التالي ويضغط مرة أخرى، محققًا ضغطًا كبيرًا مع الحفاظ على الجودة[11].

التقطير و«توكنات الذاكرة»

فئة جديدة من الأساليب، حيث يتلقى النموذج بدلاً من النص توكنات بديلة مدربة خصيصًا أو تضمينات (embeddings) تحتوي على معلومات مضغوطة.

  • Gist Tokens: يتم ضبط نموذج اللغة الكبير لـ "طي" التعليمات الطويلة في مجموعة صغيرة من توكنات الجوهر (gist-tokens) الخاصة (على سبيل المثال، 20-30 توكنًا بدلاً من عدة آلاف). ثم تُستخدم هذه التوكنات بدلاً من المُوجِّه الأصلي، مما يوفر ضغطًا يصل إلى 26 ضعفًا مع الحد الأدنى من فقدان الجودة[12].
  • Soft Prompt Tuning: بدلاً من المُوجِّه النصي، يتم استخدام "توكنات افتراضية" قابلة للتدريب (تضمينات) يتم ضبطها لحل مهمة معينة.
  • SelfCP: يقترح استخدام نموذج اللغة الكبير المجمد نفسه كضاغط. من خلال تزويده بجزء من النص مع علامات خاصة، يولد النموذج تمثيلاً كثيفًا (memory tokens)، والذي يستخدمه بعد ذلك هو نفسه للإجابة[13].

الفعالية والمقايضات

  • تسريع الأداء وخفض التكاليف: بما أن تعقيد المحولات ينمو بشكل تربيعي ($O(n^2)$) مع طول التسلسل، فإن تقليص المُوجِّه عدة مرات يوفر توفيرًا كبيرًا. على سبيل المثال، تُظهر gist tokens توفيرًا يصل إلى 40% في عمليات FLOPs عند ضغط يصل إلى 26 ضعفًا[12].
  • تحسين الجودة: في بعض الأحيان، يمكن لضغط المُوجِّه أن يحسن جودة الإجابات إذا كان النص الأصلي يحتوي على ضوضاء أو تفاصيل مشتتة. تساعد إزالة السياق غير ذي الصلة النموذج على التركيز بشكل أفضل على الجوانب المهمة للمهمة.
  • المقايضة على حساب الجودة (faithfulness): قد يؤدي الضغط المفرط إلى فقدان تفاصيل مهمة (مثل التواريخ والأسماء والنفي)، مما يقلل من جودة الإجابة. الأساليب التجريدية معرضة بشكل خاص لخطر الهلوسة. يعد التحكم في اكتمال ودقة (faithfulness) المُوجِّه المضغوط مهمة رئيسية.

الارتباط بمجالات أخرى

  • Retrieval-Augmented Generation (RAG): يرتبط RAG وضغط المُوجِّه ارتباطًا وثيقًا. يمكن اعتبار RAG خطوة خارجية للضغط: فبدلاً من معالجة قاعدة البيانات بأكملها، يتم البحث واختيار المستندات ذات الصلة. يكمل ضغط المُوجِّه RAG عن طريق تقليل حجم المستندات التي تم اختيارها بالفعل قبل تمريرها إلى نموذج اللغة الكبير.
  • In-Context Learning: تزيد الأمثلة في السياق (العروض التوضيحية) من طول المُوجِّه بشكل كبير. يعد ضغط هذه العروض (على سبيل المثال، باستخدام Instruction Distillation، حيث يتم استبدال العديد من الأمثلة بتعليمة واحدة قصيرة) مجالًا نشطًا للبحث.

المراجع

  • Ali, M. et al. (2024). Prompt-SAW: Semantic-Aware Winnowing for Prompt Compression. arXiv:2403.00000.
  • Gao, J.; Cao, Z.; Li, W. (2024). SelfCP: Compressing Over-Limit Prompt via the Frozen Large Language Model Itself. arXiv:2405.17052.
  • Jiang, H. et al. (2023). LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models. arXiv:2310.05736.
  • Jiang, H. et al. (2023). LongLLMLingua: Accelerating and Enhancing LLMs in Long-Context Scenarios via Prompt Compression. arXiv:2310.06839.
  • Jung, H.; Kim, K. (2023). PCRL: Discrete Prompt Compression with Reinforcement Learning. arXiv:2308.08758.
  • Li, M. et al. (2023). Selective-Context: Compressing Context to Summarise and Answer Questions. arXiv:2307.00000.
  • Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. NeurIPS 2023.
  • Xu, F.; Shi, W.; Choi, E. (2023). RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation. arXiv:2310.04408.
  • Yang, C. et al. (2023). PRCA: Prompt Compression with Reinforced Context Aggregation. arXiv:2311.00000.
  • Yoon, J. et al. (2024). CompAct: Interactive Prompt Compression for Long-Document QA. arXiv:2402.00000.
  • Zhang, S. et al. (2024). Efficient Prompting Methods for Large Language Models: A Survey. arXiv:2404.01077.
  • Jha, S. et al. (2024). Characterizing Prompt Compression Methods for Long Context Inference. arXiv:2407.08892.

ملاحظات

  1. Jha, S., et al. (2024). «Characterizing Prompt Compression Methods for Long Context Inference». arXiv. [١]
  2. «Efficient Prompting Methods for Large Language Models: A Survey». arXiv. [٢]
  3. «Prompt Compression: A Guide With Python Examples». DataCamp. [٣]
  4. Jiang, H., et al. (2023). «LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models». arXiv.
  5. Li, M. (2023). «Compressing context to summarize and answer questions». arXiv.
  6. Jung, H., & Kim, K. (2023). «Learning to Compress Prompts with Reinforcement Learning». arXiv.
  7. Xu, F., et al. (2024). «RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation». arXiv.
  8. Yang, C., et al. (2023). «PRCA: A new framework for prompt compression». arXiv.
  9. Ali, M., et al. (2024). «Prompt-SAW: A new method for prompt compression». arXiv.
  10. Pradeep, R., et al. (2023). «How to select the best passages for RAG?». arXiv.
  11. Yoon, J., et al. (2024). «CompAct: A new framework for interactive prompt compression». arXiv.
  12. 12.0 12.1 Mu, J., et al. (2023). «Learning to Compress Prompts with Gist Tokens». OpenReview. [٤]
  13. Gao, C., et al. (2024). «SelfCP: Compressing Over-Limit Prompt via the Frozen Large Language Model Itself». arXiv. [٥]