计算巢实现大模型微调——如何发布一个微调服务

阿里云云栖号 / 160 /

ChatGPT 可用网址,仅供交流学习使用,如对您有所帮助,请收藏并推荐给需要的朋友。
https://ckai.xyz

前言

各位看官,最近是否被大模型相关信息刷屏了呢,铺天盖地的大模型预训练、微调等各种关键词是否让你眼花缭乱呢?在如此热度之下,你有没有想过自己亲自动手部署一个大模型执行训练或者微调呢,或许你曾经尝试过却被某个繁琐的步骤劝退了呢?又或者你是模型的研究人员或开发人员,想要让你的模型服务更多用户、有更大的影响力?如果你有自己的基础大模型供给其他人精调,却苦于难以部署、难以让用户上手使用等各种问题,来试试计算巢吧,你的这些问题都将迎刃而解!

按照传统方式,想要对一个大模型进行微调一共需要以下这些步骤:

首先需要创建云资源或者使用线下资源,然后安装各种GPU驱动和各种依赖环境。接着需要自己编写微调脚本或者找一些开源的微调方法,然后就是一系列的pip install或者conda install。运气好的话,你的微调能够顺利run起来,可是稍有差池,也许就会抛出各类错误让你崩溃。讲到这里有没有勾起你痛苦的回忆呢?没关系,计算巢将为你彻底解决这些烦恼!!!

本文将以ChatGLM高效微调为例,为各位展示在计算巢中如何发布一个能够实现大模型的零代码微调的服务。

服务部署步骤

1.服务镜像准备

本文是基于ECS镜像进行部署的,所以第一步请在ECS控制台制作包含ChatGLM高效微调代码和运行环境的ECS镜像。接下来请访问计算巢创建关联该镜像的部署物。填写部署物的基本信息并选择关联刚刚创建的ECS镜像即可完成部署物的发布。

图片

2.服务信息填写

登陆到阿里云计算巢控制台点击创建服务进行服务新建,填写您要发布服务的基本信息。

图片

3.部署信息填写

3.1 资源编排模版填写

接下来重点来咯~在服务部署信息中,我们需要填写ROS模版或Terraform模版来定义我们所需要的资源和资源之间的依赖关系,文末给出了示例模版链接供大家参考。您也可以在ROS可视化编辑器中尝试编写自己的模版!

图片

3.2 部署物关联

如果您的模版成功通过校验,那么恭喜,我们的部署过程已经成功一大半了!

在前面我们已经准备好了部署物,现在可以派上用场了。点击设置镜像关联,在实例创建时将自动基于我们的自定义镜像拉起实例。

图片

如果您不想要通过镜像关联的方式,也可以在ROS模版中定义RunCommand来初始化您所需要的环境,可以按照喜好随意选择两种方式中的一种。

3.3 运维编排模版填写

接下来还剩最后一步:定义微调运维操作。

图片

运维操作是指使用通过运维编排(OOS)对创建的资源进行自动化运维。简单来说,在这里我们的目的是利用OOS及其集成的能力向目标ECS下发微调指令。

您在微调中需要的参数以及各种限制关系都可以通过您编写的OOS模版进行填写或选择。这些参数最终将组装成为Shell或Python脚本下发到指定ECS上从而执行微调任务。编写好的模版呈现效果长下面这样 :

图片

微调操作中的参数是通过OOS模版Parameters字段设置的,而Parameters中设置的参数最终会在RunCommand中被引用,下面给出一个简单的示例帮助您理解OOS模版。详细示例参考文末给出的示例模版链接。

FormatVersion: OOS-2019-06-01
Description: 执行指定微调脚本运维操作
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      zh-cn: 地域ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  workingDir:
    Type: String
    Default: /root/ChatGLM-Efficient-Tuning
    Description: 脚本执行路径
   ...
Tasks:
    Properties:
      commandContent: |-
        #!/bin/bash
        write your finetune script here
      workingDir: '{{workingDir}}'
      instanceId: '{{ ACS::TaskLoopItem }}'
      commandType: RunShellScript
      timeout: '{{timeout}}'

与ROS模版类似,我们也提供了一个执行ChatGLM微调任务的OOS模版供您参考,或者您也可以在OOS控制台编写您的OOS模版来定制运维操作。

4.发布服务

至此,创建一个大模型微调服务的所有必要操作都已经完成,点击“保存并提交审核”即可在审核通过后成功发布服务!!!

经过以上步骤,用户将在计算巢服务页面看到您刚刚创建的大模型微调服务,用户点击即可部署属于自己的大模型微调服务,并且一键执行微调,真正做到零代码实现微调。

图片

总结

本文详细介绍了如何在计算巢中发布一个大模型微调服务。通过计算巢在私有化部署场景下提供的一键部署、高效运维等多种能力,最大程度上简化了大模型部署和微调的流程,使大模型的使用门槛降低最低。欢迎各位来计算巢试用体验~~

参考模版链接

ChatGLM微调服务发布ROS模版:https://github.com/aliyun/ros-templates/blob/master/compute-nest-best-practice/opensource/chatglm-finetune/template.yaml

ChatGLM微调OOS模版:https://github.com/aliyun/ros-templates/blob/master/compute-nest-best-practice/opensource/chatglm-finetune/oos/finetune.yaml

点击立即免费试用云产品 开启云上实践之旅!

原文链接

本文为阿里云原创内容,未经允许不得转载


计算巢实现大模型微调——如何发布一个微调服务
作者
阿里云云栖号
许可协议
CC BY 4.0
发布于
2023-08-27
修改于
2024-12-23
Bonnie image
尚未登录