Ajuste de vídeo

Esta página fornece pré-requisitos e instruções detalhadas para ajustar o Gemini em dados de vídeo usando o aprendizado supervisionado.

Modelos compatíveis

Os seguintes modelos do Gemini são compatíveis com o ajuste de vídeo:

  • Gemini 2.5 Flash

Casos de uso

Com o ajuste fino, é possível adaptar os modelos básicos do Gemini para tarefas especializadas. Confira alguns casos de uso de vídeo:

  • Resumo automático de vídeos: ajuste de LLMs para gerar resumos concisos e coerentes de vídeos longos, capturando os principais temas, eventos e narrativas. Isso é útil para descoberta de conteúdo, arquivamento e revisões rápidas.

  • Reconhecimento e localização detalhados de eventos: o ajuste fino permite que os LLMs identifiquem e localizem ações, eventos ou objetos específicos em uma linha do tempo de vídeo com mais precisão. Por exemplo, identificar todas as instâncias de um produto específico em um vídeo de marketing ou uma ação específica em imagens de esportes.

  • Moderação de conteúdo: o ajuste especializado pode melhorar a capacidade de um LLM de detectar conteúdo sensível, inadequado ou que viola políticas em vídeos, indo além da simples detecção de objetos para entender o contexto e as nuances.

  • Legendas e legendas descritivas de vídeo: embora já seja uma aplicação comum, o ajuste pode melhorar a precisão, a fluência e a percepção de contexto das legendas geradas automaticamente, incluindo descrições de sinais não verbais.

Limitações

  • Tamanho máximo do arquivo de vídeo: 100 MB. Isso pode não ser suficiente para arquivos de vídeo grandes. Confira algumas soluções alternativas recomendadas:
    • Se houver poucos arquivos grandes, remova-os dos arquivos JSONL.
    • Se houver muitos arquivos grandes no conjunto de dados e eles não puderem ser ignorados, reduza a resolução visual dos arquivos. Isso pode prejudicar a performance.
    • Divida os vídeos para limitar o tamanho dos arquivos a 100 MB e use os vídeos divididos para ajuste. Mude todas as anotações de carimbo de data/hora correspondentes ao vídeo original para a nova linha do tempo (em partes).
  • Duração máxima do vídeo por exemplo: 5 minutos com MEDIA_RESOLUTION_MEDIUM e 20 minutos com MEDIA_RESOLUTION_LOW.
  • Exemplos descartados: se um exemplo tiver um vídeo mais longo do que o tamanho máximo aceito, ele será descartado do conjunto de dados. Os exemplos descartados não são faturados nem usados para treinamento. Se mais de 10% do conjunto de dados for descartado, o job vai falhar com uma mensagem de erro antes do início do treinamento.
  • Não é possível misturar resoluções de mídia diferentes: o valor de mediaResolution para cada exemplo em todo o conjunto de dados de treinamento precisa ser consistente. Todas as linhas nos arquivos JSONL usados para treinamento e validação precisam ter o mesmo valor de mediaResolution.

Formato do conjunto de dados

O campo fileUri especifica o local do conjunto de dados. Pode ser o URI de um arquivo em um bucket do Cloud Storage ou um URL HTTP ou HTTPS disponível publicamente.

O campo mediaResolution é usado para especificar a contagem de tokens por frame dos vídeos de entrada, como um dos seguintes valores:

  • MEDIA_RESOLUTION_LOW: 64 tokens por frame
  • MEDIA_RESOLUTION_MEDIUM: 256 tokens por frame

O ajuste de modelos com MEDIA_RESOLUTION_LOW é aproximadamente quatro vezes mais rápido do que os ajustados com MEDIA_RESOLUTION_MEDIUM, com uma melhoria mínima de desempenho.

Quando um segmento de vídeo é usado para treinamento e validação, ele fica no campo videoMetadata. Durante o ajuste, esse ponto de dados é decodificado para conter informações do segmento extraído do arquivo de vídeo especificado, começando do carimbo de data/hora startOffset (o deslocamento inicial, em segundos) até endOffset.

Para conferir o exemplo de formato genérico, consulte Exemplo de conjunto de dados para o Gemini.

As seções a seguir apresentam exemplos de formato de conjunto de dados de vídeo.

Exemplo de esquema JSON para casos em que o vídeo completo é usado para treinamento e validação

Esse esquema é adicionado como uma única linha no arquivo 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"
  }
}

Exemplo de esquema JSON para casos em que um segmento de vídeo é usado para treinamento e validação

Esse esquema é adicionado como uma única linha no arquivo 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"
  }
}

A seguir