התחלה מהירה: כוונון עדין של למידת חיזוק באמצעות ה-API

בדף הזה נסביר איך להשתמש ב-Agent Platform API כדי לבצע כוונון עדין של מודלים של Gemini באמצעות למידת חיזוק: יצירת משימת כוונון, בדיקת הסטטוס שלה, אחזור נקודת הקצה של המודל המכוונן והפעלת הסקה על המודל. כדי להשלים את המשימות האלה במסוף Google Cloud , אפשר לעיין במדריך למתחילים לשימוש במסוףGoogle Cloud .

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

יצירת משימת כוונון עדין של למידת חיזוק

כדי ליצור משימת כוונון עדין של למידת חיזוק, שולחים בקשת POST לנקודת הקצה tuningJobs.create. לסכימת הבקשה המלאה ולכל השדות שניתנים להגדרה, אפשר לעיין בדף Reinforcement learning fine-tuning job.

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

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs" \
  -d \
  $'{
    "tunedModelDisplayName": "dai-image-test",
    "baseModel": "gemini-3.5-flash",
    "reinforcementTuningSpec": {
      "trainingDatasetUri": "gs://path/to/my/training_dataset.jsonl",
      "validationDatasetUri": "gs://path/to/my/eval_dataset.jsonl",
      "hyperParameters": {
        "epochCount":15,
        "learningRateMultiplier":1.0,
        "samplesPerPrompt":16,
        "adapterSize":"ADAPTER_SIZE_SIXTEEN",
        "maxOutputTokens":32768,
        "batchSize":32,
        "evaluateInterval":5,
        "checkpointInterval":5,
        "thinkingLevel":"HIGH"
      },
      "singleRewardConfig": {
        "rewardName": "my_reward_function_name",
        "parseResponseConfig": {"parseType":"IDENTITY"},
        "cloudRunRewardScorer": {
          "cloudRunUri":"https://my.cloud.run.uri"
        }
      }
    }
  }'

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

בדיקת הסטטוס של משימת כוונון עדין של למידת חיזוק

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

זמן האימון

זמן האימון מושפע מהגורמים הבאים:

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

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

קבלת נקודת הקצה של המודל שעבר התאמה

אחרי שמשימת ההתאמה מגיעה ל-JOB_STATE_SUCCEEDED, שולחים בקשת tuningJobs.get ומעיינים בשדה tunedModel.endpoint של התשובה כדי לאחזר את נקודת הקצה של המודל המותאם שנפרס.

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  "https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs/TUNING_JOB_ID"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫TUNING_JOB_ID: המזהה של משימת ההתאמה.

דוגמה לתשובה (מקוצרת):

{
  "name": "projects/{PROJECT_ID}/locations/us-central1/tuningJobs/{TUNING_JOB_ID}",
  "tunedModelDisplayName": "my-rl-tuned-model",
  "state": "JOB_STATE_SUCCEEDED",
  "tunedModel": {
    "model": "projects/{PROJECT_ID}/locations/us-central1/models/{MODEL_ID}",
    "endpoint": "projects/{PROJECT_ID}/locations/us/endpoints/{ENDPOINT_ID}"
  },
  "reinforcementTuningSpec": { ... }
}

אחרי שפעולת הכוונון תסתיים בהצלחה, התשובה תכלול את endpoint מנקודת הבדיקה האחרונה.

הרצת הסקה בנקודת הקצה של המודל שעבר כוונון

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

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://aiplatform.us.rep.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us/endpoints/ENDPOINT_ID:generateContent" \
  -d \
  $'{
    "contents": [
      {
        "role": "user",
        "parts": [
          { "text": "Why is the sky blue?" }
        ]
      }
    ]
  }'

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫ENDPOINT_ID: מזהה נקודת הקצה שמוחזר בשדה tunedModel.endpoint של התשובה GetTuningJob.

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