Ajuste de video

En esta página, se proporcionan los requisitos previos y las instrucciones detalladas para ajustar Gemini en datos de video con el aprendizaje supervisado.

Casos de uso

El ajuste fino te permite adaptar los modelos de Gemini base para tareas especializadas. Estos son algunos casos de uso de videos:

  • Resumen de video automatizado: Ajusta los LLM para generar resúmenes concisos y coherentes de videos largos, capturando los temas, eventos y narrativas principales. Esto es útil para descubrir contenido, archivar y realizar revisiones rápidas.

  • Reconocimiento y localización detallados de eventos: El ajuste fino permite que los LLM identifiquen y localicen acciones, eventos u objetos específicos dentro de la línea de tiempo de un video con mayor precisión. Por ejemplo, identificar todas las instancias de un producto en particular en un video de marketing o una acción específica en un video de deportes.

  • Moderación de contenido: El ajuste especializado puede mejorar la capacidad de un LLM para detectar contenido sensible, inapropiado o que incumple las políticas en los videos, lo que va más allá de la simple detección de objetos para comprender el contexto y los matices.

  • Subtitulado de videos: Si bien ya es una aplicación común, el ajuste puede mejorar la exactitud, la fluidez y el reconocimiento del contexto de los subtítulos generados automáticamente, incluidas las descripciones de indicaciones no verbales.

Limitaciones

  • Tamaño máximo del archivo de video: 100 MB Es posible que esto no sea suficiente para archivos de video grandes. Estas son algunas soluciones alternativas recomendadas:
    • Si hay muy pocos archivos grandes, no los incluyas en los archivos JSONL.
    • Si hay muchos archivos grandes en tu conjunto de datos y no se pueden ignorar, reduce la resolución visual de los archivos. Esto puede afectar el rendimiento.
    • Divide los videos para limitar el tamaño de los archivos a 100 MB y usa los videos divididos para el ajuste. Asegúrate de cambiar las anotaciones de marcas de tiempo que correspondan al video original a la nueva línea de tiempo del video (fragmentado).
  • Duración máxima del video por ejemplo: Se limita a 1 video por ejemplo. Puede ser de 5 minutos con MEDIA_RESOLUTION_HIGH o MEDIA_RESOLUTION_MEDIUM, y de 20 minutos con MEDIA_RESOLUTION_LOW.
  • Ejemplos descartados: Si un ejemplo contiene un video que supera la duración máxima admitida, ese ejemplo se descarta del conjunto de datos. Los ejemplos descartados no se facturan ni se usan para el entrenamiento. Si se descarta más del 10% del conjunto de datos, el trabajo fallará con un mensaje de error antes de que comience el entrenamiento.
  • No se admite la combinación de diferentes resoluciones de contenido multimedia: El valor de mediaResolution para cada ejemplo en todo el conjunto de datos de entrenamiento debe ser coherente. Todas las líneas de los archivos JSONL que se usan para el entrenamiento y la validación deben tener el mismo valor de mediaResolution.

Formato del conjunto de datos

El campo fileUri especifica la ubicación de tu conjunto de datos. Puede ser el URI de un archivo en un bucket de Cloud Storage o una URL HTTP o HTTPS disponible de forma pública.

El campo mediaResolution se usa para especificar el recuento de tokens por fotograma de los videos de entrada. A continuación, se describen los recuentos de tokens para los modelos compatibles:

  • Gemini 2.5:

    • MEDIA_RESOLUTION_LOW: 64 tokens por fotograma

    • MEDIA_RESOLUTION_MEDIUM y MEDIA_RESOLUTION_HIGH : 256 tokens por fotograma

    El ajuste de modelos con MEDIA_RESOLUTION_LOW es aproximadamente 4 veces más rápido que los ajustados con MEDIA_RESOLUTION_MEDIUM o MEDIA_RESOLUTION_HIGH con una mejora mínima del rendimiento.

  • Gemini 3:

    Los recuentos de tokens son los mismos que los del modelo base. Para obtener más información, consulta Resolución de medios.

Cuando se usa un segmento de video para el entrenamiento y la validación, el segmento de video se encuentra en el campo videoMetadata. Durante el ajuste, este dato se decodifica para que contenga información del segmento extraído del archivo de video especificado, desde la marca de tiempo startOffset (el desplazamiento de inicio, en segundos) hasta endOffset.

Para ver el ejemplo de formato genérico, consulta Ejemplo de conjunto de datos para Gemini.

En las siguientes secciones, se presentan ejemplos de formatos de conjuntos de datos de video.

Ejemplo de esquema JSON para casos en los que se usa el video completo para el entrenamiento y la validación

Este esquema se agrega como una sola línea en el archivo 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"
  }
}

(Solo para los modelos Gemini 3 y superiores) A partir de los modelos Gemini 3, también puedes establecer la resolución de contenido multimedia por cada Part. Esto te permite mezclar resoluciones en tu conjunto de datos (por ejemplo, configurando MEDIA_RESOLUTION_HIGH para un elemento y MEDIA_RESOLUTION_LOW para otro). Para obtener más información sobre la resolución a nivel de parte y sus recuentos de tokens correspondientes, consulta Resolución de contenido multimedia.

La configuración de resolución de contenido multimedia a nivel de Part tiene prioridad sobre la configuración global.

El siguiente es un conjunto de datos de ejemplo que establece la resolución de medios en los niveles Part y 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"
  }
}

Ejemplo de esquema JSON para casos en los que se usa un segmento de video para el entrenamiento y la validación

Este esquema se agrega como una sola línea en el archivo 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"
  }
}

¿Qué sigue?