基于阿里云PAI部署LLaMA Factory 完成Llama3低代码微调和部署

基于阿里云PAI部署LLaMA Factory 完成Llama3低代码微调和部署

    正在检查是否收录...

一、引言

阿里云人工智能平台 PAI 提供了面向开发者与企业的深度学习工程平台,其中交互 式建模 PAI-DSW 集成了 Jupyter 等多种云端开发环境,提供丰富的计算资源与镜像环 境,实现开箱即用的高效开发模式。LLaMA Factory 则是一款开源低代码大模型微调框 架,集成了业界最广泛使用的微调技术,支持通过 Web UI 界面零代码微调大模型,目前 已经成为开源社区内最受欢迎的微调框架,GitHub 星标超过 2 万。本教程将基于 Meta AI 开源的 Llama-3 8B 模型,介绍如何使用 PAI 平台及 LLaMA Factory 训练框架完成模 型的中文化与角色扮演微调和评估。

PAI 文档:https://help.aliyun.com/zh/pai/user-guide/getting-started/

LLaMA Factory 开源地址:https://github.com/hiyouga/LLaMA-Factory

二、创建 PAI 实例

2.1 开通 PAI 并创建工作空间

如果您是首次使用 PAI 平台,可以先进入的产品试用页面:阿里云免费试用 - 阿里云,选择PAI-DSW试用点击立即试用,这样就可以有3个月的免费试用期限啦,领取使用就后可以点击前往默认工作空间。

2.2 创建 DSW 实例

进入工作空间后,在左侧选择模型开发与训练-交互式建模,点击新建实例。

填写实例名称,在资源配额中选择GPU规格,这里推荐选择显存24GB的A10 GPU, 即 ecs.gn7i-c8g1.2xlarge 规格

存储配置保持默认,选择官方镜像中的 modelscope:1.14.0-pytorch2.1.2-gpupy310-cu121-ubuntu22.04 镜像,点击下一步,检查信息无误后,点击创建实例

三、安装 LLaMA Factory 微调框架

DSW 实例创建成功后,点击打开进入工作空间。

进入工作空间,点击 Notebook 中的 Python 3(ipykernel)创建笔记本。

在代码单元格内填写以下命令,点击运行拉取 LLaMA Factory 源码。

!git clone https://github.com/hiyouga/LLaMA-Factory.git

接着点击+ Code 新建代码单元格,填写以下三条命令安装 LLaMA Factory 框架。

%cd /mnt/workspace/LLaMA-Factory !pip uninstall -y vllm matplotlib !pip install -e .[bitsandbytes,metrics] 

最后新建代码窗格,填写以下命令,出现相同字样则说明安装成功。

!llamafactory-cli version

四、下载数据集

输入以下两条命令将远程数据集下载到工作空间。

!git clone https://github.com/exp240509/testdata.git !mv data rawdata && mv testdata data

本教程预先将数据处理为框架特定的格式,数据集中的样本为多轮对话形式,每轮对 话都由一条用户指令和一条模型回答组成,微调过程中模型不断学习样本中的回答风格, 从而达到中文化与角色扮演的目的。该数据集分为训练集和验证集两个文件,其中训练集 共包含 320 组多轮对话样本,验证集共包含 30 组多轮对话样本,数据样例如下所示。

[ { "conversations": [ { "from": "human", "value": "模仿西游记的孙悟空的语气和我聊天。如果你把水冻住, 你会得到什么?" }, { "from": "gpt", "value": "哈哈,这问题还难倒俺老孙吗?把水冻住就是变成冰啦! 不过若是在取经的路上用得着这冰来做啥,比如过火焰山时,那可就是解渴消 暑的好东西了!你觉得呢?还有没有更有趣的问题让俺老孙来解答?" }, { "from": "human", "value": "那怎么做才可以把水冻住" }, { 5 "from": "gpt", "value": "哈哈,对俺老孙来说,这可是轻而易举的事情!只需将水 放在凉快的地方,或者使用法力,一吹仙气,水便能迅速结冰啦!当然,在你 的世界里,把水放进冰箱的冷冻室里等一阵子,水就会变成冰块了。要是嫌慢, 可以尝试用点干冰或液氮什么的,不过得小心使用哈!毕竟不像俺老孙有抗寒 法力。" } ] } ]

五、模型训练

5.1 启动 Web UI

在代码单元格内输入以下命令启动 LLaMA Factory Web UI。

!GRADIO_ROOT_PATH=/${JUPYTER_NAME}/proxy/7860/ \ USE_MODELSCOPE_HUB=1 \ llamafactory-cli webui

接着点击链接进入 Web UI。

5.2 配置参数

Web UI 的默认语言是英文,可通过左上角 Lang 切换语言到 zh(中文)。

在模型名称中输入 llama3,选择 LLaMA3-8B-Chat 模型。微调方法则保持默认值 lora,使用 LoRA 轻量化微调方法能极大程度地节约显存。

在数据集下拉列表中选择 train(训练集)用于模型微调。

点击预览数据集可以浏览数据集内容,点击关闭返回训练界面。

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

点击 LoRA 参数设置展开参数列表,设置 LoRA+学习率比例为 16,LoRA+被证明是 比 LoRA 学习效果更好的算法。在 LoRA 作用模块中填写 all,即将 LoRA 层挂载到模型 的所有线性层上,提高拟合效果。

5.3 启动训练

将输出目录修改为 train_llama3,训练后的 LoRA 权重将会保存在此目录中。点击 预览命令可展示所有已配置的参数,点击开始启动模型微调。

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

六、模型评估

微调完成后,点击页面顶部的刷新适配器,然后点击适配器路径,即可弹出刚刚训练 完成的 LoRA 权重,点击选择下拉列表中的 train_llama3 选项,在模型启动时即可加载 微调结果。

选择 Evaluate&Predict 栏,在数据集下拉列表中选择 eval(验证集)评估模型。 更改输出目录为 eval_llama3,模型评估结果将会保存在该目录中。最后点击开始按钮 启动模型评估。

模型评估大约需要 5 分钟左右,评估完成后会在界面上显示验证集的分数。

其中 ROUGE 分数衡量了模型输出答案(predict)和验证集中标准答案(label)的 相似度,ROUGE 分数越高代表模型学习得更好。

七、模型测试

选择 Chat 栏,确保适配器路径是 train_llama3,点击加载模型即可在 Web UI 中 和微调模型进行对话。

在页面底部的对话框输入想要和模型对话的内容,点击提交即可发送消息。

发送后模型会逐字生成回答,从回答中可以发现模型学习到了数据集中的内容,能够 恰当地模仿诸葛亮的语气对话。

点击卸载模型,点击“×”号取消适配器路径,再次点击加载模型,即可与微调前的 原始模型聊天。

重新向模型发送相同的内容,发现原始模型无法模仿诸葛亮的语气生成中文回答。

八、总结

该教程介绍了如何使用 PAI 和 LLaMA Factory 框架,基于轻量化 LoRA 方法微调 Llama-3 模型,使其能够进行中文问答和角色扮演,同时通过验证集 ROUGE 分数和人 工测试验证了微调的效果。在后续实践中,可以使用实际业务数据集,对模型进行微调, 得到能够解决实际业务场景问题的本地领域大模型

(完)

llamacto数据集gitweb工作空间适配器github模型微调模型评估多轮对话角色扮演gpu大模型cloneclijupyterchat免费试用gpt
  • 本文作者:李琛
  • 本文链接: https://wapzz.net/post-16159.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.3W+
5
0
1
WAP站长官方

AI绘画Stable Diffusion神级插件!sd-forge-layerdiffuse

上一篇

探索Stable Diffusion:模型下载、模型应用【Stable Diffusion 实战教程】

下一篇
  • 复制图片
按住ctrl可打开默认菜单