יכול להיות ששיטות לתכנון הנחיות, כמו הנחיות ב-few-shot, לא תמיד יניבו את התוצאות שאתם צריכים. כוונון עדין הוא תהליך שיכול לשפר את הביצועים של המודל או לשפר את הביצועים שלו במשימות ספציפיות או לעזור למודל לעמוד בפלט ספציפי. כשההוראות אינן מספיקות ויש לכם קבוצת דוגמאות שתדגים את הפלט הרצוי.
בדף הזה נספק סקירה כללית מושגית על כוונון מדויק של מודל הטקסט שמאחורי שירות הטקסט של Gemini API. כשתהיו מוכנים להתחיל לכוונן, נסו את במדריך לכוונון עדין. למבוא כללי יותר להתאמה אישית של מודלים גדולים של שפה (LLM) לתרחישי שימוש ספציפיים, תוכלו לקרוא את המאמר מודלים גדולים של שפה: כוונון עדין, זיקוק ותכנון של הנחיות בקורס המקוצר על למידת מכונה.
איך פועל כוונון עדין
מטרת הכוונון היא לשפר עוד יותר את הביצועים של המודל למשימה הספציפית שלכם. כדי לעשות כוונון עדין צריך לספק למודל במערך נתונים שמכיל דוגמאות רבות של המשימה. במשימות נישה, אפשר לשפר באופן משמעותי את ביצועי המודל על ידי התאמת המודל למספר מצומצם של דוגמאות. לפעמים קוראים לסוג כזה של כוונון מודל כוונון עדין בפיקוח, כדי להבדיל אותו מסוגי כוונון עדין אחרים.
נתוני האימון צריכים להיות בנויים כדוגמאות עם קלט של הנחיות הפלט הצפוי של התשובה. אפשר גם לשפר את המודלים באמצעות נתוני דוגמה ישירות ב-Google AI Studio. המטרה היא ללמד את המודל לחקות את ההתנהגות הרצויה או משימה, באמצעות דוגמאות רבות שממחישות את אותה התנהגות או משימה.
כשמריצים עבודת כוונון, המודל לומד פרמטרים נוספים שעוזרים לו לקודד את המידע הדרוש כדי לבצע את המשימה הרצויה או ללמוד או התנהגות המשתמשים. לאחר מכן תוכלו להשתמש בפרמטרים האלה בזמן ההסקה. הפלט של המודל הוא מודל חדש, שהוא למעשה שילוב של מהם הפרמטרים שנלמדו והמודל המקורי.
הכנת מערך הנתונים
לפני שמתחילים בכוונון, יש צורך במערך נתונים שבאמצעותו כוונון המודל. עבור את הביצועים הטובים ביותר, הדוגמאות במערך הנתונים צריכות להיות באיכות גבוהה, מגוונות ומייצגות קלט ופלט אמיתיים.
פורמט
הדוגמאות שכלולות במערך הנתונים צריכות להתאים לסביבת הייצור . אם מערך הנתונים מכיל עיצוב ספציפי, מילות מפתח, הוראות, או מידע, נתוני הייצור צריכים להיות בפורמט זהה מכילים את אותן ההוראות.
לדוגמה, אם הדוגמאות במערך הנתונים כוללות "question:"
ו
"context:"
, התנועה בסביבת הייצור צריכה גם להיות בפורמט שכולל
"question:"
ו-"context:"
באותו סדר שבו הם מופיעים במערך הנתונים
דוגמאות. אם תחרגו את ההקשר, המודל לא יוכל לזהות את הדפוס, גם אם השאלה המדויקת הופיעה בדוגמה במערך הנתונים.
דוגמה נוספת, הנה נתוני האימון של Python עבור אפליקציה יוצרת את המספר הבא ברצף:
training_data = [
{"text_input": "1", "output": "2"},
{"text_input": "3", "output": "4"},
{"text_input": "-3", "output": "-2"},
{"text_input": "twenty two", "output": "twenty three"},
{"text_input": "two hundred", "output": "two hundred one"},
{"text_input": "ninety nine", "output": "one hundred"},
{"text_input": "8", "output": "9"},
{"text_input": "-98", "output": "-97"},
{"text_input": "1,000", "output": "1,001"},
{"text_input": "10,100,000", "output": "10,100,001"},
{"text_input": "thirteen", "output": "fourteen"},
{"text_input": "eighty", "output": "eighty one"},
{"text_input": "one", "output": "two"},
{"text_input": "three", "output": "four"},
{"text_input": "seven", "output": "eight"},
]
הוספת הנחיה או מבוא לכל דוגמה במערך הנתונים יכולה גם היא לשפר את הביצועים של המודל המכוונן. הערה, אם הנחיה או קידומת הם במערך הנתונים, הוא צריך להיות כלול גם בהנחיה בזמן ההסקה.
מגבלות
הערה: לערכות נתונים של כוונון מדויק ב-Gemini 1.5 Flash יש את המגבלות הבאות:
- גודל הקלט המקסימלי לכל דוגמה הוא 40,000 תווים.
- הגודל המקסימלי של הפלט לכל דוגמה הוא 5,000 תווים.
גודל נתוני האימון
תוכלו לשפר את המודל באמצעות לא יותר מ-20 דוגמאות. בדרך כלל, נתונים נוספים משפרים את איכות התשובות. מומלץ לטרגט בין 100 ל-500 דוגמאות, בהתאם לאפליקציה. בטבלה הבאה מפורטים גדלים מומלצים של מערכי נתונים לצורך כוונון מדויק של מודל טקסט למשימות נפוצות שונות:
משימה | מספר הדוגמאות במערך הנתונים |
---|---|
סיווג | 100+ |
סיכום | 100-500+ |
חיפוש מסמכים | 100+ |
העלאה של מערך הנתונים של הכוונון
הנתונים מועברים בתוך שורת קוד באמצעות ה-API או דרך קבצים שהועלו ב-Google AI Studio.
כדי להשתמש בספריית הלקוח, צריך לספק את קובץ הנתונים בקריאה createTunedModel
.
גודל הקובץ המקסימלי הוא 4MB. לצפייה
המדריך למתחילים לכוונון עדין ב-Python
להתחיל בעבודה בקלות.
כדי לקרוא ל-API ל-REST באמצעות cURL, צריך לספק דוגמאות אימון בפורמט JSON
ארגומנט training_data
. לצפייה
כוונון המדריך למתחילים באמצעות cURL
להתחיל בעבודה בקלות.
הגדרות כיוונון מתקדמות
כשיוצרים משימה של כוונון, אפשר לציין את ההגדרות המתקדמות הבאות:
- תקופות: מעבר אימון מלא לאורך כל ערכת האימון, כך שכל אחד הדוגמה עובדה פעם אחת.
- גודל באצווה: קבוצת הדוגמאות שנעשה בהן שימוש באיטרציה אחת של אימון. גודל האצווה קובע את מספר הדוגמאות באצווה.
- שיעור למידה: מספר עם נקודה צפה שמציין לאלגוריתם את מידת ההתאמה של פרמטרים של המודל בכל חזרה. לדוגמה, קצב למידה של 0.3 יגרום לשינוי במשקולות והטיות גבוה מקצב למידה של 0.1. שיעורי למידה גבוהים ונמוכים יתרונות מרכזיים משלהם וצריך לבצע התאמות בהתאם לתרחיש לדוגמה שלכם.
- מכפיל של קצב הלמידה: מכפיל הקצב משנה את קצב הלמידה המקורי של המודל. כשהערך הוא 1, המערכת משתמשת בשיעור הלמידה המקורי של המודל. ערכים גדולים מ-1 מגדילים את קצב הלמידה, וערכים בין 1 ל-0 מקטינים את קצב הלמידה.
הגדרות מומלצות
בטבלה הבאה מפורטות ההגדרות המומלצות לשיפור מודל הבסיס:
היפר-פרמטר | ערך ברירת מחדל | התאמות מומלצות |
---|---|---|
תקופה | 5 |
אם האובדן מתחיל למישור לפני 5 תקופות של זמן מערכת, צריך להשתמש בערך קטן יותר. אם ההפסד מתקרב לערך מסוים ולא נראה שהוא יגיע לשיא, צריך להשתמש בערך גבוה יותר. |
גודל האצווה | 4 | |
קצב למידה | 0.001 | צריך להשתמש בערך קטן יותר למערכי נתונים קטנים יותר. |
עקומת האובדן מראה עד כמה החיזוי של המודל שונה מהאידיאלי
והחיזויים בדוגמאות לאימון אחרי כל תקופה של זמן מערכת. במצב אידיאלי כדאי להפסיק
בנקודה הנמוכה ביותר בעקומה, לפני המישור. לדוגמה,
הגרף הבא מראה את הרמה של עקומת האובדן בערך תקופה 4-6, כלומר
אפשר להגדיר את הערך 4 בפרמטר Epoch
ועדיין לקבל ביצועים זהים.
בדיקת הסטטוס של עבודת הכוונון
אפשר לבדוק את סטטוס המשימה של כוונון המודל ב-Google AI Studio בכרטיסייה My Library, או באמצעות המאפיין metadata
של המודל המכוונן ב-Gemini API.
פתרון בעיות במקרה של שגיאות
בקטע הזה מפורטות דרכים לפתרון שגיאות שעשויות להתרחש במהלך יצירת המודל המכוונן.
אימות
כדי לבצע התאמה באמצעות ה-API וספריית הלקוח, נדרש אימות. אפשר להגדיר אימות באמצעות מפתח API (מומלץ) או באמצעות פרטי כניסה ל-OAuth. במאמר הגדרת מפתח API מוסבר איך מגדירים מפתח API.
אם מופיעה השגיאה 'PermissionDenied: 403 Request had insufficient authentication
scopes'
, יכול להיות שתצטרכו להגדיר אימות משתמשים באמצעות פרטי כניסה של OAuth. כדי להגדיר את פרטי הכניסה ל-OAuth ב-Python, אפשר לעיין במדריך להגדרת OAuth.
מודלים שבוטלו
אתם יכולים לבטל עבודת כוונון בכל שלב לפני שהמשימה תסתיים. עם זאת, אי אפשר לחזות את ביצועי ההסקה של מודל שהושבת, במיוחד אם משימה ההתאמה אישית בוטלה בשלב מוקדם של האימון. אם ביטלתם את ההזמנה כי אתם רוצים להפסיק את האימון בשלב מוקדם יותר, צריך ליצור כוונון ולהגדיר את התקופה לערך נמוך יותר.
מגבלות של מודלים מותאמים
הערה: על מודלים שעברו כוונון חלות המגבלות הבאות:
- מגבלת הקלט למודל Flash מכוונן של Gemini 1.5 היא 40,000 תווים.
- אין תמיכה במצב JSON עם מודלים מותאמים.
- ניתן להזין רק טקסט.
המאמרים הבאים
כדאי להתחיל עם מדריכי השיפור: