אימון מודל NER: זיהוי ישויות בשמות מקצה לקצה

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

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

למה מודל NER טועה על נתונים אמיתיים

בדמו מודל NER מאתר חברות ואנשים בביטחון — נדמה שהמשימה פתורה. בזרם אמיתי של מיילים, צ'אטים, סריקות ותוצרי ייצוא ממערכות חשבונאיות, זיהוי הישויות נחלש, וזאת בלי ששמים לב: אין עם מה להשוות את התוצאה, ובאלף שורות אי אפשר לתפוס שגיאות בעין.

הסיבה הראשונה — סכמת תוויות מטושטשת. כאשר «ארגון», «אגף» ו«מוצר» נערמים למחלקה אחת, וישויות מקוננות מתוארות בתווית אחת, המודל רואה דוגמאות סותרות ומנחש פשרה: גבולות הישויות זזים.

את הסכמה בונים מחדש לפני תחילת האימון — תוויות שטוחות, כללים מפורשים לקינון, מחלקה נפרדת לכל ישות שנדרשת בפועל בדיווח.

השנייה — איכות סימון הטקסט. אם שני מתייגים מציבים את הגבולות באופן שונה, ומקרים שנויים במחלוקת נפתרים «לפי תחושה», המודל לומד על רעש. סימון ב-Label Studio עם מעבר כפול וניתוח אי-ההתאמות נותן אחוז התאמה מדיד — קורפוס מתחת לסף לא נכנס לאימון.

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

והעיקר — היעדר בקרה על מדגם נפרד. מדדים על ערכת האימון לא אומרים דבר על ההתנהגות על נתונים חדשים. בקרה על מדגם נפרד של תקבולים חדשים, שאינו חופף לאימון, נותנת הערכה הוגנת ומאפשרת להשוות גרסאות זו לזו — בלעדיה כל «שיפור» אינו ניתן לבדיקה.

אנחנו מפרקים כיצד זה נסגר: מסכמת תוויות והנחיות למתייגים ועד נוהל בדיקות חוזרות על נתונים חדשים.

מה נותן חילוץ ישויות: אפקטים מדידים

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

שיעור הבדיקה הידנית

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

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

זמן עיבוד המסמך

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

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

סוג התקלות שמפסיק להופיע

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

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

גישות לסימון ולאימון: השוואת מצבים

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

סימון בכוחות עצמכם הגיוני להקים כאשר תחום העיסוק סגור והמומחיות נמצאת בתוך הצוות. הסיכון העיקרי כאן — עקביות: בישויות נדירות המתייגים חלוקים, והמודל לומד על דוגמאות סותרות.

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

ארבעה מצבים והמגבלות שלהם

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

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

שלבי אימון מודל NER: מביקורת נתונים ועד למסירה

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

כיצד מתנהלת העבודה

  1. ביקורת קורפוס הטקסטים. אנחנו מסתכלים על מסמכים אמיתיים, מחשבים את שיעור הרעש, הכפילויות והשברים הלשוניים. בפלט — תשובה אם יש מספיק נתונים ומה יהיה צורך לסמן בנוסף.
  2. סכמת ישויות. מקבעים את רשימת הסוגים, כללי הגבולות והקינון, התנהגות בצמתים. מתאמים איתכם לפני הסימון: החלפת סכמה באמצע היא היקרה ביותר.
  3. סימון ובקרת עקביות. מספר מתייגים מסמנים קטע חופף, אי-ההתאמות מנותחות על דוגמאות שנויות במחלוקת. את סף ההתאמה קובעים מראש.
  4. אימון וכיול ספים. המודל לומד על החלק המסומן, ובנפרד מכוילים את ביטחון הזיהויים כדי שרעש לא ייכנס לתוצאה.
  5. בדיקה על מדגם נפרד. מחשבים את השלמות והדיוק לפי כל סוג ישות, ולא במספר ממוצע אחד. את השגיאות מנתחים לפי מחלקות ומחזירים לסימון.
  6. אינטגרציה. מוסרים את המודל כשירות נפרד עם ממשק מובן, מחברים לחיפוש או לעיבוד המסמכים שלכם, עוקבים אחרי זמן התגובה.
  7. מסירה. סכמת הישויות, הנחיות למתייגים, סקריפטים לאימון מחדש ונוהל לסימון נוסף של דוגמאות חדשות — הכל אצלכם בידיים.

מה מוסרים לידיים: ארטיפקטים ונוהלים

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

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

בקבלה אתם מריצים את דוגמאות הבקרה בעצמכם ומשווים את התוצאה לייחוס. המסירה נסגרת כאשר המדדים תאמו והצוות שלכם חזר על ההרצה בלי העזרה שלנו.

מקרה בוחן: פירוק פניות נכנסות עם חילוץ נתונים

חברת שירותים קיבלה פניות בדואר, דרך טופס באתר ובמסרים — זרם של כ-4,000 בחודש. את הנתונים לפנייה (מספר חוזה, כתובת האובייקט, סוג השירות, תאריך מבוקש) המפעילים שלפו מהטקסט ביד: העתיקו, השוו מול מסד הנתונים, העבירו למערכת החשבונאית.

לפני ההטמעה

על פירוק ידני הלכו 6 מתוך 10 פניות — כל אלה שלא היו בטופס מוכן עם שדות. בממוצע הושקעו 8 דקות למכתב, בשבועות שיא התור הגיע ל-2–3 שעות, וחלק מהפניות אבד בהתכתבות.

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

מה שינו ומה יצא

אספנו קורפוס של 12,000 פניות אמיתיות וסימנו ישויות ב-Label Studio: חמישה סוגי שדות ועוד מחלקה נפרדת לאזכורים סותרים.

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

לאחר ההטמעה שיעור הפירוק הידני ירד מ-62% ל-17%, וזמן העיבוד הממוצע — מ-8 דקות ל-40 שניות. דיוק חילוץ שדות המפתח נשמר על 0.93 לפי F1, וה-17% הנותרים הם בעיקר פניות מורכבות עם טבלאות מקוננות וסריקות. סוגי שדות חדשים הוספו על ידי סימון מחדש של כמה אלפי דוגמאות, בלי לכתוב מחדש את לוגיקת קליטת הפניות.

במה שונה אימון נוסף מאימון מאפס?

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

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

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

ספריות פתוחות כמו spaCy נותנות נקודת התחלה, אך לא מחליפות את הסימון שלכם ואת בדיקת האיכות לכל ישות בנפרד.

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

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

ספקות טכניים לפני תחילת הפרויקט

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

יש לנו מעט נתונים — האם זה יספיק למודל NER?

נפח נמדד לא בשורות, אלא במספר אזכורי הישויות: עבור סט של 5–10 סוגים, בדרך כלל מספיקים כמה אלפי אזכורים מסומנים לכל מחלקה. אם החומר מועט יותר, מפעילים אימון נוסף על קורפוסים פתוחים, אוגמנטציה ולמידה אקטיבית — המודל עצמו מצביע על הדוגמאות שיניבו את מירב השיפור. את ההספיקות בודקים לפי עקומת למידה על מדגם ניסוי עוד לפני ההתחלה.

אין סימון בכלל — האם זה חוסם?

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

איך נדע שהאיכות מספקת?

את המדדים precision, recall ו-F1 מחשבים לפי כל סוג ישות בנפרד: הערכה כללית מסווה כישלון במחלקה נדירה, שדווקא מופיעה במסמך הכי הרבה. את ערכי היעד מקבעים בכתב לפני האימון ובודקים על מדגם נפרד שהמודל לא ראה. בנוסף, מריצים דוגמאות אקראיות מהזרם החי שלכם.

מי אחראי לתוצאה?

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

נדון במשימה ונחזור עם הערכה

כדי לחזור עם הערכה ותוכנית עבודה, ולא עם לוחות זמנים כלליים, אנחנו צריכים את ההקשר של המשימה. מודל NER מתאמן על הטקסטים שלכם ועל סכמת הישויות שלכם, ולכן הנתונים הראשוניים להערכה הם прежде прежде прежде — קורפוס ורשימה מדויקת של מה שהמודל צריך לחלץ.

מה לשלוח כדי להתחיל את הפירוק:

  • 300–500 מסמכים או רשומות אופייניים בצורתם המקורית, כולל מקרים לא נוחים: סריקות, טבלאות, הודעות קצרות;
  • רשימת סוגי הישויות עם דוגמאות ערכים וגבולות — היכן נגמר הארגון ומתחיל האגף;
  • 20–30 דוגמאות שנויות במחלוקת, שבהן פירוק ידני או חיפוש לפי כללים טועה;
  • תיאור התהליך הנוכחי: מי ואיך מחלץ ישויות כעת וכמה זמן זה לוקח;
  • דרישות לאיכות: אילו סוגי ישויות קריטיים, מה מותר להחמיץ ומה לא;
  • מגבלות סביבה: קונטור סגור בלי קריאות חוץ או ענן, אילו שפות וקידודים מופיעים;
  • פורמט הפלט: JSON, טבלה, ייצוא למערכת החשבונאית שלכם.

סדר ההתחלה הוא כזה: אנחנו מסתכלים על הנתונים, מקבעים את סכמת הסימון ואת הכללים למקרים שנויים במחלוקת, ומעריכים את נפח הקורפוס לאימון. אנחנו חוזרים עם תוכנית לפי שלבים — איסוף וסימון, אימון וכיול סף הביטחון, מדידת דיוק ושלמות על מדגם נפרד, הטמעה וניטור לאחר ההשקה. התוכנית נשענת על הקורפוס האמיתי שלכם, ולכן לוחות הזמנים ומדדי הקבלה בה ניתנים לבדיקה.

תארו את המשימה — נחזור עם הערכה ותוכנית עבודה.