MiniCPM-V MiniCPM-V & o Cookbook

数据集准备指南

本教程将指导你如何为 MiniCPM-o 进行有监督微调准备数据集。请严格按照以下格式和要求组织你的数据。

1. 数据格式说明

每条数据应为一个字典,包含图片路径和多轮对话内容。例如:

{
  "image": "path/to/image.jpg",
  "conversations": [
    {"role": "user", "content": "请描述这张图片"},
    {"role": "assistant", "content": "这是一只猫。"}
  ]
}

多图输入格式

如需支持多图输入,image 字段应为字典,键为 <image_00>, <image_01> 等,值为图片路径:

{
  "image": {
    "<image_00>": "path/to/image1.jpg",
    "<image_01>": "path/to/image2.jpg"
  },
  "conversations": [
    {"role": "user", "content": "请比较 <image_00> 和 <image_01> 的不同"},
    {"role": "assistant", "content": "图片一是猫,图片二是狗。"}
  ]
}

2. 数据集加载与预处理

数据加载和预处理主要依赖 SupervisedDataset 类。其核心流程如下:

主要参数说明

3. 数据集示例

单图多轮对话示例:

{
  "image": "images/cat.jpg",
  "conversations": [
    {"role": "user", "content": "<image> 这是什么动物?"},
    {"role": "assistant", "content": "这是一只猫。"},
    {"role": "user", "content": "它在做什么?"},
    {"role": "assistant", "content": "它正在睡觉。"}
  ]
}

多图对话示例:

{
  "image": {
    "<image_00>": "images/cat.jpg",
    "<image_01>": "images/dog.jpg"
  },
  "conversations": [
    {"role": "user", "content": "请比较 <image_00> 和 <image_01> 的不同"},
    {"role": "assistant", "content": "图片一是猫,图片二是狗。"}
  ]
}

4. 常见问题与注意事项