במדריך הזה נסביר איך להתחיל להשתמש בשירות לכוונון של Gemini API באמצעות ה-SDK ל-Python או באמצעות ה-API ל-REST באמצעות curl. בדוגמאות מוסבר איך לשפר את מודל הטקסט שמאחורי שירות היצירה של טקסט ב-Gemini API.
![]() |
![]() |
![]() |
מגבלות
לפני שמכווננים מודל, חשוב לדעת על המגבלות הבאות:
כוונון עדין של מערכי נתונים
כשמשנים את מערכי הנתונים של Gemini 1.5 Flash, יש מגבלות הבאות:
- הגודל המקסימלי של קלט לכל דוגמה הוא 40,000 תווים.
- הגודל המקסימלי של הפלט לכל דוגמה הוא 5,000 תווים.
- יש תמיכה רק בדוגמאות של זוגות קלט-פלט. אין תמיכה בשיחות בסגנון צ'אט עם כמה תשובות.
מודלים מותאמים
למדדים מותאמים יש את המגבלות הבאות:
- מגבלת הקלט של מודל Gemini 1.5 Flash מכוונן היא 40,000 תווים.
- אין תמיכה במצב JSON עם מודלים מותאמים.
- יש תמיכה רק בהזנת טקסט.
לפני שמתחילים: מגדירים את הפרויקט ומפתח ה-API
לפני שמפעילים את Gemini API, צריך להגדיר את הפרויקט ולהגדיר את מפתח ה-API.
הצגת רשימה של מודלים שעברו כוונון
אפשר לבדוק את המודלים המכווננים הקיימים באמצעות השיטה tunedModels.list
.
from google import genai
client = genai.Client() # Get the key from the GOOGLE_API_KEY env variable
for model_info in client.models.list():
print(model_info.name)
יצירת מודל שעבר כוונון
כדי ליצור מודל שעבר כוונון, צריך להעביר את מערך הנתונים למודל בשיטה tunedModels.create
.
בדוגמה הזו, תכווננו מודל כדי ליצור את המספר הבא ברצף. לדוגמה, אם הקלט הוא 1
, הפלט של המודל אמור להיות 2
. אם הקלט הוא one hundred
, הפלט אמור להיות one hundred one
.
# create tuning model
training_dataset = [
["1", "2"],
["3", "4"],
["-3", "-2"],
["twenty two", "twenty three"],
["two hundred", "two hundred one"],
["ninety nine", "one hundred"],
["8", "9"],
["-98", "-97"],
["1,000", "1,001"],
["10,100,000", "10,100,001"],
["thirteen", "fourteen"],
["eighty", "eighty one"],
["one", "two"],
["three", "four"],
["seven", "eight"],
]
training_dataset=types.TuningDataset(
examples=[
types.TuningExample(
text_input=i,
output=o,
)
for i,o in training_dataset
],
)
tuning_job = client.tunings.tune(
base_model='models/gemini-1.0-pro-001',
training_dataset=training_dataset,
config=types.CreateTuningJobConfig(
epoch_count= 5,
batch_size=4,
learning_rate=0.001,
tuned_model_display_name="test tuned model"
)
)
# generate content with the tuned model
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III',
)
print(response.text)
הערכים האופטימליים למספר האפוקים, לגודל האצווה ולשיעור הלמידה תלויים במערך הנתונים ובאילוצים אחרים של תרחיש לדוגמה. מידע נוסף על הערכים האלה זמין במאמרים הגדרות כוונון מתקדמות ופרמטרים היפר-מופשטים.
ניסיון של המודל
כדי לבדוק את הביצועים של המודל המכוונן, אפשר להשתמש ב-method tunedModels.generateContent
ולציין את השם שלו.
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III'
)
לא מיושם
חלק מהתכונות (דיווח על התקדמות, עדכון התיאור ומחיקה של מודלים מותאמים) עדיין לא יושמו ב-SDK החדש.