דילוג לתוכן
Skynetתיעוד
דפים

מושגים

איך האופטימיזציה עובדת

חוזה הריצה והציון, סוגי התוצרים, והמנועים לכל סוג.

Skynet הוא Optimize Anything: מוצר אחד שמשפר כל תוצר מול הנתונים ופונקציית המדידה (Metric) שלך. כל ריצה משתמשת באותו חוזה הרצה ובאותו חוזה של פונקציית מדידה. סוג התוצר קובע אילו מנועים יכולים לעבוד עליו.

החוזה המשותף

לכל ריצה יש שני קבצים. run.py מריץ את התוצר על מקרה אחד. metric.py נותן ציון לפלט.

from skynet import llm


def run(artifact, input):
    return llm(artifact, input=input)
  • artifact היא הגרסה הנוכחית שהאופטימייזר מציע.
  • input הוא dict שמכיל את שדות הקלט של מקרה אחד.
  • expected הוא הערך הצפוי של המקרה, או None כשאין למקרה ערך כזה.
  • score מחזיר זוג: מספר, ו-dict עם מחרוזת "feedback".

מודול העזר skynet נותן את llm,‏ Image ו-log. קריאה ל-llm מקוד ההרצה הולכת למודל המשימה. קריאה ל-llm מפונקציית המדידה הולכת למודל של פונקציית המדידה.

קרא/י את פונקציות מדידה ופונקציות ציון לחוזה המלא של פונקציית המדידה.

סוגי תוצרים ומנועים

סוג התוצרמנועים
פרומפטAuto,‏ GEPA,‏ Best-of-N,‏ AutoResearch,‏ Meta-Harness,‏ AutoSaddler,‏ ShinkaEvolve
קודכמו פרומפט
טקסטכמו פרומפט
תוכנית DSPyAuto,‏ DSPy GEPA,‏ DSPy MIPROv2,‏ DSPy BootstrapFewShot

המנועים מתחלקים לשתי משפחות:

  • המנועים המובנים מתייחסים לתוצר כקופסה שחורה. הם עובדים על תוצרים מסוג פרומפט, קוד וטקסט.
  • האופטימייזרים של DSPy עובדים בתוך תוכנית DSPy. הם עובדים רק על תוצרים מסוג תוכנית DSPy.

DSPy MIPROv2 ו-DSPy BootstrapFewShot צריכים זוגות (מקרים עם פלטים צפויים). עם קלט יחיד, תוכנית DSPy יכולה להשתמש רק ב-Auto וב-DSPy GEPA.

תוצרים מסוג פרומפט, קוד וטקסט

המנועים המובנים מתייחסים לתוצר כקופסה שחורה. מנוע מציע גרסה חדשה, מריץ את run(artifact, input) על המקרים, וקורא את הציון ואת המשוב.

ששת המנועים המובנים משתמשים בשיטות חיפוש שונות:

  • GEPA מפתח גרסאות בעזרת רפלקציה ושומר חזית Pareto.
  • Best-of-N מבקש ממודל האופטימיזציה הצעות בלתי תלויות ושומר את הטובה ביותר.
  • AutoResearch,‏ Meta-Harness,‏ AutoSaddler ו-ShinkaEvolve משתמשים בסוכן קוד כדי להציע גרסאות.

קרא/י את מנועים כדי להכיר כל מנוע ואת ההגדרות שלו.

תוצרים מסוג תוכנית DSPy

תוכנית DSPy היא סוג תוצר אחד. קובץ run.py שלך בונה dspy.Module ברמת המודול וקורא לו בתוך run. אם בקובץ יש יותר ממודול אחד, יש לתת למודול שרוצים לשפר את השם program.

מה קורה כשאופטימייזר של DSPy רץ:

  1. Skynet מוצא את המודול שלך ועוטף אותו בפונקציית run שלך. כל מקרה עובר דרך ה-run שלך.
  2. האופטימייזר של DSPy מקמפל את התוכנית על מקרי האימון.
  3. הוא בוחר לפי מקרי האימות.
  4. המנצח הוא טקסט ההוראות של כל 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

עמודים קשורים