如何自定义训练:Cosmos-Transfer1后训练与微调完全手册 如何自定义训练Cosmos-Transfer1后训练与微调完全手册【免费下载链接】cosmos-transfer1Cosmos-Transfer1 is a world-to-world transfer model designed to bridge the perceptual divide between simulated and real-world environments.项目地址: https://gitcode.com/gh_mirrors/co/cosmos-transfer1想要掌握Cosmos-Transfer1这个强大的世界到世界转换模型吗作为NVIDIA开发的先进物理AI基础模型Cosmos-Transfer1能够跨越模拟和真实世界环境之间的感知鸿沟实现高质量的多模态可控条件世界生成。本指南将为你详细介绍如何通过后训练和微调来定制这个模型满足你的特定应用需求。 Cosmos-Transfer1模型训练概览Cosmos-Transfer1是一个专门用于多模态可控条件世界生成的先进模型支持从深度图、边缘检测、分割掩码等多种控制输入生成逼真的视频内容。通过后训练和微调你可以让模型适应特定的数据分布和应用场景。支持的模型类型模型类型控制输入训练状态GPU需求Cosmos-Transfer1-7B [深度]深度视频✅ 支持8×NVIDIA 80GB GPUCosmos-Transfer1-7B [边缘]Canny边缘✅ 支持8×NVIDIA 80GB GPUCosmos-Transfer1-7B [关键点]人体关键点✅ 支持8×NVIDIA 80GB GPUCosmos-Transfer1-7B [分割]分割掩码✅ 支持8×NVIDIA 80GB GPUCosmos-Transfer1-7B [视觉]模糊视觉✅ 支持8×NVIDIA 80GB GPU 环境准备与检查点下载1. 环境配置首先按照INSTALL.md中的训练部分配置环境。确保你安装了所有必要的依赖# 安装基础依赖 pip install -r requirements.txt2. 获取模型检查点创建Hugging Face访问令牌使用令牌登录Hugging Facehuggingface-cli login接受LlamaGuard-7b许可协议下载Cosmos模型权重约300GB存储空间PYTHONPATH$(pwd) python scripts/download_checkpoints.py --output_dir checkpoints/下载完成后检查点目录结构如下checkpoints/ ├── nvidia │ ├── Cosmos-Transfer1-7B │ │ ├── base_model.pt │ │ ├── vis_control.pt │ │ ├── edge_control.pt │ │ ├── seg_control.pt │ │ ├── depth_control.pt │ │ └── keypoint_control.pt 数据准备构建训练数据集数据集结构要求你的数据集应该按照以下结构组织datasets/your_dataset/ ├── metas/ # 元数据文件 (*.json, *.txt) ├── videos/ # 原始视频文件 (*.mp4) ├── t5_xxl/ # T5文本嵌入 (*.pickle) ├── depth/ # 深度控制数据 (*.mp4) ├── seg/ # 分割控制数据 (*.pickle) └── keypoint/ # 关键点控制数据 (*.pickle)数据准备步骤步骤1准备视频和字幕收集720p分辨率的MP4格式视频确保整个视频中主题保持聚焦# 下载HD-VILA-100M示例数据 mkdir -p datasets/hdvila cd datasets/hdvila wget https://huggingface.co/datasets/TempoFunk/hdvila-100M/resolve/main/hdvila-100M.jsonl步骤2计算T5文本嵌入为视频字幕预计算T5-XXL嵌入PYTHONPATH$(pwd) python scripts/get_t5_embeddings.py --dataset_path datasets/hdvila步骤3生成控制输入数据根据你的控制类型准备相应的数据深度控制使用DepthAnythingV2等工具生成深度视频分割控制生成SAM2格式的分割掩码pickle文件关键点控制生成2D人体关键点标注pickle文件视觉/边缘控制无需单独准备训练时自动生成 训练配置与启动检查点分割由于模型规模较大需要将检查点分割为TensorParallel格式# 分割基础模型检查点 PYTHONPATH. python scripts/convert_ckpt_fsdp_to_tp.py checkpoints/nvidia/Cosmos-Transfer1-7B/base_model.pt # 分割EdgeControl检查点用于后训练 PYTHONPATH. python scripts/convert_ckpt_fsdp_to_tp.py checkpoints/nvidia/Cosmos-Transfer1-7B/edge_control.pt实验配置Cosmos-Transfer1使用Hydra进行高级配置管理。实验配置定义在cosmos_transfer1/diffusion/config/training/experiment/ctrl_7b_tp_121frames.py中。训练启动命令从零开始训练torchrun --nproc_per_node8 -m cosmos_transfer1.diffusion.training.train \ --configcosmos_transfer1/diffusion/config/config_train.py \ experimentCTRL_7Bv1pt3_lvg_tp_121frames_control_input_edge_block3_pretrain后训练微调torchrun --nproc_per_node8 -m cosmos_transfer1.diffusion.training.train \ --configcosmos_transfer1/diffusion/config/config_train.py \ experimentCTRL_7Bv1pt3_lvg_tp_121frames_control_input_edge_block3_posttrain自定义训练参数你可以通过命令行覆盖默认配置torchrun --nproc_per_node8 -m cosmos_transfer1.diffusion.training.train \ --configcosmos_transfer1/diffusion/config/config_train.py \ experimentCTRL_7Bv1pt3_lvg_tp_121frames_control_input_edge_block3_pretrain \ trainer.max_iter100 \ checkpoint.save_iter40 训练监控与检查点管理检查点保存结构训练过程中检查点会保存在以下结构中checkpoints/cosmos_transfer1_pretrain/CTRL_7Bv1_lvg/CTRL_7Bv1pt3_lvg_tp_121frames_control_input_edge_block3_pretrain/checkpoints/ ├── iter_0000100.pt # 主检查点仅元数据 ├── iter_0000100_model_mp_0.pt # TP检查点GPU 0 ├── iter_0000100_model_mp_1.pt # TP检查点GPU 1 ├── ... └── iter_0000100_model_mp_7.pt # TP检查点GPU 7恢复训练由于每个实验都有唯一的检查点目录意外中断后重新运行相同的训练命令会自动从最新的检查点恢复。 模型蒸馏加速推理72倍Cosmos-Transfer1支持知识蒸馏可以将36步推理减少到单步推理实现72倍加速蒸馏流程我们的蒸馏采用两阶段流程阶段1知识蒸馏KD使用教师模型生成10,000个噪声-视频对学习率1e-5全局批次大小64训练10,000次迭代阶段2改进的分布匹配蒸馏DMD2结合对抗蒸馏和变分分数蒸馏学习率5e-7引导尺度5训练24,000次迭代蒸馏训练命令# 蒸馏EdgeControl模型 torchrun --nproc_per_node8 -m cosmos_transfer1.distillation.train \ --configcosmos_transfer1/diffusion/config/config_train.py \ experimentCTRL_7Bv1pt3_lvg_tp_121frames_control_input_edge_block3_distill️ 自定义控制输入类型如果你想添加新的控制输入类型需要修改以下文件1. 添加新条件cosmos_transfer1/diffusion/conditioner.pycosmos_transfer1/diffusion/config/transfer/conditioner.py2. 添加数据增强函数cosmos_transfer1/diffusion/datasets/augmentors/control_input.py3. 添加新的提示键cosmos_transfer1/diffusion/inference/inference_utils.pycosmos_transfer1/diffusion/inference/world_generation_pipeline.py4. 添加预处理器可选cosmos_transfer1/auxiliary/cosmos_transfer1/diffusion/inference/preprocessors.py 训练后推理检查点转换将TensorParallel检查点转换为FSDP格式torchrun --nproc_per_node8 convert_ckpt_tp_to_fsdp.py \ --experiment CTRL_7Bv1pt3_lvg_tp_121frames_control_input_seg_block3_posttrain \ --checkpoint-path checkpoints/cosmos_transfer1_posttrain/CTRL_7Bv1_lvg/CTRL_7Bv1pt3_lvg_tp_121frames_control_input_seg_block3_posttrain/checkpoints/iter_000000100.pt转换后你会得到两个文件*_reg_model.pt常规模型检查点*_ema_model.ptEMA模型检查点推荐用于推理运行推理转换完成后按照推理指南运行推理。 最佳实践与技巧1. 数据质量至关重要确保视频质量一致建议720p控制输入数据必须与原始视频帧对齐字幕描述要准确且详细2. 硬件要求至少8个NVIDIA 80GB GPUH100或A100充足的存储空间检查点约300GB高速存储用于数据加载3. 训练策略从预训练模型开始后训练通常比从零训练更快使用适当的学习率调度器监控训练损失和验证指标4. 调试技巧先进行小规模测试运行使用--dryrun参数检查数据预处理是否正确验证检查点加载和保存功能 性能优化建议内存优化使用梯度检查点gradient checkpointing启用混合精度训练调整批次大小以匹配GPU内存训练加速使用数据并行和模型并行优化数据加载管道使用分布式训练策略 故障排除常见问题Q1: 训练时出现内存不足错误减少批次大小启用梯度检查点使用更小的模型变体Q2: 训练损失不下降检查学习率设置验证数据预处理是否正确确保控制输入数据与视频对齐Q3: 检查点加载失败验证检查点路径是否正确确保TensorParallel配置与训练时一致检查模型架构是否匹配 总结通过本指南你已经掌握了Cosmos-Transfer1模型后训练和微调的完整流程。无论你是想要定制模型以适应特定领域的数据还是希望通过蒸馏加速推理现在都有了清晰的路线图。记住成功的模型训练需要✅ 高质量的数据准备✅ 正确的环境配置✅ 合适的训练策略✅ 持续的监控和调整现在就开始你的Cosmos-Transfer1定制之旅吧通过后训练和微调你可以将这个强大的世界到世界转换模型应用于各种创新应用场景从自动驾驶仿真到机器人场景增强开启物理AI的新可能性。【免费下载链接】cosmos-transfer1Cosmos-Transfer1 is a world-to-world transfer model designed to bridge the perceptual divide between simulated and real-world environments.项目地址: https://gitcode.com/gh_mirrors/co/cosmos-transfer1创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考