מדוע תיוג הנתונים ב-Prodigy נתקל בעבודה ידנית
תיוג הנתונים ב-Prodigy בנוי סביב דוגמה אחת: הממשק מציג טקסט, רמז מהמודל וממתין לתווית. הכלי רושם את התשובה בקפידה, אך אינו מחליט אילו דוגמאות בכלל כדאי להציג — את הסדר קובע האדם או דגימה אקראית.
מכאן הצוואר הראשון של התיוג: חלק ניכר מהתפוקה הוא מקרים ברורים מאליהם, שבהם התווית חופפת לתחזית המודל ואינה מוסיפה דבר לאימון. המתייג מבזבז עליהם את רוב זמנו, ואילו הדוגמאות השנויות במחלוקת מקבלות תווית אחת בלבד ונכנסות למאגר הנתונים בלי בדיקה חוזרת.
הכשל השני — אי-התאמה בין התוויות של המתייגים השונים. כשעובדים בעיוורון, כל אחד נשען על הפרשנות שלו להנחיות, ולכן בדוגמאות הגבוליות מופיעות תשובות מנוגדות. העקביות של התיוג יורדת, ואין במה לבדוק אותה: אין מעבר שני ואין טיפול בקונפליקטים.
בסופו של דבר איכות מאגר האימון נקבעת לא לפי המשימה, אלא לפי מי תייג ובאיזה סדר. המודל ממשיך להתאמן על דוגמאות שנויות במחלוקת ומשנן רעש — האיכות על מאגר הבדיקה עומדת במקום, והיקף התיוג הידני של מאגר הנתונים גדל יחד עם דרישות הדיוק. אנו מפרקים כיצד זה נסגר: תעדוף דוגמאות, בקרת עקביות ותיוג חוזר של מקרי גבול.
מה נותן אימון מודל על דוגמאות שנויות במחלוקת
למידה אקטיבית הופכת את סדר התיוג: המתייג אינו עובר עוד על הקורפוס ברצף, אלא מקבל רק את הרשומות שבהן המודל מהסס. התור נבנה לפי חוסר ודאות — לפי הפרש ההסתברויות בין שתי המחלקות המובילות ולפי האנטרופיה של ההתפלגות. דוגמאות עם הפער הקטן ביותר עוברות לאדם ראשונות, ותחזיות בטוחות ממתינות לבדיקה מדגמית.
ב-Prodigy הלולאה סגורה: התווית נכנסת מיד למאגר האימון, המודל ממשיך להתאמן ומחשב מחדש את התור של המנה הבאה. הפרויקט אינו ממתין עד שיתויג כל הקורפוס — האיכות עולה בכל מאה דוגמאות, וכבר מהמעברים הראשונים רואים אילו מחלקות חסרות.
האפקט מדיד. שיעור הרשומות שאכן דורשות בדיקה ידנית יורד פי 3–5 לעומת תיוג מלא: 80–90% מהקורפוס הם דוגמאות חד-משמעיות, והן עוברות לתיוג חצי-אוטומטי. הדיוק בחתכים השנויים במחלוקת גבוה יותר מאשר בדגימה אחידה: כל רשומה שנויה במחלוקת מביאה למודל מקסימום מידע חדש.
איסוף הדוגמאות השנויות במחלוקת חושף גם פגמים בסכימה עצמה: תוויות סותרות ברשומות דומות, מחלקות חופפות, קטגוריות נדירות בלי אף דוגמה בטוחה אחת. אנו מטפלים במקרים כאלה לפני השחרור — מעבירים אותם להנחיות للم�ייגים ולבדיקות הוולידציה, ולא מגלים אותם בתפעול השוטף לפי תלונות משתמשים.
מצבי תיוג: ידני, חצי-אוטומטי, היברידי
את מצב התיוג בוחרים לפי אופי הנתונים ומחיר הטעות, ולא לפי נוחות המבצע. סכימה אחת מספקת תקן בהיקף קטן, אחרת מאיצה את התפוקה במחלקות הומוגניות, ושלישית משלבת תיוג מקדים של המודל עם תיקון אנושי — ולכל אחת יש תנאים שבהם היא מתחילה לפעול לרעת הפרויקט.
| מצב | מתי מתאים | מגבלות |
|---|---|---|
| תיוג ידני תחת בקרה | מדגם קטן, מחיר טעות גבוה, תחילת פרויקט וכיול ההנחיות | הזמן גדל באופן לינארי עם ההיקף; לקראת סוף המשמרת מתפצלות הפרשנויות בין המתייגים |
| חצי-אוטומטי (למידה אקטיבית) | מחלקות הומוגניות, אלפי דוגמאות, יש מדגם התחלתי לאתחול המודל | נדרש אתחול מחדש של הלולאה בעת סחיפת מחלקות ובחינה מחדש של התוויות בעת החלפת סכימה |
| היברידי | זרמים גדולים ומתויגים בדלילות, כמה מבצעים, תיוג בזרימת המוצר | יש להפריד בין שגיאת המודל לשגיאת האדם; יקר יותר בהגדרת כללי האיסוף |
מצב היברידי נלקח בדרך כלל בפרויקטים ארוכים: המודל מציע אפשרות, האדם מאשר או דוחה אותה, והדוגמאות השנויות במחלוקת עוברות לתור נפרד לבדיקה חוזרת. היקף העבודה הידנית הטהורה יורד, אך בלי מדד הסכמה בין המתייגים הרעש במאגר האימון נשאר בלתי מזוהה — ומתגלה באיכות המודל עצמו.
אמת מידה בבחירה היא שיעור הדוגמאות הדו-משמעיות: אם הוא גבוה משליש, המצב החצי-אוטומטי מתחיל לרמוז לאדם את שגיאותיו שלו, והלולאה נסגרת על עצמה. Prodigy מאפשר לנהל את כל שלושת המצבים בממשק אחד ולעבור ביניהם עם גדילת המדגם, בלי לאבד נתונים שכבר תויגו.
כיצד אנו בונים את מחזור התיוג בהתאם למשימה
את הטמעת התיוג אנו מתחילים לא בהפעלת הכלי, אלא בביקורת של סכימת התוויות: בוחנים את הקורפוס הנוכחי, מאתרים מחלקות חופפות ו»מתות», ומעריכים כמה דוגמאות לכל מחלקה באמת קיימות.
סכימה ובה 40 תוויות ושלוש דוגמאות לכל אחת לא תיתן מודל שאפשר לאמן, לא בלמידה אקטיבית ולא בדגימה ידנית — לכן חלק מהמחלקות מאחדים וחלק מתרגמים למאפיינים. לאחר מכן מרכיבים את קו התיוג ורק אז מושיבים אנשים לתייג, אחרת ייאלצו לעבד מחדש מאגר שכבר מוכן.
- ביקורת סכימת התוויות והקורפוס. בודקים את העקביות של התיוג הנוכחי, מחשבים את שיעור הדוגמאות השנויות במחלוקת ואת חוסר האיזון בין המחלקות. התוצר — סכימה מצומצמת עם הנחיות למקרי גבול.
- תכנון קו התיוג. מגדירים ממשק לפי סוג המשימה — סיווג, ישויות, קשרים — תפקידי המתייגים, שיעור הדוגמאות לבדיקה הדדית וסדר יישוב הקונפליקטים.
- הגדרת למידה אקטיבית. מחברים מודל מועמד על הענף העדכני של Prodigy: הוא בוחר לתור דוגמאות עם ודאות נמוכה ומקרים שנויים במחלוקת, ולא דגימה אקראית.
- פיילוט על מנה בקרה. מתייגים היקף קטן, מודדים את העקביות בין המתייגים ומתקנים את ההנחיות לפני שהתיוג עובר להיקף תעשייתי.
- אימון ומדידת איכות. מכינים מודל spaCy, משווים מדדים על מאגר הבדיקה ובוחנים אילו סוגי שגיאות גדלים עם הוספת נתונים חדשים.
- תקנון התיוג. מקבעים את סכימת התוויות, את קריטריוני האיכות, את סדר ההסלמה של מקרים שנויים במחלוקת ואת כללי ניהול הגרסאות של מאגרי הנתונים.
- מסירה וליווי. מציגים לצוות הלקוח את התור, את המדדים ואת נקודות האימון הנוסף; בנפרד מסבירים כיצד להחליף את סכימת התוויות בלי לאבד קורפוס שכבר תויג.
הקו נשאר בידי הלקוח — עם תור, לוח בקרה לאיכות ותקנון ברור, כדי שהתיוג לא יהפוך לפרויקט חד-פעמי.
אספקה: תצורה, סכימת תוויות, תקנון בדיקה
פרויקט מוגדר ב-Prodigy אנו מוסרים כערכה עובדת, ולא כארכיון קבצים: צוות הלקוח צריך להפעיל את התיוג ואת האימון הנוסף של המודל בלעדינו. להלן מה שנשאר במאגר הקוד ובתיעוד התיוג.
- תצורת הפרויקט: ממשק תיוג לפי המשימה, ספי איסוף דוגמאות ללמידה אקטיבית, החיבור למודל spaCy והפרמטרים של האימון הנוסף שלו.
- סכימת התוויות: רשימה מלאה של המחלקות, כללי השלילה ההדדית ביניהן והעדיפויות, דוגמאות לכל מחלקה ובנפרד — מקרי גבול שבהם המתייגים חלוקים לרוב.
- הנחיות למתייגים: אורך הקטעים המסומנים, הפעולות עם ישויות שנויות במחלוקת וישויות מקוננות, סדר ההסלמה של שאלות.
- תקנון בדיקת התיוג: שיעור המשימות לתיוג חוזר, טיפול באי-התאמות, סף ההסכמה והאחראי על ההחלטה הסופית.
- קריטריוני איכות התיוג: מדדי העקביות בין המתייגים, שיעור המשימות הפסולות, התנאי להחזרת המודל לאיטרציית אימון חדשה.
- מאגר דוגמאות תקן: מדגם קבוע שעליו מריצים כל גרסה חדשה של המודל ומשווים לקודמת.
- סכימת זרימת הנתונים: כיצד הדוגמאות המתויגות מגיעות לאימון, כיצד מנוהלות הגרסאות של מאגר הנתונים וכיצד חוזרים לגרסה קודמת.
אנו מוסרים הכול יחד עם הדרכת הצוות ורשומות קצרות לכל ארטיפקט — כדי ששינויים בסכימת התוויות ייעשו מתוך מודעות. נדון במשימה — נחזור עם תוכנית אספקה המותאמת לתהליך שלכם.
מקרה בוחן: סיווג פניות וגידול בעקביות התוויות
מה היה לפני
את התיוג ניהלו בטבלאות: כמה מתייגים רשמו את קטגוריות הפנייה בגיליון משותף, ומקרים שנויים במחלוקת טופלו בבדיקה ידנית פעם בשבוע. כללי המחלקות חיו בהתכתבות ובראש של כל אחד, ולכן אותה פנייה «התשלום לא עובר» נכנסה פעם ל»תשלום» ופעם ל»כשל אינטגרציה».
העקביות בין המתייגים עמדה על כ-0.6 לפי שיעור התוויות החופפות — המודל למד מדוגמאות סותרות והתפרק דווקא במחלקות הגבוליות.
מה שינינו ומה יצא
הרכבנו קו תיוג אחיד על Prodigy: טקסונומיה של 14 מחלקות, קלט במקשי קיצור, תגובה מחייבת לתווית שנויה במחלוקת. הפעלנו Active Learning — המודל בוחר לתיוג דוגמאות עם ודאות נמוכה ולא אקראיות, ולכן זמנו של המתייג מופנה למקרי גבול. קטגוריות שבהן אנשים היו חלוקים לרוב מתויגות בידי שניים, והאי-התאמות נופלות אוטומטית לתור לטיפול.
מדדי איכות התיוג הפכו לחלק מהתהליך ולא לדוח בדיעבד: העקביות בין המתייגים עלתה ל-0.9, שיעור המקרים השנויים במחלוקת הצטמצם בערך פי שלושה, והזמן לפנייה אחת ירד פי כמה הודות לתיוג המקדים של המודל.
סיווג הפניות על מדגם ההחזקה עלה באופן מורגש, ובמקביל הבדיקות הידניות יצאו מהמחזור השוטף — האימון מחדש נעשה נדיר יותר, ושגיאות במחלקות הגבוליות מטופלות במקום שבו הן מופיעות.
מה לעשות אם המודל כבר אומן על תוויות רועשות?
מודל שאומן על תוויות רועשות כמעט תמיד מעריך את עצמו ביתר בוולידציה: הוא לומד לא את המאפיין של המחלקה, אלא את השגיאות של מתייג מסוים. אם הרעש מפוזר על פני המדגם, גם חלק ההחזקה מכיל את אותן שגיאות, והמדד נראה סביר עד שהנתונים מתחילים לזרום מהזרם האמיתי.
לכן הצעד הראשון אינו אימון מחדש, אלא אבחון: מחשבים את ודאות המודל על מאגר האימון ומחפשים היכן היא חורגת מהתווית שהוצבה.
את אי-ההתאמה מחלקים לשני דברים שונים מיסודם. במקום שבו המודל בטוח במחלקה אחת והתווית נמצאת בהפוכה — זו בסבירות גבוהה תווית רועשת, ואותה מוציאים לבדיקה חוזרת בידי אדם.
במקום שבו הוודאות נשארת סביב הסף, מדובר כנראה במחלקות גבוליות: הדוגמה נמצאת באופן אובייקטיבי על התפר שבין שתי קטגוריות, והאשמה אינה באיכות עבודת המתייג אלא בכלל לא חד. דוגמאות כאלה איננו מוחקים — מתאמים את ההנחיות ומקבעים את ההחלטה בסכימה.
התור לבדיקה חוזרת אינו נבנה באקראי: בקו העבודה על Prodigy אנו מתעדפים בדיוק את אי-ההתאמות בין המודל לתווית, מהבטוחות ביותר ועד לשנויות במחלוקת. כל תיקון שומר את הערך המקורי, את הכרעת הסוקר ואת הסיבה — הנתונים שכבר נאספו נשארים במאגר התיוג, ושום דבר אינו נדרס בעיוורון.
מכאן עוברים לניקוי התיוג בשכבות: השורות השנויות במחלוקת עוברות להסגר, השכבה המוסכמת היא זו שמשמשת לאימון, וגרסאות הכללים מתועדות כדי שהאימון הנוסף יהיה ניתן לשחזור. כתוצאה מכך המדד על מאגר הבדיקה מפסיק להיות מוגזם, והמחלקות הגבוליות מקבלות כללים נפרדים במקום רעש ממוצע.
מגבלות הפתרון וספקות טכניים נפוצים
קו התיוג ב-Prodigy נתקל בגבולות הכלי, ולא בהגדרות שלו: למידה אקטיבית מאיצה רק את המחלקות שהמודל כבר מכיר בחלקן. להלן המגבלות שאנו מקבעים כבר בהתחלה, והדרכים ההנדסיות לעקוף אותן.
כיצד כמה מתייגים עובדים בו-זמנית ואינם משכפלים זה את זה?
המשימות מגיעות מתור משותף, כל דוגמה ננעלת למבצע אחד — עבודה במקביל בלי התנגשויות, והתשובות אינן הולכות לאיבוד בעת ניתוק הקשר. חלק מהמדגם מתויג בחפיפה: את העקביות מחשבים לפי שיעור החפיפות ומתקנים את ההנחיות, ולא שגיאות בודדות.
מה לעשות אם מחלקה נדירה אינה אוספת דוגמאות?
מודל הרמז בוחר רק את מה שהוא כבר יודע, ולכן עבור מחלקות נדירות אנו מכבים אותו ומחפשים מועמדים באמצעות ביטויים רגולריים, מילונים או קרבת וקטורים. את סף הוודאות מורידים, והפעלות מיותרות עוברות לבדיקה.
האם אפשר להעביר תיוג שנעשה קודם בכלים אחרים?
כן: ממירים את הפורמטים המוכרים — טבלאות, JSON, תיוג ישויות בטקסט — לסכימה הרצויה, תוך שמירה על היסטי התווים, אחרת גבולות הישויות יזוזו. אי-התאמות בכללים (ישויות מקוננות, פרשנויות שונות לגבולות) מטופלות בנפרד.
מתי לאמן את המודל מחדש וכיצד להבחין שהמצב הורע?
המחזור: מנת תיוג, אימון נוסף, הרצה על מנת בקרה קפואה, איסוף השגיאות למנה הבאה. מאגר של מאתיים-שלוש מאות דוגמאות עם תיוג כפול נותן דיוק וכיסוי לפי מחלקות — והרגרסיות נראות עוד לפני השחרור.
נדון במשימה: מה לשלוח וכיצד תתקדם העבודה
כדי לחזור עם הערכת פרויקט תיוג ולא עם השערות, אנו זקוקים מכם למינימום של הקשר. תיוג כמעט תמיד גוזל יותר זמן מאשר אימון המודל, ולכן את סכימת התוויות ואת דרישות האיכות מתאמים לפני שהמתייג הראשון פותח את הרשומה הראשונה.
- דוגמת נתונים «כפי שהם» — כמה מאות רשומות אמיתיות עם רעש, שגיאות כתיב ושדות חסרים: עליהן בודקים שסכימת התוויות מחזיקה מעמד בדומיין שלכם, ולא רק בדוגמאות נקיות.
- טיוטה של מה שהמודל אמור להבחין בו: רשימת ישויות או מחלקות, ובעבור כל אחת 10–15 מקרים של «כך נכון / כך לא נכון». מקרים שנויים במחלוקת חשובים כאן יותר מחד-משמעיים.
- מקור והיקף: מהיכן אוספים את המערך, באיזה פורמט הוא נמצא כעת, כמה רשומות מתוכננות לתיוג ובאיזו תדירות מגיעות חדשות.
- מגבלות על הנתונים: מידע אישי, מה שאסור להוציא מחוץ להיקף, דרישות לאחסון ולמחיקת עותקים.
- קריטריון קבלה: איזה שיעור התאמה לתקן נחשב מספק ובאיזה תרחיש בודקים זאת.
- התהליך הנוכחי, אם קיים: מי מתייג, באילו קבצים מתנהל הרישום, כמה זמן גוזלת רשומה אחת.
- מילון הדומיין ושפת הנתונים: מונחים, קיצורים, ערבוב שפות — אותם יהיה צורך לקבע בהנחיות המתייג.
מכאן העבודה מתנהלת כך: אנו עורכים ביקורת למערך שנשלח, וחוזרים עם הערכת פרויקט תיוג ותוכנית להטמעת תיוג — סכימת תוויות, היקף, סדר האיטרציות ונקודות בקרת האיכות.
לפני ההרחבה מריצים פיילוט על כמה מאות דוגמאות ומחשבים את העקביות בין המתייגים: אם ההנחיות מאפשרות פרשנויות שונות, זה ניכר עוד לפני שכל המערך מתויג. מתייגים ב-Prodigy, שם למידה אקטיבית מכניסה לתור את הדוגמאות השנויות במחלוקת ביותר, ולכן שיעור העבודה הידנית יורד לאורך הפרויקט. תארו את משימת התיוג — נחזור עם הערכה ותוכנית.







