動画のチューニング

このページでは、教師あり学習を使用して動画データで Gemini をファインチューニングするための前提条件と詳細な手順について説明します。

サポートされているモデル

次の Gemini モデルは動画チューニングをサポートしています。

  • Gemini 2.5 Flash

ユースケース

ファインチューニングにより、ベースの Gemini モデルを特定のタスクに適応させることができます。以下に、動画の使用例をいくつか示します。

  • 動画の自動要約: LLM をチューニングし、長い動画の主なテーマ、イベント、ストーリーを捉えた簡潔で一貫性のある要約を生成します。コンテンツの検出、アーカイブ、迅速な確認に役立ちます。

  • 詳細なイベント認識と位置特定: ファインチューニングにより、LLM は動画タイムライン内の特定のアクション、イベント、オブジェクトをより高い精度で識別し、特定できます。たとえば、マーケティング動画内の特定商品の出現箇所をすべて特定する、またはスポーツ映像内の特定のアクションを識別する、といったことが可能です。

  • コンテンツの管理: 専門的なチューニングにより、動画内のデリケートなコンテンツ、不適切なコンテンツ、ポリシー違反のコンテンツを検出する LLM の能力が向上し、単純なオブジェクト検出を超えてコンテキストとニュアンスを理解できるようになります。

  • 動画の字幕起こしと字幕作成: すでに一般的なアプリケーションですが、非言語的なメッセージの説明など、自動生成される字幕起こしと字幕作成の精度、流暢さ、コンテキスト認識をチューニングにより向上させることが可能です。

制限事項

  • 動画ファイルの最大サイズ: 100 MB。大きな動画ファイルの場合、これでは十分でないことがあります。推奨される回避策は次のとおりです。
    • 大きなファイルがほとんどない場合は、それらのファイルを JSONL ファイルに含めないようにします。
    • データセットに大きなファイルが多数あり、無視できない場合は、ファイルの視覚的な解像度を下げます。これによりパフォーマンスが低下する可能性があります。
    • 動画をチャンク化してファイルサイズを 100 MB に制限し、チャンク化された動画をチューニングに使用します。元の動画に対応するタイムスタンプ アノテーションを、新しい(チャンク化された)動画のタイムラインに変更してください。
  • 例ごとの動画の長さの上限: MEDIA_RESOLUTION_MEDIUM の場合は 5 分、MEDIA_RESOLUTION_LOW の場合は 20 分。
  • 削除された例: サポートされている最大長を超える動画が例に含まれている場合、その例はデータセットから削除されます。削除された例は課金されず、トレーニングにも使用されません。データセットの 10% 以上が削除されると、トレーニングの開始前にエラー メッセージが表示され、ジョブが失敗します。
  • 異なるメディア解像度の混在はサポートされていません: トレーニング データセット全体の各例の mediaResolution の値は一貫している必要があります。トレーニングと検証に使用される JSONL ファイルのすべての行で、mediaResolution の値が同じである必要があります。

データセットのフォーマット

fileUri フィールドには、データセットのロケーションを指定します。Cloud Storage バケット内のファイルの URI にすることも、一般公開されている HTTP または HTTPS URL にすることもできます。

mediaResolution フィールドは、入力動画のフレームあたりのトークン数を次のいずれかの値で指定するために使用されます。

  • MEDIA_RESOLUTION_LOW: フレームあたり 64 トークン
  • MEDIA_RESOLUTION_MEDIUM: フレームあたり 256 トークン

MEDIA_RESOLUTION_LOW を使用したモデル チューニングは、MEDIA_RESOLUTION_MEDIUM を使用したチューニングよりも約 4 倍高速ですが、パフォーマンスの向上は最小限です。

動画セグメントがトレーニングと検証に使用される場合、動画セグメントは videoMetadata フィールドにあります。チューニング中、このデータポイントは、指定された動画ファイルから抽出されたセグメントの情報を含むようにデコードされます。タイムスタンプ startOffset(開始オフセット、秒単位)から endOffset までです。

汎用形式の例については、Gemini のデータセットの例をご覧ください。

以降のセクションでは、動画データセットの形式の例を示します。

動画全体をトレーニングと検証に使用する場合の JSON スキーマの例

このスキーマは、JSONL ファイルの 1 行として追加されます。

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

動画セグメントがトレーニングと検証に使用される場合の JSON スキーマの例

このスキーマは、JSONL ファイルの 1 行として追加されます。

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

次のステップ