DSPy
DSPy إطار عمل مفتوح المصدر يبني مسارات عمل LLM من توقيعات ووحدات ذات أنواع محددة، ثم يحسّن مطالباتها وفق مقياس.
DSPy إطار عمل مفتوح المصدر بلغة Python لإنشاء تطبيقات تعتمد على نماذج اللغة الكبيرة (LLMs) بوصفها شيفرةً بدلًا من موجّهات مكتوبة يدويًا. يحدّد المطوّر ما الذي تستقبله كل خطوة وما الذي تعيده، ويجمع الخطوات في برنامج، ثم يتيح لمُحسِّن DSPy كتابة الموجّهات وضبطها، أو ضبط أوزان النموذج، لتعظيم مقياس على مجموعة من الأمثلة. ويشير الاسم إلى Python التقريرية ذاتية التحسين، ويصف المشروع نفسه بأنه إطار لبرمجة نماذج اللغة بدلًا من تلقينها. قدّمه عمر خطاب وزملاؤه في جامعة ستانفورد في ورقة أكتوبر 2023 بعنوان DSPy: تجميع استدعاءات نماذج اللغة التقريرية في خطوط أنابيب ذاتية التحسين. وفي غضون دقائق من التجميع، أتاحت بضعة أسطر من DSPy لـGPT-3.5 وLlama-2-13B-chat إنشاء خطوط أنابيب تفوقت على التلقين القياسي بعدد قليل من الأمثلة بأكثر من 25% و65% على التوالي، وعلى خطوط الأنابيب التي تستخدم أمثلة توضيحية كتبها خبراء بما يصل إلى 46% و40%.
التواقيع والوحدات والمُحسِّنات#
- التواقيع: تعريفات مكتوبة بأنواع محددة لمدخلات الخطوة ومخرجاتها، تُكتب مباشرةً بصيغة
"question -> answer"أو على هيئة فئة يوضح مستند توثيقها المهمة. وهي تحدد ما تفعله الخطوة، وتترك صياغة الموجّه لـDSPy. - الوحدات: استراتيجيات لتنفيذ توقيع. يستدعي
dspy.Predictالنموذج مرة واحدة، ويضيفdspy.ChainOfThoughtحقلًا للاستدلال قبل الإجابة كما في التلقين بسلسلة الأفكار، بينما يشغّلdspy.ReActحلقة تستخدم الأدوات على نمط التلقين ReAct. تتراص الوحدات مثل طبقات PyTorch لتكوين برامج متعددة الخطوات، مثل خط أنابيب التوليد المعزز بالاسترجاع (RAG) الذي يكتب استعلام بحث، ويسترجع المقاطع، ثم يجيب عنها. - المهايئات: تحوّل التوقيع إلى رسائل محادثة للنموذج، وتحلّل رده لإعادته إلى حقول محددة الأنواع.
- المُحسِّنات: خوارزميات تحسّن البرنامج وفق مقياس. يشغّل
BootstrapFewShotالبرنامج على أمثلة التدريب ويحتفظ بمسارات التنفيذ التي تجتاز المقياس لاستخدامها أمثلةً توضيحية، ويبحثMIPROv2في التعليمات المقترحة ومجموعات الأمثلة التوضيحية، بينما يقطّرBootstrapFinetuneالبرنامج إلى أوزان النموذج عبر الضبط الدقيق.
تحاكي حلقة التحسين تدريب نموذج، إذ تؤدي الموجّهات دور المعاملات:
يقرأ مُحسِّن GEPA لعام 2025، المتاح باسم dspy.GEPA، آثار تنفيذ البرنامج والتعليقات النصية، ويطلب من نموذج LLM التأمل فيما حدث من أخطاء، ثم يطوّر التعليمات بناءً على ذلك. وفي ست مهام، تفوق على أسلوب التعلّم المعزز GRPO بمتوسط 6% وبما يصل إلى 20%، مع استخدام عدد مرات تنفيذ أقل بما يصل إلى 35 ضعفًا، كما تفوق على MIPROv2 بأكثر من 10%.
من التوقيع إلى الموجّه#
ينشئ DSPy الموجّه انطلاقًا من التوقيع، لذا يمكن إعادة تحسين البرنامج نفسه لنموذج جديد بدلًا من إعادة كتابته. هنا يكون الإدخال ملخص اكتشاف صادرًا عن Ultralytics YOLO26: يعيد Results.verbose() نتيجة وضع التنبؤ على هيئة أعداد لكل فئة ضمن سلسلة قصيرة، ويمكن للتوقيع قبولها نصًا كي يضبط مُحسِّن خطوة الاستدلال باستخدام مخرجات اكتشاف الأجسام الفعلية. ولا يتطلب تنسيق الرسائل نموذجًا أو مفتاح API:
import dspy
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
class SceneQA(dspy.Signature):
"""Answer a question about a photo from the objects a detector found in it."""
detections: str = dspy.InputField()
question: str = dspy.InputField()
answer: str = dspy.OutputField()
# The adapter turns the signature and inputs into the chat messages the model will receive
inputs = {"detections": results[0].verbose(), "question": "How many people are in the photo?"}
messages = dspy.ChatAdapter().format(SceneQA, demos=[], inputs=inputs)
for message in messages:
print(f"--- {message['role']} ---\n{message['content']}")تسرد رسالة النظام حقول الإدخال والإخراج، وعلامات [[ ## field ## ]] التي يستخدمها DSPy لتحليل الرد، ومستند التوثيق بوصفه الهدف، بينما تحمل رسالة المستخدم أعداد الكاشف. ويحسّن المُحسِّن هذا البرنامج بإعادة صياغة ذلك الهدف وإضافة أمثلة توضيحية إلى الرسائل، دون تغيير شيفرة Python.
DSPy مقارنةً بالمصطلحات ذات الصلة#
- هندسة الموجّهات: كتابة الموجّهات ومراجعتها يدويًا. يحوّل DSPy هذا العمل إلى مسألة تحسين تستند إلى مقياس وأمثلة.
- LangChain: إطار عمل يضم عمليات تكامل وأدوات وحلقات للوكلاء من أجل إنشاء تطبيقات LLM، مع موجّهات يديرها المطوّر.
- ضبط المعاملات الفائقة: يبحث في إعدادات التدريب وفق مقياس للتحقق، وهو أقرب تشبيه بكيفية بحث DSPy في الموجّهات.
- أنظمة الذكاء الاصطناعي المركّبة: تطبيقات مؤلفة من عدة استدعاءات للنماذج وأدوات استرجاع وأدوات أخرى. صُمم DSPy لتحسين خطوط الأنابيب هذه من البداية إلى النهاية، وضبط موجّه كل خطوة وفق المقياس النهائي.










