מדריך לכוונון עדין

המדריך הזה יעזור לך להתחיל בכוונון של Gemini API שירות שעושה שימוש ב-Python SDK או ב-API ל-REST בעזרת curl. הדוגמאות מראות איך לכוונן את מודל הטקסט שירות Gemini API ליצירת טקסט.

להצגה ב-ai.google.dev כדאי לנסות notebook של Colab הצגת notebook ב-GitHub

מגדירים אימות

עם Gemini API אפשר לכוונן את המודלים לפי הנתונים שלך. כי מדובר בנתונים שלכם, למודלים המכווננים שלך נדרשים בקרת גישה מחמירה יותר ממפתחות API יכולים לספק.

לפני הפעלת המדריך הזה, צריך להגדיר OAuth עבור project.

הצגת רשימה של מודלים מכווננים

אפשר לבדוק את המודלים המכווננים הקיימים דרך genai.list_tuned_models .

for model_info in genai.list_tuned_models():
    print(model_info.name)

יצירת מודל שעבר כוונון

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

בדוגמה הזאת, תכווננו מודל כדי ליצור את המספר הבא ברצף. לדוגמה, אם הקלט הוא 1, הפלט של המודל צריך להיות 2. אם הקלט הוא one hundred, הפלט צריך להיות one hundred one.

import time

base_model = "models/gemini-1.5-flash-001-tuning"
training_data = [
    {"text_input": "1", "output": "2"},
    # ... more examples ...
    # ...
    {"text_input": "seven", "output": "eight"},
]
operation = genai.create_tuned_model(
    # You can use a tuned model here too. Set `source_model="tunedModels/..."`
    display_name="increment",
    source_model=base_model,
    epoch_count=20,
    batch_size=4,
    learning_rate=0.001,
    training_data=training_data,
)

for status in operation.wait_bar():
    time.sleep(10)

result = operation.result()
print(result)
# # You can plot the loss curve with:
# snapshots = pd.DataFrame(result.tuning_task.snapshots)
# sns.lineplot(data=snapshots, x='epoch', y='mean_loss')

model = genai.GenerativeModel(model_name=result.name)
result = model.generate_content("III")
print(result.text)  # IV

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

מכיוון שכוונון של מודל יכול להימשך זמן רב, ה-API הזה לא ממתין כדי להשלים את הכוונון. במקום זאת, היא מחזירה google.api_core.operation.Operation שמאפשר לבדוק את הסטטוס של עבודת הכוונון, או להמתין עד מלאים ובודקים את התוצאה.

המודל המכוונן יתווסף מיד לרשימת המודלים המכווננים, מוגדר ל'יוצר' בזמן שהמודל מכוונן.

בדיקת התקדמות הכוונון

אפשר לבדוק את ההתקדמות של פעולת הכוונון באמצעות הפקודה wait_bar() method:

for status in operation.wait_bar():
    time.sleep(10)

אפשר גם להשתמש ב-operation.metadata כדי לבדוק את המספר הכולל של שלבי הכוונון ו-operation.update() כדי לרענן את סטטוס הפעולה.

אפשר לבטל את פעולת הכוונון בכל שלב באמצעות השיטה cancel().

operation.cancel()

אני רוצה לנסות את המודל

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

model = genai.GenerativeModel(model_name="tunedModels/my-increment-model")
result = model.generate_content("III")
print(result.text)  # "IV"

עדכון התיאור

אפשר לעדכן את תיאור המודל המכוונן בכל שלב באמצעות אמצעי תשלום אחד (genai.update_tuned_model).

genai.update_tuned_model('tunedModels/my-increment-model', {"description":"This is my model."})

מחיקת המודל

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

genai.delete_tuned_model("tunedModels/my-increment-model")