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 te permite adaptar los modelos de Gemini básicos para tareas especializadas. Estos son algunos casos de uso de videos:

  • Resúmenes de videos automatizados: Ajuste de LLM para generar resúmenes concisos y coherentes de videos largos, que capturen los temas, los eventos y las narrativas principales. Esto es útil para el descubrimiento de contenido, el archivado y las revisiones rápidas.

  • Reconocimiento y localización detallados de eventos: El ajuste permite que los LLM identifiquen y señalen acciones, eventos u objetos específicos dentro de una línea de tiempo de 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 imágenes de deportes.

  • Moderación de contenido: El ajuste especializado puede mejorar la capacidad de un LLM para detectar contenido sensible, inapropiado o que incumpla las políticas en los videos, yendo 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 precisión, la fluidez y la conciencia del contexto de los subtítulos generados automáticamente, incluidas las descripciones de las 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, quítalos de 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 en fragmentos para limitar el tamaño de los archivos a 100 MB y usa los videos fragmentados para el ajuste. Asegúrate de cambiar las anotaciones de marcas de tiempo correspondientes al video original por las del nuevo cronograma del video (dividido en fragmentos).
  • Duración máxima del video por ejemplo: 5 minutos con MEDIA_RESOLUTION_HIGH o MEDIA_RESOLUTION_MEDIUM, y 20 minutos con MEDIA_RESOLUTION_LOW.
  • Ejemplos descartados: Si un ejemplo contiene un video que es más largo que la longitud 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á y se mostrará un mensaje de error antes del inicio del entrenamiento.
  • No se admite la combinación de diferentes resoluciones de medios: 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 para los videos de entrada. En el caso de Gemini 2.5, a continuación, se indica el recuento de tokens por fotograma:

  • MEDIA_RESOLUTION_LOW: 64 tokens por fotograma
  • MEDIA_RESOLUTION_MEDIUM y MEDIA_RESOLUTION_HIGH : 256 tokens por fotograma

En el caso de 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.

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

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 punto de datos se decodifica para contener información del segmento extraído del archivo de video especificado, a partir de 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 los 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 modelos Gemini 3 y posteriores) A partir de los modelos Gemini 3, también puedes establecer la resolución de los medios para cada medio individual Part. Esto te permite combinar resoluciones en tu conjunto de datos (por ejemplo, estableciendo 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 partes y sus recuentos de tokens correspondientes, consulta Resolución de medios.

La configuración de resolución de medios a nivel del Part tiene prioridad sobre la configuración global.

El siguiente es un conjunto de datos de ejemplo que establece la resolución de los medios tanto en el nivel Part como en el 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 los 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?