跳到主要内容

单机多卡微调示例

信息

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

单机多卡微调聚焦计算效率与扩展性,针对大规模模型训练的需求,本方案通过数据并行、模型并行(包括张量并行和流水线并行)以及ZeRO优化技术,有效突破了单GPU显存限制,支持对百亿级参数模型(如70B+规模)进行高效的多模态微调。此方法特别适用于解决高复杂度、大规模数据集的训练挑战。

通过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)完成安装。
  • 用户已在VS Code/Cursor代码编辑器内安装Aladdin插件, 安装详情可参考安装Aladdin

准备工作

开通弹性容器集群

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

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

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

    配置项配置需求说明
    GPUH800 * 4GPU类型为: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的源码路径修改为实际的源码路径。

下载数据集

点击链接即可下载数据集,下载后在本地解压数据集文件,将数据集文件拖拽至LLaMA Factory源码文件夹下。

alt text

操作步骤

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

  1. 在final.sh文件右键文件空白处,在弹出的窗口点击“Run Shell”,跳转到Run Shell配置界面,配置对应参数,本示例使用多卡,示例如下图所示。

    alt text

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

    alt text

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

提示

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

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

    alt text

提示

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

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

    alt text

提示

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

在该页面用户也可查看训练过程中使用的GPU数量是在Aladdin中配置的数量,训练完毕,可以在右侧看到完整的Loss曲线。

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

  1. 评估模型,点击下方的“Evaluate&Predict”进行模型评估,参考下图进行参数配置,配置完成后,单击“开始”。 alt text 模型评估完成后,显示具体的客观评估指标得分,示例如下图所示。 alt text

  2. 点击下方的“Export”标签,将微调好的模型和基座模型进行合并导出。可参考下图进行参数配置。配置完成后,单击“开始导出”,导出完成后在页面下方会提示模型导出完成,用户在Aladdin对应目录下可查看导出的模型文件。

    alt text

总结

基于单机多卡架构的微调方案不仅极大地增强了系统的可扩展性和计算能力,还为工业级应用提供了坚实的基础。通过优化多卡通信(利用NCCL)、负载均衡策略及动态资源分配,该框架减少了分布式训练的调参成本,支持灵活应对不同的模型结构和训练场景。这使得它成为解决大规模多模态深度学习任务的理想选择,助力企业在实际业务中快速部署和应用先进的AI技术。

信息

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