تخطَّ إلى المحتوى الرئيسي
Vantaige
DSPy screenshot
DSPy logo

DSPy

مجاني

DSPy هو إطار عمل من Stanford NLP يتعامل مع هندسة التلقين (prompt engineering) كمشكلة مُجمِّع (compiler): حيث تكتب توقيعات ووحدات نمطية محددة النوع، وتحدد مقياساً، ليقوم المُحسِّن بالبحث عن أفضل التلقينات تلقائياً. مجاني، بترخيص Apache 2.0، وأكثر من 5 ملايين تنزيل شهرياً على PyPI.

حالات الاستخدام:البرمجة والتطوير
الميزات:APIOpen Source

يُعد DSPy إطار عمل Python لبرمجة النماذج اللغوية بدلاً من تلقينها يدوياً. تم تطويره في Stanford NLP بواسطة عمر خطاب وصدر كمشروع مفتوح المصدر بترخيص Apache 2.0، وقد انبثق من بحث نُشر في ICLR 2024 ونما منذ ذلك الحين ليحصد أكثر من 34,000 نجمة على GitHub وحوالي 5.25 مليون تنزيل شهرياً على PyPI اعتباراً من أبريل 2026. المشكلة الأساسية التي يحلها DSPy هي هشاشة نصوص التلقين المصاغة يدوياً: فعندما تقوم بتبديل النماذج، أو تغيير مسار عملك، أو تكتشف أن التلقين الذي كتبته بيدك لا يعمل إلا في ظل ظروف معينة، ستضطر إلى البدء من جديد. يستبدل DSPy سير العمل هذا بمُجمِّع (compiler) يتعامل مع تحسين التلقين كمشكلة بحث تعتمد على مقياس محدد.

يوفر إطار العمل ثلاث ركائز أساسية مترابطة: التوقيعات (Signatures) (مواصفات مدخلات ومخرجات محددة النوع مكتوبة بلغة طبيعية تعلن عما تريده، وليس كيفية الحصول عليه)، والوحدات النمطية (Modules) (وحدات قابلة للتركيب مثل ChainOfThought و ReAct و Refine و ProgramOfThought و BestOfN و Parallel والتي تطبق استراتيجيات الاستدلال)، والمُحسِّنات (Optimizers) (مثل BootstrapFewShot لتوليد الأمثلة القليلة، و MIPROv2 للضبط المشترك للتعليمات والأمثلة التوضيحية عبر التحسين البايزي، و BootstrapFinetune لتحديث الأوزان). كل ما عليك هو تحديد مقياس، وتوفير مجموعة بيانات صغيرة مصنفة، وتشغيل المُحسِّن، لتحصل في المقابل على برنامج تلقين مُجمَّع. أضاف إصدار DSPy 3.0، الذي تم إطلاقه في قمة Databricks Data + AI في يونيو 2025 وتلاه الإصدار 3.2.0 في أبريل 2026، تكامل MLflow للمراقبة، والضبط الدقيق القائم على التعلم المعزز (RL)، ومُحسِّن التطور الانعكاسي للتلقين GEPA، وأدوات معززة للإنتاج تم تطويرها من الاستخدام الداخلي في Databricks.

ما الذي يفعله DSPy فعلياً في أبريل 2026

الإصدار الحالي هو DSPy 3.2.0، والذي يوفر واجهة لربط المُحسِّنات (BetterTogether) تتيح لك تسلسل المُحسِّنات في استراتيجيات مخصصة: على سبيل المثال، تحسين التلقين، ثم الضبط الدقيق، ثم إعادة التحسين (دورة "p -> w -> p"). كما قام بفصل LiteLLM كاعتمادية مطلوبة، وجعلها اختيارية، مما يقلل من حجم التثبيت ويزيل تعارض الاعتماديات المتعدية الذي أزعج العديد من المستخدمين في الإصدارات السابقة. يقوم التحقق من صحة حقل الإدخال الآن بإصدار تحذيرات عندما لا تتطابق القيم مع أنواع التوقيعات المعلنة، وتكشف الركيزة dspy.Reasoning (التي تم تقديمها في 3.1.0) عن الاستدلال الأصلي من نماذج الاستدلال مثل o3 و Claude Sonnet دون الحاجة إلى إعدادات إضافية.

تغطي مكتبة الوحدات النمطية معظم أنماط الاستدلال الجاهزة للاستخدام. تستخرج ChainOfThought الأساس المنطقي قبل الإجابة النهائية. وتدمج ReAct خطوات الاستدلال مع استدعاءات الأدوات لحلقات الوكلاء. وتوجه ProgramOfThought المسار عبر مفسر أكواد للمشكلات التي تعتمد بشكل كبير على الرياضيات. وتقوم BestOfN بأخذ عينات من إكمالات متعددة وتقييمها بناءً على مقياس محدد. وتُشغِّل Parallel الوحدات النمطية بشكل متزامن لمسارات العمل الحساسة لزمن الانتقال. تقبل جميع الوحدات النمطية أي خلفيات LLM عشوائية عبر واجهة LiteLLM، لذا فإن التبديل من GPT-4o إلى Claude 3.7 Sonnet إلى نموذج Llama يعمل محلياً هو مجرد تغيير في سطر واحد من الإعدادات، مع إعادة تشغيل المُحسِّن لاستنتاج التلقينات مجدداً بما يتناسب مع أسلوب النموذج الجديد.

يميز نظام التحسين DSPy عن أي أداة تنسيق LLM أخرى في السوق. تقوم BootstrapFewShot بتوليد أمثلة توضيحية مصنفة عن طريق تشغيل برنامجك مقابل مجموعة تدريب والاحتفاظ فقط بالأمثلة التي يجتاز فيها المخرج مقياسك. وتذهب MIPROv2 إلى أبعد من ذلك: فهي تقترح تعليمات مرشحة، وتقيمها على دفعات صغيرة باستخدام التحسين البايزي، وتبحث بشكل مشترك في نص التعليمات ومجموعات الأمثلة التوضيحية لكل وحدة نمطية في مسار عملك في وقت واحد. وفقاً لورقة ICLR 2024، تنتج هذه المُحسِّنات مسارات عمل تتفوق على خطوط الأساس الملقنة يدوياً بأكثر من 25% على GPT-3.5 وأكثر من 65% على Llama 2 13B في المهام التمثيلية. يطبق مُحسِّن GEPA (الذي تم تقديمه في 3.0) التطور الانعكاسي، حيث ينتقد النموذج التعليمات المقترحة الخاصة به ويكرر العملية.

"هندسة التلقين هشة، وهي عبارة عن 'قوالب' مبرمجة مسبقاً لا يمكن تعميمها، وببساطة غير قابلة للتوسع." - vincirufus، Hacker News، أغسطس 2025

موقع DSPy مقارنةً بـ LangChain و LlamaIndex

LangChain هو إطار عمل للتنسيق: يمنحك تجريدات سلاسل قابلة للتركيب، وإدارة الذاكرة، وأكثر من 100 تكامل لأدوات مبنية مسبقاً، ومنفذي وكلاء يوجهون بين الأدوات عبر تحليل السلاسل النصية أو استدعاء الدوال. النموذج الأساسي إلزامي: تكتب نص التلقين، وتربطه في سلسلة، وتكرر العملية عن طريق تعديل النص. لا يوجد مُحسِّن. عندما تريد أن يتحسن التلقين مقابل مقياس معين، عليك كتابة هذا المنطق بنفسك. يمتلك LangChain حوالي 90 ألف نجمة على GitHub وأكبر نظام بيئي للتكامل بين أطر عمل LLM، لكن معالجته للتلقين يدوية بالكامل وتفرض السلاسل عبئاً إضافياً يبلغ حوالي 10 مللي ثانية لكل استدعاء (مقارنة بـ DSPy الذي يبلغ حوالي 3.5 مللي ثانية وفقاً لمعايير Morph LLM لعام 2025). تتلخص المقارنة في هذا: يُحسِّن LangChain مدى سرعة بناء شيء يعمل؛ بينما يُحسِّن DSPy مدى موثوقية تحسن هذا الشيء واستمراره في العمل مع تغير النماذج.

LlamaIndex هي بنية تحتية لـ RAG: التمييز الأساسي لها هو طبقة الفهرسة، مع أكثر من 10 أنواع من الفهارس (VectorStore و SummaryIndex و KnowledgeGraph و SQL وغيرها)، ومسارات عمل متطورة للتقسيم (chunking) والتضمين (embedding)، والاسترجاع الهجين باستخدام BM25 بالإضافة إلى البحث الدلالي، وإعادة الترتيب. إذا كانت مشكلتك هي "كيف أقوم باستيعاب واسترجاع المستندات على نطاق واسع"، فإن LlamaIndex تمتلك أدوات مصممة خصيصاً لذلك. تغلف وكلاء محرك الاستعلام الخاص بها طبقة الاسترجاع تلك في حلقة ReAct. ما لا تمتلكه LlamaIndex هو مُحسِّن: بمجرد تحديد مسار عمل RAG الخاص بك، تصبح جودة التلقين مشكلة تكرار يدوية. يمكن استخدام DSPy فعلياً فوق استرجاع LlamaIndex من خلال التعامل مع المسترجع كوحدة نمطية متوافقة مع DSPy، وهو نمط موثق في حالات استخدام مجتمع DSPy ومتاح من خلال تكاملات مثل LlamaIndex نفسها.

إطار مفيد من المجتمع الهندسي: غالباً ما يجمع المستخدمون بين تحسين DSPy واتساع تكامل LangChain، أو يستخدمون DSPy لتوليد تلقينات مُحسَّنة يتم نشرها بعد ذلك في مسار عمل LangChain. من أجل المراقبة وتتبع عمليات تشغيل DSPy في الإنتاج، يقترن تكامل Databricks مع MLflow، بينما تدعم أدوات الطرف الثالث مثل Langfuse أيضاً تتبع DSPy بشكل أصلي. بالنسبة للفرق التي تبني تطبيقات LLM والتي تحتاج إلى مرونة في اختيار مزود النموذج، فإن LiteLLM هو الموجه الذي يفوض إليه DSPy المهام في الخلفية. بالنسبة لأعباء العمل التي تعتمد بشكل كبير على الوكلاء حيث يكون التنسيق بين الوكلاء المتعددين أكثر أهمية من تحسين التلقين، تتخذ AutoGen و CrewAI مناهج معمارية مختلفة تستحق المقارنة.

"قانون خطاب: أي نظام ذكاء اصطناعي معقد بدرجة كافية يحتوي على تنفيذ مخصص، ومحدد بشكل غير رسمي، ومليء بالأخطاء لنصف ميزات DSPy." - Skylar Payne، مدونة هندسة الذكاء الاصطناعي، 2024

كيف يبدو واقع سير عمل DSPy

يتطلب البدء مع DSPy استثماراً مبدئياً أكبر من LangChain ولكنه يؤتي ثماره بطرق مختلفة. يتكون سير العمل من أربع مراحل: تحديد توقيعك، وكتابة تكوين وحدتك النمطية، وتحديد مقياسك، وتشغيل المُحسِّن. يبدو الحد الأدنى من مثال العمل كالتالي: اكتب `class QA(dspy.Signature): question: str -> answer: str`، وقم بإنشاء مثيل `cot = dspy.ChainOfThought(QA)`، واكتب مقياساً يتحقق من صحة الإجابة، واستدعِ `optimizer.compile(cot, trainset=examples)`. يقوم البرنامج المُجمَّع بتخزين التلقينات والأمثلة التوضيحية المُحسَّنة مؤقتاً والتي يمكن حفظها على القرص، والتحكم في إصداراتها، وإعادة إنتاجها بدقة.

تحسنت تجربة تصحيح الأخطاء بشكل كبير في الإصدار 3.x. تطبع الدالة `inspect_history()` كل استدعاء LLM تم إجراؤه في الجلسة مع التلقينات والاستجابات الكاملة. يسجل تكامل MLflow (لمستخدمي Databricks) كل تجربة تحسين مع المدخلات والمخرجات ودرجات المقاييس، مما يجعل من الممكن تدقيق سبب اختيار المُحسِّن لأمثلة توضيحية محددة. تبرز تحذيرات التحقق من صحة النوع في الإصدار 3.2.0 عدم تطابق التوقيعات قبل أن تصبح أخطاء صامتة. ومع ذلك، فإن تصحيح أخطاء مسار عمل متعدد الوحدات النمطية حيث اتخذ المُحسِّن خيارات لا توافق عليها يتطلب فهم ما كان يبحث عنه التحسين، وهو ما يتطلب معرفة سياقية أكثر من تصحيح أخطاء تلقين مكتوب يدوياً.

تختلف تكاليف التحسين بشكل كبير حسب المُحسِّن وحجم مجموعة البيانات. تبلغ تكلفة التشغيل السريع لـ BootstrapFewShot على 50 مثالاً مع GPT-4o-mini كنموذج معلم حوالي $1-3. يمكن أن يكلف التشغيل الكامل لـ MIPROv2 مع توليد التعليمات المرشحة عبر 200 مثال ما بين $10-50 اعتماداً على اختيار النموذج. تقدم الوثائق تقديراً بقيمة $2 لـ "تشغيل بسيط نموذجي". أبلغت الفرق التي قامت بتشغيل MIPROv2 دون قراءة إرشادات التكلفة في أوائل عام 2024 عن فواتير API مفاجئة، وهي مشكلة تعالجها الوثائق الآن بشكل أكثر وضوحاً.

لمن تم بناء DSPy

يُعد DSPy الأقوى لمهندسي وباحثي تعلم الآلة (ML) الذين يفكرون من منظور الأنظمة بدلاً من السلاسل النصية. إذا كان لديك بيانات مصنفة، ومقياس قابل للقياس، ومسار عمل يحتاج إلى أن يكون قابلاً للصيانة مع تطور النماذج، فإن حلقة مُحسِّن DSPy تقدم قيمة لا يمكن لأي قدر من صياغة التلقين اليدوية أن يضاهيها. أبلغت فرق في شركات مثل Google و IBM و VMware و Databricks أن DSPy يجعل تبديل النماذج أرخص بكثير: عندما يتم إصدار نموذج جديد، أعد تشغيل المُحسِّن بدلاً من إعادة كتابة كل تلقين. يُعد إطار العمل قيماً بشكل خاص في المجالات العلمية والمكثفة للبيانات حيث تحتاج مسارات العمل المعززة بالاسترجاع إلى قياس جودة منهجي. يستفيد الباحثون الذين ينشرون تجارب LLM قابلة لإعادة الإنتاج من برامج DSPy المُجمَّعة القابلة للتسلسل والتي يمكن مشاركتها جنباً إلى جنب مع كود الورقة البحثية.

لا يُعد إطار العمل مناسباً للنماذج الأولية السريعة تحت ضغط المواعيد النهائية. التكلفة المبدئية لكتابة مقاييس التقييم، وإعداد أمثلة التدريب، وفهم تجريدات المُحسِّن هي تكلفة حقيقية. وكما أشار تحليل أحد الممارسين، فإن الفرق "تتبنى DSPy مباشرة، أو يمكنها استعارة أنماطه عن قصد من اليوم الأول، بدلاً من إعادة بنائها بصعوبة لاحقاً". لا يمكن للمنتجات التي لا تحتوي على معيار نجاح قابل للبرمجة (روبوتات الدردشة المفتوحة، مساعدي الكتابة الإبداعية) الاستفادة من المُحسِّن، مما يزيل الميزة التنافسية الأساسية لـ DSPy. تُعد Python هي بيئة التشغيل الوحيدة من الدرجة الأولى، على الرغم من ظهور منفذ Go يديره المجتمع في عام 2025.

ما لا يمثله DSPy

لا يُعد DSPy بديلاً كاملاً لـ LangChain أو LlamaIndex. فهو لا يوفر أكثر من 100 تكامل مبني مسبقاً، ولا يدير ذاكرة المحادثة لتطبيقات الدردشة متعددة الأدوار، ولا يوفر واجهة مستخدم، أو بيئة تجارب (playground)، أو خدمة مستضافة. إنه مكتبة Python. تقوم بتثبيتها، وتكتب كود Python، وتستدعي واجهات برمجة تطبيقات LLM (عبر LiteLLM، الذي يدعم OpenAI و Anthropic و Gemini و Cohere والنماذج المحلية عبر Ollama ومعظم المزودين الآخرين). النشر والتقديم والمراقبة خارج نطاق DSPy نفسه، ويتم التعامل معها بواسطة بنيتك التحتية الخاصة أو بواسطة حزمة Databricks إذا كنت ضمن هذا النظام البيئي.

كما أنه ليس إطار عمل للمستخدمين الذين يرغبون في تجنب التفكير في التلقينات تماماً. ينقلك DSPy من كتابة التلقينات يدوياً إلى كتابة التوقيعات والمقاييس، ولكنك لا تزال بحاجة إلى فهم كيف يبدو المخرج الجيد من أجل تحديد المقياس. المُحسِّن هو عملية بحث في مساحة التلقينات، وليس وسيطاً يكتشف حالة الاستخدام الخاصة بك من الصفر. هذا التمييز مهم: يقوم DSPy بأتمتة التكرار الممل ويجعل العملية منهجية وقابلة لإعادة الإنتاج، ولكنه لا يحل محل المعرفة بالمجال.

تقييمات المستخدمين

لا توجد تقييمات بعد. كن أول من يشارك تجربته!

سجّل الدخول لكتابة تقييم.

ظهرت في مجموعات

قوائم منتقاة تتضمّن DSPy.

مقالات ذات صلة

أدلة ومقالات ذات صلة بـ DSPy.