Sintonização de vídeo

Esta página fornece pré-requisitos e instruções detalhadas para o ajuste preciso do Gemini em dados de vídeo através da aprendizagem supervisionada.

Exemplos de utilização

A otimização permite-lhe adaptar os modelos Gemini base para tarefas especializadas. Seguem-se alguns exemplos de utilização de vídeos:

  • Resumo automático de vídeos: otimização de GMLs para gerar resumos concisos e coerentes de vídeos longos, captando os principais temas, eventos e narrativas. Isto é útil para a descoberta de conteúdo, o arquivo e as revisões rápidas.

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

  • Moderação de conteúdo: a otimização especializada pode melhorar a capacidade de um MDG de detetar conteúdo sensível, impróprio ou que viole as políticas em vídeos, indo além da simples deteção de objetos para compreender o contexto e as nuances.

  • Legendas em vídeos: embora já seja uma aplicação comum, a otimização pode melhorar a precisão, a fluidez e a consciência do contexto das legendas geradas automaticamente, incluindo descrições de indicações não verbais.

Limitações

  • Tamanho máximo do ficheiro de vídeo: 100 MB. Isto pode não ser suficiente para ficheiros de vídeo grandes. Seguem-se algumas soluções alternativas recomendadas:
    • Se existirem muito poucos ficheiros grandes, exclua-os dos ficheiros JSONL.
    • Se existirem muitos ficheiros grandes no conjunto de dados e não for possível ignorá-los, reduza a resolução visual dos ficheiros. Isto pode prejudicar o desempenho.
    • Divida os vídeos em partes para limitar o tamanho dos ficheiros a 100 MB e use os vídeos divididos em partes para a otimização. Certifique-se de que altera todas as anotações de indicação de tempo correspondentes à linha cronológica do vídeo original para a nova linha cronológica do vídeo (dividido 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 ignorados: se um exemplo contiver vídeo com uma duração superior à duração máxima suportada, esse exemplo é ignorado no conjunto de dados. Os exemplos rejeitados não são faturados nem usados para preparação. Se mais de 10% do conjunto de dados for ignorado, a tarefa falha com uma mensagem de erro antes do início da preparação.
  • A combinação de resoluções de suportes diferentes não é suportada: o valor de mediaResolution para cada exemplo no conjunto de dados de preparação completo tem de ser consistente. Todas as linhas nos ficheiros JSONL usados para a preparação e a validação devem ter o mesmo valor de mediaResolution.

Formato do conjunto de dados

O campo fileUri especifica a localização do conjunto de dados. Pode ser o URI de um ficheiro num contentor do Cloud Storage ou um URL HTTP ou HTTPS disponível publicamente.

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

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

A otimização de modelos com MEDIA_RESOLUTION_LOW é cerca de 4 vezes mais rápida do que a otimização com MEDIA_RESOLUTION_MEDIUM, com uma melhoria mínima no desempenho.

Quando um segmento de vídeo é usado para preparação e validação, o segmento de vídeo encontra-se no campo videoMetadata. Durante o ajuste, este ponto de dados é descodificado para conter informações do segmento extraído do ficheiro de vídeo especificado, a partir da data/hora startOffset (o desvio de início, em segundos) até endOffset.

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

As secções seguintes apresentam exemplos de formatos de conjuntos de dados de vídeo.

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

Este esquema é adicionado como uma única linha no ficheiro 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 preparação e validação

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

O que se segue?