视频调优

本页面提供了使用监督学习对 Gemini 进行视频数据微调的先决条件和详细说明。

支持的模型

以下 Gemini 模型支持视频调优:

  • Gemini 2.5 Flash

使用场景

借助微调,您可以调整基础 Gemini 模型,使其适合专门任务。 以下是一些视频用例:

  • 自动视频摘要:调整 LLM 以生成简明连贯的长视频摘要,捕捉主要主题、事件和叙事内容。这有助于内容发现、归档和快速审核。

  • 详细的事件识别和定位:通过微调,LLM 可以更准确地识别和精确定位视频时间轴中的特定动作、事件或对象。例如,识别营销视频中特定产品的所有实例,或体育视频片段中的特定动作。

  • 内容审核:通过专业调整,可以提高 LLM 检测视频中敏感、不当或违反政策的内容的能力,从而超越简单的对象检测,理解背景信息和细微差别。

  • 视频字幕和字幕:虽然这已是一种常见应用,但通过调整,可以提高自动生成的字幕和字幕的准确性、流畅性和上下文感知能力,包括对非语言提示的描述。

限制

  • 视频文件大小上限:100MB。 对于大型视频文件,这可能不够。以下是一些建议的解决方法:
    • 如果大型文件很少,请从 JSONL 文件中排除这些文件。
    • 如果您的数据集中包含许多无法忽略的大文件,请降低文件的视觉分辨率。这可能会降低性能。
    • 将视频分块,以将文件大小限制为 100MB,并使用分块后的视频进行调整。请务必将与原始视频对应的所有时间戳注释更改为新的(分块)视频时间轴。
  • 每个示例的视频时长上限:使用 MEDIA_RESOLUTION_MEDIUM 时为 5 分钟,使用 MEDIA_RESOLUTION_LOW 时为 20 分钟。
  • 舍弃的示例:如果某个示例包含的视频时长超过支持的最大时长,则该示例会从数据集中舍弃。丢弃的示例不会产生费用,也不会用于训练。 如果丢弃的数据集超过 10%,作业将在训练开始前失败并显示错误消息。
  • 不支持混合使用不同的媒体分辨率:整个训练数据集中每个示例的 mediaResolution 值必须保持一致。用于训练和验证的 JSONL 文件中的所有行都应具有相同的 mediaResolution 值。

数据集格式

fileUri 字段用于指定数据集的位置。它可以是 Cloud Storage 存储分区中文件的 URI,也可以是可公开访问的 HTTP 或 HTTPS 网址。

mediaResolution 字段用于指定输入视频每帧的令牌数量,可以是以下值之一:

  • MEDIA_RESOLUTION_LOW:每帧 64 个令牌
  • MEDIA_RESOLUTION_MEDIUM:每帧 256 个 token

使用 MEDIA_RESOLUTION_LOW 进行模型调优的速度比使用 MEDIA_RESOLUTION_MEDIUM 进行模型调优的速度快大约 4 倍,但性能提升幅度很小。

如果视频片段用于训练和验证,则该视频片段位于 videoMetadata 字段中。在调优期间,此数据点会被解码,以包含从时间戳 startOffset(以秒为单位的起始偏移量)开始到 endOffset 结束的指定视频文件中提取的片段的信息。

如需查看通用格式示例,请参阅适用于 Gemini 的数据集示例

以下部分展示了视频数据集格式示例。

JSON 架构示例,适用于使用完整视频进行训练和验证的情况

此架构以单行形式添加到 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"
  }
}

JSON 架构示例,适用于视频片段同时用于训练和验证的情况

此架构以单行形式添加到 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"
  }
}

后续步骤