电话

15169028800

快速玩转 Llama2!阿里云机器学习 PAI 推出最佳实践

标签: 局域网地域 2023-08-03 

  近期,全新的开源大语言模型 Llama2 引发关注,Llama-2-Chat 在大多数评测指标上超过了其他开源对话模型,并和一些热门闭源模型(ChatGPT、PaLM)相差不大。阿里云机器学习平台PAI第一时间针对 Llama2 系列模型进行适配,推出全量微调、Lora微调、推理服务等场景最佳实践,助力AI开发者快速开箱。

  近期,Meta 宣布大语言模型 Llama2 开源,包含7B、13B、70B不同尺寸,分别对应70亿、130亿、700亿参数量,并在每个规格下都有专门适配对话场景的优化模型Llama-2-Chat。Llama2 可免费用于研究场景和商业用途(但月活超过7亿以上的企业需要申请),对企业和开发者来说,提供了大模型研究的最新利器。

  目前,Llama-2-Chat在大多数评测指标上超过了其他开源对话模型,并和一些热门闭源模型(ChatGPT、PaLM)相差不大。阿里云机器学习平台PAI第一时间针对 Llama2 系列模型进行适配,推出全量微调、Lora微调、推理服务等场景最佳实践,助力AI开发者快速开箱。以下我们将分别展示具体使用步骤。

  本实践将采用阿里云机器学习平台PAI-快速开始模块针对 Llama-2-7b-chat 进行开发。PAI-快速开始支持基于开源模型的低代码训练、布署和推理全流程,适合想要快速开箱体验预训练模型的开发者。

  PAI-快速开始包含了不同来源的许多热门开源模型,来支持人工智能的不同领域和任务。在本次实例中,请选择“生成式AI-大语言模型(large-language-model)”,进入模型列表页。

  在模型列表页中您可以看到多个来自不同开源社区的主流模型。在本次展示中,我们将使用llama-2-7b-chat-hf模型(llama-2-7b-hf模型同理)。您也可以自由选择其他适合您当前业务需求的模型。

  一般来说,参数量越大的模型效果会更好,但相对应的模型运行时产生的费用和微调训练所需要的数据量都会更多。

  Llama-2-13B和70B的版本,以及其他开源大语言模型也将后续在PAI-快速开始上线,敬请期待。

  快速开始提供的llama-2-7b-chat-hf来源于HuggingFace提供的Llama-2-7b-chat模型,它也是主要基于Transformer架构的大语言模型,使用多种混合的开源数据集进行训练,因此适合用于绝大多数的英文非专业领域场景。我们可以通过PAI快速开始将此模型直接部署到PAI-EAS,创建一个推理服务。

  通过模型详情页面的的部署入口您可以一键创建一个基于此模型的在线推理服务,所有的参数已经帮您默认配置完毕。当然,您也可以自由选择所使用的计算资源和其他设置,我们即可以将该模型直接部署到PAI-EAS创建推理服务。

  请注意,模型需要至少64GiB内存和24GiB及以上的显存,请确保您选择的计算资源满足以上要求,否则部署可能失败。

  通过服务详情页,您可以查看推理服务的部署状态。当服务状态为“运行中”时,表示推理服务已经部署成功。

  后续您可以随时在PAI-快速开始中点击“管理任务与部署”按钮来回到当前的推理服务。

  在部署成功之后,您即可通过WebUI的方式来最快速度调试您的服务,发送预测请求。

  在WebUI中也同时支持了API调用能力,相关文档可以在WebUI页底点击“Use via API”查看。

  llama-2-7b-chat-hf模型适用于绝大多数非专业的场景。当您需要应用特定领域的专业知识时,您可以选择使用模型的微调训练来帮助模型在自定义领域的能力。

  大语言模型也可以在对话过程中直接学习到比较简单的知识,请根据自己的需求选择是否训练。

  当前快速开始支持的训练方式基于LoRA。LoRA训练相较于其他训练方式(如SFT等)会显著降低训练成本和时间,但大语言模型的LoRA训练效果可能不稳定。

  为方便您试用体验Llama 2模型,我们在 llama-2-7b-chat-hf的模型卡片中也已经帮您准备了一份默认用于Instruction Tuning的数据集来直接进行微调训练。

  模型支持使用OSS上的数据进行训练。训练数据接受Json格式输入,每条数据由问题、答案、id组成,分别用instruction、output和id字段表示,例如:

  为了更好的验证模型训练的效果,除了提供训练数据集之外,也推荐您准备一份验证数据集:它将会用于在训练中评估模型训练的效果,以及训练的参数优化调整。

  在准备好使用的数据集之后,您即可以在快速开始的模型页面配置训练使用的数据集、提交训练作业。我们已经默认配置了优化过的超参数和训练作业使用的计算资源配置,您也可以根据自己的实际业务修改。

  通过训练作业详情页,您可以查看训练任务的执行进度、任务日志、以及模型的评估信息。当训练任务的状态为“成功”,训练作业产出的模型会被保存到OSS上(见作业详情页的“模型输出路径”)。

  使用默认数据集和默认超参数、计算资源训练大概预计的完成时间在1小时30分钟左右。如果使用自定义训练数据和配置项,预计的训练完成时间可能有所差异,但通常应该在数小时后完成。

  如果中途关闭了页面,您可以随时在PAI-快速开始中点击“管理任务与部署”按钮来回到当前的训练任务。

  当微调训练成功之后,用户可以直接在作业详情页将获得的模型部署为推理服务。具体的模型部署和服务调用流程请参照以上的“直接部署模型”的文档。

  本实践将采用阿里云机器学习平台PAI-DSW模块针对 Llama-2-7B-Chat 进行全参数微调。PAI-DSW是交互式建模平台,该实践适合需要定制化微调模型,并追求模型调优效果的开发者。

  Python环境3.9以上,GPU推荐使用A100(80GB),该资源比较紧俏,建议多刷新几次。

  b. 进入 PAI-DSW 创建实例后下载模型文件。运行如下代码,可以自动为您选择合适的下载地址,并将模型下载到当前目录。

  如果您的地区不在上述地区中,您可以自行选择与你地域最近的链接进行下载(不同地域不共享内网,记得将链接中的-internal去掉)。同一地域的数据下载速度快,不同地域之间也可以下载,但是速度比同一地域略慢。

  ColossalAI是大规模并行AI训练系统,在本例中我们使用该框架进行模型微调。

  下载训练所需的数据,这里我们提供的一份创意生成数据,包括发言稿生成等内容。

  模型训练完成后,下载我们提供的webUI demo,试玩微调完成的模型(注意模型地址替换为自己训练好的模型地址)。

  如果希望将上述模型部署至PAI-EAS,您需要首先将训练完成的模型上传至OSS。

  接下来进行部署工作,步骤请参考【最佳实践三:Llama2 快速部署 WebUI】

  本实践将采用阿里云机器学习平台PAI-EAS模块针对 Llama-2-13B-chat 进行部署。PAI-EAS是模型在线服务平台,支持将模型一键部署为在线推理服务或AI-Web应用,具备弹性扩缩的特点,适合需求高性价比模型服务的开发者。

  在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。

  在工作空间页面的左侧导航栏选择模型部署>

  模型在线服务(EAS),进入PAI EAS模型在线、在PAI EAS模型在线服务页面,单击部署服务。

  特别提示您 Llama2 属于国外公司开发的限制性开源模型,请您务必在使用前仔细阅读并遵守 Llama2 的许可协议,尤其是其限制性许可条款(如月活超过7亿以上的企业需申请额外许可)和免责条款等。

  此外提醒您务必遵守适用国家的法律法规,若您利用 Llama2 向中国境内公众提供服务,请遵守国家的各项法律法规要求,尤其不得从事或生成危害国家、社会、他人权益等行为和内容。