PAI:一站式云原生 AI 平台
本文是《飞天大数据产品价值解读系列》之《PAI:一站式云原生 AI 平台》的视频分享精华总结,主要由阿里云机器学习 PAI 团队的产品经理高慧玲(花名:玲汐)向大家介绍了阿里巴巴整体的 AI 情况以及一站式云原生的 AI 平台 PAI,并且做了简单的 DEMO 演示。 以下是视频内容精华整理,主要包括以下三个部分:1.阿里巴巴整体 AI 介绍;2.PAI:一站式云原生 AI 平台;3.快速上手演示案例。
一、阿里巴巴整体 AI 介绍
阿里巴巴致力于打造 A+B+C+D+E 的 AI 研发、应用和生态合作体系。经过前面的几次直播,相信大家已经了解 MaxCompute、Flink 等大数据计算引擎。在我们的 AI 架构里,算法和大数据不分家,如下图所示,AI 架构最底层由算法(A)、大数据(B)以及计算能力(C)提供了我们整个 AI 架构的基础能力。基于 ABC 孵化出了各个垂直领域里的 AI 应用场景(D),这些应用场景也在不断的反哺我们下层的算法及算力的不断前进和衍生。在 ABCD 之上,构建基于 AI 的生态体系(E)。阿里巴巴认为只有全面布局上述五个方面,形成软硬一体、应用驱动的研发形态,才能在人工智能时代形成强大技术优势。
基于上图所示的架构所蕴含的指导思想,阿里在 AI 领域打造了完整的技术能力体系 。如下图所示,最下面的灰色部分是基础设施层,提供 CPU、GPU、NPU、FPGA 等在 AI 中发挥重要作用的异构计算硬件。中间的橙色部分是产品 PaaS 层,是阿里 AI 能力中能力最厚实的产品体系层,也是本文重点要介绍的部分。
*AI 云服务,包括虚机、容器、存储、加速芯片等底层资源的管控能力。
*高性能计算,包括多种计算加速以及引擎加速的能力。
*AI 系统框架既包括了阿里自研的各种框架以及模型,同时兼容丰富的开源生态,并且阿里一直和开源社区共建,为大家提供更好建模迭代和部署能力。
*AI 托管平台层是直接面向 AI 用户的产品层,PAI 推出了从数据准备到模型训练,再到最终的模型部署,全链路、全环节上的开发以及应用平台。
整个 AI 体系孵化出众多的 SaaS 垂直领域能力,包括图像、视觉、语音、NLP、推荐系统等等,用来帮助用户提升数据资产利用率,解决不同场景需求。
前面介绍的 AI 技术栈已经在阿里集团内部非常多的应用场景下进行了渗透和落地。如下图中所示的众多丰富业务场景下,会产出大量比如电商广告、娱乐、地图、物流等不同类型的数据,阿里巴巴 AI 体系能力为这些数据提供了价值提升和创造性业务加持。
我们相信上述的海量数据以及多样的场景在实际应用中具有广泛性和通用性,并且也希望在阿里内部沉淀的经验能够更好地为外部客户带来相同的业务价值提升。因此阿里逐渐地打磨出了阿里巴巴 PAI 平台对外提供服务,其整个发展历程如下图所示。接近十年的发展,PAI 已经脱变为优秀的一站式云原生 AI 平台。
二、PAI:一站式云原生 AI 平台
下图是 PAI 目前的完整产品矩阵,从中大家可以看到我们已经形成了非常丰富的产品形态,包括智能标注、可视化建模、交互式建模、云原生深度训练、自动学习等离线环节产品,同时我们训练出来的模型可以通过在线的预测服务与实际业务系统进行对接。并且我们还建立了“商品”丰富的 AI“淘宝”平台(智能生态市场),大家可以在市场中沉淀各种算法和模型,进行交换和共享。
众所周知,一个完整的 AI 开发链路主要包括数据准备、实验构建及模型训练、到最终的模型部署与在线服务,接下来重点会介绍 PAI 的云原生产品家族,包括上图中高亮的 PAI-DSW 交互式建模平台、PAI-DLC 云原生深度学习训练平台、PAI-EAS 在线预测体系以及其中 PAI-Blade 编译优化产品,我们会按照用户的使用链路进行介绍。
(一)实验构建:PAI-DSW2.0
完成数据准备之后,用户会从小规模的建模和实验构建部分开始进行 AI 实践。PAl-DSW(Data Science workshop)是 PAI 平台推出的交互式编程环境,是一款针对 Al 开发者量身打造的云端机器学习开发 IDE,集成了开源的 JupyterLab,并以插件化的形式进行了深度定制化开发,无需任何运维配置,可直接开启 Notebook 编写、调试、运行 Python 代码,是 PAI 建模产品中使用方式最为灵活的一个产品,深受广大 AI 开发者的喜爱。今年 PAI 基于云原生的架构,进一步推出推出了产品形态更丰富,使用方式更多样,使用架构更安全的 PAI-DSW2.0,其主要的新特色包括多 AI 编程模式、灵活开放的 AI 开发环境、安全高效以及集成易用,具体如下图所示。
下图是 PAI-DSW2.0 的技术架构。从中可以看到它完全基于云原生的架构,基于 ACK 的调度体系,向下对接了多种灵活的存储,向上我们通过不同的插件不断的扩展和丰富我们的产品能力,同时把这些能力和接口也对用户进行了开放。
在 PAI-DSW2.0 中,我们提供了灵活开放的 AI 开发环境,无论用户习惯于用轻量的 JupyterLab 交互式 AI 开发,还是习惯于用 VS Code 做复杂工程的开发和管理,或者说习惯于直接在 terminal 里进行命令行或者 vim 开发,DSW 都可以满足。基于以上多样和灵活的产品形态,我们在云上提供了云原生的在线 AI 建模方案,非常适用于一些在线开发场景,比如说团队的 AI 在线协作开发,线上 AI 教学以及本地的 AI 研发迁移上云。当前除了天池社区的大量开发者用户外,PAI-DSW 还吸引了不同行业的企业客户,比如在线教育行业、互联网消费行业以及 AI 创业公司等。
(二)大规模分布式训练:PAI-DLC
在算法实验到出一定效果之后,用户通常需要用大规模的生产数据来进行的模型生产训练。在这一阶段,很多开发者以及公司都会面临在数据量规模扩大带来的问题,比如说分布式的扩展,以及模型训练加速。针对这样的问题,PAI 在今年重磅推出了 PAI-DLC 云原生深度学习训练平台,其架构图如下图所示。可以看出,PAI-DLC 是 Kubernetes-native 架构,可以做到完全的容器化部署和使用。 基于 ACK/ECI,PAI-DLC 能够提供资源的弹性扩展,进行不同任务下的资源调度和分配,向下兼容支持了非常多的 CPU 机型以及 GPU 机型,无论面向大规模稀疏数据的训练,还是面向感知类场景的训练,都可以快速适配合适的云原生资源。另外,PAI-DLC 的核心能力是提供支持接近线性加速的内核,可以让训练任务在多种引擎上做到性能增强。
下图 benchmark 展示了 DLC 上的性能数据和开源框架的对比,下图(左)展示的是在很多电商广告、推荐信息流等场景下会遇到的大规模的稀疏矩阵的训练加速问题,PAI-DLC 基于 Parameter Server 架构能够支持到百亿特征,千亿样本以及上千个节点的并发训练,对比开源框架最高能做到 7 倍的性能提升。另外在一些深度学习感知类场景中--比如 NLP、图像等--算法开发常面临参数量巨大的问题,有时可能达到几亿级别,做到高效的分布式扩展往往也会成为巨大的挑战。PAI-DLC 针对性提供了稠密分布式训练加速的能力,通过 benchmark 数据的对比(下图右),可看出集群规模越大的情况下,PAI-DLC 的性能优势越明显。 总的来说,无论在推荐广告,还是音视频解析、语音识别、语义识别等场景,都可以应用 PAI-DLC 获得非常好的训练性能加速效果。
基于云原生架构以及极致的性能加速体验,PAI-DLC 在云上吸引了非常多的人工智能企业以及互联网 Top 企业客户。最近某个自动驾驶行业客户的实践案例中,通过 PAI-DLC 产品的加速,一个大规模模型的训练时间从 5 天缩短为 5 小时,所消耗的分布式资源仅 14.5 倍,足以见加速效果的显著。遇到类似分布式加速的难题,欢迎来试用 PAI-DLC,在分布式训练这个环节上做到降本提效。
(三)模型推理服务:PAI-EAS+Blade
(1)PAI-EAS
在模型构建及训练完成之后,将模型应用到业务中的重要环节是让模型去预测业务中源源不断产出的未知数据,通常有离线预测推理/在线预测推理两种方式。现在越来越多的场景追求极致的实时性,因此 PAI 在模型应用到业务的最后一公里环节推出了在线模型推理服务,其中核心产品是 PAI-EAS,其架构图如下所示。
PAI-EAS 是完全基于阿里云容器服务 ACK 的云原生服务,其主要优势有多环境、灵活弹性、面向生产以及丰富的产品能力,具体如下图所示。
基于上面的产品优势,PAI-EAS 对内对外都服务了非常多的客户,在最近的双十一大促中,EAS 支持了智能客服等众多核心业务,其中单模型服务峰值高达 40 万 QPS,依然平稳度过。在线推理服务不同于离线训练操作,需要资源常驻,并且随着业务量的提升,模型服务的线上 QPS 通常也会不断提升,这就带来了资源需求增长的问题。在这种情况下,怎么能够做到不影响业务 QPS 增长,降低成本投入,是很多 AI 公司,尤其是 AI 创业公司面临的“两难问题”。
(2)PAI-Blade
为了解决这个“两难问题”,PAI 在在线服务环节推出了 PAI-Blade 这款工具型产品,为用户在资源常驻的在线服务环节提供降本提效的利器,其整体架构如下图所示。在 PAI-Blade 中,我们将模型压缩、系统优化和模型分析等完整技术能力通过最简单最易用的产品形态提供出来,用户可以不需要理解底部处理的逻辑,只需要提交模型,然后经过大约十分钟的优化任务,就可以直接获得一个经过加速的新模型,然后将新模型做相应的部署和更新就可以得到一个效率更高的模型在线服务。在整个过程中,甚至可以做到零输入优化,获得精度无损的优化模型,为线上服务提效降本。
PAI-Blade 已经帮助阿里内部非常多的业务场景获得了不错的模型优化效果,比如在安全部鉴黄业务场景中的优化效果达到了 5.48 倍,意味着线上 GPU 卡消耗仅需原先的约 20%。
同时,PAI-EAS+Blade 的组合拳在云上也有很多客户的实践,目前在在线直播、在线教育以及移动分发场景下都有应用和落地。例如某典型的智能教育企业客户的应用案例中,他们自己实现了业务 OCR 模型,应用在识别学生作业等场景。由于业务流程复杂造成的模型复杂,导致在线推理服务需要上百张卡才能支持。用户模型在 PAI-Blade 进行优化之后,顺利地将资源成本降低到了原先的一半,资源开销节省 50%。未来,我们将推出更完整的推理服务体系,让大家快速的将优化后的模型部署到端侧,做到云/边/端的扩展,以及无论在哪种环境下,都可以实现推理服务的降本提效。
三、快速上手演示案例
最后,通过 PAI-DSW 和 PAI-EAS 的一个小案例,让大家来感受一下我们产品的使用方式,也欢迎大家自己直接进行试用。下图是相关的社区和群,大家可以在其中进行关于 PAI 的交流和学习。
整个 Demo 主要包括(1)数据读取,探索与分析(2)模型构建与训练(3)模型部署三个部分。
(一)数据读取,探索与分析
在支持 Python 原生读取数据的基础之上,为了方便用户读取数据,DSW 提供了 dswmagic command 来帮助用户从 MaxCompute 项目中读取数据,同时在 DSW 中,还可以通过使用一些类似 pandas 的库来对数据进行整理和分析,同时也可以通过各种用户熟悉的库将数据可视化。比如下图所展示的是从 MaxCompute 的公开项目中读取 Iris 鸢尾花数据,并进行可视化。
(二)模型构建与训练
了解完数据后,我们就可以开始构建模型了。我们使用 sklearn 快速构建一个对 Iris 鸢尾花数据集的决策树模型,并且对模型进行可视化,代码和效果如下图所示。
(三)模型部署
在完成了上面的模型训练过程之后,我们也已经将模型导出为了 pmml 文件。接下来我们使用 EASCMD 对模型进行部署。在从 DSW 到 EAS 模型部署中,我们需要完成如下图所示的主要步骤。
这样,我们就完成了一个简单的机器学习项目从数据读取,分析,建模,训练到部署,如需要调试模型,进入 EAS 管控台就能看到刚刚部署的模型服务,点击在线调试即可,比如下图。
基于以上几个步骤,我们就完成了一个简单的数据读取,分析建模,离线模型训练,再到在线的模型部署这样的完整链路。如果大家有兴趣的话,也可以直接在阿里云官网的产品->人工智能栏目下找到机器学习 PAI 产品,来体验完整的从数据准备到模型开发训练,模型管理再到模型部署的完整全流程的一站式 AI 服务。
评论