Analytics-Zoo:统一的大数据分析+AI平台|阿里云峰会 开源大数据专场

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 2019阿里云峰会·上海开发者大会于7月24日盛大开幕,本次峰会与未来世界的开发者们分享开源大数据、IT基础设施云化、数据库、云原生、物联网等领域的技术干货,共同探讨前沿科技趋势。本文整理自开源大数据专场中英特尔资深架构师利智超先生的精彩演讲。

开源大数据专场PPT下载

2019阿里云峰会·上海开发者大会于7月24日盛大开幕,本次峰会与未来世界的开发者们分享开源大数据、IT基础设施云化、数据库、云原生、物联网等领域的技术干货,共同探讨前沿科技趋势。本文整理自开源大数据专场中英特尔资深架构师利智超先生的精彩演讲。

一、Why Analytics-Zoo

1. 项目背景

英特尔先后发布了两个开源的项目,BigDL项目和Analytics -Zoo项目。在2015到2016年左右,如果想找到一个深度学习的项目直接搬迁到Apache Spark里面是比较困难的,因为当时PyTorch,TensorFlow都还没有兴起。英特尔发现了使用Lua实现的Torch框架,所以顺势借鉴了Torch的很多设计理念,并重新开发了Java版的Torch,叫BigDL。英特尔使用MKL和MKL-DNN加速单机版的训练速度,再结合Spark的分布式计算能力,便可以把一个单机版的Java Torch在Spark上分布式执行。
image.png

随着PyTorch, TensorFlow的流行,英特尔发现很多的合作客户的反馈是希望自己用TensorFlow完成一个模型的开发之后,不需要改代码,让TensorFlow、PyTorch或Caffe的模型直接无缝对接到Spark上,直接进行分布式部署。因此,英特尔希望通过Analytics-Zoo直接对接TensorFlow、BigDL以及Caffe,再借助Spark分布式的处理能力,做分布式的部署和训练。

2. 开发背景

数据分析pipelines:

下图展示了实现一个分布式的端到端的数据分析的流程。数据分析的过程非常复杂,不仅黑色部分模型定义或者模型训练本身复杂,完成一个端到端的流程需要大量的组件配合使用。比如,完成一个分布式项目,需要考虑集群如何管理,资源怎样调度。回到数据本身,数据有多种格式,数据存储有非常多的数据源。无论是存在阿里云OS或在亚马逊,异或自己管理的HDFS和HBase,都需要对接不同的数据源。访问数据源之后还需要考虑如何做数据清洗、特征提取以及特征转换等方面的工作。
image.png

大数据数据分析平台版图:

英特尔希望在完成整个端到端的大数据 + AI平台时,并不是重新开发各个组件,而是拥抱整个开源的社区,拥抱整个大数据的生态。从下面的版图可以看到,在整个大数据生态里面有非常多方便使用的组件。比如,基于YARN完成整个集群的管理,通过对接Kafka,Spark Streaming完成流式的处理。此外,Spark本身也提供了非常多Data Storage的支持,帮助操作者很方便的读取HDFS、Parquet、Avro和HBase等格式。解决了以上问题之后,Spark还提供了大量有用的API。如基于Spark Core,使用Spark SQL和Spark DataFrame完成数据的ETL,特征提取,数据清洗等工作。同时,还可以利用Spark MLlib做一些传统的机器学习工作。
image.png

深度学习框架无缝对接大数据分析平台:

上面的版图中唯一缺失的是深度学习的框架。如何将现有的流行的深度学习框架(TensorFlow、PyTorch以及Caffe),无缝对接到Spark或Hadoop的整个生态中?直接将TensorFlow等深度学习框架定义的模型嵌入Spark并不是自然的。因为深度学习框架在研发时更多是托身于深度学习领域,主要为了更好的使用深度学习算法训练模型和调试模型,但并没有过多考虑到现有的大数据的生态和开源的组件。可以发现深度学习框架与大数据分析平台中间存在断层,而Analytics-Zoo正是想弥补这个断层,帮助大数据工程师们拥抱AI的框架,在自己所管理的数据集上提供AI能力。
image.png

以图搜图:

实现以图搜图的功能最关键的环节是图片特征的提取。做POC时候有两个步骤,首先使用SSD模型完成特征检测。如下图所示,把小鸟背景的噪音去掉,提取出小鸟主体,再借助DeepBit Model完成特征提取。尽管通过Caffe1完成POC非常方便,但在真正生产线上部署时需要面对十亿级以上图片,并不是很容易。客户方没有那么足够的GPU集群,但有大量的CPU集群可供使用。那么Spark + Analytics-Zoo便是最好的组合,Spark可以对接HBase和HDFS,完成数据的分布式的预处理。同时Analytics-Zoo可以直接加载Caffe模型。无需改任何代码,就可以方便地把将整个HBase到HDFS的端到端的流程打通。
image.png

3. Analytics-Zoo设计理念和目标

无论用户开发的环境是Laptop或是单机Server,Analytics-Zoo希望实现将开发完成的原型,在基本不改代码的前提下,在Spark集群中做分布式的训练以及分布式的部署。目前的分布式训练包含Data parallel和Model parallel。Analytics-Zoo实现的是Data parallel模式,同时也在积极的考虑引入Model parallel的支持。
image.png

二、What is Analytics-Zoo

1.Analytics-Zoo具体功能

Backend:Analytics-Zoo可以直接支持TensorFlow、Keras、Caffe1和BigDL等,同时英特尔正在积极开发对PyTorch的支持。
High level Piplines:这层支持一些具体的API。比如,表示用户在使用Spark对数据进行加载和转换时,拿到一个Dataframe,nnframes直接将Dataframe放到TensorFlow模型中进行训练和部署。
Feature Engineering:在单机训练时,很多有用的特征工程的Python库是可以直接使用的。但Analytics-Zoo更需要一个分布式库的特征工程的应用,所以英特尔基于Spark Core的一些能力,为用户提供了分布式特征工程的应用。
Model and UseCase:再往上是一些传统的工作。这一层需要预置大量模型,参数以及预处理的pipeline,Analytics-Zoo中这些都是直接提供好的。若用户没有特殊需求,理论上可以打开即用或者基于这一层做一些扩展就可以运用在生产线上。
image.png

2. Analytics-Zoo具体实现:

Spark Job执行流程:

从Analytics-Zoo的具体功能中可以发现它是一个标准的Spark Job。下图展示了一个Spark Job的执行流程。首先,用户只需要把环境在Driver中准备好。之后,Analytics-Zoo将用户需要的所有依赖打包,自动把模型序列化,上传到远端的集群。而大部分Python用户使用YARN跑的时候常常遇到一个痛点,在本地装好Python的dependency,但真正部署的时候没有特别好的方式。Analytics-Zoo借助Spark Core的能力,把Python的dependency自动打包好帮助用户自动上传。同时,用户大量依赖的英特尔MKL和MKL-DNN,在其集群上部署时也不需要安装,Analytics-Zoo已经把所有的依赖打包好。在实现一个分布式的模型训练时,不需要到每一台机器启动额外的进程进行训练。依赖于Spark功能,Analytics-Zoo会把整个工作流程透明化,处理好,为用户提供干净,直接的体验。
image.png

通讯方法改进:

其实Spark本身以及Spark ML都是依赖下图的AllToOne模式。首先,Spark会把数据切成很多份,每一份数据都会对应一个Worker,训练出一个完整的模型。模型本身有梯度和参数,这些梯度和参数会全部发送到Driver做聚合。显而易见,这种AllToOne通讯模式存在很多缺点,在Driver节点会形成单点瓶颈。如果要大规模的训练深度学习的模型,光靠AllToOne模式肯定是不行的。
image.png

业界广为使用的模式,无外乎是加入All Reduce或使用其它服务器帮助加速整个参数的聚合过程。在Analytics-Zoo中,较为特殊的一点是整个过程中没有引入任何外部的PS和外部进程,只是依赖Spark本身的API做本地实现。Analytics-Zoo会把模型梯度切成很多份,每一份都交由不同Block Manager机器聚合,相当于把压力从一台Driver交给多台机器。没有引入外部PS的好处是用户在做模型训练或模型部署的时候,他们看到的就是一个标准的Spark task,用户可以使用现有的Spark的Web工具做debug,monitering等操作。
image.png

3.编程举例

TF & Keras:第一部分是数据。用Spark去读RDD,只要Spark能够识别的数据源都能支持。拿到Spark RDD之后,无论是使用Spark原生的Transformer,还是Analytics-Zoo的Transformer异或用户自己实现的Transformer,都可以把原始RDD转换成模型所需要的rdd。
第二部分,模型定义。下图中间代码就是原生的TF的模型代码,用户在单机用TF转POC之后,模型直接就可以用。
第三部分,TFOptimizer。TFOptimizer是一个分布式的Optimizer,只要提供一些优化方法,如LOSS function,它就可以自动将TF的Graph序列化,然后广播到Spark的各个节点完成分布式训练。参数同步也都是完全透明化,用户只需要在操作端节点提交一个Spark Job就可以。
image.png

Dataframe + Keras:第一步,用Spark读Parque,转成Dateframe,拿到Dateframe之后再做转换,最后拿到模型所需要的Dateframe的输入。
第二步使用完整的Keras API,定义Sequential的模型。下图的例子中加入了卷积层,pooling层和Flatten层面。
第三步利用NNEstimater将模型序列化,做broadcast以及模型同步。用户唯一需要做的就是告诉NNEstimater,LearningRate和Batchsize的值,训练多少Epoch,指定FeaturesCol。可以发现,NNEstimater的语法与Spark ML Pipeline基本一样,已经熟悉或者大量使用过Spark ML pipeline的用户是非常好上手的。
image.png

3. Distributed Model Serving

Model Serving方面Analytics-Zoo并没有做特别多的工作,但是给用户提供的是一个Java的API, 帮助用户无缝对接现有的Java Backend server。如果是Flink,可以使用Flink + Model Serving Java API,完成oneline的inference工作。Inference和training的执行过程不一样,如果只是做inference,则可以改变graph模型,大大提升整个inference速度。Analytics-Zooy依靠OpenVINO框架,帮助加速整个inference过程。
image.png

三、Analytics-Zoo Use Cases

1.美的实践案例

美的在云上已经申请了一个YARN的集群,同时也在TensorFlow Zoo上发现了非常好的模型SSDLite,稍作修改后就能够非常好的实现产品缺陷检测的功能。美的希望打通从端到端的数据源,在云上YARN集群做模型的训练和部署。实现过程是美的会安排一个机器人实时检测流水线上微波炉的生产情况,如拍照检查微波炉的标签是否贴好,螺丝是否拧紧等。检查数据会实时反馈到后面的YARN集群,再结合Analytics-Zoo数据,直接加载TensorFlow的模型,训练模型。最后结合Model Serving Java API,将训练好的模型直接在美的的Web Service上进行部署,完成端到端的产品缺陷检测。
image.png

4. MasterCard案例

MasterCard已经有了大量的CPU集群,Spark集群和Spark MLlib ALS的模型,基于Spark完成了整个端到端的推荐工作。随着深度学习的算法的兴起,MasterCard希望引入NCF以及较流行的WAD的深度学习的模型的算法。Analytics-Zoo可以用TensorFlow定义NCF和WAD的模型,之后便可以直接对接原来写好的Spark整个数据流的pipeline,打通端到端的数据预处理,模型训练和模型部署,加载深度学习的推荐能力。
image.png

除对外输出技术影响力,英特尔也十分重视在开源社区的投入,近期也与 Apache Flink 社区深度合作举办了首届 Apache Flink 极客挑战赛,致力于造福更多开发者。大赛聚焦机器学习与计算性能两大时下热门领域,参与比赛,让自己成为技术多面手,还有机会赢得 10W 奖金。

image.png
大赛详情请点击: https://tianchi.aliyun.com/markets/tianchi/flink2019

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
20天前
|
人工智能 Cloud Native 数据管理
媒体声音|重磅升级,阿里云发布首个“Data+AI”驱动的一站式多模数据平台
在2024云栖大会上,阿里云瑶池数据库发布了首个一站式多模数据管理平台DMS:OneMeta+OneOps。该平台由Data+AI驱动,兼容40余种数据源,实现跨云数据库、数据仓库、数据湖的统一数据治理,帮助用户高效提取和分析元数据,提升业务决策效率10倍。DMS已服务超10万企业客户,降低数据管理成本高达90%。
|
16天前
|
存储 人工智能 分布式计算
大数据& AI 产品月刊【2024年10月】
大数据& AI 产品技术月刊【2024年10月】,涵盖本月技术速递、产品和功能发布、市场和客户应用实践等内容,帮助您快速了解阿里云大数据& AI 方面最新动态。
|
20天前
|
存储 人工智能 文字识别
利用AI能力平台实现档案馆纸质文件的智能化数字处理
在传统档案馆中,纸质文件管理面临诸多挑战。AI能力平台利用OCR技术,通过图像扫描、预处理、边界检测、文字与图片分离、文字识别及结果存储等步骤,实现高效数字化转型,大幅提升档案处理效率和准确性。
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI驱动的个性化学习平台构建###
【10月更文挑战第29天】 本文将深入探讨如何利用人工智能技术,特别是机器学习与大数据分析,构建一个能够提供高度个性化学习体验的在线平台。我们将分析当前在线教育的挑战,提出通过智能算法实现内容定制、学习路径优化及实时反馈机制的技术方案,以期为不同背景和需求的学习者创造更加高效、互动的学习环境。 ###
40 3
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
医疗行业的语音识别技术解析:AI多模态能力平台的应用与架构
AI多模态能力平台通过语音识别技术,实现实时转录医患对话,自动生成结构化数据,提高医疗效率。平台具备强大的环境降噪、语音分离及自然语言处理能力,支持与医院系统无缝集成,广泛应用于门诊记录、多学科会诊和急诊场景,显著提升工作效率和数据准确性。
|
27天前
|
机器学习/深度学习 人工智能 运维
智能运维:大数据与AI的融合之道###
【10月更文挑战第20天】 运维领域正经历一场静悄悄的变革,大数据与人工智能的深度融合正重塑着传统的运维模式。本文探讨了智能运维如何借助大数据分析和机器学习算法,实现从被动响应到主动预防的转变,提升系统稳定性和效率的同时,降低了运维成本。通过实例解析,揭示智能运维在现代IT架构中的核心价值,为读者提供一份关于未来运维趋势的深刻洞察。 ###
78 10
|
22天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
26天前
|
SQL 人工智能 DataWorks
DataWorks:新一代 Data+AI 数据开发与数据治理平台演进
本文介绍了阿里云 DataWorks 在 DA 数智大会 2024 上的最新进展,包括新一代智能数据开发平台 DataWorks Data Studio、全新升级的 DataWorks Copilot 智能助手、数据资产治理、全面云原生转型以及更开放的开发者体验。这些更新旨在提升数据开发和治理的效率,助力企业实现数据价值最大化和智能化转型。
212 5
|
1月前
|
人工智能 关系型数据库 数据中心
2024 OCP全球峰会:阿里云为代表的中国企业,引领全球AI网络合作和技术创新
今年的OCP(Open Compute Project)峰会于2024年10月14日至17日在美国加州圣何塞举行,在这场全球瞩目的盛会上,以阿里云为代表的中国企业,展示了他们在AI网络架构、液冷技术、SRv6和广域网等前沿领域的强大创新能力,持续引领全球合作与技术创新。
|
1月前
|
机器学习/深度学习 自然语言处理 算法
大数据与机器学习
大数据与机器学习紧密相关,前者指代海量、多样化且增长迅速的数据集,后者则是使计算机通过数据自动学习并优化的技术。大数据涵盖结构化、半结构化及非结构化的信息,其应用广泛,包括商业智能、金融和医疗保健等领域;而机器学习分为监督学习、无监督学习及强化学习,被应用于图像识别、自然语言处理和推荐系统等方面。二者相结合,能有效提升数据分析的准确性和效率,在智能交通、医疗及金融科技等多个领域创造巨大价值。
102 2