使用快速开始零代码部署微调Llama2系列大模型

如果您希望以零代码的方式在PAI上完成Llama2系列大语言模型的训练和推理,您可以使用快速开始的一键部署,快速启动Llama2系列模型的在线推理服务,并通过WebUIAPI两种方式调用,或者使用自己的数据集对预训练模型进行微调训练,实现定制化的场景和任务。

背景信息

Llama2是由Meta开源的、以英语为主的预训练大语言模型,支持任意自然语言文本作为输入,并产生文字形式的输出。Llama2模型的参数范围从70亿到700亿不等,包括7b、13b、70b三种规格,并在每个规格下都有专门适配对话场景的优化模型Llama2-chat。快速开始支持Llama2系列模型的在线推理,同时也可以作为上游模型训练以达到更好的定制场景效果。

快速开始提供的llama-2-7b-chat模型来源于HuggingFace提供的Llama-2-7b-chat模型,它也是主要基于Transformer架构的大语言模型,使用多种混合的开源数据集进行训练,因此适合用于大多数的英文通用领域场景。

本文以llama-2-7b-chat模型为例,为您介绍如何通过快速开始将模型部署到EAS,创建并调用推理服务。

使用限制

目前快速开始支持的地域包括华北2(北京)、华东2(上海)、华东1(杭州)、华南1(深圳)、华北6(乌兰察布)。

说明

如需开通华北6(乌兰察布)地域,请联系您的商务经理。

使用费用

前提条件

操作步骤

llama-2-7b-chat模型适用于大多数非专业场景,如果直接部署模型后的预测结果不满足您的业务需求,或者当您需要应用特定领域的专业知识时,您可以对模型进行微调训练,帮助模型提高在自定义领域的能力,使其更符合您的实际业务需求。

大语言模型可以在对话过程中直接学习到比较简单的知识,请您根据自己的需求选择是否训练。当前快速开始支持的训练方式基于LoRA。LoRA训练相较于其他训练方式(如SFT等)会显著降低训练成本和时间。

直接部署模型

  1. 登录PAI控制台,在左侧导航栏单击快速开始

  2. 选择工作空间后,单击进入快速开始

  3. 模型列表页面的搜索框中输入llama-2-7b-chat,然后单击搜索

    说明

    您也可以根据实际业务选择需求选择其他模型,模型需要至少64 GiB内存和24 GiB及以上的显存,请确保您选择的计算资源满足以上要求,否则可能导致部署失败。

  4. 单击llama-2-7b-chat模型卡片,进入模型详情页面,单击模型部署

    image

  5. 在模型部署详情页面下方,单击部署

  6. 在弹出的计费提醒对话框中,单击确定

  7. 页面自动跳转到服务详情页面。当服务状态变为运行中时,代表推理服务已部署成功。

  8. 服务部署成功后,您可以通过WebUIAPI两种方式调用服务。

    1. 服务详情页面单击查看WEB应用

      image

    2. 调用推理服务。

      • WebUI方式:在Chat页签中的对话框中输入对话内容后,单击Send,即可开始对话。

        image.png

      • API方式:单击WebUI页面底部Use via API,查看API调用详情。

        image.png

微调训练模型

  1. 登录PAI控制台,在左侧导航栏单击快速开始

  2. 选择工作空间后,单击进入快速开始

  3. 模型列表页面的搜索框中输入llama-2-7b-chat,然后单击搜索

    说明

    您也可以根据实际业务选择需求选择其他模型,模型需要至少64 GiB内存和24 GiB及以上的显存,请确保您选择的计算资源满足以上要求,否则可能导致部署失败。

  4. 单击llama-2-7b-chat模型卡片,进入模型详情页面,单击微调训练

    image

  5. 配置模型训练相关参数。

    快速开始已经默认配置了计算资源配置超参数配置,可以满足大多数的使用场景,您也可以根据自己的实际业务进行修改。本实践教程中需要配置的关键参数说明请参见下表。

    参数

    说明

    训练设置

    输出路径

    选择OSS Bucket路径,用来保存训练生成的模型文件。

    说明

    如果您在工作空间详情页面配置了工作空间存储路径,这里会默认填充该路径,无需手动配置。如何配置工作空间存储路径,请参见管理工作空间

    数据集配置

    训练数据集

    为方便您试用体验Llama2模型,快速开始已提供了默认的训练数据,您可以直接使用。如果您不使用默认数据集,需要按照模型文档中的训练数据格式准备好训练数据,然后通过以下两种方式上传训练数据:

    训练数据支持JSON格式输入,每条数据由问题、答案和ID组成,分别用instructionoutputid字段表示,例如:

    [
        {
            "instruction": "以下文本是否属于世界主题?为什么美国人很少举行阅兵?",
            "output": "是",
            "id": 0
        },
        {
            "instruction": "以下文本是否属于世界主题?重磅!事业单位车改时间表已出!",
            "output": "不是",
            "id": 1
        }
    ]

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

  6. 单击训练,提交训练作业。

  7. 在弹出的计费提醒对话框中,单击确定

  8. 页面自动跳转到任务详情页面。当任务状态变为成功时,代表模型已经训练完成。

    已经完成训练的模型会被保存到OSS上,可在基本信息区域的输出路径中查看具体位置。

    说明

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

  9. 部署微调模型。

    部署以及调用微调模型的流程和直接部署模型相同,操作详情请参见直接部署模型

后续操作

您可以在快速开始页面单击任务管理,查看训练任务和部署任务的详情。

image