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

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

בדף הזה מוצגת סקירה כללית של מושגים במשאבים לגבי כוונון עדין של מודל הטקסט שירות הטקסט של 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 ב-Generative 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 בקטע הספרייה שלי או באמצעות המאפיין metadata של המודל המכוונן Gemini API.

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

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

אימות

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

כדי להגדיר פרטי כניסה של OAuth עבור Python, יש לעיין במאמר המדריך להגדרת OAuth.

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

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

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

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

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

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

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