Swift多模态模型训练
《Swift多模态模型训练》共 0.2 万字,通篇围绕 推理、微调、LoRA、视觉 展开,归在「训练、微调与数据」这一层。
适合要自己训模型、或者判断这一版该不该训的人
目录骨架(8 节)
- 示例代码
- 环境准备
- 微调训练
- 模型合并
- 模型推理
- 使用CLI
- 音频模型微调
- 图像模型微调
示例代码
环境准备
SWIFT介绍:https://modelscope.cn/docs/llm-training-and-inference/intro/quickstart
推荐的第三方库版本参考SWIFT安装文档
pip install ms-swift -U
# 若使用deepspeed zero2/zero3
pip install deepspeed -U
微调训练
ms-swift使用了分层式的设计思想,用户可以使用命令行界面、Web-UI界面和直接使用Python的方式进行微调。
使用CLI
我们提供了10分钟在单卡3090上对Qwen2.5-7B-Instruct进行自我认知微调的最佳实践,具体参考这里,这可以帮助您快速了解SWIFT。
此外,我们给出了一系列脚本帮助您了解SWIFT的训练能力:
- 多模态训练:SWIFT支持多模态模型的预训练、微调和RLHF。支持Caption、VQA、OCR、Grounding任务。支持图像、视频和音频三种模态。具体参考这里。多模态自定义数据集格式参考自定义数据集文档。
- 对ViT/Aligner使用全参数训练,LLM使用LoRA训练,并采用不同学习率的例子参考这里。
- 多模态模型packing,增加训练速度,例子参考这里。
小帖士:
- 在使用swift sft通过LoRA技术微调base模型为chat模型时,有时需要手动设置模板。通过添加--template default参数来避免base模型因未见过对话模板中的特殊字符而无法正常停止的情况。具体参考这里。
- 如果需要在断网环境下进行训练,请设置--model <model_dir>和--check_model false。如果对应的模型需要git clonegithub的仓库,例如deepseek-ai/Janus-Pro-7B,请设置手动下载仓库,并设置--local_repo_path <repo_dir>。具体参数含义请参考命令行参数文档。
- 如果使用NPU进行训练,只需要将shell中的CUDA_VISIBLE_DEVICES修改为ASCEND_RT_VISIBLE_DEVICES。
- SWIFT默认在训练时设置--gradient_checkpointing true来节约显存,这会略微降低训练速度。
音频模型微调
模型:https://modelscope.cn/models/Qwen/Qwen2-Audio-7B-Instruct
数据集:https://modelscope.cn/datasets/speech_asr/speech_asr_aishell1_trainsets
Qwen2-Audio 是 Qwen 大型音频-语言模型的新系列。Qwen2-Audio 能够接受各种音频信号输入,并根据语音指令执行音频分析或直接文本响应。我们引入了两种不同的音频交互模式:
- 语音聊天:用户可以在没有文本输入的情况下自由地与 Qwen2-Audio 进行语音互动;
- 音频分析:用户可以在互动过程中提供音频和文本指令进行分析;
我们发布了 Qwen2-Audio-7B 和 Qwen2-Audio-7B-Instruct,分别是预训练模型和聊天模型。
图像模型微调
模型:https://modelscope.cn/models/Qwen/Qwen2.5-VL-7B-Instruct
数据集:https://modelscope.cn/datasets/AI-ModelScope/LaTeX_OCR/file/view/master/human_handwrite%2Ftest-00000-of-00001.parquet?id=49715&status=0
自从Qwen2-VL发布以来的五个月里,许多开发者在Qwen2-VL视觉-语言模型上构建了新的模型,并为我们提供了宝贵的反馈。在此期间,我们专注于构建更有用的视觉-语言模型。今天,我们非常激动地介绍Qwen家族的最新成员:Qwen2.5-VL。
主要改进:
- 视觉理解能力:Qwen2.5-VL不仅擅长识别常见的物体如花、鸟、鱼和昆虫,而且在分析图像中的文本、图表、图标、图形和布局方面也非常出色。
- 自主代理能力:Qwen2.5-VL可以直接作为视觉代理,能够进行推理并动态指导工具的使用,具备计算机和手机操作的能力。
- 理解和捕捉长视频中的事件:Qwen2.5-VL可以理解超过1小时的视频,并且这次新增了通过定位相关视频片段来捕捉事件的能力。
- 不同格式下的视觉定位能力:Qwen2.5-VL可以通过生成边界框或点准确地在图像中定位物体,并能提供稳定的JSON输出,包括坐标和属性。
- 生成结构化输出:对于发票扫描件、表格等数据,Qwen2.5-VL支持其内容的结构化输出,适用于金融、商业等领域。
