מושגים
דאטאסטים וחלוקה
איך Skynet קורא את המקרים שלך ומחלק אותם לאימון, אימות ובדיקה.
דאטאסט הוא טבלה של מקרים. כל שורה היא מקרה אחד. Skynet מריץ את התוצר שלך על המקרים, נותן ציון לכל פלט, ומשתמש בציונים כדי להשוות בין גרסאות. העמוד הזה מסביר איך Skynet קורא את המקרים, מה עושים תפקידי העמודות, ואיך הוא מחלק את המקרים לקבוצות אימון, אימות ובדיקה.
טעינת הנתונים
בשלב קלטים של האשף יש שתי אפשרויות:
- העלו קובץ CSV, JSON או Excel. Skynet מקבל קבצי
.csv,.json,.xlsxו-.xls. - בחירה מהספרייה. אפשר להשתמש בדאטאסט ששמרת קודם.
בריצה יכולים להיות לכל היותר 200,000 מקרים.
קרא/י את דאטאסטים כדי לנהל דאטאסטים שמורים.
תפקידי עמודות
תחת איך לקרוא את הנתונים, יש לתת לכל עמודה תפקיד אחד:
| תפקיד | מה Skynet עושה עם העמודה |
|---|---|
| קלט | שם את הערך ב-input, שקוד ההרצה שלך מקבל |
| פלט | שם את הערך ב-expected, שפונקציית המדידה (Metric) שלך מקבלת |
| דלג/י | לא משתמש בעמודה |
לכל עמודה יש גם סוג: טקסט או תמונה.
רק עמודה אחת יכולה להיות עמודת הפלט. אם מגדירים עמודה שנייה כפלט, העמודה הראשונה תשתנה לדלג/י.
מה הקוד שלך מקבל
לכל שורה, Skynet בונה מקרה אחד:
inputהוא dict. יש בו מפתח אחד לכל עמודת קלט.expectedהוא dict עם מפתח אחד: השם של עמודת הפלט.
עבור הטבלה הזו:
| message | label | id |
|---|---|---|
| I was charged twice | billing | 17 |
עם התפקידים message = קלט, label = פלט ו-id = דלג/י, הקוד שלך מקבל:
{"message": "I was charged twice"}{"label": "billing"}מצבי נתונים
התפקידים קובעים את מצב הנתונים של הריצה:
| מצב | מתי | מה קורה |
|---|---|---|
| זוגות | עמודה אחת היא פלט | כל שורה היא מקרה עם קלט וערך צפוי. צריך לפחות 2 שורות. |
| קלט יחיד | אף עמודה אינה פלט | הריצה משתמשת רק בעמודות הקלט של השורה הראשונה. זה מקרה אחד בלי ערך צפוי. |
במצב קלט יחיד, Skynet משתמש במקרה היחיד לאימון, לבחירה ולדיווח. שום דבר לא מוחזק בצד.
החלוקה
במצב זוגות, Skynet מחלק את המקרים לשלוש קבוצות:
| קבוצה | למה היא משמשת |
|---|---|
| אימון | המנוע מציע ובודק גרסאות על המקרים האלה. |
| אימות | Skynet בוחר את הגרסה הטובה ביותר על המקרים האלה. |
| בדיקה | Skynet מדווח על הציון הסופי על המקרים האלה. |
חלוקת ברירת המחדל
| מספר זוגות | אימון | אימות | בדיקה |
|---|---|---|---|
| 5 או יותר | 70% | 15% | 15% |
| פחות מ-5 | 85% | 15% | 0% |
עם פחות מ-5 זוגות, Skynet לא שומר קבוצת בדיקה.
איך Skynet סופר את המקרים
Skynet הופך את השברים למספרים שלמים של מקרים בשיטת השארית הגדולה ביותר. סכום הספירות תמיד שווה למספר המקרים. קבוצה עם שבר גדול מאפס מקבלת לפחות מקרה אחד. קבוצה עם שבר אפס לא מקבלת מקרים.
לפני החלוקה, Skynet מערבב את המקרים. הערבוב משתמש ב-seed של הריצה. אם לא נתת seed, Skynet יוצר אחד מהמקרים, מהמטרה ומהתוצר. כך, הגשה חוזרת של אותה ריצה נותנת את אותה חלוקה.
מקרי גיבוי
- עם פחות מ-5 זוגות, Skynet מסיר את קבוצת הבדיקה ומשנה את קנה המידה של אימון ואימות כך שהסכום שלהם יהיה 1.
- אם קבוצת האימון ריקה, Skynet משתמש במקרי האימות כאימון.
- אם אין קבוצת אימות, Skynet בוחר על מקרי האימון.
- אם אין קבוצת בדיקה, Skynet מדווח על האימות. אם גם אין קבוצת אימות, הוא מדווח על האימון.
שינוי החלוקה
אזור החלוקה מציג את החלוקה המומלצת. יש לו שני מצבים:
- לפי ההמלצה: Skynet משתמש בחלוקת ברירת המחדל שלמעלה.
- בחירה ידנית: את/ה קובע/ת בעצמך את אימון, אימות ו-בדיקה.
בבחירה ידנית, כל שדה מקבל שבר בין 0 ל-1, בקפיצות של 0.05. כל שדה מציג את מספר המקרים שהוא מקבל. סכום שלושת השברים חייב להיות 1. אם הוא לא, האשף מציג "סכום החלוקה חייב להיות 1."
דוגמאות החוזה
בדיקת החוזה בשלב מדד והרצה מריצה את הקוד שלך על 3 מקרים לדוגמה. Skynet לוקח את הדוגמאות האלה רק ממקרי האימון והאימות, אף פעם לא מהבדיקה.