# הפעלת ריצה עם האשף

> כל שלב באשף ההגשה, מהמשימה ועד בדיקת החוזה.

אשף ההגשה מגדיר ריצה ומתחיל אותה. יש בו ארבעה שלבים: **משימה**, **קלטים**, **מאפטם** ו-**מדד והרצה**. בכל שלב יש מסך אחד או יותר. המדריך הזה מסביר כל מסך, מהמשימה ועד בדיקת החוזה ותחילת הריצה.

> [!NOTE]
> האשף מציג יותר או פחות הגדרות לפי רמת הניסיון: **מודרך**, **רגיל** או **מומחה**. ברירת המחדל היא מודרך. אפשר לשנות את הרמה ב-**הגדרות → חשבון**, תחת **כמה להציג**. חלק מהתוויות פשוטות יותר ברמה המודרכת. המדריך הזה משתמש בתוויות של הרמות רגיל ומומחה, ומציין את התווית המודרכת בסוגריים כשהיא שונה.

## שלב 1: משימה

### מה תרצו לייעל?

תאר/י את המשימה לעוזר בצ'אט **ראיון משימה**. העוזר כותב בשבילך שני שדות:

- **מטרה** (מודרך: **המטרה**): במה התוצר המיועל צריך להצטיין.
- **רקע** (מודרך: **הקשר נוסף**): הקשר, מגבלות ואיך נראית תוצאה טובה.

אפשר לערוך את שני השדות. העוזר לא דורס את העריכות שלך.

### מה נייעל

בחר/י את **סוג התוצר**:

| סוג התוצר   | מה משתנה                            |
| ----------- | ----------------------------------- |
| פרומפט      | הוראות שנשלחות למודל שפה            |
| קוד         | קוד המקור של תוכנית                 |
| תוכנית DSPy | ההוראות של ה-predictors במודול DSPy |
| טקסט        | כל טקסט אחר, כמו מסמך או תבנית      |

אחר כך תן/תני את **גרסת התחלה** (מודרך: **מאיפה מתחילים**). הדבק/י את הגרסה הנוכחית, או תן/תני לעוזר לכתוב טיוטה.

### אופטימיזציה של מאגר קוד

אפשר גם לייעל קוד במאגר קוד. הגדר/י את השדות האלה:

- **מאגר**: בחר/י מאגר קוד, או כתוב/י אותו בצורה `owner/name`.
- **קומיט**: SHA באורך 40 תווים. השאר/י ריק כדי להשתמש בקומיט האחרון בענף.
- **נתיבים שהאופטימייזר רשאי לשנות**: קובץ או תיקייה בכל שורה. נקודה פירושה המאגר כולו.
- **פקודת התקנה**: רצה בכל עותק חדש של המאגר לפני הניקוד. אם השדה נשאר ריק, Skynet ימצא את הפקודה בעצמו.

## שלב 2: קלטים

### נתונים

הוסף/הוסיפי את המקרים לריצה. אפשר:

- להעלות קובץ CSV,‏ JSON או Excel.
- לבחור דאטאסט מהספרייה שלך.

קרא/י את [דאטאסטים וחלוקה](/docs/he/concepts/datasets) ואת [הכנת דאטאסט](/docs/he/guides/datasets).

### איך לקרוא את הנתונים

העוזר קורא את הנתונים ומציע איך להשתמש בהם. בדוק/בדקי את הבחירות שלו:

- סמן/י כל עמודה כקלט, כפלט הצפוי, או כעמודה שמדלגים עליה.
- כשאין עמודת פלט, Skynet משתמש בשורה הראשונה כקלט אחד.
- הגדר/י את החלוקה לסט אימון, סט אימות וסט בדיקה. סכום החלוקה חייב להיות 1.

> [!WARNING]
> אי אפשר לפתוח את השלבים הבאים כל עוד יש בעיה בשלב **קלטים**. תקן/י את הבעיות שהאשף מציג, ואז המשך/המשיכי.

## שלב 3: מאפטם

ברמה רגיל יש בשלב הזה מסך אחד. הוא מציג את האופטימייזר, את התקציב, ובמקרה הצורך את המודלים. ברמות מודרך ומומחה יש בשלב שלושה מסכים: **אופטימייזר**, **מודלים** ו-**תקציב**.

### אופטימייזר

האשף מציג רק את האופטימייזרים שמתאימים למשימה ולקלטים שלך. **Auto** נבחר בשבילך. אפשר לבחור אופטימייזר אחר. קרא/י את [מנועים](/docs/he/concepts/engines) ואת [איך האופטימיזציה עובדת](/docs/he/concepts/optimization).

### מודלים

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

### תקציב

הגדר/י כמה זמן הריצה יכולה להמשיך לנסות, וכמה היא יכולה להוציא:

- **מקסימום הרצות ניקוד** (מודרך: **מקסימום ניסיונות**): המספר המרבי של מועמדים ש-Skynet נותן להם ציון. חלק מהאופטימייזרים צריכים מספר מינימלי.
- **עצירה בציון** (מודרך: **לעצור מוקדם כשהציון מגיע ל-**): הריצה נעצרת כשגרסה מגיעה לציון הזה.
- **מקסימום איטרציות** (מודרך: **מקסימום סבבים**): מופיע באופטימייזרים שתומכים בזה.
- **תקרת הוצאה**: הסכום המרבי שהריצה יכולה להוציא. ברירת המחדל היא $5, או הסכום **נדרש כדי להתחיל** אם הוא גבוה יותר. אפשר גם לבחור **ללא תקרה**.

האשף לא מאפשר להמשיך אם התקרה או היתרה שלך נמוכות מהסכום שנדרש כדי להתחיל. קרא/י את [תקציבים וחיוב](/docs/he/concepts/billing).

## שלב 4: מדד והרצה

### קוד ומדד

כתוב/י שני קבצים:

- `run.py`: קוד ההרצה שמריץ את התוצר שלך על מקרה אחד.
- `metric.py`: פונקציית המדידה (Metric) שנותנת ציון לפלט וכותב משוב.

**סוכן הקוד** יכול לכתוב ולשנות כל קובץ בשבילך. הוא בודק את הקוד שלו ומתקן את מה שנכשל. אפשר להוסיף עד 20 קבצים נוספים. קרא/י את [פונקציות מדידה ופונקציות ציון](/docs/he/concepts/scorers).

אם פונקציית המדידה שלך קוראת ל-`llm()`, הגדר/י את **מודל המדד**. כברירת מחדל היא משתמשת במודל האופטימיזציה.

### בדיקת חוזה

**בדיקת חוזה** (מודרך: **הרצת ניסיון**) מריצה את הקוד ואת פונקציית המדידה שלך ב-sandbox על 3 מקרים לדוגמה. היא בודקת:

- את החתימה של קוד ההרצה,
- את החתימה של פונקציית המדידה,
- את המודל של פונקציית המדידה,
- את קוד ההרצה על הדוגמאות,
- את הערך שפונקציית המדידה מחזירה.

בחר/י **בדיקה** (מודרך: **ניסיון**). אי אפשר להתחיל את הריצה עד שהבדיקה עוברת. אם משנים את הקוד או את ההגדרות אחרי שהבדיקה עברה, יש להריץ את הבדיקה שוב.

> [!TIP]
> פתח/י כל דוגמה כדי לראות את הקלט, הפלט והמשוב שלה. משוב טוב נותן לאופטימייזר יותר מידע לעבוד איתו מאשר הציון לבד.

### ריצה מתוזמנת

אפשר להריץ את האופטימיזציה שוב לפי לוח זמנים אחרי שהיא מצליחה. ברירת המחדל היא **כבויה**.

### מוכן להרצה

המסך האחרון מציג סיכום בחמש לשוניות: **כללי**, **נתונים**, **מודלים**, **תקציב** ו-**תגמול**. בדוק/בדקי את ההגדרות, ואז התחל/י את האופטימיזציה.

הסיכום מציג גם את הנראות של הריצה. ריצות חדשות הן ציבוריות כברירת מחדל. אפשר לשנות את זה אחר כך בחלון **שיתוף ופרטיות** בעמוד הריצה. קרא/י את [שיתוף ופרסום](/docs/he/guides/sharing).

> [!NOTE]
> בריצה על מאגר קוד, יש בשלב הזה רק את המסך **קוד ומדד** ואת הסיכום. Skynet בודק את ההגדרות מול מאגר הקוד כשמתחילים את הריצה.

## אחרי שמתחילים

עמוד הריצה נפתח. קרא/י את [ריצות](/docs/he/concepts/runs) ואת [קריאת התוצאות](/docs/he/guides/results).

---

Source: https://staging.skynetml.com/docs/he/guides/submit
