Fork me on GitHub

从模型到服务:阿里云机器学习PAI一站式模型开发和部署实

以下文章来源于 https://zhuanlan.zhihu.com/p/639352957

从模型到服务:阿里云机器学习PAI一站式模型开发和部署实

导读 本次分享题目为从模型到服务:阿里云机器学习 PAI 一站式模型开发和部署实战。

全文目录:

  1. 影响模型开发效率的问题

  2. 预训练模型与开源模型社区

  3. Demo:PAI一站式模型开发实战

  4. 总结与展望


分享嘉宾|罗义云,阿里巴巴 资深技术专家

编辑整理|river

出品社区|DataFun


01/影响模型开发效率的问题

1.机器学习流程

整个机器学习流程可以分为三个阶段:数据准备、模型开发和模型部署。接下来,我们从更细颗粒度对这三个阶段进行拆解与分析,从每个阶段的主要工作内容与主要参与者进行介绍。

  • 数据准备:数据准备是机器学习的第一步。该阶段主要有数据采集、数据标注和数据预处理,为模型开发做好准备工作。主要参与者是数据科学家。
  • 模型开发:建模(模型、算法实验)、模型训练、模型评估。主要参与者是算法科学家。
  • 模型部署:模型在离线部署、监控算法效果与性能等。主要参与者是开发和运维工程师。

接下来,我们将重点聚焦在模型开发阶段。

2.模型开发阶段面临的问题

模型开发阶段主要面临三大问题:难上手、效果差、不经济。

其具体表现在:

  • 难上手:深度学习网络门槛较高,开发环境搭建比较困难,训练任务容易出错,而且出错问题难以排查
  • 效果差和不经济:如果需要追求算法效果,则需要更大数据集,更深网络结构,更多的迭代次数,势必会增加计算资源,训练时间更长。考虑到实际成本,不得不牺牲算法质量。

上述问题会导致模型开发效率的低下,会影响算法上线的时效性,最终会导致用户的业务问题迟迟无法得到很好解决。

3.用户痛点

2020年algorithmia公司开展的一项调研发现约70%的用户需要耗时超过一个星期才能将一个模型部署到生产环境中,其中40%的用户需要花费一个月甚至更长。那么该问题是否有解决方案呢,其实是有的,接下来我们看下解决方案------预训练模型与开源模型社区。

02/预训练模型与开源模型社区

1.预训练模型与开源模型简介

如果问现在AI领域最火的是什么,首先想到就是chatGPT。时间往前推一两年,比较火的应该是HuggingFace。HuggingFace的价值在于提供大量开源预训练模型,以及配套的transformers库,使得AI开发进入平民化时代。在2022年11月的云栖大会上,阿里巴巴达摩院也重磅推出了中文开源模型社区ModelScope。

预训练模型和开源模型社区深刻的改变了用户模型开发的范式。在预训练模型出现之前,算法科学家训练一个模型,需要从构造深度神经网络开始,一步步进行搭建。预训练模型出现之后,用户只需要提供数据集进行微调训练,即fine-tune就可以了。其结果是,用户可以以较低成本得到比较理想的模型。

开源模型社区将SOTA模型聚集在一起,方便用户查找,同时提供了友好的编程接口,进一步提高了模型开发效率。

同时,我们注意到,以预训练模型作为模型开发的起点,不仅仅是开源模型社区在推动,一些云厂商也早已入局,比如AWS、Azure等。AWS SageMaker的Jumpstart就为HuggingFace、Pytorch Hub等开源模型社区的模型提供了一站式开发和部署的功能,而AzureML近期也与HuggingFace合作,提供了将其中的模型一键部署成Azure Endpoints在线服务的功能。

阿里云敏锐的意识到大模型时代的到来,在整体上做了布局,我们来看下阿里云是如何进行大模型开发和应用的。

2.阿里灵杰

阿里灵杰大图如下图所示,阿里灵杰是构建于阿里云基础设施之上的大数据+AI一体化平台,大模型从开发到应用的全流程,都可以在阿里灵杰上得到相应的支持。阿里灵杰不仅支持大模型的模型和部署,也通过对外开放服务、行业模版和解决方案等多种透出方式来赋能不同行业的客户:

阿里灵杰有4大特点:Scale、Simplicity、Speed、Scenario,具体如下:

  • Scale:大数据、大规模、大应用
  • Simplicity:标准,像调用函数般易用
  • Speed:极致的运行、开发和运维效率
  • Scenario:向场景而生,支持不同场景的需求

作为阿里灵杰的智能化底座,机器学习平台PAI很好支持了大模型的训练和部署。接下来,我们具体看PAI是如何做到这一点的。

3.PAI预训练模型开发架构

阿里云机器学习平台PAI的整体架构如下图:

从PAI架构图中我们可以看到PAI由4个模块组成:机器学习框架与云计算基础设施、PAI核心引擎、PAI预训练模型开发和AI应用层。

  • 机器学习框架与云计算基础设施:该部分主要是PAI依赖的云计算基础设施和机器学习框架。首先是基础硬件(CPU/GPU)、容器服务(ACK)和计算资源(ECS)部分,往上是云原生AI基础平台(DLC),再之上是机器学习框架。PAI支持目前的主流机器框架,如Tensorflow、Pytorch、EasyTransfer、Transformers等。
  • PAI核心引擎:PAI大规模并行分布式训练引擎(PAI-Whale/EPL)和PAI推理加速(PAI-Blade)与在线预测服务(PAI-EAS)
  • PAI预训练模型开发:基于上述核心能力,PAI支持大模型的训练和部署。首先,从公共模型仓库找到预训练大模型,提供数据集进行fine-tune,训练得到的模型可以通过对应接口注册到PAI模型库中,然后将其部署到EAS上,提供离线推理或者在线服务功能。
  • AI应用层:最后,通过AI开发和AI应用对客户提供相应的支持。

如果引入大模型开发流程会更完整一些,接下来我们看下引入了大模型开发流程之后的详细开发架构。

4.PAI预训练模型开发架构详解

PAI预训练模型开发架构如下图:

该图中,最上面一条链路就是大模型开发的流程。

首先,我们通过灵杰的大数据引擎,高效地读取超大规模的训练数据集,接下来用PAI大规模分布式训练引擎PAI-Whale进行高效、低成本的训练,得到预训练大模型,然后该模型就可以供下游fine-tune任务使用。预训练模型的fine-tune和部署之前已经介绍过了,这里就略过了。

需要指出的是,在预训练模型的训练和fine-tune支持上,PAI采用的是完全相同的架构,提供了相同的编程接口和用户体验,并且提供了业界领先的规模和效率。

5.PAI控制台详解

之前提到,大模型的训练和部署主要是靠PAI的三驾马车来实现的:交互式建模DSW、容器训练DLC和模型在线服务EAS。PAI的控制台截图如下:


  • DSW:提供小数据量、较少迭代次数的快速实验能力,可以让用户在较短时间内看到效果,以此可以判断代码或者逻辑的正确性。
  • DLC:支持用户进行全量数据、更多迭代次数的分布式训练,高效低成本得到最终模型。
  • EAS:提供模型部署和在线服务的能力。

接下来,我们用一个实际案例来演示PAI如何做到预训练模型的训练与部署的全流程支持的。

03/Demo:PAI一站式模型开发实战

我们回到之前介绍的ModelScope,在ModelScope上找到PALM2.0中文文本生成预训练模型,通过fine-tune获得对联生成模型,并通过EAS进行部署。

首先我们在ModelScope上获取到预训练模型,并且下载好对联数据集。接下来,我们进入到PAI控制台,整个流程涉及到PAI的三个子模块:

  • 首先,在小数据量下用交互式建模DSW编写代码
  • 其次,用容器训练DLC运行全量数据的分布式训练任务
  • 最后通过模型在线服务EAS进行部署。

1.测试预训练模型对联生成的效果

在fine-tune之前,我们先在交互式建模DSW中编写代码,测试预训练模型的效果。


预训练模型对联生成的结果如下,我们可以看到结果是比较差的:

接下来,我们用对联数据集对其进行fine-tune训练。测试结果如下,可以发现fine-tune之后的效果大大提升了:

2.用容器训练运行全量数据的训练任务

该部分我们将数据集改成全量数据,在容器训练(DLC)中配置好参数,然后点击提交。

3.模型部署

该部分我们采用模型在线服务(EAS)对训练好的模型进行部署,并提供在线服务。之后用户可以调用该服务,比如,通过钉钉机器人以对话方式体验模型在线服务。在ModelScope上,除了文本生成预训练模型外,还有文生图等预训练模型。

4.MLOPS:以模型为中心的机器学习中心管理

我们回到第一部分的机器学习流程,来看看要提升机器学习端到端的效率,还有哪些需要解决的问题:

  • 数据准备:数据集管理、数据质量分析、数据集加速
  • 模型开发:依赖管理,实验管理、Debugging、模型评估
  • 模型部署:模型打包、A/B Testing、模型监控

上述问题可以通过提供一系列开发流程的最佳实践来解决,也需要配套一些效率工具,最终目标让机器学习流程更加顺畅,更加丝滑,更加自动化。让数据科学家专注数据准备,算法科学家专注模型开发,工程的问题交给平台就好了。这些最佳实践和效率工具的组合就是Machine Learning Ops(MLOps)。用一句话来概括,MLOps就是以模型为中心的机器学习生命周期管理。

总结与展望

PAI作为AI工程平台,是联通算法创造力和业务生产力之间的桥梁。我们愿意将该桥梁搭建好,一方面支持算法快速创新,另一方面也支持应用快速落地。

今天的分享就到这里,谢谢大家。


本文地址:https://www.6aiq.com/article/1687667121613
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出