LVM数据集准备完全手册:从原始图像到4200亿视觉令牌
LVM数据集准备完全手册:从原始图像到4200亿视觉令牌
【免费下载链接】LVM项目地址: https://gitcode.com/gh_mirrors/lv/LVM
LVM(GitHub加速计划)是一个强大的视觉语言模型工具集,能够将原始图像数据转化为4200亿视觉令牌,为AI模型训练提供高质量的视觉数据集。本指南将带你完成从数据准备到令牌生成的全过程,让你轻松掌握视觉句子的创建方法。
视觉句子:LVM数据集的核心概念 🧩
视觉句子是LVM数据集的基础构建块,它将不同类型的视觉数据组织成结构化序列。这些序列可以包含单张图像、图像序列、带注释的图像等多种形式,为模型提供丰富的视觉学习素材。
图:LVM视觉句子的组成结构展示了如何将不同类型的视觉数据组织成序列,最终构建包含4200亿令牌的UVD-V1统一视觉数据集
主要视觉句子类型
- 单图像序列:如LAION数据集,由独立图像组成
- 图像序列:如视频帧、3D旋转视图、合成视角
- 带注释图像:如风格迁移、目标检测、低光增强结果
- 自由形式注释图像:如包含目标检测和实例分割的复杂注释
- 带注释视频:如视频分割序列
5分钟快速开始:环境准备 ⚡
在开始数据集准备前,请确保已正确安装LVM项目:
git clone https://gitcode.com/gh_mirrors/lv/LVM cd LVM项目提供了GPU和TPU环境配置文件,你可以根据自己的硬件环境选择合适的配置:
- GPU环境配置:scripts/gpu_environment.yml
- TPU环境配置:scripts/tpu_commands.sh 和 scripts/tpu_vm_setup.sh
数据集处理全流程:从原始数据到视觉令牌 🔄
1. 选择合适的令牌化脚本
LVM提供了多种令牌化脚本,位于tokenize_examples/目录下,适用于不同类型的数据集:
- tokenize_paired_dataset_muse.py:处理配对数据集
- tokenize_video_muse.py:处理视频数据集
- tokenize_colorization_dataset_muse.py:处理彩色化数据集
- tokenize_inpainting_dataset_muse.py:处理图像修复数据集
- tokenize_multi_datasets_muse.py:处理多数据集混合
- tokenize_category_images_muse.py:处理类别数据集
2. 运行令牌化脚本
根据你的数据集类型选择合适的脚本。以下是几个常用示例:
视频数据集处理
视频数据集将被处理为帧序列[frame1, frame2, frame3, ... framex]:
# 视频数据集令牌化示例 python tokenize_examples/tokenize_video_muse.py --input_path /path/to/videos --output_path /path/to/tokenized --stride 2stride参数控制从视频中提取帧的采样率,设置为2表示每2帧提取一帧。
彩色化数据集处理
彩色化数据集将被处理为[灰度图像, 彩色图像, 灰度图像, 彩色图像, ...]序列:
# 彩色化数据集令牌化示例 python tokenize_examples/tokenize_colorization_dataset_muse.py --input_path /path/to/color_images --output_path /path/to/tokenized脚本会自动生成灰度图像,无需手动准备。
图像修复数据集处理
图像修复数据集将被处理为[遮罩图像, 原始图像, 遮罩图像, 原始图像, ...]序列:
# 图像修复数据集令牌化示例 python tokenize_examples/tokenize_inpainting_dataset_muse.py --input_path /path/to/images --output_path /path/to/tokenized --hole_mask_ratio 0.3hole_mask_ratio参数控制遮罩比例,0.3表示遮罩30%的图像区域。
3. 数据验证:检查令牌化结果
生成视觉句子后,建议使用tokenize_examples/detokenization_muse.py进行完整性检查,确保视觉句子能够正确恢复:
# 验证令牌化结果 python tokenize_examples/detokenization_muse.py --input_path /path/to/tokenized --output_path /path/to/validation4. 生成JSONL文件
每个数据集处理完成后,会生成dataset*.jsonl文件,这些文件包含了令牌化后的视觉句子数据。
5. 混合和打乱数据集
最后一步是将所有JSONL文件混合并打乱,以确保训练数据的随机性:
# 设置临时目录和内存分配 export TMPDIR='/global/scratch/users/yutong/data/temp' export MEMORY='20' # 导航到数据目录 cd /path/to/your/data/ # 混合和打乱数据集 cat tokenized_tasks/*.jsonl | terashuf > mix_and_shuffled/dataset.jsonl高级技巧:优化视觉令牌质量 ✨
类别数据集的高级配置
对于类别数据集,你可以使用images_per_shot和n_shots参数自定义每个类别的图像数量和类别数量:
# 类别数据集高级配置示例 python tokenize_examples/tokenize_category_images_muse.py --input_path /path/to/category_images --output_path /path/to/tokenized --images_per_shot 10 --n_shots 50分割数据集的颜色映射
处理分割数据集时,建议在使用prismer生成伪标签后运行颜色映射脚本:
# 分割数据集颜色映射 python tokenize_examples/map_color.py --input_path /path/to/segmentation_labels --output_path /path/to/color_mapped_labels常见问题解决 🛠️
Q: 如何处理超大视频文件?
A: 对于超大视频文件,可以增加stride参数值以减少提取的帧数,或使用tokenize_examples/tokenize_seq_images_muse.py先将视频分割成图像序列。
Q: 生成的令牌文件太大怎么办?
A: 可以使用tokenize_examples/tokenize_multi_datasets_muse.py将大数据集拆分为多个小数据集,分别处理后再混合。
Q: 如何评估令牌化质量?
A: 除了使用detokenization_muse.py进行视觉检查外,还可以使用评估目录中的工具,如evaluation/eval_perplexity.py计算困惑度来评估令牌质量。
通过本指南,你已经掌握了从原始图像到4200亿视觉令牌的完整流程。无论是单图像、视频还是带注释的复杂数据,LVM都提供了简单易用的工具来帮助你构建高质量的视觉数据集。现在就开始你的视觉语言模型训练之旅吧!
【免费下载链接】LVM项目地址: https://gitcode.com/gh_mirrors/lv/LVM
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
