כוונון בעזרת Gemini API

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

בדף הזה מוצגת סקירה כללית של מושגים במשאבים לגבי כוונון עדין של מודל הטקסט שירות הטקסט של Gemini API. כשתהיו מוכנים להתחיל לכוונן, נסו את במדריך לכוונון עדין. אם ברצונך מבוא כללי יותר להתאמה אישית של מודלים גדולים של שפה (LLM) לתרחישים ספציפיים לדוגמה, חוץ מודלים גדולים של שפה (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.

הגדרות כוונון מתקדמות

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

  • Epochs: מעבר אימון מלא על כל קבוצת האימון, כך שכל דוגמה עוברת עיבוד פעם אחת.
  • גודל באצווה: קבוצת הדוגמאות שנעשה בהן שימוש באיטרציה אחת של אימון. גודל האצווה קובע את מספר הדוגמאות בקבוצה.
  • קצב למידה:מספר נקודה צפה (floating-point) שמגדיר לאלגוריתם איך כדי להתאים היטב את הפרמטרים של המודל בכל איטרציה. לדוגמה, שיעור למידה של 0.3 יתאים את המשקלים וההטיות בצורה חזקה פי שלושה מאשר שיעור למידה של 0.1. לשיעורי למידה גבוהים ונמוכים יש יתרונות וחסרונות ייחודיים משלהם, וצריך לשנות אותם בהתאם לתרחיש לדוגמה.
  • מכפיל של קצב הלמידה: מכפיל הקצב משנה את קצב הלמידה המקורי של המודל. ערך של 1 משתמש בקצב הלמידה המקורי מודל טרנספורמר. ערכים גדולים מ-1 מגדילים את קצב הלמידה, וערכים בין 1 ל-0 מקטינים את קצב הלמידה.

בטבלה הבאה מפורטות ההגדרות המומלצות לשיפור מודל הבסיס:

היפר-פרמטר ערך ברירת מחדל התאמות מומלצות
תקופה 5

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

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

גודל האצווה 4
קצב למידה 0.001 צריך להשתמש בערך קטן יותר למערכי נתונים קטנים יותר.

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

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

בדיקת הסטטוס של משימת ההתאמה

אפשר לבדוק את סטטוס המשימה של כוונון המודל ב-Google AI Studio בכרטיסייה My Library, או באמצעות המאפיין metadata של המודל המכוונן ב-Gemini API.

פתרון בעיות במקרה של שגיאות

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

אימות

נדרש אימות כדי לכוונן באמצעות ה-API וספריית הלקוח. אפשר הגדרת אימות באמצעות מפתח API (מומלץ) או באמצעות OAuth פרטי הכניסה. לקבלת מידע נוסף על הגדרת מפתח API: להגדיר מפתח API

אם מופיעה השגיאה 'PermissionDenied: 403 Request had insufficient authentication scopes', יכול להיות שתצטרכו להגדיר אימות משתמשים באמצעות פרטי כניסה של OAuth. כדי להגדיר את פרטי הכניסה ל-OAuth ב-Python, אפשר לעיין במדריך להגדרת OAuth.

מודלים שבוטלו

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

מגבלות של מודלים מותאמים

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

  • מגבלת הקלט של מודל Gemini 1.5 Flash מכוונן היא 40,000 תווים.
  • אין תמיכה במצב JSON עם מודלים מותאמים.
  • ניתן להזין רק טקסט.

המאמרים הבאים

מתחילים לעבוד עם המדריכים לשיפור הכוונון: