Sintonizzazione video

Questa pagina fornisce i prerequisiti e istruzioni dettagliate per il perfezionamento di Gemini sui dati video utilizzando l'apprendimento supervisionato.

Modelli supportati

I seguenti modelli Gemini supportano l'ottimizzazione dei video:

  • Gemini 2.5 Flash

Casi d'uso

Il fine-tuning ti consente di adattare i modelli Gemini di base per attività specializzate. Ecco alcuni casi d'uso dei video:

  • Riepilogo automatico dei video: ottimizzazione dei LLM per generare riepiloghi concisi e coerenti di video lunghi, catturando i temi, gli eventi e le narrazioni principali. Ciò è utile per la scoperta, l'archiviazione e la revisione rapida dei contenuti.

  • Riconoscimento e localizzazione dettagliati degli eventi: l'ottimizzazione consente agli LLM di identificare e individuare azioni, eventi o oggetti specifici all'interno della sequenza temporale di un video con maggiore precisione. Ad esempio, identificare tutte le istanze di un prodotto specifico in un video di marketing o un'azione specifica in un filmato sportivo.

  • Moderazione dei contenuti: la messa a punto specializzata può migliorare la capacità di un LLM di rilevare contenuti sensibili, inappropriati o che violano le norme all'interno dei video, andando oltre il semplice rilevamento di oggetti per comprendere il contesto e le sfumature.

  • Sottotitoli codificati e sottotitoli per i video: sebbene si tratti di un'applicazione già comune, la messa a punto può migliorare l'accuratezza, la fluidità e la consapevolezza del contesto dei sottotitoli codificati e dei sottotitoli generati automaticamente, incluse le descrizioni dei segnali non verbali.

Limitazioni

  • Dimensioni massime del file video: 100 MB. Potrebbe non essere sufficiente per i file video di grandi dimensioni. Ecco alcune soluzioni alternative consigliate:
    • Se ci sono pochi file di grandi dimensioni, escludili dai file JSONL.
    • Se nel set di dati sono presenti molti file di grandi dimensioni che non possono essere ignorati, riduci la risoluzione visiva dei file. Ciò potrebbe influire negativamente sul rendimento.
    • Dividi i video in blocchi per limitare le dimensioni dei file a 100 MB e utilizza i video suddivisi per la messa a punto. Assicurati di modificare le annotazioni dei timestamp corrispondenti al video originale con la nuova cronologia del video (a blocchi).
  • Durata massima del video per esempio: 5 minuti con MEDIA_RESOLUTION_MEDIUM e 20 minuti con MEDIA_RESOLUTION_LOW.
  • Esempi eliminati: se un esempio contiene un video più lungo della durata massima supportata, l'esempio viene eliminato dal set di dati. Gli esempi eliminati non vengono fatturati né utilizzati per l'addestramento. Se viene eliminato più del 10% del set di dati, il job non andrà a buon fine e verrà visualizzato un messaggio di errore prima dell'inizio dell'addestramento.
  • La combinazione di risoluzioni diverse dei contenuti multimediali non è supportata: il valore di mediaResolution per ogni esempio nell'intero set di dati di addestramento deve essere coerente. Tutte le righe dei file JSONL utilizzati per l'addestramento e la convalida devono avere lo stesso valore di mediaResolution.

Formato del set di dati

Il campo fileUri specifica la posizione del set di dati. Può essere l'URI di un file in un bucket Cloud Storage oppure un URL HTTP o HTTPS disponibile pubblicamente.

Il campo mediaResolution viene utilizzato per specificare il conteggio dei token per frame per i video di input, come uno dei seguenti valori:

  • MEDIA_RESOLUTION_LOW: 64 token per frame
  • MEDIA_RESOLUTION_MEDIUM: 256 token per frame

L'ottimizzazione del modello con MEDIA_RESOLUTION_LOW è circa 4 volte più veloce di quella con MEDIA_RESOLUTION_MEDIUM con un miglioramento minimo delle prestazioni.

Quando un segmento video viene utilizzato per l'addestramento e la convalida, il segmento video si trova nel campo videoMetadata. Durante l'ottimizzazione, questo punto dati viene decodificato in modo da contenere le informazioni del segmento estratto dal file video specificato, a partire dal timestamp startOffset (l'offset iniziale, in secondi) fino a endOffset.

Per visualizzare l'esempio di formato generico, vedi Esempio di set di dati per Gemini.

Le sezioni seguenti presentano esempi di formati di set di dati video.

Esempio di schema JSON per i casi in cui l'intero video viene utilizzato per l'addestramento e la convalida

Questo schema viene aggiunto come singola riga nel file 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"
  }
}

Esempio di schema JSON per i casi in cui un segmento video viene utilizzato per l'addestramento e la convalida

Questo schema viene aggiunto come singola riga nel file 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"
  }
}

Passaggi successivi