打破Data+AI融合瓶颈:DataWorks支持 GPU类型资源

在人工智能技术飞速发展的今天,“数据+算力”的有效结合已成为释放数据价值的关键途径。企业不仅需要处理海量数据,更需将数据转化为智能洞察,而传统方式自行部署和使用GPU资源高成本投入、运维复杂性和弹性不足的特点,让开发者从“大数据”迈向“Data+AI”的关键跃迁陷入瓶颈。基于此,作为一站式智能数据开发治理平台,DataWorks在积累和沉淀了阿里巴巴十余年大数据建设方法论和最佳实践的基础上,宣布其Serverless资源组支持GPU资源类型,以免运维、按需付费、弹性伸缩的Serverless架构,将大数据处理与AI开发能力无缝融合。

这意味着开发者在创建个人开发环境时,可以选择GPU类型的资源作为Notebook运行环境,以支持进行高性能的计算工作。在此基础上:开发者可在DataWorks一个平台即可完成数据清洗、特征工程到模型训练/推理的全流程,无需跨平台迁移数据,真正实现“Data+ AI”一站式数据开发,让数据驱动的未来加速降临。

极简体验:GPU算力,开箱即用

LLaMA Factory是一款开源低代码大模型微调框架,集成了业界最广泛使用的微调技术,支持通过Web UI界面零代码微调大模型,目前已经成为开源社区内最受欢迎的微调框架,GitHub星标超过3万。本教程将基于开源多模态大模型Qwen2-VL-2B-Instruct,介绍如何使用 DataWorks 及LLaMA Factory训练框架完成文旅领域大模型的构建。

前置资源配置

注意需要将数据开发(DataStudio)(新版)公测开关置为开启才可使用Notebook。

  • 创建资源组:在DataWorks控制台创建“Serverless资源组”,将资源组绑定至目标工作空间。

可选择开通按量付费资源组,领取免费试用资源组抵扣包资源来抵扣。

  • 绑定GPU实例:创建个人开发环境实例,注意选择GPU资源类型时,选择以下配置:
  • GPU 推荐使用 24GB 显存的 A10(ecs.gn7i-c8g1.2xlarge)或更高配置
  • 镜像选择 DSW 官方镜像 modelscope:1.18.0-pytorch2.3.0-gpu-py310-cu121-ubuntu22.04

操作步骤

1. 安装 LLaMA Factory

首先,拉取 LLaMA-Factory 项目到 DSW 实例。

!git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
%cd LLaMA-Factory

接着,我们安装 LLaMA-Factory 依赖环境。

!pip uninstall -y accelerate vllm matplotlib
!pip install llamafactory==0.9.0

运行如下命令,如果显示 LLaMA Factory 的版本,则表示安装成功。

!llamafactory-cli version

2. 下载数据集

LLaMA-Factory 项目内置了丰富的数据集,放在了 data 目录下。您可以跳过本步骤,直接使用内置数据集。您也可以使用DataWorks 构建自定义数据集或使用数据湖、数据仓库或湖仓一体架构中的数据来进行模型的微调,将数据处理为框架特定的格式,放在 data 下,并且修改 dataset_info.json 文件。DataWorks深度适配数十种大数据计算引擎进行数据集成,支持自定义数据集的开发与调度。

本教程准备了一份多轮对话数据集,运行下述命令下载数据。

!wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/llama_factory/Qwen2-VL-History.zip
!mv data rawdata && unzip Qwen2-VL-History.zip -d data

数据集中的样本为单轮对话形式,含有 261 条样本,每条样本都由一条系统提示、一条用户指令和一条模型回答组成,微调过程中模型不断学习样本中的回答风格,从而达到学习文旅知识的目的。数据样例如下所示:

[
  {
    "conversations": [
      {
        "from": "system",
        "value": "你是一个导游,请生动有趣地回答游客提出的问题"
      },
      {
        "from": "human",
        "value": "给我讲讲这个东西<image>"
      },
      {
        "from": "gpt",
        "value": "各位游客朋友们,大家好!\n\n现在映入大家眼帘的,是一件极为珍贵的文物——**神面纹玉戚**。它可不是一般的宝贝,而是来自遥远的新石器时代的一件精美玉器哦!\n\n这件宝贝现藏于山西博物院,它的尺寸相当精致:高20.6厘米,宽13.1厘米,厚仅0.4厘米,真是薄如蝉翼,工艺精湛!\n\n1964年,它在黎城县后庄村广志山出土,仿佛穿越时空,向我们诉说着古老的故事。\n\n大家仔细看,这块玉戚采用了线刻工艺,一侧雕刻着神人的半侧面头像,头戴华美的冠饰,披拂着飘逸的长发,眼眉清晰可辨,仿佛在凝视着我们;而另一侧则是一个方形台座上置神人冠饰的形象,显得神秘而威严。\n\n要知道,玉戚在古代可是象征军事统帅权力的神器,握有它,就如同掌握了千军万马!\n\n大家不妨多停留片刻,感受一下这件文物散发出的古老而神秘的气息吧!\n\n谢谢大家的聆听,接下来我们将继续参观其他精彩展品,敬请期待!"
      }
    ],
    "images": [
      "images/instance_1579398113581395972.jpg"
    ]
  }
]

3. 模型微调

3.1 启动 Web UI

做好前序准备工作后,直接运行下述命令就可以启动 Web UI。这里用到的环境变量解释如下:

  • USE_MODELSCOPE_HUB 设为 1,表示模型从 ModelScope 魔搭社区下载。避免从 HuggingFace 下载模型导致网速不畅。

点击返回的 URL 地址,进入 Web UI 页面。

!USE_MODELSCOPE_HUB=1 llamafactory-cli webui
3.2 配置参数

进入 WebUI 后,可以切换语言到中文(zh)。首先配置模型,本教程选择 Qwen2VL-2B-Chat 模型,微调方法修改为 full,针对小模型使用全参微调方法能带来更好的效果。

数据集使用上述下载的 train.json

可以点击「预览数据集」。点击关闭返回训练界面。

设置学习率为 1e-4,训练轮数为 10,更改计算类型为 pure_bf16,梯度累积为 2,有利于模型拟合。

在其他参数设置区域修改保存间隔为 1000,节省硬盘空间。

3.3 启动微调

将输出目录修改为 train_qwen2vl,训练后的模型权重将会保存在此目录中。点击「预览命令」可展示所有已配置的参数,您如果想通过代码运行微调,可以复制这段命令,在命令行运行。

点击「开始」启动模型微调。

启动微调后需要等待一段时间,待模型下载完毕后可在界面观察到训练进度和损失曲线。模型微调大约需要 14 分钟,显示“训练完毕”代表微调成功。

4. 模型对话

选择「Chat」栏,将检查点路径改为 train_qwen2vl,点击「加载模型」即可在 Web UI 中和微调后的模型进行对话。

首先点击下载测试图片1测试图片2,并上传至对话框的图像区域,接着在系统提示词区域填写“你是一个导游,请生动有趣地回答游客提出的问题”。在页面底部的对话框输入想要和模型对话的内容,点击提交即可发送消息。

发送后模型会逐字生成回答,从回答中可以发现模型学习到了数据集中的内容,能够恰当地模仿导游的语气介绍图中的山西博物院。

点击「卸载模型」,点击检查点路径输入框取消勾选检查点路径,再次点击「加载模型」,即可与微调前的原始模型聊天。

重新向模型发送相同的内容,发现原始模型无法准确识别山西博物院。

5. 总结

本次教程介绍了如何使用 DataWorks 和 LLaMA Factory 框架,基于全参方法微调 Qwen2-VL-2B 模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。在后续实践中,可以使用实际业务数据集,对模型进行微调,得到能够解决实际业务场景问题的本地领域多模态大模型。


阿里云大数据AI
12 声望9 粉丝

分享阿里云计算平台的大数据和AI方向的技术创新、实战案例、经验总结。