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 base para tareas especializadas. Estos son algunos casos de uso de video:

  • 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 el descubrimiento de contenido, el archivo y las revisiones rápidas.

  • Reconocimiento y localización detallados de eventos: El ajuste permite que los LLM identifiquen y señalen acciones, eventos o elementos 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 deportivas.

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

  • Leyendas y subtítulos de video: Si bien ya es una aplicación común, el ajuste puede mejorar la precisión, la fluidez y la conciencia del contexto de las leyendas y los subtítulos generados automáticamente, incluidas las descripciones de las señales 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 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 marca de tiempo correspondientes al video original a la nueva línea de tiempo de video (dividida).
  • Duración máxima del video por ejemplo: Límite de 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 es más largo que la duración máxima admitida, 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 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 públicamente.

El campo mediaResolution se usa para especificar el recuento de tokens por fotograma para 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 del modelo 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 punto de datos se decodifica para contener 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 modelos Gemini 3 y superiores) A partir de los modelos Gemini 3, también puedes configurar la resolución de medios por medio individual Part. Esto te permite combinar 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 la parte y sus recuentos de tokens correspondientes, consulta Resolución de medios.

La configuración de resolución de medios 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?