المفاهيم
كيف يعمل التحسين
عقد التشغيل والتقييم، وأنواع العناصر، والمحركات المناسبة لكل نوع.
Skynet هو Optimize Anything: منتج واحد يحسّن أي عنصر مقابل بياناتك ومقياسك. يستخدم كل تشغيل عقد التشغيل نفسه وعقد المقياس نفسه. ويحدّد نوع العنصر المحرّكات التي يمكنها العمل عليه.
العقد المشترك
لكل تشغيل ملفان. يشغّل run.py العنصر على حالة واحدة. ويقيّم metric.py المخرجات.
from skynet import llm
def run(artifact, input):
return llm(artifact, input=input)def score(input, output, expected=None):
ok = output == expected
return (1.0 if ok else 0.0), {"feedback": "Match." if ok else "No match."}artifactهو النسخة الحالية التي يقترحها المُحسِّن.inputقاموس (dict) يحمل حقول الإدخال لحالة واحدة.expectedهو القيمة المتوقعة للحالة، أوNoneعندما لا تكون للحالة قيمة متوقعة.- تُرجع
scoreزوجًا: رقمًا، وقاموسًا يحتوي على سلسلة"feedback".
توفّر وحدة المساعدة skynet كلًا من llm وImage وlog. يذهب استدعاء llm من كود التشغيل إلى نموذج المهمة. ويذهب استدعاء llm من المقياس إلى نموذج المقياس.
اقرأ المقاييس والمُقيِّمات للاطلاع على عقد المقياس الكامل.
أنواع العناصر والمحركات
| نوع العنصر | المحرّكات |
|---|---|
| موجّه | Auto, GEPA, Best-of-N, AutoResearch, Meta-Harness, AutoSaddler, ShinkaEvolve |
| كود | مثل الموجّه |
| نص | مثل الموجّه |
| برنامج DSPy | Auto, DSPy GEPA, DSPy MIPROv2, DSPy BootstrapFewShot |
تنقسم المحرّكات إلى عائلتين:
- تتعامل المحرّكات الأصلية مع العنصر كصندوق أسود. تعمل على عناصر الموجّه والكود والنص.
- تعمل مُحسِّنات DSPy داخل برنامج DSPy. وتعمل فقط على عناصر برنامج DSPy.
يحتاج DSPy MIPROv2 وDSPy BootstrapFewShot إلى أزواج (حالات مع مخرجات متوقعة). مع إدخال واحد، لا يستطيع برنامج DSPy استخدام سوى Auto وDSPy GEPA.
عناصر الموجه والكود والنص
تتعامل المحرّكات الأصلية مع العنصر كصندوق أسود. يقترح المحرّك نسخة جديدة، ويشغّل run(artifact, input) على الحالات، ويقرأ الدرجة والملاحظات.
تستخدم المحرّكات الأصلية الستة طرق بحث مختلفة:
- يطوّر GEPA النسخ بالتأمل ويحتفظ بجبهة باريتو.
- يطلب Best-of-N من نموذج التأمل اقتراحات مستقلة ويحتفظ بأفضلها.
- تستخدم AutoResearch وMeta-Harness وAutoSaddler وShinkaEvolve وكيل برمجة لاقتراح النسخ.
اقرأ المحرّكات للتعرّف على كل محرّك وإعداداته.
عناصر برنامج DSPy
برنامج DSPy هو نوع واحد من العناصر. يبني ملف run.py الخاص بك dspy.Module على مستوى الوحدة ويستدعيه داخل run. إذا احتوى الملف على أكثر من وحدة، فسمِّ الوحدة المراد تحسينها program.
ما يحدث عندما يعمل مُحسِّن DSPy:
- يعثر Skynet على وحدتك ويغلّفها بدالة
runالخاصة بك. تمر كل حالة عبرrunالخاصة بك. - يترجم مُحسِّن DSPy البرنامج على حالات التدريب.
- يختار بناءً على حالات التحقق.
- الفائز هو نص التعليمات لكل متنبئ (predictor)، بالإضافة إلى الحالة المترجمة الكاملة للوحدة. تشمل الحالة أمثلة few-shot.
تقيس الدرجات النهائية البرنامج نفسه الذي يحفظه Skynet.
| المُحسِّن | يقرأ نص الملاحظات |
|---|---|
| DSPy GEPA | نعم |
| DSPy MIPROv2 | لا، الدرجة فقط |
| DSPy BootstrapFewShot | لا، الدرجة فقط |
لا يستخدم DSPy BootstrapFewShot نموذج تأمل.
Auto
Auto هو الخيار الافتراضي في المعالج.
- على عنصر موجّه أو كود أو نص، يستكشف Auto بخمسة محرّكات أصلية، ثم يتابع بـ GEPA من أفضل نسخة.
- على برنامج DSPy، يشغّل Auto DSPy GEPA.
يقرأ Auto بشكليه نص الملاحظات من مقياسك.
أي محرك تختار
| وضعك | استخدم |
|---|---|
| لديك موجّه يشغّله نموذج | عنصر موجّه. ابدأ بـ Auto. |
| لديك كود تريد جعله أسرع أو أرخص أو أكثر صحة | عنصر كود. ابدأ بـ Auto. |
| لديك مستند أو ملف إعدادات | عنصر نص. ابدأ بـ Auto. |
| لديك برنامج DSPy | عنصر برنامج DSPy. ابدأ بـ Auto. |
| تريد أمثلة few-shot مختارة من بياناتك | عنصر برنامج DSPy مع DSPy BootstrapFewShot أو DSPy MIPROv2 |