כוונון סרטונים

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

תרחישים לדוגמה

כוונון עדין מאפשר להתאים את מודלי Gemini הבסיסיים למשימות ספציפיות. הנה כמה תרחישים לדוגמה:

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

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

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

  • כתוביות בסרטונים: למרות שזה כבר שימוש נפוץ, כוונון יכול לשפר את הדיוק, השטף וההתאמה להקשר של כתוביות שנוצרות באופן אוטומטי, כולל תיאורים של רמזים לא מילוליים.

מגבלות

  • גודל קובץ מקסימלי של סרטון: 100MB. יכול להיות שזה לא יספיק לקובצי וידאו גדולים. הנה כמה פתרונות עקיפים מומלצים:
    • אם יש מעט מאוד קבצים גדולים, אל תכללו אותם בקובצי ה-JSONL.
    • אם יש הרבה קבצים גדולים במערך הנתונים ואי אפשר להתעלם מהם, צריך להקטין את הרזולוציה החזותית של הקבצים. זה עלול לפגוע בביצועים.
    • מחלקים את הסרטונים לחלקים כדי להגביל את גודל הקבצים ל-100MB, ומשתמשים בסרטונים המחולקים לכוונון. חשוב לשנות את כל הערות חותמות הזמן שתואמות לסרטון המקורי לציר הזמן של הסרטון החדש (החלקים).
  • אורך מקסימלי של סרטון לכל דוגמה: הגבלה של סרטון אחד לכל דוגמה. הוא יכול להיות 5 דקות עם MEDIA_RESOLUTION_HIGH או MEDIA_RESOLUTION_MEDIUM ו-20 דקות עם MEDIA_RESOLUTION_LOW.
  • דוגמאות שהושמטו: אם דוגמה מכילה סרטון שארוך מהאורך המקסימלי הנתמך, הדוגמה הזו מושמטת ממערך הנתונים. דוגמאות שהוסרו לא מחויבות ולא משמשות לאימון. אם יותר מ-10% מקבוצת הנתונים יושמטו, המשימה תיכשל ותופיע הודעת שגיאה לפני תחילת האימון.
  • אי אפשר לשלב רזולוציות שונות של מדיה: הערך של mediaResolution בכל דוגמה בקבוצת הנתונים לאימון צריך להיות עקבי. בכל השורות בקובצי ה-JSONL שמשמשים לאימון ולאימות צריך להיות אותו ערך של mediaResolution.

פורמט של מערך נתונים

השדה fileUri מציין את המיקום של מערך הנתונים. הוא יכול להיות ה-URI של קובץ בקטגוריה של Cloud Storage, או כתובת URL מסוג HTTP או HTTPS שזמינה לכולם.

השדה mediaResolution משמש לציון מספר האסימונים לכל פריים בסרטוני הקלט. בטבלה הבאה מפורטים מספר הטוקנים במודלים הנתמכים:

  • ‫Gemini 2.5:

    • ‫MEDIA_RESOLUTION_LOW: ‏64 טוקנים לכל פריים

    • ‫MEDIA_RESOLUTION_MEDIUM ו-MEDIA_RESOLUTION_HIGH : ‏256 טוקנים לכל פריים

    כוונון מודל באמצעות MEDIA_RESOLUTION_LOW מהיר פי 4 בערך מכוונון באמצעות MEDIA_RESOLUTION_MEDIUM או MEDIA_RESOLUTION_HIGH, עם שיפור מינימלי בביצועים.

  • ‫Gemini 3:

    מספר הטוקנים זהה למודל הבסיס. מידע נוסף זמין במאמר רזולוציית מדיה.

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

במאמר דוגמה למערך נתונים ל-Gemini מופיעה דוגמה לפורמט כללי.

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

דוגמה לסכימת JSON למקרים שבהם הסרטון המלא משמש לאימון ולאימות

הסכימה הזו מתווספת כשורה אחת בקובץ ה-JSONL.

{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "fileData": {
            "fileUri": "gs://<path to the mp4 video file>",
            "mimeType": "video/mp4"
          },
        },
        {
          "text": "
          You are a video analysis expert. Detect which animal appears in the
          video.The video can only have one of the following animals: dog, cat,
          rabbit.\n Output Format:\n Generate output in the following JSON
          format:\n
          [{\n
            \"animal_name\": \"<CATEGORY>\",\n
          }]\n"
        }
      ]
    },
    {
      "role": "model",
      "parts": [
        {
          "text": "```json\n[{\"animal_name\": \"dog\"}]\n```"
        }
       ]
    },
  ],
  "generationConfig": {
    "mediaResolution": "MEDIA_RESOLUTION_LOW"
  }
}

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

הגדרות הרזולוציה של המדיה ברמת Part מקבלות קדימות על פני ההגדרות הגלובליות.

בדוגמה הבאה מוצגת קבוצת נתונים שמגדירה את רזולוציית המדיה גם ברמת Part וגם ברמה הגלובלית:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "fileData": {
            "fileUri": "gs://<path to the mp4 video file>",
            "mimeType": "video/mp4"
          }
        },
        {
          "fileData": {
            "fileUri": "gs://<path to the mp4 video file>",
            "mimeType": "video/mp4"
          },
          "mediaResolution": {
            "level": "MEDIA_RESOLUTION_HIGH"
          }
        },
        {
          "text": "Describe these videos in detail."
        }
      ]
    },
    {
      "role": "model",
      "parts": [
        {
          "text": "Video 1 is low resolution while video 2 is sharp and clear"
        }
      ]
    }
  ],
  "generationConfig": {
    "mediaResolution": "MEDIA_RESOLUTION_LOW"
  }
}

דוגמה לסכימת JSON למקרים שבהם קטע וידאו משמש לאימון ולאימות

הסכימה הזו מתווספת כשורה אחת בקובץ ה-JSONL.

{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "fileData": {
            "fileUri": "gs://<path to the mp4 video file>",
            "mimeType": "video/mp4"
          },
         "videoMetadata": {
            "startOffset": "5s",
            "endOffset": "25s"
          }
        },
        {
          "text": "
          You are a video analysis expert. Detect which animal appears in the
          video.The video can only have one of the following animals: dog, cat,
          rabbit.\n Output Format:\n Generate output in the following JSON
          format:\n
          [{\n
            \"animal_name\": \"<CATEGORY>\",\n
          }]\n"
       }
      ]
   },
   {
      "role": "model",
      "parts": [
        {
          "text": "```json\n[{\"animal_name\": \"dog\"}]\n```"
        }
      ]
    },
  ],
"generationConfig": {
     "mediaResolution": "MEDIA_RESOLUTION_LOW"
  }
}

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