Réglage de la vidéo

Cette page fournit les conditions préalables et des instructions détaillées pour affiner les modèles Gemini sur des données vidéo, à l'aide de l'apprentissage supervisé.

Cas d'utilisation

Le réglage vous permet d'adapter les modèles Gemini de base à des tâches spécialisées. Voici quelques cas d'utilisation des vidéos :

  • Résumé vidéo automatisé : réglage des LLM pour générer des résumés concis et cohérents de longues vidéos, en capturant les principaux thèmes, événements et récits. Cela est utile pour la découverte de contenu, l'archivage et les examens rapides.

  • Reconnaissance et localisation détaillées des événements : le réglage permet aux LLM d'identifier et de localiser des actions, des événements ou des objets spécifiques dans une chronologie vidéo avec une plus grande précision. Par exemple, identifier toutes les instances d'un produit particulier dans une vidéo marketing ou une action spécifique dans des séquences sportives.

  • Modération de contenu : un réglage spécialisé peut améliorer la capacité d'un LLM à détecter les contenus sensibles, inappropriés ou qui enfreignent le règlement dans les vidéos, en allant au-delà de la simple détection d'objets pour comprendre le contexte et les nuances.

  • Sous-titrage et sous-titres de vidéos : bien qu'il s'agisse déjà d'une application courante, le réglage peut améliorer la précision, la fluidité et la prise en compte du contexte des sous-titres générés automatiquement, y compris les descriptions des signaux non verbaux.

Limites

  • Taille maximale des fichiers vidéo : 100 Mo. Cela peut ne pas être suffisant pour les fichiers vidéo volumineux. Voici quelques solutions de contournement recommandées :
    • S'il y a très peu de fichiers volumineux, supprimez-les des fichiers JSONL.
    • Si votre ensemble de données contient de nombreux fichiers volumineux qui ne peuvent pas être ignorés, réduisez la résolution visuelle des fichiers. Cela peut nuire aux performances.
    • Fragmentez les vidéos pour limiter la taille des fichiers à 100 Mo et utilisez les vidéos fragmentées pour le réglage. Veillez à modifier toutes les annotations d'horodatage correspondant à la vidéo d'origine dans la nouvelle chronologie vidéo (fragmentée).
  • Durée maximale de la vidéo par exemple : 5 minutes avec MEDIA_RESOLUTION_HIGH ou MEDIA_RESOLUTION_MEDIUM et 20 minutes avec MEDIA_RESOLUTION_LOW.
  • Exemples supprimés : si un exemple contient une vidéo dont la durée est supérieure à la durée maximale acceptée, cet exemple est supprimé de l'ensemble de données. Les exemples supprimés ne sont pas facturés ni utilisés pour l'entraînement. Si plus de 10% de l'ensemble de données est supprimé, le job échouera avec un message d'erreur avant le début de l'entraînement.
  • Le mélange de différentes résolutions multimédias n'est pas accepté : la valeur de mediaResolution pour chaque exemple de l'ensemble de données d'entraînement doit être cohérente. Toutes les lignes des fichiers JSONL utilisés pour l'entraînement et la validation doivent avoir la même valeur de mediaResolution.

Format de l'ensemble de données

Le champ fileUri spécifie l'emplacement de votre ensemble de données. Il peut s'agir de l'URI d'un fichier dans un bucket Cloud Storage ou d'une URL HTTP ou HTTPS accessible au public.

Le champ mediaResolution permet de spécifier le nombre de jetons par image pour les vidéos d'entrée. Pour Gemini 2.5, voici le nombre de jetons par image :

  • MEDIA_RESOLUTION_LOW : 64 jetons par image
  • MEDIA_RESOLUTION_MEDIUM et MEDIA_RESOLUTION_HIGH : 256 jetons par image

Pour Gemini 3, le nombre de jetons est le même que pour le modèle de base. Pour en savoir plus, consultez la section Résolution multimédia.

Le réglage du modèle avec MEDIA_RESOLUTION_LOW est environ quatre fois plus rapide qu'avec MEDIA_RESOLUTION_MEDIUM ou MEDIA_RESOLUTION_HIGH, avec une amélioration minimale des performances.

Lorsqu'un segment vidéo est utilisé pour l'entraînement et la validation, il se trouve dans le champ videoMetadata. Pendant le réglage, ce point de données est décodé pour contenir des informations provenant du segment extrait du fichier vidéo spécifié, à partir de l'horodatage startOffset (décalage de début, en secondes) jusqu'à endOffset.

Pour voir l'exemple de format générique, consultez Exemple d'ensemble de données pour Gemini.

Les sections suivantes présentent des exemples de format d'ensemble de données vidéo.

Exemple de schéma JSON pour les cas où la vidéo complète est utilisée pour l'entraînement et la validation

Ce schéma est ajouté sous forme de ligne unique dans le fichier 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"
  }
}

(Modèles Gemini 3 et versions ultérieures uniquement) À partir des modèles Gemini 3 modèles, vous pouvez également définir la résolution multimédia pour chaque élément multimédia Part. Cela vous permet de mélanger les résolutions dans votre ensemble de données (par exemple, en définissant MEDIA_RESOLUTION_HIGH pour un élément et MEDIA_RESOLUTION_LOW pour un autre). Pour en savoir plus sur la résolution au niveau de la partie et sur le nombre de jetons correspondant, consultez la section Résolution multimédia.

Les paramètres de résolution multimédia au niveau de la Part sont prioritaires par rapport aux paramètres globaux.

Voici un exemple d'ensemble de données qui définit la résolution multimédia aux niveaux Part et global :

{
  "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"
  }
}

Exemple de schéma JSON pour les cas où un segment vidéo est utilisé pour l'entraînement et la validation

Ce schéma est ajouté sous forme de ligne unique dans le fichier 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"
  }
}

Étape suivante