华为云AI开发平台ModelArtsChatGLM系列模型基于ModelArts的全参微调训练_云淘科技

本文为您介绍如何通过AI Gallery订阅ChatGLM系列算法,并通过ModelArts进行算法的训练微调和模型的推理部署。

场景介绍

ChatGLM-6B是一个开源的、支持中英双语问答的对话语言模型,基于 General Language Model (GLM) 架构,具有62亿参数。ModelArts在开源基础上,针对“ChatGLM-6B-finetune训练”和“ChatGLM-6B-lora训练”算法做了MindSpore引擎适配,使其能适用于Ascend的Snt9b芯片进行训练和推理部署。

本文以“ChatGLM-6B-lora训练”算法为例,介绍如何在AI Gallery上订阅算法,并通过ModelArts进行微调训练和模型推理部署。ChatGLM-6B-finetune训练和ChatGLM-6B-lora训练算法在ModelArts上的使用流程一致,均可参考此教程操作。

约束限制

算法训练和部署模型时建议使用“西南-贵阳一”Region上的Snt9b芯片。

操作流程

开始使用如下样例前,请务必按准备工作指导完成必要操作。

Step1 准备算法:在AI Gallery中订阅算法。
Step2 准备训练数据:准备训练数据。创建OBS桶和文件夹,并将训练数据上传到OBS中。
Step3 全量微调训练:对算法进行全量微调。
Step4 部署模型并推理预测:训练完成后,部署模型并进行推理预测。
Step5 清理资源:运行完成后,停止服务并删除OBS中的数据,避免不必要的资源浪费。

准备工作

开始进行体验前,请仔细阅读以下准备工作,并完成必要操作。

已注册华为帐号并开通华为云,进行了实名认证,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻结状态。

注册华为帐号并开通华为云
进行实名认证

个人用户推荐使用人脸识别认证。
若无中国大陆身份证,可使用其他证件认证,并需等待三个工作日审核。

准备一个“西南-贵阳一”Region上的OBS桶。创建OBS桶和文件夹的操作指导请参见创建桶。OBS桶所在区域和ModelArts使用区域必须都选择“西南-贵阳一”。

Step1 准备算法

在AI Gallery的算法页面,申请算法使用权限。此处以ChatGLM-6B-finetune训练为例。单击“申请”,根据提示提交联系方式。预计1-2个工作日完成订阅权限开通。
权限申请通过后,在算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。订阅算法完成后,页面的“订阅”按钮显示为“已订阅”。

图1 已订阅算法

单击详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择“西南-贵阳一”区域,然后再单击“确定”。

图2 选择云服务区域“西南-贵阳一”

页面将自动跳转至ModelArts的“算法管理 > 我的订阅”中同步对应的算法。

Step2 准备训练数据

ChatGLM-6B-finetune训练使用的是ADGEN数据集,可以从 Tsinghua Cloud下载。下载数据集之后,请参考以下要求创建OBS桶中的文件夹,并上传数据到OBS桶中,用于后续的算法微调训练。

OBS文件夹目录要求如下:

{chatglm-mindspore-ma}          # OBS对象桶,用户可以自定义名称,例如:chatglm-mindspore-ma
     -{data}                    # OBS文件夹,用于存放训练输入数据,用户可以自定义名称,例如:data
            -{AdvertiseGen}     # OBS文件夹,用于存放训练输入数据,用户可以自定义名称,例如:AdvertiseGen
                - train.json    # 训练数据集
                - dev.json      # 评估数据集
     -{OBS文件夹}               #训练输出路径,用于存放训练生成的模型文件等,用户可以自定义名称,例如:output
     -{OBS文件夹}               #作业日志路径,用于存放训练日志,用户可以自定义名称,例如:log 

Step3 全量微调训练

准备好训练数据后,在ModelArts控制台的“算法管理>我的订阅”页面中,使用订阅的“ChatGLM-6B-finetune”算法创建训练作业,进行模型全量微调训练。

进入“算法管理 > 我的订阅”页面,选中算法,在页面下方的“版本列表”中单击“创建训练作业”。

由于模型版本在持续迭代更新,此处创建训练作业时,请选择最新版本。

图3 创建训练作业

进入创建训练作业页面,参考如下说明填写关键参数。

“创建方式 > 我的订阅”:系统默认选择订阅的算法,请勿随意修改。
“输入”:选择“数据存储位置”,然后从弹出窗口中选择Step2 准备训练数据中传到OBS的数据集,例如:/chatglm-mindspore-ma/data/AdvertiseGen/,其中chatglm-mindspore-ma是OBS桶名称,需替换成用户自己的桶。

此处的“train_dataset_dir”表示训练数据集train.json在OBS中的路径,“eval_dataset_dir”表示评估数据集dev.json在OBS中的路径。选择到数据集存放的文件夹即可(/chatglm-mindspore-ma/data/AdvertiseGen/),不需要选到具体的文件。

“超参”:设置“remote_save_url”参数为OBS中存放训练输出模型的路径,例如:obs://chatglm-mindspore-ma/output,其中chatglm-mindspore-ma是OBS桶名称,需替换成用户自己的桶,其他超参可以保持默认。
“资源池”:选择“公共资源池”。
“资源类型”:选择“Ascend”。
“规格”:选择“Ascend: 8*Ascend-snt9b(64GB) | ARM: 192 核 14000GB”。
“计算节点个数”:建议采用默认值1。
“作业日志路径”:选择OBS中创建的训练日志存放路径,例如:/chatglm-mindspore-ma/log,其中chatglm-mindspore-ma是OBS桶名称,需替换成用户自己的桶。
其他参数保持默认值即可。

图4 训练作业参数-训练输入

图5 超参设置

图6 资源池设置

参数填写完成后,单击“提交”,根据界面提示确认规格,单击“确定”,完成训练作业创建。
进入“训练管理 > 训练作业”页面,等待训练作业运行完成。训练作业运行需要1.5小时左右,请耐心等待。您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”等信息。
当训练作业的状态变更为“已完成”时,表示已运行结束。此时,可以在超参“remote_save_url”设置的OBS输出路径下,找到对应的模型文件夹model,如图7所示。确认该路径下存在有模型部署文件,即存在mindir文件夹、config文件、推理脚本文件customize_service.py等。

图7 训练输出模型

Step4 部署模型并推理预测

本节将详细说明模型推理部署的过程。

在训练任务详情页的右上角,单击“创建AI应用”,进入AI应用创建页面。

图8 创建AI应用

在AI应用创建页面,设置如下参数。

“元模型来源”:选择“从对象存储服务(OBS)中选择”。
“选择元模型”:从OBS中选择一个模型包。即Step3 全量微调训练中输出的模型存储路径,例如:obs://llm-mindspore-ma/output/model,其中llm-mindspore-ma是OBS桶名称,需替换成用户自己的桶。

图9 选择元模型

“AI引擎”:默认是“MindSpore”,无需修改。
“动态加载”:必须勾选,否则会出现模型太大无法导入的情况。
“推理代码”:系统会自动加载推理代码路径。
其他参数保持默认值。

图10 创建AI应用

单击“立即创建”,跳转到AI应用列表页,查看AI应用状态,当状态变为“正常”,表示AI应用创建成功。此时单击AI应用名称,进入AI应用详情页面,可以查看AI应用详情信息。

图11 AI应用创建成功

在AI应用详情页面,单击右上角“部署 > 在线服务”,进入服务部署页面,参考如下说明填写关键参数,完成服务部署。

“名称”:自定义一个在线服务的名称,也可以使用默认值。
“资源池”:选择“公共资源池”。
“AI应用来源”:选择“我的AI应用”。
“选择AI应用及版本”:系统自动选择,无需修改。
“计算节点规格”:默认选择“Ascend: 1*Snt9b”,1表示单卡。
“计算节点个数”:默认设置为“1”,无需修改。当前仅支持单机单卡,暂不支持分布式推理。
其他参数可使用默认值。

图12 部署服务

参数配置完成后,单击“下一步”,确认规格参数后,单击“提交”,提示在线服务的部署任务提交成功。

图13 提交部署任务

如果在线服务提交失败,提示“ModelArts.3520: 在线服务服务数量超限,限制为20”,表示当前已部署的在线服务数量超出配额,请参考FAQ处理。

单击“查看服务详情”,进入“在线服务”详情页面,等待服务状态变为“运行中”时,表示服务部署成功。
在服务详情页面,单击“预测”页签,在输入栏输入JSON Prompt请求体,如{“prompt”:”What are the three primary colors?”},进行服务预测。

图14 服务预测

Step5 清理资源

如果不再需要使用此模型及在线服务,建议清除相关资源,避免产生不必要的费用和资源浪费。

在“在线服务”页面,“停止”或“删除”刚创建的在线服务。
在“AI应用管理”页面,“删除”刚创建的AI应用。
在“训练作业”页面,“删除”运行结束的训练作业。
进入OBS,删除本示例使用的OBS桶及文件夹,以及文件夹的文件。

父主题: 昇腾应用教程

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家