Fine-tuning Computer Vision: היכן נשברות המודלים הבסיסיים
מודל מוכן שאומן על מערכי נתונים ציבוריים מחזיק הדגמה בביטחון ומתפרק על אובייקט חי. זהו שינוי תחום הנתונים: אופטיקה אחרת, תאורה אחרת, צפיפות זרימה וזוויות שלא היו במדגם האימון.
במחסן המודל מזהה בוהק ממנורה כפגם, בבית המלאכה — צל מהתקן כחפץ זר, והתראות השווא של המודל זורמות בהמשכים.
המקור השני — איכות הסימון. המחלקות חופפות במשמעותן, חלק מהאובייקטים הוחמצו, גבולות האזורים אצל מסמנים שונים נעים בעשרות פיקסלים. המודל לומד ביושר מהסתירות האלה: הדיוק על מערך האימון עולה, ואילו על הזרימה האמיתית יורד. אי אפשר לבדוק זאת בלי מערך השהיה שנאסף באופן בלתי תלוי במערך האימון.
כיוונון עדין "לפי העין" מחסל את התוצאה. מאמנים מחדש את כל השכבות במקום את האחרונות, משנים את קצב הלמידה ומספר המעברים על אותם פריימים, מסתכלים על מדד ממוצע על כל המחלקות. מחלקה נדירה אך קריטית פשוט מתמוססת בה — המספר הסופי נראה סביר, והפגם הנדרש עדיין מוחמץ.
לכן כיוונון עדין של מודל על נתונים שלכם מתחיל לא באימון, אלא במיפוי תחום: אילו תנאי צילום בכלל קיימים, היכן עובר הגבול בין מחלקות דומות, איזו מחלקה יקר יותר ללקוח להחמיץ מאשר לתפוס מיותרת.
בהמשך — סימון מחדש של פריימים שנויים במחלוקת, חלוקת מדגמים לפי אובייקטים וסצנות, ולא באופן אקראי, ובדיקה לכל מחלקה בנפרד. נבחן כיצד זה נסגר ב-fine-tuning computer vision: מה לשנות בנתונים, מה במודל עצמו ואיך לוודא שהשתפר, ולא רק השתנה.
מה נותן כיוונון עדין של מודל על הנתונים שלכם
מודל בסיסי שאומן על מערך כללי מתנהג בפריימים שלכם בצורה גרועה באופן צפוי: מבלבל בין מחלקות קרובות, מגיב לבוהקים ולהשתקפויות, הולך לאיבוד בשינוי אופטיקה. כיוונון עדין למשימה מזיז את גבול ההחלטה אל התחום היישומי שלכם — לא בממוצע, אלא במחסן, בקו ייצור או בנתיב מסוים.
דיוק וכיסוי בתחום שלכם
מדדי איכות המודל מחשבים לפי פלחים, ולא לפי מערך ממוצע: יום ולילה, מצלמה נייחת וצילום ידני, זוויות שונות. שיעור התשובות הנכונות והכיסוי למחלקות נדירות בכל פלח מראים היכן הפתרון כבר מתאים, והיכן נדרשים ניתוח שגיאות וסימון משלים.
עמידות בתנאי צילום מטמיעים כבר בהכנת הנתונים — מרחיבים את המדגם עם תאורה משתנה, סיבובים, רעש וטשטוש. בנפרד בודקים שהמודל לא מתפרק במצלמה חדשה: את הסטת התחום צריך להחזיק מרווח במשקלים, ולא התאמת ספים.
מחלקת התראות השווא שהוסרה
המקור העיקרי להתראות שווא — לא הרשת, אלא היוריסטיקות מעליה: חוקים וספים שהותאמו סביב ההדגמות הראשונות. מעבירים את הלוגיקה אל האימון: אוספים "נגטיבים קשים" — בוהקים, השתקפויות, אובייקטים דומים — ומוסיפים אותם למדגם הכיוונון. התוצאה נמדדת בשיעור השווא לאלף פריימים — לפני ואחרי.
מודל מכוונן אחד מחליף מפל של חוקים, לכן זמן העיבוד של תמונה אחת מפסיק להיות תלוי בתרחיש. מערך רגרסיה מקבע את התוצאה: שינויים בנתונים לא מחזירים לאחור מחלקת שגיאות שכבר טופלה. עובדים בסטאק פתוח, PyTorch, כדי שהמודל ירוץ בצד שלכם.
דרכים להתאמת המודל: השוואת גישות
מה משווים ולפי אילו קריטריונים
הבחירה בין כיוונון עדין של מודל מוכן למשימה (fine-tuning computer vision) לבין אימון מאפס נקבעת לא לפי טעם, אלא לפי נתונים: היקף הסימון, מגוון תנאי הצילום ומחיר הטעות במחלקה נדירה.
משווים ארבע גישות לפי שלושה קריטריונים — כמה דוגמאות מסומנות נדרשות, כיצד המודל עובר לאופטיקה או תאורה חדשות, ומה יידרש לאמן מחדש עם הופעת מחלקה חדשה.
| אפשרות | מתי מתאימה | מגבלות |
|---|---|---|
| כיוונון עדין של השכבות האחרונות | מעט מחלקות, נתונים של כמה מאות דוגמאות, התחום קרוב למקורי | מתקשה לתפוס הבדלים דקים בתוך המחלקה — בהמשך יידרש כיוונון עדין מלא |
| כיוונון עדין מלא | תחום משלכם: אופטיקה אחרת, זוויות, פגמים שלא היו בנתונים המקוריים | נדרשים אלפי פריימים מסומנים ובקרת למידת יתר על מדגם קטן |
| אימון מאפס | הרבה נתונים, ארכיטקטורה למשימה צרה, משקלים מוכנים רק מפריעים | מחזור ארוך, דרישות גבוהות לסימון ולמערך השהיה |
| כיוונון עדין על סינתטיקה | דוגמאות אמיתיות נדירות או שאסור להוציא ולפרסם אותן | סינתטיקה נבדלת מפריימים חיים — חובה בדיקה על מדגם אמיתי |
מתי הגישה מלכתחילה לא מתאימה
כיוונון עדין מלא מאבד משמעות כאשר מספר הפריימים המסומנים קטן ממספר הפרמטרים של הפתרון: המודל זוכר את המדגם ומתפרק בשינוי הראשון של תנאי הצילום. סינתטיקה לא מועילה במקום שבו חשוב הביצוע על ציוד אמיתי — המחולל לא משחזר ארטיפקטים של חיישן ובוהקים.
שלבי fine-tuning: מביקורת נתונים ועד מסירה
Fine-tuning אינו הפעלת אימון, אלא קודם כול תשובה לשאלה מה נחשב לתוצאה טובה. הצעדים הראשונים — ביקורת מערך הנתונים וקביעת המדד שלפיו המודל יתקבל. סדר העבודה שלהלן זהה לסיווג, זיהוי וסגמנטציה.
ביקורת נתונים והגדרת המדד
- ביקורת מערך הנתונים: היקף, איזון מחלקות, כפילויות, פריימים סותרים. בנפרד מחשבים את שיעור התרחישים הנדירים — דווקא הם תורמים את עיקר השגיאות.
- קריטריוני קבלה: לפני ההתחלה מקבעים יעדים לכל מחלקה ואת סוג השגיאה המותר, כדי שהקבלה לא תהפוך לוויכוח על טעם.
- תוכנית ולידציה: מחלקים את הנתונים לחלק אימון, ולידציה והשהיה; את ההשהיה אוספים ממקור בלתי תלוי או מתקופת צילום אחרת.
- הכנת הסימון: מדייקים את ההוראות, בודקים עקביות על מדגם צולב, סוגרים דוגמאות שנויות במחלוקת.
- אימון: מתאימים את המודל הבסיסי למשימה, את המצב בוחרים על חלק הוולידציה, בלי להציץ למערך ההשהיה.
בדיקה על מערך השהיה
- הרצה על מערך ההשהיה וניתוח שגיאות המודל: מקבצים פספוסים לפי סוגים ותנאי צילום, את הקבוצות הגרועות מחזירים לכיוונון עדין או לדרישות מהמצלמה והתאורה.
- מסירה: משקלים, תצורת עיבוד מקדים, סקריפט לשחזור מדדים ודוח עם קריטריוני קבלה.
ארטיפקטים של הפרויקט: תצורות, תרשימים, נהלים
ערכת האספקה בפרויקט כיוונון עדין של מודלים לראייה ממוחשבת — לא רק משקלים. הלקוח מקבל מודל עם סדר השחזור שלו ונהלים שלפיהם הפתרון חי בייצור: מתעדכן, נבדק ומוחזר לגרסה קודמת בלי מעורבות הצוות שלנו. להלן מה בדיוק נמסר לידיים ולשם מה נדרש כל ארטיפקט.
מודל וצינור עיבוד ניתן לשחזור
- משקלי המודל המאומן וכרטיס המודל: משימה, רשימת מחלקות, גבולות תחולה, מגבלות ידועות בתנאי צילום.
- תצורות אימון וסימון: פרמטרים, סכמות אוגמנטציה, גרסאות מערכי נתונים — הרצה חוזרת נותנת את אותה תוצאה, ולא "בערך דומה".
- תרשים צינור העיבוד: מקבלת הפריים ועד מתן התשובה, עם נקודות בקרת איכות ותיעוד לוג של כל שלב.
- מדיניות גישה לנתונים: תפקידים, תקופות שמירה, אנונימיזציה, סדר העברת מערכי נתונים לצדדים שלישיים.
- תיעוד מדדים: כיצד מחושבים דיוק וכיסוי לכל מחלקה, על אילו מדגמים, והיכן נמצא הסימון הייחוסי.
נוהל תפעול וניטור
- נוהל ניטור: אילו מדדים נלקחים מהזרימה, באיזו תדירות, מי מטפל בסטיות ובאיזו צורה מקבל דוח.
- ספי דעיכה וכללי אימון מחדש: באיזו ירידת איכות מופעלת איטרציה חדשה על נתונים שנצברו ועל איזה מערך דוגמאות.
- הוראות חזרה לגרסת המודל הקודמת וצ'קליסט קבלת עדכון לפני העלאה לפרודקשן.
יכולת השחזור של התוצאה נבדקת בעת המסירה: אנחנו פורסים את הצינור בתשתית שלכם, מאמנים את המודל לפי התצורות שנמסרו ומשווים מדדים לערכי ייחוס. סטייה מעל המוסכם — סיבה לא לסגור את השלב, אלא לנתח את הסיבה.
מקרה בוחן: בקרת פגמים בקו ייצור
בקו הרכבה של מודולים אלקטרוניים חיפשו פגמים בחיבורי הלחמה באופן חזותי: משמרת של ארבעה מפעילים עברה על הזרימה ידנית. העין מתעייפת עד אמצע המשמרת, ולכן מיקרו־פגמים — הלחמה חסרה, הזזת רגל, עודף בדיל — עברו הלאה וצפו כבר בהרכבה של המוצר המוגמר. כל גילוי כזה означал פירוק של היחידה ועצירת קו לא מתוכננת.
הורדנו מהקו ארכיון מסומן: כמה עשרות אלפי פריימים ממצלמות בעמדות בקרה, כולל מדגם נפרד של מקרים שנויים במחלוקת שאותם המפעילים סימנו באופן שונה.
על הדוגמאות האלה כיווננו עדין מודל סיווג פגמים עבור סוגי מארזים ותאורת בית המלאכה המסוימים — את האימון והבדיקה על מערך ההשהיה ניהלנו ב-PyTorch.
מדדים לפני ואחרי
| מדד | לפני | אחרי |
|---|---|---|
| שיעור בקרת הפריימים הידנית | 100% | 18% (רק שנויים במחלוקת) |
| עצירות שווא של הקו בחודש | 34 | 4 |
| זמן בדיקת לוח אחד | 6–8 שנ׳ | 0,4 שנ׳ |
| פגם שהוחמץ בהרכבה המוגמרת | 2,1% | 0,3% |
השתנה לא רק האלגוריתם, אלא גם התהליך: פריימים שנויים במחלוקת עוברים למפעיל לסימון משלים, והדוגמאות האלה נטמעות באימון אחת לשבוע. סף ההפעלה מכוון בנפרד לפי סוג הלוח, ולכן אין צורך לכווץ את הרגישות לערך כללי אחד.
במה כיוונון עדין שונה מאימון מאפס
אימון מאפס מתחיל מאתחול אקראי של משקלים: הרשת בעצמה לומדת מאפיינים בסיסיים — גבולות, טקסטורות, צורות — ורק אחר כך את משימת היעד. לכן יש לסמן עשרות אלפי פריימים למחלקה עם איזון לפי תאורה, זוויות וסצנות צילום.
כיוונון עדין (fine-tuning) לוקח מודל שכבר ראה מיליוני תמונות, ומתאים את המאפיינים לתחום היישומי שלכם — בהתחלה מספיקות כמה מאות דוגמאות תקינות של מחלקה נדירה.
גם לוחות הזמנים לעלייה לעבודה שונים: מאפס מדובר בשבועות של איטרציות ועבודה במקביל של מסמנים, ובכיוונון עדין המשקלים השמישים הראשונים מופיעים בתוך ימים, ועל מערך מוכן — בתוך שעות.
אנחנו מקפיאים שכבות מוקדמות, מאמנים את הבלוקים האחרונים ואת ראש הסיווג בצעד אימון קטן — המודל לא מאבד יכולת הכללה על מחלקות שכנות.
הסיכון העיקרי — למידת יתר על מדגם קטן. הסימן נראה בפער בין העקומות: על מערך האימון הדיוק עולה, על מערך ההשהיה יורד או עומד במקום. מטפלים בכך באוגמנטציה, עצירה מוקדמת, חלוקה מרובדת ובדיקה חובה על מערך נפרד מהזרימה האמיתית של המצלמה, ולא על דוגמאות מעורבבות.
אם כבר פרוס מודל חיצוני, אין חובה לזרוק אותו. המשקלים מיוצאים לפורמט נייד — את התאימות בין סביבות סוגרת האקוסיסטם הפתוח PyTorch, — שתי הגרסאות מורצות במקביל על אותה זרימה, וההשוואה נעשית לפי מדדים לכל מחלקה, ולא לפי דיוק ממוצע. העברת התעבורה הדרגתית, עם אפשרות שמורה לחזור לגרסה הקודמת.
את הבחירה מכתיבה מידת הקרבה של המשימה למה שהמודל כבר ראה: תחום קרוב — כיוונון עדין, מודאליות ייחודית ודרישות מחמירות לתחום — היבריד, שבו חלק מהשכבות מאומנות מאפס.
שאלות לפני התחלה: נתונים, סיכונים, מגבלות
הדרישות לנתונים תלויות בסוג המשימה, ולא במספר "קסום" של פריימים. לסיווג סצנה מספיקות כמה מאות דוגמאות למחלקה, ולזיהוי וסגמנטציה נדרשים אלפי אובייקטים מסומנים — והמכריע כאן הוא לא ההיקף, אלא המגוון: זוויות, תאורה, רקע, סוגי אובייקטים.
להלן אספנו ספקות שעולים לרוב לפני ההתחלה: לגבי סימון, קווי המתאר של האימון, בקרת למידת יתר ועמידות לשינוי תנאי צילום.
כמה נתונים דרושים כדי שכיוונון עדין יניב תוצאה?
הסף תלוי בסוג המשימה: סיווג רגיש לאיזון המחלקות, זיהוי — למספר האובייקטים בפריים. בהרצת חקר אנחנו מאמנים את המודל על המדגם הזמין ומודדים איכות על מערך ההשהיה — רואים אילו סצנות חסרות. בהמשך או שמוסיפים סימון נקודתי, או שמחזקים את המערך באוגמנטציה.
מה עושים עם סימון שגוי?
זהו המקור העיקרי לרעש: המודל לומד מסתירות ומאבד דיוק במקרי גבול. מעבירים את המדגם בבדיקה צולבת, מחשבים אי־התאמות בין המסמנים ושולחים פריימים שנויים במחלוקת לבוררות. בנפרד מנקים מחלקות עם גבולות מטושטשים — אותן בדרך כלל הרשת מבלבלת.
האם אפשר לאמן על השרתים שלנו?
כן. את האימון וההסקה פורסים בסביבה שלכם: הנתונים לא יוצאים מהפרימטר, הרשאות ניתנות לפי תפקידים. אם אין מאיצים משלכם, מחשבים את דרישות החומרה ומציעים אפשרות עם ייצוא אנונימי לצד שלנו.
כיצד בודקים למידת יתר?
מחזיקים מערך השהיה ומערך בקרה שצולמו בתנאים שונים מאלה של מערך האימון. פער באיכות ביניהם — אות לכך שהמודל זכר את הפריימים ולא את המאפיינים. אז מפעילים רגולריזציה, עצירה מוקדמת והרחבת המערך באוגמנטציה.
מה יקרה בשינוי תנאי צילום?
אם מצלמה, תאורה או זווית חדשות לא היו בנתונים, האיכות יורדת. מטמיעים בקרת סחיפה: דוגמים מעת לעת פריימים מהתפעול ומשווים את ההתפלגות שלהם לזו של האימון. בעת סטייה מבצעים כיוונון עדין על פריימים חדשים, בלי לבנות מחדש את הפתרון כולו.
מה נדרש מכם כדי להתחיל ולהעריך את המשימה
הערכת משימה של כיוונון עדין למודל ראייה ממוחשבת תלויה לא בנפח ההתכתבות, אלא בשלמות נתוני הקלט. ככל שנראה מוקדם יותר פריימים אמיתיים ונבין היכן המודל יעבוד, כך נדייק יותר בלוחות הזמנים ופחות שלבים נצטרך לעשות מחדש. להלן המינימום שמספיק כדי לחזור עם הערכה ותוכנית עבודה.
- דוגמאות נתונים. תמונות אמיתיות או הקלטות ממצלמות — כולל פריימים מורכבים: תאורה חלשה, חסימות, טשטוש, מחלקות נדירות של אובייקטים.
- סימון. האם הוא קיים, באיזו צורה (מסגרות, מסכות, נקודות מפתח) ומי מאשר מקרים שנויים במחלוקת.
- המודל הנוכחי. מה משמש כעת, על אילו נתונים אומן ואילו שגיאות מפריעות ביותר — כך ברור אם די בכיוונון עדין או שנדרשת בנייה מחדש.
- קריטריוני קבלה. איזה מדד נחשב להצלחה: שיעור התראות נכונות, החמצות, התראות שווא, — ועל איזה מערך פריימים זה נבדק.
- מגבלות תשתית. היכן המודל יעבוד — שרת, ענן, מצלמה באתר; השהיית תגובה מותרת ודרישות לאוטונומיה.
- הרשאות גישה. מאגר קוד, אחסון נתונים, סטנד בדיקה או הקלטת זרימה, סדר תיאום ההרשאות.
- לוחות זמנים וסדרי עדיפויות. מתי נדרשת התוצאה העובדת הראשונה ואילו מחלקות אובייקטים קריטיות בראש ובראשונה.
המערך הזה מספיק כדי לדון במשימה בצורה עניינית ובלי לנחש. תארו את המשימה — נחזור עם הערכה ותוכנית עבודה: נציע תרשים כיוונון עדין, היקף הבדיקות והשלבים.







