最近想要微调一下DeepSeek出品的Janus多模态大模型
利用启智平台的昇腾910B国产计算卡进行大模型的微调
查看了一下MS-Swift支持了Janus模型的微调,LLamafactory好像暂时还不支持该模型的微调
看到了MS-Swift有单独对昇腾的支持,因此首先要安装swift,根据下述指令安装即可
pip install ms-swift -U
# 安装torch-npu
pip install torchvision==0.18.1
pip install torch-npu==2.3.1 decorator
pip install pillow -U
然后需要安装昇腾版本的Janus
git clone https://gitee.com/ascend/ModelZoo-PyTorch.git
cd ModelZoo-PyTorch/MindIE/MultiModal/Janus-Pro
pip install -r requirements.txt
pip install torch-npu
pip install -e .
然后需要下载一个数据集启动模型的LoRA微调训练,我在这下载了Modelscope的LaTeX_OCR数据集,使用其中的human_handwrite进行模型的训练,训练脚本如下保存在 swift_lora.sh中
ASCEND_RT_VISIBLE_DEVICES=0 \
swift sft \--model /home/ma-user/work/pretrainmodel/Janus-Pro-7B \--train_type lora \--dataset /home/ma-user/work/dataset/human_handwrite#50 \--torch_dtype bfloat16 \--num_train_epochs 1 \--per_device_train_batch_size 1 \--per_device_eval_batch_size 1 \--learning_rate 1e-4 \--lora_rank 8 \--lora_alpha 32 \--target_modules all-linear \--gradient_accumulation_steps 16 \--eval_steps 50 \--save_steps 50 \--save_total_limit 5 \--logging_steps 5 \--max_length 2048 \--output_dir output \--system 'You are a helpful assistant.' \--warmup_ratio 0.05 \--dataloader_num_workers 4 \--model_author swift \--model_name swift-robot
运行该脚本会报错 git clone github/deepseek-ai/Janus-Pro clone失败,好像是启智平台上git clone失败概率非常大,而且我们之前已经完成了Janus的安装,因此需要去把这一个git clone注释掉
vim /home/ma-user/anaconda3/lib/python3.10/site-packages/swift/llm/model/model/deepseek.py
使用下述指令,将第170行和171注释掉,就不会报错了,直接启动脚本即可启动模型的微调。