九章智算云

单机单卡微调

Aladdin(Alaya AI Addin)是由九章云极自主研发的IDE插件,专为大模型开发设计,支持包括VS Code和Cursor在内的多种代码编辑器,用户可通过Aladdin开发工具便捷实现LLaMA Factory的训练、微调。

LLaMA Factory是一款开源低代码大模型微调框架,集成了业界广泛使用的微调技术,支持通过Web UI界面零代码微调大模型,目前已经成为开源社区内最受欢迎的微调框架之一,GitHub星标超过6万。本示例将基于Qwen2.5-VL-7B-Instruct模型,介绍如何使用Aladdin及LLaMA Factory训练框架得到适用于VLA(Vision Language Action)场景的自动驾驶辅助器:给出车辆所处的交通状况,通过自然语言触发自动驾驶辅助器的功能,并以特定格式返回。

本示例使用单卡进行轻量化调试,结合跨模态统一训练框架,实现了从轻量实验到大规模多模态任务的灵活覆盖,支持文本+图像、文本+音频等多模态输入。

本示例基于Aladdin v2.2.5版本编写,不同版本间操作界面可能存在差异,用户在实际使用时以下载版本的操作界面为准。

前提条件

  • 用户已经获取Alaya New企业账户和密码,可点击注册账户进行快速注册。
  • 您已在VS Code/Cursor的扩展中安装Aladdin插件,搜索“Aladdin”即可获取。

准备工作

开通弹性容器集群

本示例开通弹性容器集群的操作步骤如下所示。

  1. 使用已注册的企业账号登录Alaya NeW系统,选择智算引擎/产品/弹性容器集群菜单项,单击"立即开通"按钮,进入弹性容器集群配置页面。
  2. 配置基本信息,例如:集群名称,集群描述,智算中心等,此次使用的集群资源配置至少需要满足以下表格中的要求。弹性容器集群参数配置完成后,单击"立即开通"按钮,即可完成弹性容器集群开通操作,用户可在资源中心/弹性容器集群页面查看已创建的容器集群,弹性容器集群状态为"运行中"表示集群可正常使用。更多步骤可参考开通弹性容器集群。
配置项配置需求说明
GPUH800 * 1GPU类型为:H800
CPU8核
内存32GB
存储300GB
镜像仓库100GB用于保存镜像文件等数据

用户需在产品中心/存储管理/非NAS型存储已开通的混闪单元下新建PVC MOUNTS的可用文件夹,以确保微调数据的安全存储。

下载模型

LLaMA Factory涉及示例均在Aladdin的Workshop中演示,创建Workshop的操作步骤如下所示。

  1. 在VS Code扩展菜单栏搜索Aladdin插件,然后安装该插件。安装插件后,点击插件图标,进入插件登录页面,使用已注册的企业账号登录Aladdin。
  2. 登录完成后,返回工作区,新建一个Workshop,填写参数,示例页面下所示。

alt text

  • Environment:运行环境选择预置的aladdin/llamafactory公共镜像仓库下的镜像。
  • VKS:选择用户已开通的弹性容器集群。
  • PVC MOUNTS:挂载的SubPath填写开通弹性容器集群时在文件存储目录下新建的文件夹名称,ContainerPath填写"/workspace"。
  1. 配置完成后,单击"Submit",在弹出的新窗口(后文统称远端页面)选择"Linux",远端页面中将自动安装相关插件,待远端页面中出现Remote Aladdin插件图标,Workshop创建操作完成。
  2. Ctrl+Shift+P(Windows/Linux),打开命令面板,选择Python: Select Interpreter,选择下图高亮所示的Python解释器,然后打开"/workspace/"文件夹。

alt text

  1. 选择Terminal/New Terminal菜单项,进入终端页面,在终端页面执行如下命令设置对应区域的镜像地址,查看区域模型列表。更多模型加速内容请参看模型加速文章所述。
export HF_ENDPOINT=http://hfmirror.mas.zetyun.cn:8082
curl  http://hfmirror.mas.zetyun.cn:8082/repos
  1. 安装huggingface-hub,如下图高亮①所示。

alt text

pip install -U huggingface_hub -i [镜像源,例如:https://pypi.tuna.tsinghua.edu.cn/simple]
  1. 使用huggingface cli下载模型Qwen/Qwen2.5-VL-7B-Instruct,如上图高亮②所示。
huggingface-cli download --resume-download Qwen/Qwen2.5-VL-7B-Instruct --local-dir /workspace/model/Qwen2.5-VL-7B-Instruct --max-workers=3

LLaMA Factory准备

  1. 用户创建Workshop时选择的环境中已内置了LLaMA Factory源码,因此在此处将LLaMA Factory源码复制到Workshop挂载目录下即可,复制命令如下所示,示例页面如下图所示。

alt text

cp -r [源码目录] [挂载目录]
  1. 点击下载Aladdin启动LLaMA Factory脚本文件,在本地解压下载后的文件,并将final.shstart.sh文件拖拽至LLaMA Factory源码文件夹下,然后在上述文件所在目录下分别执行如下所示的命令。
chmod +x start.sh
chmod +x final.sh
  • 用户需将start.sh文件中LLaMA Factory的源码路径修改为实际源码所在路径。
  • 用户需将final.sh文件中LLaMA Factory的源码路径修改为实际源码所在路径。

下载数据集

  1. 选择Terminal/New Terminal菜单项,进入终端页面,在终端页面执行如下命令设置对应区域的镜像地址:
export HF_ENDPOINT=http://hfmirror.mas.zetyun.cn:8082
  • 执行上述命令已默认用户已经安装huggingface-hub,安装示例代码为pip install -U huggingface_hub -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 如果用户已经配置了环境变量,可忽略该步骤。
  1. 执行如下命令下载数据集,示例如下所示,请使用该数据集中的data文件夹替换LLaMA Factory源码下的data文件夹。
huggingface-cli download AlayaNeW/QA_from_CoVLA_zh --repo-type dataset --local-dir ./QA_from_CoVLA_zh

alt text

可视化工具准备

SwanLab是一款开源且轻量级的AI模型训练可视化追踪工具。在本次微调任务中,我们将使用SwanLab记录整个微调过程。在开始之前,请确保您已经登录SwanLab平台。登录后,点击设置/常规,即可获取API Key,示例如下图所示。

alt text

start.sh文件页面添加安装SwanLab的命令行,命令如下所示,添加位置如下所示。

pip install swanlab -i https://pypi.tuna.tsinghua.edu.cn/simple/

alt text

操作步骤(SwanLab)

完成准备工作后,用户开始进行微调,具体的操作步骤如下所示。

  1. final.sh文件编辑界面中,右键点击页面的空白处,在弹窗菜单中选择Run Shell,如下图所示,在参数配置页面配置环境、资源等参数,其中资源配置GPU(13C 200G 1GPU)

alt text

  1. 用户可通过以下方式完成LLaMA Factory的Web UI外部转发相关配置,具体操作步骤如下所示。
  1. 跳转到Run Shell配置界面,点击展开Advanced配置,点击下方的Add External Access。新增一个外部访问配置,在输入框中填写7860端口,本示例如下图所示。

alt text

  1. 配置完成后,点击"Submit"按钮,系统创建DEVELOP SESSION运行列表,用户在列表中可以查看运行的会话,示例如图所示。

alt text

  1. 在已启动的Session列表,右键选择Add External Access操作,示例如下图所示。

alt text

  1. 在页面弹框填写需要转发的端口号,此处填入7860,示例如下图所示,填写完成后回车即可。

alt text

  1. 等到外部访问状态提示灯变为绿色,点击箭头进行应用访问,弹窗选择打开外部网站,即可通过WebUI访问应用。

  2. 打开Web UI页面后,在页面选择对应的模型名称以及模型路径,示例如下图高亮①、②所示。

用户在实际操作时,需要将模型路径替换为模型的实际路径。

  1. 选择Train标签,加载已上传的数据集,示例如下图高亮③所示。找到SwanLab参数设置菜单栏,勾选使用SwanLab选项,在SwanLab API秘钥处填写准备工作章节已获取的API Key,如下图④所示。

alt text

  1. 各项参数配置完成后,单击开始按钮,执行大模型的微调任务。开始微调后,页面最下方会显示微调过程的日志。用户可在已登录的SwanLab的实验处查看各类图表,示例如下图所示。

alt text

同时,也将呈现微调的进度以及Loss曲线。进行多轮微调后示例页面如下图所示,从图中可看出Loss趋近收敛,微调完成后,输出框显示"训练完毕"。

alt text

  1. 训练完成后在Web UI界面,配置检查点路径中选择微调模型的路径,示例如下图高亮①所示。

alt text

  1. 单击加载模型按钮,加载微调后的模型,使用加载好的微调模型进行对话,下载素材图片,然后上传图片,如上图高亮③所示。输入问题"自动驾驶车辆应该关注哪些风险?",观察模型回答,如上图高亮⑤所示。

  2. 清空检查点路径LoRa配置,单击加载模型按钮,使用原生的Qwen2.5-VL-7B-Instruct模型进行对话,输入同一个问题:"自动驾驶车辆应该关注哪些风险?",观察模型回答,示例如下图所示。

alt text

综合看来通过使用微调后的模型进行对话,可以获得更具参考价值的回答。相较于原生模型,后者往往提供的是宽泛且笼统的可能性描述,而经过特定任务或数据集微调的模型能够基于实际的图片场景生成更为精准、有针对性的回答。

具体来说,微调后的模型能够:

  • 提高回答的准确性:根据具体的图像内容提供详细且准确的信息。
  • 增强实用性:减少无关信息,聚焦于与用户查询最相关的细节。
  • 提升用户体验:通过更贴近实际场景的回答,使交互过程更加流畅和高效。

因此,在涉及视觉理解的任务中,采用微调后的模型可以显著改善对话系统的性能和可靠性。

总结

本示例基于Aladdin平台,采用LLaMA Factory工具对Qwen2.5-VL模型进行微调,成功实现了面向自动驾驶场景的图像识别任务。通过在多模态数据上的轻量化微调策略,结合特征预提取与参数冻结技术,有效降低了训练资源消耗,提升了模型验证效率。

实验过程中,使用测试图像对模型性能进行了验证,结果表明该方法能够在保证跨模态交互能力的前提下,实现低资源消耗下的多模态任务快速迭代与验证,具备良好的实用性与扩展性,为后续轻量化多模态模型的研发与部署提供了有效参考路径。

关于License,请按照LLaMA Factory的版权要求使用,请参考该链接内容

最后更新于

这篇文档对你有帮助吗?

目录