Videooptimierung

Auf dieser Seite finden Sie Voraussetzungen und eine detaillierte Anleitung zur Feinabstimmung von Gemini mithilfe von Videodaten und beaufsichtigtem Lernen.

Anwendungsfälle

Mit der Feinabstimmung können Sie Gemini-Basismodelle für spezielle Aufgaben anpassen. Hier einige Anwendungsfälle für Videos:

  • Automatisierte Videozusammenfassung: LLMs werden so abgestimmt, dass sie prägnante und kohärente Zusammenfassungen langer Videos erstellen, in denen die wichtigsten Themen, Ereignisse und Erzählungen erfasst werden. Das ist nützlich für die Suche nach Inhalten, die Archivierung und schnelle Überprüfungen.

  • Detaillierte Ereigniserkennung und -lokalisierung: Durch die Feinabstimmung können LLMs bestimmte Aktionen, Ereignisse oder Objekte in einer Video-Zeitachse genauer identifizieren und lokalisieren. Beispielsweise können alle Instanzen eines bestimmten Produkts in einem Marketingvideo oder eine bestimmte Aktion in Sportaufnahmen erkannt werden.

  • Inhaltsmoderation: Durch eine spezielle Abstimmung kann die Fähigkeit eines LLM verbessert werden, sensible, unangemessene oder richtlinienverletzende Inhalte in Videos zu erkennen. Dabei geht es über die einfache Objekterkennung hinaus, um Kontext und Nuancen zu verstehen.

  • Video-Untertitel und -Transkripte: Obwohl dies bereits eine gängige Anwendung ist, kann die Abstimmung die Genauigkeit, den Fluss und das Kontextbewusstsein automatisch generierter Untertitel und Transkripte verbessern, einschließlich Beschreibungen nonverbaler Hinweise.

Beschränkungen

  • Maximale Videodateigröße: 100 MB. Das reicht möglicherweise nicht für große Videodateien aus. Einige empfohlene Problemumgehungen:
    • Wenn es nur wenige große Dateien gibt, können Sie diese Dateien aus den JSONL-Dateien entfernen.
    • Wenn Ihr Dataset viele große Dateien enthält, die nicht ignoriert werden können, reduzieren Sie die visuelle Auflösung der Dateien. Das kann sich auf die Leistung auswirken.
    • Teilen Sie die Videos auf, um die Dateigröße auf 100 MB zu begrenzen, und verwenden Sie die aufgeteilten Videos für die Abstimmung. Ändern Sie alle Zeitstempel-Annotationen, die dem ursprünglichen Video entsprechen, in die neue (aufgeteilte) Video-Timeline.
  • Maximale Videolänge pro Beispiel: 5 Minuten mit MEDIA_RESOLUTION_HIGH oder MEDIA_RESOLUTION_MEDIUM und 20 Minuten mit MEDIA_RESOLUTION_LOW.
  • Entfernte Beispiele: Wenn ein Beispiel ein Video enthält, das länger ist als die unterstützte maximale Länge, wird es aus dem Dataset entfernt. Entfernte Beispiele werden nicht in Rechnung gestellt und nicht für das Training verwendet. Wenn mehr als 10% des Datasets entfernt werden, schlägt der Job mit einer Fehlermeldung fehl, bevor das Training beginnt.
  • Mischen verschiedener Media-Auflösungen wird nicht unterstützt: Der Wert von mediaResolution muss für jedes Beispiel im gesamten Trainings-Dataset einheitlich sein. Alle Zeilen in den JSONL-Dateien, die für das Training und die Validierung verwendet werden, müssen denselben Wert für mediaResolution haben.

Dataset-Format

Im Feld fileUri wird der Speicherort Ihres Datasets angegeben. Das kann die URI einer Datei in einem Cloud Storage-Bucket oder eine öffentlich verfügbare HTTP- oder HTTPS-URL sein.

Mit dem Feld mediaResolution wird die Anzahl der Tokens pro Frame für die Eingabevideos angegeben. Für Gemini 2.5 gilt folgende Anzahl von Tokens pro Frame:

  • MEDIA_RESOLUTION_LOW: 64 Tokens pro Frame
  • MEDIA_RESOLUTION_MEDIUM und MEDIA_RESOLUTION_HIGH : 256 Tokens pro Frame

Für Gemini 3 sind die Tokenanzahlen dieselben wie für das Basismodell. Weitere Informationen finden Sie unter Media Auflösung.

Die Modellabstimmung mit MEDIA_RESOLUTION_LOW ist etwa viermal schneller als die mit MEDIA_RESOLUTION_MEDIUM oder MEDIA_RESOLUTION_HIGH, wobei die Leistungsverbesserung minimal ist.

Wenn ein Videosegment für das Training und die Validierung verwendet wird, befindet es sich im Feld videoMetadata. Während der Abstimmung werden diese Datenpunkte so decodiert, dass sie Informationen aus dem Segment enthalten, das aus der angegebenen Videodatei extrahiert wurde, beginnend mit dem Zeitstempel startOffset (der Start-Offset in Sekunden) bis endOffset.

Ein Beispiel für das generische Format finden Sie unter Dataset-Beispiel für Gemini.

In den folgenden Abschnitten finden Sie Beispiele für das Format von Video-Datasets.

JSON-Schema-Beispiel für Fälle, in denen das gesamte Video für Training und Validierung verwendet wird

Dieses Schema wird als einzelne Zeile in der JSONL-Datei hinzugefügt.

{
  "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"
  }
}

(Nur Gemini 3 und höhere Modelle) Ab den Gemini 3 Modellen können Sie die Media-Auflösung auch für einzelne Media-Part festlegen. So können Sie Auflösungen in Ihrem Dataset mischen (z. B. MEDIA_RESOLUTION_HIGH für ein Element und MEDIA_RESOLUTION_LOW für ein anderes festlegen). Weitere Informationen zur Auflösung auf Teilebene und den entsprechenden Token anzahlen finden Sie unter Media auflösung.

Die Einstellungen für die Media-Auflösung auf Part-Ebene haben Vorrang vor den globalen Einstellungen.

Das folgende Beispiel zeigt ein Dataset, in dem die Media-Auflösung sowohl auf Part- als auch auf globaler Ebene festgelegt ist:

{
  "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"
  }
}

JSON-Schema-Beispiel für Fälle, in denen ein Videosegment für Training und Validierung verwendet wird

Dieses Schema wird als einzelne Zeile in der JSONL-Datei hinzugefügt.

{
  "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"
  }
}

Nächste Schritte