AI开发平台MODELARTS-Wan2.1系列文/图生视频模型基于ModelArts Lite Server适配PyTorch NPU训练指导(6.5.906):步骤五:Wan2.1文/图生视频训练
AI开发平台MODELARTS-Wan2.1系列文/图生视频模型基于ModelArts Lite Server适配PyTorch NPU训练指导(6.5.906):步骤五:Wan2.1文/图生视频训练
步骤五:Wan2.1文/图生视频训练
- 模型与权重转换:下载的权重为hf格式(记为原始权重),要将其转换为MindSpeed-MM(记为mm权重)。
cd /home/ma-user/MindSpeed_Dir/MindSpeed-MM 1.3B T2V 480P权重转化 mm-convert WanConverter hf_to_mm \ --cfg.source_path /home/ma-user/Wan2.1-T2V-1.3B-Diffusers/transformer/ \ --cfg.target_path /home/ma-user/Wan2.1-T2V-1.3B-Diffusers_mm/transformer/ 14B T2V 480P/720P权重转化 mm-convert WanConverter hf_to_mm \ --cfg.source_path /home/ma-user/Wan2.1-T2V-14B-Diffusers/transformer/ \ --cfg.target_path /home/ma-user/Wan2.1-T2V-14B-Diffusers_mm/transformer/ 14B I2V 480P权重转化 mm-convert WanConverter hf_to_mm \ --cfg.source_path /home/ma-user/Wan2.1-I2V-14B-480P-Diffusers/transformer/ \ --cfg.target_path /home/ma-user/Wan2.1-I2V-14B-480P-Diffusers_mm/transformer/ 14B I2V 720P权重转化 mm-convert WanConverter hf_to_mm \ --cfg.source_path /home/ma-user/Wan2.1-I2V-14B-720P-Diffusers/transformer/ \ --cfg.target_path /home/ma-user/Wan2.1-I2V-14B-720P-Diffusers_mm/transformer/
权重转换命令中的参数解释如下:
- cfg.source_path:原始权重路径。
- cfg.target_path:转换或切分后权重保存路径。
- 数据集特征提取。
用上述下载的4份原始权重,分别对数据集的特征进行提取,提取5份特征(其中Wan2.1-T2V-14B-Diffusers 要提取480p和720p的特征),用在不同的训练任务中。
每次提取不同的特征,需要修改/home/ma-user/MindSpeed_Dir/MindSpeed-MM/examples/wan2.1/feature_extract/ 路径下的data.json, model.json, tools.json 这三个文件。
data.json文件中需要修改的参数如下:
"max_height": 720, # 480p为480, 720p为720 "max_width": 1280, # 480p为832, 720p为1280 "max_hxw": 921600, # 480p为399360,720p为921600 "force_resolution": true, # 一直设为true "from_pretrained": "/home/ma-user/Wan2.1-T2V-14B-Diffusers/tokenizer" 对应的原始权重中tokenier的路径
model.json文件中修改的参数如下图所示,共三个参数,分别为对应的原始权重中vae,image_encoder, text_encoder 路径。T2V无image_encoder,不用写。
图5 model.json文件参数修改
tools.json文件中修改如下两个参数:
- --save_path:提取特征的保存路径,用户自定义,不同的任务保存的路径不同。
- --task:i2v任务写 i2v ; t2v任务写t2v
图6 tools.json文件参数修改
修改完上述三个文件后,开始提取特征:cd /home/ma-user/MindSpeed_Dir/MindSpeed-MM bash examples/wan2.1/feature_extract/feature_extraction.sh
- SFT训练。
SFT训练修改两个文件,分别是MindSpeed-MM路径下的examples/wan2.1/{model_size}/{task}/feature_data.json文件和examples/wan2.1/{model_size}/{task}/pretrain.sh文件,model_size为模型大小14b/1.3b,task为i2v/t2v。
- feature_data.json修改内容如下:
- data_path: 数据集提取特征的保存路径中的data.jsonl文件路径
- data_folder: 数据集提取特征的保存路径
- "max_height": 720, # 480p为480, 720p为720
- "max_width": 1280, # 480p为832, 720p为1280
- "max_hxw": 921600, # 480p为399360,720p为921600
- "force_resolution": true, # 一直设为true。
- "from_pretrained": , # 原始权重的tokenizer路径。
图7 feature_data.json文件修改内容
- pretrain.sh文件修改内容如下:
图8 pretrain.sh文件修改内容
图9 pretrain.sh文件修改内容
- NPUS_PER_NODE:Snt9B设置为8,Snt9B23设置为16。
- CP:序列并行
Wan2.1-T2V-1.3B-Diffusers 480P SFT/LoRA 训练支持CP =1,4
Wan2.1-T2V-14B-Diffusers 480P SFT/LoRA 训练支持CP =1,4,8
Wan2.1-T2V-14B-Diffusers 720P SFT/LoRA 训练支持CP = 4,8
Wan2.1-I2V-14B-480P-Diffusers SFT/LoRA 训练支持CP =1,4,8
Wan2.1-I2V-14B-720P-Diffusers SFT/LoRA 训练支持CP = 4,8
- LOAD_PATH:转换为mm格式权重路径下的transformer路径。
- SAVE_PATH:自定义保存权重的路径
- train-iters:训练的迭代步数
修改完成后执行如下SFT训练命令。
cd /home/ma-user/MindSpeed_Dir/MindSpeed-MM sed -i 's/^chmod -R 640 \$SAVE_PATH$/#&/' examples/wan2.1/{model_size}/{task}/pretrain.sh bash examples/wan2.1/{model_size}/{task}/pretrain.sh # model_size为14b/1.3b, task为i2v,t2v
- feature_data.json修改内容如下:
- LoRA训练。
LoRA训练修改两个文件,分别是MindSpeed-MM路径下的examples/wan2.1/{model_size}/{task}/feature_data.json文件和examples/wan2.1/{model_size}/{task}/finetune_lora.sh文件。
feature_data.json,finetune_lora.sh文件的修改内容同3.SFT训练。修改完成后执行如下LoRA训练命令。cd /home/ma-user/MindSpeed_Dir/MindSpeed-MM sed -i 's/^chmod -R 640 \$SAVE_PATH$/#&/' examples/wan2.1/{model_size}/{task}/finetune_lora.sh bash examples/wan2.1/{model_size}/{task}/finetune_lora.sh # model_size为14b/1.3b, task为i2v,t2v
下载AI开发平台MODELARTS用户手册完整版