跳到主要内容

单机单卡微调示例

信息

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

LLaMA Factory通过单机单卡的轻量化调试,结合跨模态统一训练框架,实现了从轻量实验到大规模多模态任务的灵活覆盖,支持文本+图像、文本+音频等多模态输入,采用轻量化适配器(Adapter)或特征预提取(如冻结CLIP视觉编码器)降低计算负载。

通过Aladdin,用户可以高效地预处理和管理LLaMA Factory所需的各种资源,显著提升训练和微调任务的效率与便捷性。其主要优势包括:

  • 一站式数据与模型管理:在Aladdin上,用户能够统一管理和维护LLaMA Factory所需的源码文件、数据集(尤其是大文件)以及大型模型文件等所有必要资源,简化了资源管理流程。
  • 快速数据加载与预处理:Aladdin支持用户预处理所需的数据集,并在执行训练或微调任务时快捷加载这些数据,极大缩短了准备时间,提高了工作效率。
  • 无缝集成Serverless架构:利用Aladdin提供的Serverless能力,用户可以轻松访问和使用GPU、存储等关键计算资源,无需担心底层基础设施的配置和管理,使得大规模训练和微调任务更加简便。
  • 灵活资源配置:根据实际需求动态分配计算资源,如GPU和存储空间,确保资源的最佳利用,减少浪费并降低成本,适合需要频繁调整资源的大规模实验和部署。
  • 增强的任务执行能力:无论是简单的实验还是复杂的生产部署,Aladdin都能为LLaMA Factory提供强大的支持,让用户专注于算法优化和模型改进,而非繁琐的资源调度和系统维护。

Aladdin不仅为LLaMA Factory用户提供了一个全面而高效的资源管理平台,还通过其先进的Serverless架构和灵活的资源配置方案,极大地提升了训练和微调任务的执行效率与便捷性,助力用户实现更快的研究进展和更高的生产力。

重要

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

前提条件

  • 用户已经获取Alaya New企业账户和密码,可点击  进行快速注册。
  • 用户已安装命令行工具(kubectl),如用户尚未安装,可参考安装命令行工具(kubectl)完成安装。

准备工作

开通弹性容器集群

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

  1. 使用已注册的企业账号登录Alaya NeW系统,选择[产品/弹性容器集群]菜单项,单击“新建集群”按钮,进入[弹性容器集群]配置页面。

  2. 配置基本信息,例如:集群名称,集群描述,智算中心,此次使用的集群资源配置至少需要满足以下表格中的要求。弹性容器集群参数配置完成后,单击“立即开通”按钮,即可完成弹性容器集群开通操作,用户可在[资源中心/弹性容器集群]页面查看已创建的容器集群,弹性容器集群状态为“运行中”表示集群可正常使用。更多步骤可参考开通弹性容器集群

    配置项配置需求说明
    GPUH800 * 1GPU类型为:H800
    CPU8核
    内存32GB
    存储300GB
    镜像仓库100GB用于保存镜像文件等数据
    提示

    用户需在大容量存储/文件存储下新建PVC MOUNTS的可用文件夹,以确保微调数据的安全存储。

下载模型

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

  1. 在VS Code扩展菜单栏搜索Aladdin插件,然后安装该插件。安装插件后,点击插件图标,进入插件登录页面,使用已注册的企业账号登录Aladdin。

  2. 登录完成后,返回工作区,单击 alt text进入新建一个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/”文件夹,打开后打开终端页面(Terminal)。

    alt text

  3. 选择[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的源码路径修改为实际源码所在路径。

下载数据集

点击链接即可下载数据集,下载后在本地解压数据集文件,解压后文件结构如下所示。解压完成后将data数据集文件夹拖拽至上步的LLaMA Factory源码文件夹下。

alt text

操作步骤

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

  1. final.sh文件编辑界面中,右键点击页面的空白处,在弹窗的菜单中选择“Run Shell”,如下图所示。

    alt text

    跳转到Run Shell配置界面,配置对应的参数,本示例使用单卡,示例如下图所示。

    alt text

  2. 配置完成后,点击“Submit”按钮,系统创建新的运行环境页面,示例如图所示。

    alt text

    查看任务运行的日志文件,文件显示如上图日志文件所示则表示任务运行完成,可进行下一步骤。

提示

用户可以通过上述运行页面获取下一步端口转发命令中所需的Pod名称。在实际执行端口转发命令时,请将命令中的pod-name替换为用户已获取的实际Pod名称。

  1. 在本地终端执行如下所示的端口转发命令,配置本地访问,示例如下图高亮所示。

    alt text

kubectl port-forward [pod-name]  7860:7860 
提示

用户需先连接VKS(弹性容器资源),以Windows系统为例,配置命令如下所示,更多系统配置请参看使用弹性容器集群

$env:KUBECONFIG="yourpath"
kubectl cluster-info
  1. 配置成功后,用户通过浏览器访问LLaMA Factory的Web UI地址,在页面选择对应的模型名称以及模型路径,示例如下图所示。

    alt text

提示

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

  1. 选择“Train”标签,加载已上传的数据集,示例如下图所示。

    alt text

  2. 单击“开始”按钮,执行大模型的训练任务,示例如下图所示。开始训练后,页面最下方会显示微调过程的日志。同时,也将呈现训练的进度以及Loss曲线。

    alt text

    进行多轮微调后示例页面如下图所示,从图中可看出Loss趋近收敛,微调完成后,输出框显示“训练完毕”。

    alt text

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

  4. 点击下方的“chat”标签,跳转到对话界面,下拉选择对应的检查点,点击加载模型,加载微调模型。

    alt text 使用加载好的微调模型进行对话,下载素材图片,然后上传图片,输入问题“自我车辆应该关注哪些风险?”,观察模型回答。

    alt text

  5. 作为对比,本示例使用原生的Qwen2.5-VL-7B-Instruct模型进行对话。首先卸载模型,然后使用原生模型进行对话可以看出,经过微调后的模型,能够按照指定的角色,以更符合实际场景的方式回答问题。

    alt text

总结

本实践基于Aladdin平台,采用LLaMA Factory工具对Qwen2.5-VL模型进行微调,成功实现了面向自动驾驶场景的图像识别任务。通过在多模态数据上的轻量化微调策略,结合特征预提取与参数冻结技术,有效降低了训练资源消耗,提升了模型验证效率。 实验过程中,使用测试图像对模型性能进行了验证,结果表明该方法能够在保证跨模态交互能力的前提下,实现低资源消耗下的多模态任务快速迭代与验证,具备良好的实用性与扩展性,为后续轻量化多模态模型的研发与部署提供了有效参考路径。

信息

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