快速玩转 Llama2!阿里云机器学习 PAI 推出最佳实践(一)——低代码 Lora 微调及部署
本文基于阿里云机器学习PAI实现大语言模型Llama2低代码 Lora 微调及部署,适合想要快速开箱体验预训练模型的开发者
前言
近期,Meta 宣布大语言模型 Llama2 开源,包含7B、13B、70B不同尺寸,分别对应70亿、130亿、700亿参数量,并在每个规格下都有专门适配对话场景的优化模型Llama-2-Chat。Llama2 可免费用于研究场景和商业用途(但月活超过7亿以上的企业需要申请),对企业和开发者来说,提供了大模型研究的最新利器。
目前,Llama-2-Chat在大多数评测指标上超过了其他开源对话模型,并和一些热门闭源模型(ChatGPT、PaLM)相差不大。阿里云机器学习平台PAI第一时间针对 Llama2 系列模型进行适配,推出全量微调、Lora微调、推理服务等场景最佳实践,助力AI开发者快速开箱。以下我们将分别展示具体使用步骤。
最佳实践一:Llama 2 低代码 Lora 微调及部署
- 本实践将采用阿里云机器学习平台PAI-快速开始模块针对 Llama-2-7b-chat 进行开发。PAI-快速开始支持基于开源模型的低代码训练、布署和推理全流程,适合想要快速开箱体验预训练模型的开发者。
一、准备工作
1、进入PAI-快速开始页面
a. 登入PAI控制台 https://pai.console.aliyun.com/
b. 进入PAI工作空间,并在左侧导航栏中找到“快速开始”。
2、选择Llama2模型
PAI-快速开始包含了不同来源的许多热门开源模型,来支持人工智能的不同领域和任务。在本次实例中,请选择“生成式AI-大语言模型(large-language-model)”,进入模型列表页。
在模型列表页中您可以看到多个来自不同开源社区的主流模型。在本次展示中,我们将使用llama-2-7b-chat-hf
模型(llama-2-7b-hf
模型同理)。您也可以自由选择其他适合您当前业务需求的模型。
Tips:
- 一般来说,参数量越大的模型效果会更好,但相对应的模型运行时产生的费用和微调训练所需要的数据量都会更多。
- Llama-2-13B和70B的版本,以及其他开源大语言模型也将后续在PAI-快速开始上线,敬请期待。
二、模型在线推理
快速开始提供的llama-2-7b-chat-hf
来源于HuggingFace提供的Llama-2-7b-chat模型,它也是主要基于Transformer架构的大语言模型,使用多种混合的开源数据集进行训练,因此适合用于绝大多数的英文非专业领域场景。我们可以通过PAI快速开始将此模型直接部署到PAI-EAS,创建一个推理服务。
1、部署模型
通过模型详情页面的的部署入口您可以一键创建一个基于此模型的在线推理服务,所有的参数已经帮您默认配置完毕。当然,您也可以自由选择所使用的计算资源和其他设置,我们即可以将该模型直接部署到PAI-EAS创建推理服务。
请注意,模型需要至少64GiB内存和24GiB及以上的显存,请确保您选择的计算资源满足以上要求,否则部署可能失败。
通过服务详情页,您可以查看推理服务的部署状态。当服务状态为“运行中”时,表示推理服务已经部署成功。
Tips:
- 后续您可以随时在PAI-快速开始中点击“管理任务与部署”按钮来回到当前的推理服务。
2、调用推理服务
在部署成功之后,您即可通过WebUI
的方式来最快速度调试您的服务,发送预测请求。
在WebUI中也同时支持了API调用能力,相关文档可以在WebUI页底点击“Use via API”查看。
三、模型微调训练
llama-2-7b-chat-hf
模型适用于绝大多数非专业的场景。当您需要应用特定领域的专业知识时,您可以选择使用模型的微调训练来帮助模型在自定义领域的能力。
Tips:
- 大语言模型也可以在对话过程中直接学习到比较简单的知识,请根据自己的需求选择是否训练。
- 当前快速开始支持的训练方式基于LoRA。LoRA训练相较于其他训练方式(如SFT等)会显著降低训练成本和时间,但大语言模型的LoRA训练效果可能不稳定。
1、准备数据
Tips:
- 为方便您试用体验Llama 2模型,我们在
llama-2-7b-chat-hf
的模型卡片中也已经帮您准备了一份默认用于Instruction Tuning的数据集来直接进行微调训练。
模型支持使用OSS上的数据进行训练。训练数据接受Json格式输入,每条数据由问题、答案、id组成,分别用"instruction"、"output"和"id"字段表示,例如:
[ { "instruction": "以下文本是否属于世界主题?为什么美国人很少举行阅兵?", "output": "是", "id": 0 }, { "instruction": "以下文本是否属于世界主题?重磅!事业单位车改时间表已出!", "output": "不是", "id": 1 } ]
训练数据的具体格式也可以在PAI-快速开始的具体模型介绍页中查阅。
关于如何上传数据到OSS,以及查看相应的数据,请参考OSS的帮助文档:https://help.aliyun.com/document_detail/31883.html?spm=a2c4g.31848.0.0.71102cb7dsCgz2
为了更好的验证模型训练的效果,除了提供训练数据集之外,也推荐您准备一份验证数据集:它将会用于在训练中评估模型训练的效果,以及训练的参数优化调整。
2、提交训练作业
在准备好使用的数据集之后,您即可以在快速开始的模型页面配置训练使用的数据集、提交训练作业。我们已经默认配置了优化过的超参数和训练作业使用的计算资源配置,您也可以根据自己的实际业务修改。
通过训练作业详情页,您可以查看训练任务的执行进度、任务日志、以及模型的评估信息。当训练任务的状态为“成功”,训练作业产出的模型会被保存到OSS上(见作业详情页的“模型输出路径”)。
Tips:
- 使用默认数据集和默认超参数、计算资源训练大概预计的完成时间在1小时30分钟左右。如果使用自定义训练数据和配置项,预计的训练完成时间可能有所差异,但通常应该在数小时后完成。
- 如果中途关闭了页面,您可以随时在PAI-快速开始中点击“管理任务与部署”按钮来回到当前的训练任务。
3、部署微调模型
当微调训练成功之后,用户可以直接在作业详情页将获得的模型部署为推理服务。具体的模型部署和服务调用流程请参照以上的“直接部署模型”的文档。
What's More
本文主要展示了基于阿里云机器学习平台PAI快速进行Llama2微调及部署工作的实践,主要是面向7B和13B尺寸的。后续,我们将展示如何基于PAI进行70B尺寸的 Llama-2-70B 的微调及部署工作,敬请期待。
【领取机器学习PAI免费试用】
参考资料:
- Llama2: Inside the Model https://ai.meta.com/llama/#inside-the-model
- Llama 2 Community License Agreement https://ai.meta.com/resources/models-and-libraries/llama-downloads/
- HuggingFace Open LLM Leaderboard https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard
- 阿里云机器学习平台PAI:https://www.aliyun.com/product/bigdata/learn
特别提示您 Llama2 属于国外公司开发的限制性开源模型,请您务必在使用前仔细阅读并遵守 Llama2 的许可协议,尤其是其限制性许可条款(如月活超过7亿以上的企业需申请额外许可)和免责条款等。
此外提醒您务必遵守适用国家的法律法规,若您利用 Llama2 向中国境内公众提供服务,请遵守国家的各项法律法规要求,尤其不得从事或生成危害国家、社会、他人权益等行为和内容。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
BigCode 背后的大规模数据去重
🤗 宝子们可以戳阅读原文查看文中所有的外部链接哟! 目标受众 本文面向对大规模文档去重感兴趣,且对散列 (hashing) 、图 (graph) 及文本处理有一定了解的读者。 动机 老话说得好: 垃圾进,垃圾出 (garbage in, garbage out),把数据处理干净再输入给模型至关重要,至少对大语言模型如此。虽然现在一些明星大模型 (严格来讲,它们很多是 API) 的存在让大家恍惚产生了数据质量好像不那么重要了的错觉,但事实绝非如此。 在 BigScience 和 BigCode 项目中,在数据质量方面,我们面临的一个很大的问题是数据重复,这不仅包括训练集内的数据重复,还包括训练集中包含测试基准中的数据从而造成了基准污染 (benchmark contamination)。已经有研究表明,当训练集中存在较多重复数据时,模型倾向于逐字输出训练数据 [1] (这一现象在其他一些领域并不常见 [2]),而且训得的模型也更容易遭受隐私攻击 [1]。除了能避免上面两个问题外,去重还有不少好处: 让训练更高效: 你可以用更少的训练步骤获得相同的,甚至是更好的性能 [3] [4]。 防...
- 下一篇
Apache Pulsar 技术系列 - GEO replication 中订阅状态的同步原理
导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案,支持多租户、低延时、读写分离、跨地域复制(GEO Replication)、快速扩容、灵活容错等特性,GEO Replication 可以原生支持数据和订阅状态在多个集群之间进行复制,GEO 目前在 Apache InLong 内部已经有长期稳定的实践,本文主要讲述 GEO 中的订阅状态的同步。 GEO 简介 GEO Replication 提供了数据在多个集群之间进行复制的能力。 上图描述了三个集群,并且集群之间配置了不同的 GEO Replication 策略,其中 Cluster-A 和 Cluster-B 是双向复制,两个集群中的 Topic 数据都会复制到对端集群,即集群 A 的数据会被复制到集群 B,集群 B 的数据也会被复制到集群 A,A、B 两个集群都有对方的全部数据; Cluster-A 和 Cluster-C 是单向复制:A 集群的数据会被复制到 C 集群,C 集群的数据不会被复制到 A 集群; Cluster-B 和 Cluster-C 没有复制关系:集群 B 和 C 之间不会产生任何...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G