מדוע ניקוי הנתונים של LLM נשבר בקנה מידה
על מדגם הדגמה של כמה אלפי דוגמאות הקורפוס נראה נקי, ואילו על הנפח המלא האימון מחדש מתנהג באופן בלתי צפוי: מדד הוולידציה עולה, ובעבודה המודל חוזר על ניסוחים מתוך ההוראות ומאבד את פורמט התשובה.
הסיבה כמעט תמיד אינה בארכיטקטורה, אלא באופן שבו בוצע ניקוי הנתונים — פגמים בקורפוס האימון אינם נראים בסקירה סלקטיבית בעין.
כפילויות במדגם הן הפגם הראשון והיקר ביותר. עותקים מדויקים נתפסים על ידי נורמליזציה ו-hashing, אך כמעט-כפילויות נשארות: הוראה אחת עם פתיחים שונים, העתקות מאותו מקור. המודל רואה את אותה דוגמה עשרות פעמים, עובר overfitting עליה, ומקרים נדירים אך חשובים שוקעים בחזרות.
לצד זה — רעש בסימון: שברי תגיות שירות, מרכאות לא מזווגות, שדות שנותרו מאיסוף אוטומטי, תשובות לשאלה הלא נכונה.
קטגוריה נפרדת — תבניות נסתרות. אם תשע מתוך עשר תשובות מתחילות בביטוי פתיחה זהה או מכילות סמן מקור, המודל לומד את התבנית במקום לפתור את המשימה ומשחזר אותה בביטחון על שאילתות משתמשים.
דליפת דוגמאות ייחוס פוגעת באמון במדדים: כל עוד מדגם הבקרה חופף למדגם האימון, המדידות מציגות איכות שאינה קיימת בעבודה. ירידת איכות האימון מחדש צפה כבר אחרי העלייה לאוויר, כשהאימון מחדש הוא היקר ביותר — ומכאן אנו מפרקים כיצד ניקוי נתוני LLM סוגר זאת לפני תחילת האימון.
מה נותנת איכות קורפוס מבוקרת לאימון מחדש
בקרת איכות הנתונים מתחילה לא בניקוי, אלא במדידות: כל עוד חלק הדוגמאות הפסולות אינו נספר לפי כל מחלקת פגמים, אי אפשר להבחין בין שיפור בקורפוס לתנודה מקרית.
פרופיל הפגמים מנוהל כדוח לכל ריצה — כמה כפילויות, הוספות תבניתיות, קידודים שבורים, דיאלוגים קטועים וחפיפות עם ערכות הערכה נשלחו לפסילה ובאיזה כלל.
פרופיל הפגמים מראה אילו כללים עובדים ואילו חותכים יותר מדי. הסף על חזרות והמסנן הלשוני מכוונים לפי הדומיין: במקום שבו מבנים נדירים חשובים לתרחיש היעד, הכלל מוקל ולא מבוטל — אחרת המחלקה הנדירה פשוט נעלמת מהקורפוס, והמודל מאבד עליה יציבות.
יכולת השחזור של האימון נשענת על ורסיונינג: הסט מקבל מניפסט עם סכומי ביקורת, הרכב המסננים וחלוקה לחלקים. הריצה חוזרת אחרי חודש עם אותה תוצאה, והשוואה בין שני אימונים מצטמצמת להבדל בכללים, ולא לרעש בנתונים. לדה-דופליקציה וסינון בנפחים גדולים אנו לוקחים NeMo Curator, ואת המדדים מחשבים בסקריפטים שלנו.
יציבות המודל בתרחישים נדירים היא תוצאה ישירה של ניקוי קפדני: סינון יתר מסיר בדיוק את הזנב הארוך, בעוד המדדים על הסט הכללי דווקא עולים. לכן אנו משווים את חלק המחלקות הנדירות לפני ואחרי הסינון ושומרים אותו לא נמוך מהמקורי.
זרימה או חילוץ חד-פעמי: במה נבדלות הגישות
מצב הכנת הקורפוס משפיע לא רק על לוחות הזמנים של הריצה הראשונה, אלא גם על האופן שבו הקורפוס ממשיך לחיות: חילוץ חד-פעמי של הקורפוס נותן תמונת מצב טובה לתאריך מסוים, עיבוד אצווה תקופתי שומר אותו מעודכן, וזרימה רציפה תופסת נתונים טריים כמעט מיד. ההבדל מתגלה מאוחר יותר — בעלות הפיקוח, ביכולת השחזור של גרסאות ובמידת הכאב של ביטול ריצה מקולקלת.
| אפשרות | מתי מתאים | מגבלות המצב |
|---|---|---|
| חילוץ חד-פעמי של הקורפוס | ריצה ראשונה, בדיקת היפותזה, מקור עם שינויים נדירים | תמונת המצב מתיישנת; יכולת השחזור נשענת רק על ארכיון הגרסה |
| עיבוד אצווה תקופתי | הנתונים משתנים באופן צפוי: פעם ביום, בשבוע, בחודש | נדרש נוהל עדכון נתונים והשוואה של מקטעים חדשים בלבד, אחרת נוצרות כפילויות |
| עיבוד זרימה רציף | זרימת אירועים חיה או משוב ממשתמשים | ביטול קשה יותר, כפילויות בגבולות חלונות, דרישות פיקוח גבוהות יותר |
בפועל לרוב נוקטים שילוב: הזרימה מאמתת רשומות ומניחה אותן בחוצץ, והעיבוד האצוותי במרווח מוסכם בונה מחדש גרסה שלמה של הקורפוס — עם דה-דופליקציה חוזרת, נורמליזציה וסימון נתונים אישיים.
נוהל עדכון הנתונים קובע מה נחשב לגרסה חדשה, כמה רשומות נקיות מינימליות נדרשות לבנייה מחדש ובאיזה כלל מבוטלות ריצות כושלות. כך עיבוד הזרימה אינו הופך לגידול בלתי נשלט, וכל גרסת קורפוס נשארת ניתנת למעקב עד המקור.
כיצד נבנה ניקוי הקורפוס: שלבי עבודת ההנדסה
ניקוי הקורפוס נבנה לא סביב ספרייה מוכנה, אלא סביב נתונים קונקרטיים ומשימת המודל. תחילה אנו מגדירים מה נחשב לרעש בדיוק כאן: קידודים שבורים, הוספות ממקורות זרים, בלוקים תבניתיים, תרגום מכונה, הוראות זהות עם סימון שונה. לאחר מכן העבודה מתקדמת בשלבים, וכל אחד מהם מותיר חפץ ניתן לבדיקה — דוח, כלל או בדיקה.
- אודיט הקורפוס — מדגם מרובד לפי מקורות ושפות, סימון ידני של מחלקות הרעש וחלקן. זה קובע את סדר העבודה: ראשית מסירים את מה שמייצר את עיקר הזבל.
- כללי סינון — כל כלל נרשם כתנאי ניתן לבדיקה: חלק תווי השירות, אורך בטוקנים, התאמה לתבניות. הספים נבחרים לפי הסימון ומגוהרים לפי חישוב פרטנידה-דופליקציה של דוגמאות — השוואה לפי חתימות קרבה, ולא לפי התאמה מדויקת: כך נתפסות פרפרזות והדבקות. בנפרד אנו עוברים על זוגות «הוראה — תשובה»: כפילות של שאלה עם תשובות שונות מזיקה יותר מחזרה מלאה.
- הרכבת קו הצינור — השלבים מעוצבים כשרשרת ניתנת לשחזור עם לוגים: כמה דוגמאות סינן כל מסנן. משנים סף ורואים מיד את ההשלכות, ולא מריצים מחדש בעיוורון.
- מדגם בקרה — ריצה על סט מוחזק שלא השתתף בכיול הכללים: חלק ההסרות השגויות, הרעש השיורי, שימור דוגמאות נדירות אך חשובות.
- מסירת קו הצינור — קונפיגורציות, בדיקות, דוחות מדדים והוראות הרצה. צוות הלקוח מריץ את הניקוי בעצמו על פרוסת נתונים חדשה.
קונפיגורציות, סכמות ונוהלי הכנת הקורפוס
כל שלב בהכנת הקורפוס מתועד בחפצים שנשארים בסביבתכם, ולא בהתכתבות עם המבצע. לפיהם מהנדס חדש משחזר את הבנייה מאפס, מבקר רואה את מקור כל רשומה, והרצה חוזרת נותנת אותה תוצאה על אותם נתוני קלט.
- סכמת מעבר הנתונים — מסלול הרשומה מהמקור לקורפוס הסופי: צמתי עיבוד, נקודות הסתעפות, הסגר של הפסול, בדיקות בכל מעבר.
- הגדרות קו הצינור — קבצי קונפיגורציה דקלרטיביים: כללי נורמליזציה, ספי סינון לפי שפה וכפילויות, חלונות דה-דופליקציה, הגבלות על אורך וקידוד הרשומה.
- ורסיונינג של הקורפוס — תמונות מצב של הדאטהסט עם סכומי ביקורת ויומן שינויים: רואים איזו בנייה נשלחה לאימון מחדש ולאיזו גרסה לבצע ביטול.
- מדיניות גישה לקורפוס — תפקידים ורמות רגישות, מיסוך שדות אישיים, יומן פניות לנתונים, נוהל מתן ושלילת גישה.
- נוהל עיבוד מחדש — מה קורה לרשומות שנפסלו: הסגר, סימון מחדש, תקופת שמירה, נוהל מחיקה לבקשת בעל הנתונים.
- תיעוד הנתונים — דרכון הקורפוס: הרכב וחלק השפות, נפח, מקורות וזכויות שימוש, דוח מדדי ניקיון.
- צ'ק-ליסט קבלה — בדיקות ניתנות לשחזור: ריצת בקרה על מדגם קבוע וספים שבהם הבנייה נחשבת כשרה.
את החבילה מוסרים יחד עם הרצה בתשתית שלכם: מהנדסי הלקוח עורכים את הקונפיגורציה בעצמם, וקו הצינור נשאר ניתן לניהול בלעדינו.
מקרה בוחן: כיצד צומצם חלק הפסולת בקורפוס האימון
מה הגיע כקלט
הלקוח — צוות מוצר שמאמן מחדש עוזר תמיכה: קורפוס של 4.2 מיליון מסמכים נאסף מפניות, התכתבויות ובסיס ידע פנימי. מדידות לפני העבודה הראו 34% רשומות כמעט זהות, 11% שברים — מקטעים שנחתכו לפי מגבלת השדה — וחוסר אחידות בסימון השירות.
בגלל זה האימון מחדש הורץ מחדש 5–6 פעמים: המודל שחזר בביטחון זהה גם תשובות עבודה של נציגים וגם טיוטות זבל.
מה שינו
נבנה קו צינור להכנת הקורפוס: נורמליזציה של טקסט ומעברי שורה, הסרת סימון שירות, דה-דופליקציה לפי התאמה מטושטשת של shingles — החישוב מבוזר, על Apache Spark. לאחר מכן מסנני איכות: סינון מקטעים קצרים וקטועים, בדיקת שפה, סינון ברכות תבניתיות, מיסוך נתונים אישיים. המדדים חושבו על סטים בקרה אחרי כל שלב — כך נראית התרומה של מסנן בודד, ולא התוצאה הכללית.
מדדים לפני ואחרי
| מדד | לפני | אחרי |
|---|---|---|
| חלק הכפילויות | 34% | 6% |
| שברים ומקטעים פגומים | 11% | 1,4% |
| נפח מדגם האימון | 4,2 מיליון מסמכים | 2,6 מיליון |
| ריצות אימון מחדש חוזרות | 5–6 | 1–2 |
קו הצינור נשאר אצל הצוות כריצה תקופתית: חילוצים חדשים עוברים את אותן בדיקות, דוח איכות הקורפוס נבנה אוטומטית, וחלק הכפילויות נשמר ברמה של 6% ואינו גדל יחד עם הנפח. הריצות החוזרות של האימון מחדש הצטמצמו מ-5–6 ל-1–2 — תיקונים בנתונים נראים כעת לפני הפעלת האימון, ולא אחריו.
מה לעשות אם הקורפוס כבר נאסף ומסומן חלקית?
הצעד הראשון — מלאי של הקורפוס המוכן: סופרים את חלק הדוגמאות עם סימון, את סכמת התוויות הפעילה, כמה דוגמאות סומנו על ידי כמה אנשים והיכן הפערים גבוהים מסף ההסכמה.
בדרך כלל ניתן לעשות שימוש חוזר ביותר ממה שהלקוח מצפה: אם סכמת התוויות לא השתנתה, הליבה המסומנת נכנסת לאימון מחדש כמות שהיא, והדוגמאות השנויות במחלוקת עוברות לבוררות, ולא לסימון מחדש מאפס.
סימון חלקי אינו מפריע לעבודה. החלק המסומן משמש כזרע: עליו מכיילים סימון אוטומטי, בודקים אותו על מדגם מוחזק ומסמנים ידנית רק את מה שבו הביטחון נמוך. כך הקורפוס גדל בלי גידול פרופורציונלי בעבודת הידיים.
סימון מחדש של דוגמאות נדרש במקום שבו סכמת התוויות השתנתה או שהשתנה הכלל של שיוך למחלקה. בונים טבלת התאמה בין תוויות ישנות לחדשות, מריצים מיגרציה של הסימון ובודקים את התוצאה על מדגם בקרה: חלק הדוגמאות שאיבדו תווית חייב להיות גלוי לפני תחילת האימון מחדש. את הסימון הקודם לא מוחקים — הוא נשאר כרוויזיה נפרדת שאפשר לחזור אליה בעת ביטול.
היסטוריית שינויי הנתונים היא חלק חובה, ולא תוספת. כל שינוי של דוגמה מתועד עם המחבר, הסיבה והגרסה, ואת הקורפוס מחזיקים ברוויזיות, כך שאימון מחדש על כל אחת מהן משוחזר. זה מאפשר להשוות מדדים לפני ואחרי התיקונים ולא להפעיל אימון בעיוורון לאחר סימון מחדש המוני.
ספקות טכניים לגבי איכות הקורפוס
את התאמת הקורפוס אנו בודקים לא בעין, אלא לפי סט סימנים מדידים: חלק הכפילויות המדויקות וכמעט-כפילויות, פיזור אורך המסמכים, חלק המקטעים בשפה אחרת, צפיפות הסימון השירותי והטקסט השבור, כיסוי אשכולות הנושאים של היעד.
את הספים קובעים לפני תחילת העבודה — ואז הקבלה הופכת להשוואה עם מספרים, ולא לוויכוח על טעם. אם לאחר הסינון נשארים 60–70% מהנפח המקורי והוא מכסה את כל הנושאים הנדרשים, הקורפוס מתאים; אם פחות — בונים מחדש את המקורות, ולא מחמירים את הכללים.
האם נאבד דוגמאות נדירות בסינון קפדני?
נאבד, אם המסננים מיושמים בגל אחד. לכן מחלקות נדירות אינן נמחקות אלא מסומנות ומועברות לסט נפרד: הדה-דופליקציה עליהן נעשית בסף מונמך, ובאימון המשקל שלהן מוגבר. הבקרה — לפי התפלגות התדרים של התוויות: אף מחלקה לא צריכה להיעלם לאחר הניקוי, גם אם חלקה הוא שברי אחוזים.
כיצד למדוד איכות אם אין סימון ייחוס?
אוספים «מאה הזהב»: מדגם קטן, מסומן ידנית לפי ההוראה, ומכיילים עליו את כל הכללים האוטומטיים. את שאר הקורפוס מעריכים בעקיפין — לפי הסכמה של שני מסמנים בלתי תלויים על מקטעי בקרה, ולפי התנהגות המודל על סט מוחזק לפני ואחרי האימון מחדש. אם איכות התשובות אינה עולה, הבעיה היא לרוב בכללי הבחירה, ולא בנפח.
עד כמה מורכב הסימון וכמה זמן נמשכת ההכנה?
עיקר הזמן מושקע לא בסינון — הוא נמשך ימים — אלא בסימון ובבירור מקרים שנויים במחלוקת: הוא נמשך שבועות ודורש הוראה כתובה עם דוגמאות למצבי גבול. בנוסף מקצים איטרציה-שתיים: אחרי הבדיקה הראשונה על הסט המוחזק, את הכללים כמעט תמיד יש לדייק. את לוחות הזמנים האלה אנו נוקבים לפני תחילת העבודה, ולא בדיעבד.
נדון במשימה: מה נדרש להערכת הקורפוס
הערכת היקף העבודה של ניקוי הקורפוס תלויה במה שכבר קיים בקלט, ולכן את הדיון במשימה מתחילים בנתוני הפתיחה, ולא בהבטחות כלליות. להלן מה שהכי משפיע על חישוב לוחות הזמנים והרכב השלבים.
- מטרות האימון מחדש: איזו מחלקת תשובות המודל צריך להפיק ועל אילו דוגמאות נבדקת הנכונות.
- מקורות הקורפוס: מניין נלקחו הטקסטים, באיזו צורה הם שמורים כעת, נפח משוער במסמכים ובדיאלוגים.
- סימון וייחוסים: האם יש דוגמאות שנבדקו ידנית, מי בחר אותן ולפי אילו כללים.
- רעש ידוע: חזרות, שברים, ערבוב שפות, הוספות שירות, עקבות יצירה אוטומטית.
- מגבלות על הנתונים: מידע אישי, סוד מסחרי, דרישות אחסון וגישה.
- קריטריוני קבלה: לפי אילו מדדים תבינו שהקורפוס מוכן לאימון.
- מצב העבודה: ניקוי חד-פעמי או זרימה תקופתית עם עדכונים ובדיקה חוזרת.
תארו את המשימה במילים שלכם — נחזור עם הערכת היקף, תוכנית עבודה וחלוקת תפקידים לפי שלבים. אם חלק מנתוני הפתיחה טרם נאסף, נתחיל מלחדד אותם: זה אמין יותר מאשר לסמן מחדש קורפוס לאחר שהמודל כבר אומן.







