华为云AI开发平台ModelArtsLLaMA系列模型基于ModelArts的全参数微调训练_云淘科技
本文为您介绍如何通过AI Gallery订阅LLaMA系列算法,并在ModelArts使用昇腾Snt9b芯片进行算法的训练微调和模型的推理部署。
场景介绍
LLaMA是基于Transformer结构的自回归语言模型,提供多种尺寸的LLaMA参数。表1中提供的算法均基于MindSpore引擎做了适配,适用于昇腾Snt9b芯片。
序号 |
模型 |
引擎 |
AI Gallery地址 |
---|---|---|---|
1 |
Llama-7B训练 |
MindSpore |
https://developer.huaweicloud.com/develop/aigallery/algo/detail?id=8e3e9e04-d439-4267-854d-9c800e3672fc |
2 |
Llama2-7B训练 |
MindSpore |
https://developer.huaweicloud.com/develop/aigallery/algo/detail?id=d4ca115d-9de4-4a36-86d5-e059bf147649 |
3 |
Llama-13B训练 |
MindSpore |
https://developer.huaweicloud.com/develop/aigallery/algo/detail?id=8956ed2f-0fc3-40dc-bad4-027e3653c341 |
4 |
Llama2-13B训练 |
MindSpore |
https://developer.huaweicloud.com/develop/aigallery/algo/detail?id=23d07690-654e-4ee5-8b78-68f9543477cd |
本文以“Llama-7B”算法为例,介绍如何在AI Gallery上订阅算法,并通过ModelArts进行微调训练和模型推理部署。表1中提供的算法在ModelArts上的使用流程一致,均可参考此教程操作。
约束限制
算法训练和部署模型时建议使用“西南-贵阳一”Region上的昇腾Snt9芯片。
操作流程
开始使用如下样例前,请务必按准备工作指导完成必要操作。
Step1 准备算法:在AI Gallery中订阅算法。
Step2 准备训练数据:准备训练数据。创建OBS桶和文件夹,并将训练数据上传到OBS中。
Step3 全量微调训练:对算法进行全量微调。
Step4 部署模型并推理预测:训练完成后,部署模型并进行推理预测。
Step5 清理资源:运行完成后,停止服务并删除OBS中的数据,避免不必要的资源浪费。
准备工作
开始进行体验前,请仔细阅读以下准备工作,并完成必要操作。
已注册华为帐号并开通华为云,进行了实名认证,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻结状态。
注册华为帐号并开通华为云
进行实名认证
个人用户推荐使用人脸识别认证。
若无中国大陆身份证,可使用其他证件认证,并需等待三个工作日审核。
准备一个“西南-贵阳一”Region上的OBS桶。创建OBS桶和文件夹的操作指导请参见创建桶。OBS桶所在区域和ModelArts使用区域必须都选择“西南-贵阳一”。
Step1 准备算法
在AI Gallery的算法页面,申请算法使用权限。具体地址如表1所示,此处以Llama-7B训练为例。单击“申请”,根据提示提交联系方式。预计1-2个工作日完成订阅权限开通。
权限申请通过后,在算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。订阅算法完成后,页面的“订阅”按钮显示为“已订阅”。
图1 已订阅算法
单击详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择“西南-贵阳一”区域,然后再单击“确定”。
图2 选择云服务区域“西南-贵阳一”
页面将自动跳转至ModelArts的“算法管理 > 我的订阅”中同步对应的算法。
Step2 准备训练数据
以Llama-7B为例,全量微调训练使用的是开源的wiki2048数据集。下载数据集之后,需要将开源数据集转化为MindSpore可以读取的数据格式,然后上传到OBS桶中,用于后续的算法训练。
下载WikiText2数据集到用户本地电脑,并转化数据集格式为MindSpore可以读取的数据格式(xxx.mindrecord.db和xxx.mindrecord),具体操作请参见文档。
请参考以下要求创建OBS桶中的文件夹,并上传数据到OBS桶中,用于后续的算法微调训练。
OBS文件夹目录要求如下:
{OBS桶} # OBS对象桶,用户可以自定义名称,例如:llm-mindspore-ma -{OBS文件夹} # OBS文件夹,用于存放训练输入数据,用户可以自定义名称,例如:wiki2048 - wiki2048.mindrecord.db # 训练数据集 - wiki2048.mindrecord # 训练数据集 -{OBS文件夹} #训练输出路径,用于存放训练生成的模型文件等,用户可以自定义名称,例如:output -{OBS文件夹} #作业日志路径,用于存放训练日志,用户可以自定义名称,例如:log
Step3 全量微调训练
准备好训练数据后,在ModelArts控制台的“算法管理>我的订阅”页面中,使用订阅的“Llama-7B”算法创建训练作业,进行模型全量微调训练。
进入“算法管理 > 我的订阅”页面,选中的“Llama-7B”算法,在页面下方的“版本列表”中单击“创建训练作业”。
由于模型版本在持续迭代更新,此处创建训练作业时,请选择最新版本。
图3 创建训练作业
进入创建训练作业页面,参考如下说明填写关键参数。
“创建方式 > 我的订阅”:系统默认选择订阅的算法,请勿随意修改。
“输入”:选择“数据存储位置”,然后从弹出窗口中选择Step2 准备训练数据中传到OBS的wiki2048数据集,例如:obs://llm-mindspore-ma/wiki2048,其中llm-mindspore-ma是OBS桶名称,需替换成用户自己的桶。
“超参”:设置“run_mode”参数为“finetune”,表示全量微调模式。设置“remote_save_url”参数为OBS中存放训练输出模型的路径,例如:obs://llm-mindspore-ma/output,其中llm-mindspore-ma是OBS桶名称,需替换成用户自己的桶。
“资源池”:选择“公共资源池”。
“资源类型”:选择“Ascend”。
“规格”:选择“Ascend: 8*Ascend-Snt9b(64GB) | ARM: 192 核 14000GB”。
“计算节点个数”:建议采用默认值1。
“作业日志路径”:选择OBS中创建的训练日志存放路径,例如:obs://llm-mindspore-ma/log,其中llm-mindspore-ma是OBS桶名称,需替换成用户自己的桶。
其他参数保持默认值即可。
图4 训练作业参数-训练输入
图5 超参设置
图6 资源池设置
参数填写完成后,单击“提交”,根据界面提示确认规格,单击“确定”,完成训练作业创建。
进入“训练管理 > 训练作业”页面,等待训练作业运行完成。训练作业运行需要30分钟左右,请耐心等待。您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”等信息。
当训练作业的状态变更为“已完成”时,表示已运行结束。此时,可以在超参“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*xxx”,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)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家