このページでは、教師あり学習を使用して動画データで Gemini をファインチューニングするための前提条件と詳細な手順について説明します。
ユースケース
ファインチューニングにより、ベースの Gemini モデルを特定のタスク向けに調整できます。以下に、動画の使用例をいくつか示します。
動画の自動要約: LLM をチューニングし、長い動画の主なテーマ、イベント、ストーリーを捉えた簡潔で一貫性のある要約を生成します。コンテンツの検出、アーカイブ、迅速な確認に役立ちます。
詳細なイベント認識と位置特定: ファインチューニングにより、LLM は動画タイムライン内の特定のアクション、イベント、オブジェクトをより高い精度で識別し、特定できます。たとえば、マーケティング動画内の特定商品の出現箇所をすべて特定する、またはスポーツ映像内の特定のアクションを識別する、といったことが可能です。
コンテンツの管理: 専門的なチューニングにより、動画内のデリケートなコンテンツ、不適切なコンテンツ、ポリシー違反のコンテンツを検出する LLM の能力が向上し、単純なオブジェクト検出を超えてコンテキストとニュアンスを理解できるようになります。
動画の字幕起こしと字幕作成: すでに一般的なアプリケーションですが、非言語的なメッセージの説明など、自動生成される字幕起こしと字幕作成の精度、流暢さ、コンテキスト認識をチューニングにより向上させることが可能です。
制限事項
- 動画ファイルの最大サイズ: 100 MB。大容量の動画ファイルの場合、これでは十分でない可能性があります。推奨される回避策は次のとおりです。
- 大容量のファイルがほとんどない場合は、それらのファイルを JSONL ファイルに含めないようにします。
- データセットに大容量のファイルが多数あり、無視できない場合は、ファイルの視覚的な解像度を下げます。これによりパフォーマンスが低下する可能性があります。
- 動画をチャンク化してファイルサイズを 100 MB に制限し、チャンク化された動画をチューニングに使用します。元の動画に対応するタイムスタンプ アノテーションを、新しい(チャンク化された)動画のタイムラインに変更してください。
- 例ごとの動画の最大長:
MEDIA_RESOLUTION_HIGHまたは の場合は 5 分、MEDIA_RESOLUTION_MEDIUMの場合は 20 分。MEDIA_RESOLUTION_LOW - 削除された例: サポートされている最大長を超える動画が例に含まれている場合、その例はデータセットから削除されます。削除された例は課金されず、トレーニングにも使用されません。データセットの 10% 以上が削除されると、トレーニングの開始前にエラー メッセージが表示され、ジョブが失敗します。
- 異なるメディア解像度の混在はサポートされていません: トレーニング データセット全体の各例の
mediaResolutionの値が一貫している必要があります。トレーニングと検証に使用される JSONL ファイルのすべての行で、mediaResolutionの値が同じである必要があります。
データセットのフォーマット
fileUri フィールドには、データセットのロケーションを指定します。Cloud Storage バケット内のファイルの URI にすることも、一般公開されている HTTP または HTTPS URL にすることもできます。
mediaResolution フィールドは、入力動画のフレームあたりのトークン数を指定するために使用されます。Gemini 2.5 の場合、フレームあたりのトークン数は次のとおりです。
MEDIA_RESOLUTION_LOW: フレームあたり 64 トークンMEDIA_RESOLUTION_MEDIUMとMEDIA_RESOLUTION_HIGH: フレームあたり 256 トークン
Gemini 3 の場合、トークン数はベースモデルと同じです。詳細については、メディアの解像度をご覧ください。
MEDIA_RESOLUTION_LOW を使用したモデル チューニングは、MEDIA_RESOLUTION_MEDIUM または MEDIA_RESOLUTION_HIGH を使用したチューニングよりも約 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"
}
}
(Gemini 3 以降のモデルのみ)Gemini 3
モデル以降では、個々のメディア PartPartごとにメディアの解像度を設定することもできます。
これにより、データセット内の解像度を混在させることができます(たとえば、あるアイテムに MEDIA_RESOLUTION_HIGH を設定し、別のアイテムに MEDIA_RESOLUTION_LOW を設定するなど)。
パートレベルの解像度と対応するトークン
数の詳細については、メディア
の解像度をご覧ください。
Part レベルのメディア解像度設定は、グローバル設定よりも優先されます。
メディアの解像度を Part レベルとグローバル レベルの両方で設定するデータセットの例を次に示します。
{
"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 スキーマの例
このスキーマは、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"
}
}
次のステップ
動画チューニングの詳細については、Agent Platform で 動画を使用して Gemini 2.5 を ファインチューニングする方法をご覧ください。
Gemini の画像理解機能の詳細について、 弊社の 画像理解 ドキュメントを確認する。
チューニングを開始するには、教師あり ファインチューニングを使用して Gemini モデルをチューニングするをご覧ください。
生成 AI ナレッジベースを構築するソリューションで教師ありファインチューニングを使用する方法について、ジャンプ スタート ソリューション: 生成 AI ナレッジベースを確認してください。