DSPy: ترجمة استدعاءات نماذج اللغة الإعلانية إلى أنابيب تُحسّن ذاتيًا

يُستكشف المجتمع الخاص بالذكاء الاصطناعي التوليدي (ML) بسرعة تقنيات التحفيز (prompting) للنماذج اللغوية (LMs)، وكذلك تجميعها في سلاسل معالجة (pipelines) تُحلّ المشكلات المعقدة. ومع ذلك، فإن السلاسل الحالية للنماذج اللغوية تُطبّق عادةً باستخدام "قوالب تحفيز ثابتة" (hard-coded "prompt templates")، أي سلاسل طويلة تم اكتشافها عبر التجربة والخطأ. وبهدف تطوير نهج أكثر منهجية لتصميم وتحسين سلاسل النماذج اللغوية، نقدّم "DSPy"، وهو نموذج برمجي يُبسط سلاسل النماذج اللغوية إلى رسوم بيانية لتحويل النصوص (text transformation graphs)، أي رسوم بيانية حسابية إجرائية (imperative computational graphs) يتم فيها استدعاء النماذج اللغوية عبر وحدات إعلانية (declarative modules). وتتميز وحدات DSPy بالقابلية للتمثيل بمعاملات (parameterized)، ما يعني أنها قادرة على التعلّم (من خلال إنشاء أمثلة وجمعها) كيفية تطبيق تراكيب من تقنيات التحفيز، والتدريب المخصص (finetuning)، والتكبير (augmentation)، والتفكير الاستنتاجي (reasoning). وقد صمّمنا مُحَوِّلًا (compiler) يُحسّن أي سلسلة DSPy لتحقيق أقصى قيمة لمعيار معين. أجرينا دراستين حالة، وأظهرنا أن البرامج الموجزة باستخدام DSPy قادرة على التعبير عن وتحسين سلاسل نماذج لغوية معقدة، تُحلّل المسائل الرياضية المكتوبة، وتتعامل مع استرجاع متعدد الخطوات (multi-hop retrieval)، وتجيب على أسئلة معقدة، وتحكم في حلقات الوكيل (agent loops). وفي غضون دقائق من التحويل، تكفي بضعة أسطر من كود DSPy لتمكين نماذج GPT-3.5 وllama2-13b-chat من توليد سلاسل ذاتية (self-bootstrap) تفوق الأداء في التحفيز القليل (few-shot prompting) القياسي (بمتوسط تفوق يزيد عن 25% و65% على التوالي)، وكذلك تفوق السلاسل التي تعتمد على أمثلة مُعدّة من قبل خبراء (بفارق يصل إلى 5-46% و16-40% على التوالي). علاوة على ذلك، فإن البرامج المُحَوَّلة باستخدام DSPy إلى نماذج مفتوحة المصدر وذات حجم محدود نسبيًا مثل T5 بـ 770 مليون معلمة وllama2-13b-chat، تُقدّم أداءً تنافسيًا مع الأساليب التي تعتمد على سلاسل تحفيز مكتوبة خصيصًا من قبل خبراء لنموذج GPT-3.5 المُخزّن في خدمة خاصة. يمكن الوصول إلى DSPy عبر الرابط: https://github.com/stanfordnlp/dspy