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

מושגים

דאטאסטים וחלוקה

איך Skynet קורא את המקרים שלך ומחלק אותם לאימון, אימות ובדיקה.

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

טעינת הנתונים

בשלב קלטים של האשף יש שתי אפשרויות:

  • העלו קובץ CSV,‏ JSON או Excel. ‏Skynet מקבל קבצי .csv,‏ .json,‏ .xlsx ו-.xls.
  • בחירה מהספרייה. אפשר להשתמש בדאטאסט ששמרת קודם.

בריצה יכולים להיות לכל היותר 200,000 מקרים.

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

תפקידי עמודות

תחת איך לקרוא את הנתונים, יש לתת לכל עמודה תפקיד אחד:

תפקידמה Skynet עושה עם העמודה
קלטשם את הערך ב-input, שקוד ההרצה שלך מקבל
פלטשם את הערך ב-expected, שפונקציית המדידה (Metric) שלך מקבלת
דלג/ילא משתמש בעמודה

לכל עמודה יש גם סוג: טקסט או תמונה.

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

מה הקוד שלך מקבל

לכל שורה, Skynet בונה מקרה אחד:

  • input הוא dict. יש בו מפתח אחד לכל עמודת קלט.
  • expected הוא dict עם מפתח אחד: השם של עמודת הפלט.

עבור הטבלה הזו:

messagelabelid
I was charged twicebilling17

עם התפקידים message = קלט, label = פלט ו-id = דלג/י, הקוד שלך מקבל:

{"message": "I was charged twice"}

מצבי נתונים

התפקידים קובעים את מצב הנתונים של הריצה:

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

במצב קלט יחיד, Skynet משתמש במקרה היחיד לאימון, לבחירה ולדיווח. שום דבר לא מוחזק בצד.

החלוקה

במצב זוגות, Skynet מחלק את המקרים לשלוש קבוצות:

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

חלוקת ברירת המחדל

מספר זוגותאימוןאימותבדיקה
5 או יותר70%15%15%
פחות מ-585%15%0%

עם פחות מ-5 זוגות, Skynet לא שומר קבוצת בדיקה.

איך Skynet סופר את המקרים

Skynet הופך את השברים למספרים שלמים של מקרים בשיטת השארית הגדולה ביותר. סכום הספירות תמיד שווה למספר המקרים. קבוצה עם שבר גדול מאפס מקבלת לפחות מקרה אחד. קבוצה עם שבר אפס לא מקבלת מקרים.

לפני החלוקה, Skynet מערבב את המקרים. הערבוב משתמש ב-seed של הריצה. אם לא נתת seed, ‏Skynet יוצר אחד מהמקרים, מהמטרה ומהתוצר. כך, הגשה חוזרת של אותה ריצה נותנת את אותה חלוקה.

מקרי גיבוי

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

שינוי החלוקה

אזור החלוקה מציג את החלוקה המומלצת. יש לו שני מצבים:

  1. לפי ההמלצה: ‏Skynet משתמש בחלוקת ברירת המחדל שלמעלה.
  2. בחירה ידנית: את/ה קובע/ת בעצמך את אימון, אימות ו-בדיקה.

בבחירה ידנית, כל שדה מקבל שבר בין 0 ל-1, בקפיצות של 0.05. כל שדה מציג את מספר המקרים שהוא מקבל. סכום שלושת השברים חייב להיות 1. אם הוא לא, האשף מציג "סכום החלוקה חייב להיות 1."

דוגמאות החוזה

בדיקת החוזה בשלב מדד והרצה מריצה את הקוד שלך על 3 מקרים לדוגמה. Skynet לוקח את הדוגמאות האלה רק ממקרי האימון והאימות, אף פעם לא מהבדיקה.

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