התאמה אישית של מודל ה-NMT
באמצעות Cloud Translation - Advanced API אפשר להתאים אישית את המודל של תרגום מכונה עצבי (NMT) של Google בלי לכתוב קוד. כלומר, אתם יכולים להתאים מודל מותאם אישית לתוכן הספציפי לדומיין שלכם, וליצור תרגומים מדויקים יותר מאלה שנוצרים באמצעות מודל ברירת המחדל של Google NMT.
מודל ה-NMT כולל מספר גדול של צמדי שפות, והוא מתאים לטקסטים לשימוש כללי. היתרון של מודל בהתאמה אישית הוא היכולת לטפל באוצר מילים ספציפי ונישתי. התאמה אישית של מודל ה-NMT מאפשרת לכם לקבל את התרגום הנכון של המונחים הספציפיים לתחום שחשובים לכם.
אם אתם מפעילים שירות דיווח מיוחד שיש לו הזדמנות להתרחב למדינות חדשות. בשווקים האלה, התוכן שרגיש לזמן צריך להיות מתורגם בצורה נכונה בזמן אמת, כולל מונחים מקצועיים. במקום להעסיק צוות דו-לשוני או לשכור מתרגמים מומחים, שתי אפשרויות יקרות, אתם יכולים ליצור ולשפר מודל בהתאמה אישית שיבצע את העבודה בזמן אמת ובעלות נמוכה בהרבה.
הכנת הנתונים
כדי לאמן מודל בהתאמה אישית, צריך לספק זוגות תואמים של קטעים בשפת המקור ובשפת היעד. אלה זוגות של מילים או ביטויים עם משמעות זהה בשפת המקור ובשפת היעד. ככל שהמשמעות של צמדי הקטעים קרובה יותר, כך המודל יכול לפעול טוב יותר.
כשיוצרים את קבוצת הנתונים של זוגות המקטעים התואמים, מתחילים בתרחיש שימוש:
מה התוצאה שאתם רוצים להשיג?
אילו סוגי פלחים חשוב לתרגם נכון כדי להשיג את התוצאה הזו? האם מודל ה-NMT יכול להשיג את זה באופן מיידי?
האם בני אדם יכולים לתרגם את הקטעים החשובים האלה בצורה שתספק אתכם? אם משימת התרגום לא ברורה מספיק, כך שגם אדם שדובר את שתי השפות באופן שוטף יתקשה לבצע אותה בצורה משביעת רצון, יכול להיות שמודל ה-NMT יפעל כמו מודל בהתאמה אישית.
אילו סוגי דוגמאות משקפים בצורה הטובה ביותר את הסוג והטווח של זוגות הקטעים שהמערכת תצטרך לתרגם?
התאמת הנתונים לתחום הבעיה
אתם מאמנים מודל תרגום בהתאמה אישית כי אתם צריכים מודל שמתאים לתחום לשוני מסוים. חשוב לוודא שצמדי הקטעים מכסים בצורה הטובה ביותר את אוצר המילים, השימוש והמוזרויות הדקדוקיות של התחום או תחום המיקוד שלכם. חפשו מסמכים שמכילים שימושים אופייניים שתמצאו במשימות התרגום שאתם רוצים לבצע, וודאו שהביטויים המקבילים תואמים ככל האפשר במשמעות. כמובן שלפעמים אין התאמה מושלמת בין שפות מבחינת אוצר המילים או התחביר, אבל כדאי לנסות לתעד את כל המגוון הסמנטי שאתם מצפים להיתקל בו במהלך השימוש, אם זה אפשרי. אתם מתבססים על מודל שכבר מבצע תרגום למטרות כלליות בצורה די טובה. הדוגמאות שלכם הן השלב האחרון והמיוחד שגורם למודלים בהתאמה אישית לפעול במקרה הספציפי שלכם, לכן חשוב לוודא שהן רלוונטיות ומייצגות את השימוש שאתם מצפים לראות.
התאמה למגוון השפות שלכם
קל להניח שהאופן שבו אנשים כותבים על תחום מסוים הוא אחיד מספיק, כך שמספר קטן של דוגמאות טקסט שתורגמו על ידי מספר קטן של מתרגמים אמור להספיק כדי לאמן מודל שיעבוד היטב עבור כל מי שכותב על התחום הזה. אבל כולנו אנשים שונים, וכל אחד מאיתנו מביא את האישיות שלו למילים שהוא כותב. מערך נתונים לאימון עם זוגות של פלחים ממבחר רחב של מחברים ומתרגמים, יספק לכם מודל שמתאים לתרגום טקסטים מארגון מגוון. בנוסף, כדאי להביא בחשבון את המגוון של אורכי הפלחים והמבנים שלהם. קבוצת נתונים שבה כל הפלחים הם באותו גודל או בעלי מבנה דקדוקי דומה לא תפיק מודל טוב בהתאמה אישית, שכולל את כל האפשרויות.
מקור הנתונים
אחרי שקובעים אילו נתונים נדרשים, צריך למצוא דרך להשיג אותם. כדאי להתחיל בבחינת כל הנתונים שהארגון אוסף. יכול להיות שאתם כבר אוספים את הנתונים שדרושים לאימון מודל תרגום. אם אין לכם את הנתונים שאתם צריכים, אתם יכולים להשיג אותם באופן ידני או להעביר את המשימה לספק צד שלישי.
האדם שבתהליך
אם זה אפשרי, ודאו שאדם שמבין היטב את שתי השפות אימת שצמדי הקטעים תואמים בצורה נכונה ומייצגים תרגומים מובנים ומדויקים. טעות נפוצה כמו חוסר התאמה בין השורות בגיליון האלקטרוני של נתוני האימון יכולה להניב תרגומים שנשמעים כמו ג'יבריש. נתונים באיכות גבוהה הם הדבר הכי חשוב שאתם יכולים לספק ל-Cloud Translation - Advanced API כדי לקבל מודל שמתאים לעסק שלכם.
חשוב לשמור על הוגנות כשמפתחים זוגות של פלחים
אחד מעקרונות הליבה של מוצרי למידת המכונה (ML) של Google הוא למידת מכונה שמתמקדת באנשים, גישה שמקדמת שיטות לפיתוח אחראי של AI, כולל הוגנות. המטרה של הוגנות ב-ML היא להבין ולמנוע יחס לא הוגן או דעות קדומות כלפי אנשים על רקע גזע, הכנסה, נטייה מינית, דת, מגדר ומאפיינים אחרים שקשורים באופן היסטורי לאפליה ולהדרה, כשהם באים לידי ביטוי במערכות אלגוריתמיות או בקבלת החלטות בעזרת אלגוריתמים. מידע נוסף זמין במדריך שלנו ובהערות הבאות בנושא הוגנות:
כדי ללמוד על הנחיות משפטיות ובעיות תרבותיות אפשריות, כדאי לעיין בתקנות באזור שלכם ובמקומות שבהם האפליקציה תפעל, וגם במחקרים קיימים או במידע על מוצרים בתחום שלכם. מידע נוסף…
חשוב לבדוק אם תרחיש השימוש או המוצר עלולים להשפיע לרעה על הזדמנויות כלכליות או הזדמנויות חשובות אחרות בחיים של אנשים פרטיים, ואם כן לקרוא מידע נוסף…
אם יש לכם מעט נתונים על תת-קבוצה מסוימת, ודאו שהנתונים האלה מפוזרים באופן מייצג בין קבוצות האימון והבדיקה על ידי ביצוע החלוקה לאימון ולבדיקה בעצמכם.
במהלך הבדיקה, חשבו היטב על תחום הבעיה ועל הפוטנציאל שלו לחוסר הוגנות ולהטיה. חשבו על מקרים שישפיעו לרעה על המשתמשים אם הם יתגלו בסביבת הייצור, ובדקו אותם קודם. מידע נוסף…
אם יש לכם תרחיש לדוגמה שמצריך שיקולי הוגנות, קראו איך להשתמש במודל באופן שמפחית הטיות או תוצאות שליליות. מידע נוסף…
ניקוי נתונים לא מסודרים
אתם עלולים לעשות טעויות בעיבוד המקדים של הנתונים, וחלק מהטעויות יכולות לבלבל מאוד מודל בהתאמה אישית. באופן ספציפי, חפשו את הבעיות הבאות בנתונים שאתם יכולים לתקן:
- הסירו קטעי מקור כפולים, במיוחד אם יש להם תרגומי יעד שונים. ב-Cloud Translation - Advanced API נעשה שימוש רק בדוגמה הראשונה שמופיעה, וכל שאר הצמדים נמחקים בזמן הייבוא. הסרת הכפילויות מבטיחה ש-Cloud Translation - Advanced API ישתמש בתרגום המועדף עליכם.
- מתאימים בין מקטעי המקור למקטעי היעד הנכונים.
- התאימו את הפלחים לשפה שצוינה. לדוגמה, כללו רק פלחים בסינית בקבוצת נתונים בסינית.
- בקטעי טקסט בשפת היעד שכוללים שפות מעורבות, צריך לבדוק אם המילים שלא תורגמו, כמו שמות של מוצרים או ארגונים, לא תורגמו בכוונה. פלחים בשפת היעד שכוללים בטעות מילים לא מתורגמות מוסיפים רעש לנתוני האימון, מה שעלול להוביל למודל באיכות נמוכה יותר.
- תקנו קטעים עם שגיאות הקלדה או שגיאות דקדוק כדי שהמודל לא ילמד את השגיאות האלה.
- מסירים תוכן שלא ניתן לתרגום, כמו תגי פלייסהולדר ותגי HTML. תוכן שלא ניתן לתרגם עלול לגרום לשגיאות בפיסוק.
- אל תכללו זוגות של פלחים שמחליפים ישויות כלליות בשמות עצם ספציפיים. לדוגמה, אל תשתמשו בדוגמה שמתרגמת מונח כללי כמו נשיא לשם של נשיא ספציפי כמו JFK. זה יכול ללמד את המודל לשנות את כל המופעים של נשיא ל-JFK. במקום זאת, הסירו את צמדי הפלחים האלה או שנו את שמות העצם הספציפיים לשמות עצם כלליים.
- הסירו פלחים כפולים בקבוצות האימון והבדיקה (בקטע חלוקת מערך הנתונים מוסבר איך לפצל את מערך הנתונים לשלוש קבוצות משנה).
- לפצל כמה פלחים לצמדי פלחים שונים. אימון על מערך נתונים שבו לפריטים רבים יש יותר מ-50 אסימונים (מילים) מניב מודלים באיכות נמוכה יותר. אם אפשר, פצלו את הפריטים למשפטים נפרדים.
- השתמשו באותיות רישיות באופן עקבי. האותיות הרישיות משפיעות על האופן שבו המודל לומד, למשל, להבחין בין כותרת לבין גוף הטקסט.
- הסרת תגי TMX כשמייבאים נתונים מקובץ TSV. במקרים מסוימים, יכול להיות שתייצאו את זיכרון התרגום הקיים לקובץ TSV, שעשוי לכלול תגי TMX. עם זאת, Cloud Translation - Advanced API מנקה תגי יחידות תרגום רק כשמייבאים מקובץ TMX (ולא מקובצי TSV).
עיבוד נתונים
Cloud Translation - Advanced API מפסיק לנתח את קובץ הקלט של הנתונים במקרים הבאים:
- הפורמט לא תקין.
- יש זוג פלחים ארוך באופן בלתי סביר (10MB).
- הקובץ משתמש בקידוד שאינו UTF-8.
Cloud Translation - Advanced API מתעלם משגיאות בבעיות שהוא לא יכול לזהות, כמו:
- רכיב
<tu>בקובץ TMX שלא מציין את שפת המקור או את שפת היעד. - אחד מהצמדים של קטעי הקלט ריק.
כדי לפצל את הנתונים באופן אוטומטי, Cloud Translation - Advanced API מבצע עיבוד נוסף (ראו חלוקת מערך הנתונים):
אחרי שמעלים את מערך הנתונים, המערכת מסירה זוגות של פלחים עם פלחי מקור זהים.
הוא מפצל באופן אקראי את הנתונים לשלוש קבוצות ביחס של 8:1:1 (אימון:אימות:בדיקה) לפני האימון.
חלוקת מערך הנתונים
מערך הנתונים של זוגות הקטעים מחולק לשלוש קבוצות משנה, לאימון, לאימות ולבדיקה:
קבוצת נתונים לאימון
רוב הנתונים צריכים להיות בקבוצת הנתונים לאימון. אלה הנתונים שהמודל "רואה" במהלך האימון: הם משמשים ללמידת הפרמטרים של המודל ולחישוב המשקלים של החיבורים בין הצמתים של רשת הנוירונים.קבוצת נתונים לתיקוף
קבוצת הנתונים לתיקוף, שלפעמים נקראת קבוצת dev, משמשת גם היא בתהליך האימון. במהלך אימון המודל, המערכת משתמשת בקבוצת הנתונים לאימון כדי לאמן חבילה של מודלים מועמדים, ואז משתמשת בביצועים של המודל בקבוצת הנתונים לתיקוף כדי לבחור את המודל הכי טוב שנוצר. הוא משתמש בביצועים של המודל בקבוצת הנתונים לתיקוף כדי לכוונן את ההיפר-פרמטרים של המודל, שהם משתנים שמציינים את מבנה המודל. אם תשתמשו בקבוצת הנתונים לאימון כדי לכוונן את הפרמטרים, המודל יתמקד יותר מדי בנתוני האימון. שימוש בקבוצת נתונים חדשה יחסית כדי לכוונן את מבנה המודל, מאפשר למודל להכליל בצורה טובה יותר.קבוצת בדיקה
קבוצת הבדיקה לא מעורבת בכלל בתהליך האימון. אחרי שהמודל סיים את האימון, קבוצת הבדיקה משמשת כאתגר חדש לגמרי למודל. הביצועים של המודל בקבוצת הבדיקה אמורים לתת לכם מושג די טוב לגבי הביצועים של המודל על נתונים בעולם האמיתי.
אם לא תציינו באופן ידני איך לחלק את קבוצת הנתונים בין הפונקציות האלה, כמו שמתואר במאמר הכנת נתוני האימון, ואם קבוצת הנתונים מכילה פחות מ-100, 000 זוגות של פלחים, Cloud Translation - Advanced API ישתמש באופן אוטומטי ב-80% ממסמכי התוכן לאימון, ב-10% לאימות וב-10% לבדיקה. אם הנתונים גדולים יותר, צריך לציין במפורש איך הם מפוצלים. פיצול ידני נותן לכם יותר שליטה בתהליך, ומאפשר לכם לא רק לקבוע את אחוזי הפיצול, אלא גם לציין קבוצות מסוימות שבהן ייכללו זוגות פלחים מסוימים.
ייבוא נתונים
אחרי שתחליטו אם אתם רוצים לפצל את הנתונים באופן ידני או אוטומטי, תוכלו להוסיף נתונים בשתי דרכים:
אתם יכולים לייבא נתונים כקובץ של ערכים מופרדים בטאבים (TSV) שמכיל פלחים של מקור ויעד, פלח אחד בכל שורה.
אפשר לייבא נתונים כקובץ TMX, פורמט סטנדרטי להוספת זוגות של פלחים לכלים של מודלים לתרגום אוטומטי (למידע נוסף על פורמט TMX, ראו הכנת נתוני אימון). אם קובץ TMX מכיל תגי XML לא חוקיים, Cloud Translation - Advanced API מתעלם מהם. אם קובץ ה-TMX מכיל שגיאות XML או TMX, כמו תג סיום חסר או רכיב
<tmx>חסר, Cloud Translation - Advanced API מפסיק את העיבוד ומחזיר שגיאה אם הוא מדלג על יותר מ-1,024 רכיבי' לא תקינים.
הערכה ראשונית של המודל המותאם אישית
אחרי שהמודל מאומן, אתם מקבלים סיכום של ביצועי המודל. לוחצים על הכרטיסייה אימון כדי לראות ניתוח מפורט. ציון ה-BLEU של המודל בהתאמה אישית ושל המודל הסטנדרטי של Google NMT מוצגים בכרטיסייה Train, יחד עם השיפור בביצועים של ציון ה-BLEU כתוצאה מהשימוש במודל בהתאמה אישית.
ככל שציון ה-BLEU גבוה יותר, כך המודל יכול לספק תרגומים טובים יותר לפלחים שדומים לנתוני האימון. ציונים בטווח של 30-40 נחשבים לטובים. הסבר מפורט על ציוני BLEU מופיע במאמר מדד איכות התרגום BLEU.
יש מדדי הערכה אחרים שלעיתים קרובות אמינים יותר מציון BLEU. למידע נוסף על אפשרויות ההערכה האלה, ראו הערכת מודלים של תרגום.
ניפוי באגים
כשמנפים באגים במודל בהתאמה אישית, מתמקדים יותר בניפוי באגים בנתונים מאשר במודל עצמו. אם המודל לא מתרגם כמו שאתם רוצים, בדקו את הנתונים כדי לראות איפה אפשר לשפר אותם.
בדיקה
גם אם ציון ה-BLEU נראה תקין, מומלץ לבדוק את המודל בעצמכם כדי לוודא שהביצועים שלו עומדים בציפיות שלכם. אם נתוני האימון והבדיקה נלקחים מאותה קבוצה שגויה של דוגמאות, יכול להיות שהציונים יהיו מצוינים גם אם התרגום הוא חסר משמעות. מוסיפים כמה דוגמאות כקלט בכרטיסייה Predict ומשווים את התוצאות מהמודל בהתאמה אישית עם מודל הבסיס של Google NMT. יכול להיות שתבחינו שהמודל שלכם מציג את אותן תחזיות כמו מודל הבסיס, במיוחד בקטעים קצרים או אם יש לכם קבוצת נתונים קטנה יותר לאימון, כי מודל הבסיס כבר די טוב למגוון רחב של תרחישי שימוש. במקרה כזה, נסו להשתמש בקטעים ארוכים או מורכבים יותר. עם זאת, אם כל הפלחים זהים לתחזיות של מודל הבסיס, יכול להיות שיש בעיה בנתונים.
אם יש טעות שאתם חוששים במיוחד שהמודל יעשה (כמו טעות בתרגום שעלולה לעלות לכם בכסף או לפגוע במוניטין שלכם), ודאו שקבוצת הבדיקה או התהליך מכסים את המקרה הזה בצורה מספקת כדי שתרגישו בטוחים להשתמש במודל במשימות היומיומיות.
המאמרים הבאים
- במאמר הכנת נתוני אימון מוסבר איך ליצור מערך נתונים ומודל בהתאמה אישית.