PAI分布式机器学习平台编程模型演进之路

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 在云栖计算之旅第5期—大数据与人工智能大会上,来自阿里云大数据事业部的九丰分享了《PAI分布式机器学习平台编程模型演进之路》。他主要介绍了在集团中使用机器学习解决大数据问题时如何通过编程模型的演进逐步解决业务上的痛点。

在云栖计算之旅第5期—大数据与人工智能大会上,来自阿里云大数据事业部的九丰分享了《PAI分布式机器学习平台编程模型演进之路》。他主要介绍了在集团中使用机器学习解决大数据问题时如何通过编程模型的演进逐步解决业务上的痛点。其中,他只要分享了MapReduce、MPI、Parameter Server编程模型的演进过程。

 

以下内容根据大会视频整理而成。

什么是PAI?

PAI的全称是Platform of Artificial Intelligence,主要在使用机器学习做模型训练时提供整套链路。机器学习即服务,把机器学习作为服务对外推出,大家可以在平台上使用比较先进的机器学习算法。将多种深度学习框架集成到PAI中,同时基于深度学习框架包装成更加易用的组件。具备异构的计算服务能力,把CPU计算能力和GPU计算能力统一调度起来,异构的计算能力透明,大家的注意力是哪些机器学习算法可以帮助业务,不用关心底层资源的申请和分配。PAI也支持在线预测服务,模型一键发布。

大规模分布式机器学习的挑战

数据规模和特征会不断增加,这就会导致模型复杂度的增加,之前的模型已经不能够处理这么高的复杂度了。特征增加之后,模型变得越来越大,模型很难做到单机加载,所以在模型存储时需要做分片和切分。在常规的机器学习里面,更多的注意力放在理解业务的数据、特征,而现在的注意力会转移到模型本身,更多考虑怎么通过调整模型的结构达到更好的预测效果。

编程模型演进

MapReduce编程模型

f17e59326548624e87d4eb1b6112677e2ab4ba17

MapReduce核心的思想是分而治之,即把数据切分成很多块,每个节点处理其中的一小块。做分布式系统时会面临很多问题,比如希望计算任务可以在MapReduce框架层面做切分和调度。MapReduce从框架层面极大地降低了把任务迁移到分布式计算系统上的难度和门槛。对于数据的分布式存储和划分,数据可分散存储在几千台机器上,并且都有相应副本,不需要担心数据的丢失,底层的分布式存储会统一进行处理。计算任务的同步和计算节点的容错与恢复,若使用普通机器去搭大型计算群的时候,机器的宕机时比较普遍的现象,使用MapReduce则不需要关心这一点。右图是MapReduce的编程模型,最初是用来处理SQL等问题。

c4b5c4926f31f56c309775d73fbf30fd8fd112b0

在机器学习里面,有些算法是基于MapReduce编程模型去实现的。TF-IDF用来评估文档里面单词是否能表示文档主题。首先计算文档里面单词出现的频率,把谓词和叹词去掉,关注真正有意义的词。IDF则是统计该词在所有文档里面出现的频率,将其和文档里出现的频率经过算法计算得出最终结果。这个过程如何通过MapReduce实现呢?在Mapper中迭代的去加载每一篇要训练的文章,在迭代过程中统计每个单词出现的频率。将统计结果放入Reducer中,进行计算,得到TF-IDF结果表。

MapReduce编程模型有两个特点:不同计算任务之间独立,每个Mapper和Reducer只会计算自己相关的数据,数据并行度高;适合不需要不同节点通信的机器学习算法。

MPI编程模型

be087c53ccf71950f2022d817a664d38cd65b77c

逻辑回归算法是需要节点间进行通信的,该算法在个性化推荐中可以经常看到。个性化推荐算法是指每个人点击进来之后会进行分类,判断是否会对某些商品感兴趣,然后进行推荐。模型函数如上图中公式所示,定义损失函数,损失函数值越小说明模型拟合越好,寻找损失函数最小值的过程中用到了梯度下降算法。

早期,很多逻辑回归算法都是基于MPI编程模型实现的,MPI是消息传递接口,定义了Send,Receive,BC阿斯图,AllReduce接口,支持单机多Instance和多机多Instance,具有高度灵活,描述能力强,大量用于科学计算。

2f001e2bede3cdffeda489bfcc6563e7ff186e9b

MPI使用时有很多限制,首先必须提前知道阶段任务在哪些计算节点上做。在大规模的计算集群里面,所有资源的分配都是动态的,在任务执行之前不知道任务会调度到哪些节点上,但是早期有很多算法需要基于MPI实现,所以对MPI底层做了网络拓扑的建立,做了大量的重构,帮助MPI相关程序能够基于分布式的调度系统调度起来。

0558fa00b2db757cf1cae62288d4473025fca97e

逻辑回归的实现过程如上图所示。其中,有n个计算节点,首先会加载训练样本,计算梯度,然后本地加和,最后调用AllReduce接口去计算现在模型所在的位置。MPI本身还存在一些缺点:首先MPI中Worker的数目有上限,当需要更多节点的时候会发生性能下降。

参数服务器Parameter Server

56bdf827cbf2f860b9c99d0b9aba6ee98613dc71

Parameter Server和MPI相比,在更高的层次定义了编程模型和接口。Parameter Server中有三个角色,Server节点用来存储模型,计算节点会加载部分模型、训练数据,每轮迭代时每个节点会计算下个梯度,将节点和Server进行通信。Coordinator用来判断训练是否结束。此外,Parameter Server支持异步通信接口,不需要在不同计算节点间做同步。

d06fdc23976ea895ac1ea33c8d2bc14ec415b63c

阿里在2014年下半年,独立自研了PAI Parameter Server计算模型,已在集团内大规模使用。具体做的工作如上图所示。MPI的一个缺点是不支持容错,而每天上万台的集群会出现各种各样的故障,PAI Parameter Server针对大规模集群做了节点容错功能。Parameter Server集成很多算法,比如逻辑回归等。

深度学习

a9c558d08e481d844d0fc42f28eba5e39d601149

深度学习是人工神经网络的延伸,相比之下能够支持更深的网络。上图中,Alexnet是卷积神经网络,总共有8层网络,深度学习如果想要获得更好的效果,必须要构建一个更深的神经网络。随着神经网络变深,需要更多的参数,并且模型也会更加庞大。多级训练则需要更高量级的通信量。

TensorFlow

b998fbd81b952cab21b54d5d38dc0c231b33d8d9

TensorFlow是谷歌第二代的深度学习框架,支持各种神经网络,具有高度的灵活性,丰富的社区生态,支持CNN、RNN、LSTM等网络。

上图中TensorFlow的例子是两层神经网络做图片的分类。上面通过API定义训练图片和测试数据,接着定义了模型(softmax多分类模型),定义损失函数通过交叉熵来做,最后选择优化函数找最优点。下面部分则是通过API把训练数据喂给模型再计算当前模型的准确率。从上例中,可以看出,API非常灵活,基于Python,所以非常方便。

PAI TensorFlow

将TensorFlow迁移到PAI上之后,将TensorFlow作业服务化,起TensorFlow作业的时候不需要去申请资源、做训练数据的迁移;分布式调度(包括单机和多机)只需提交模型训练Python文件;GPU卡映射;多种数据源,结构化数据和非结构化数据都支持;超参支持,训练模型时会调整学习率,通过超参把参数存进来就不需要每次都调整了;模型在线预测,训练好模型之后可以部署到在线预测服务上,调用API获知模型结果是否正面。

PAI Pluto(多机多卡Caffe)

5640ebdc9960ab608d5b531d667a872c8167ea64

Caffe早于TensorFlow,Caffe可以认为是第一代的深度学习框架,使用Caffe时需要通过配置文件配置深度学习的卷积神经网路。目前,很多关于图像的应用都是基于Caffe来做的,使用CNN的网络,比如身份证识别、驾照识别等。其缺点是单机,当训练样本多的时候训练时间非常长。将Caffe底层嫁接到OpenMPI通信框架上,可以支持多机Caffe,能够达到线性加速比。

总结

98f89c6e4fbfaffd8f6676d33364d4d6d562b959

前文提到了PAI上支持的各种编程模型,在公有云上希望把机器学习作为一个服务推出来,包括数据上传、数据清洗、特征工程、模型训练、模型评价。这样就可以在PAI上做一站式的模型训练和预测。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
打赏
0
0
0
0
83336
分享
相关文章
PAI训练服务:云上大模型训练新篇章
本文介绍了通用AI时代下的新训练方法及PAI平台的优化。随着大模型时代的到来,算力需求激增,硬件和网络通信成为瓶颈。PAI平台通过自动容错、3D健康检测等技术确保训练稳定性;通过资源配额、智能调度等提高性价比;并推出PAI-TorchAcc和PAI-ChatLearn两大引擎,分别实现高效训练加速和灵活的对齐训练,显著提升训练性能与效果。这些改进解决了大规模AI训练中的关键问题,提升了效率和稳定性。
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
100 0
魔搭支持在阿里云人工智能平台PAI上进行模型训练、部署了!
现在,魔搭上的众多模型支持在阿里云人工智能平台PAI-Model Gallery上使用阿里云算力资源进行模型训练和部署啦!
448 22
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
379 4
AI推理新纪元,PAI全球化模型推理服务的创新与实践
本次分享主题为“AI推理新纪元,PAI全球化模型推理服务的创新与实践”,由阿里云高级产品经理李林杨主讲。内容涵盖生成式AI时代推理服务的变化与挑战、play IM核心引擎的优势及ES专属网关的应用。通过LM智能路由、多模态异步生成等技术,PAI平台实现了30%以上的成本降低和显著性能提升,确保全球客户的业务稳定运行并支持异地容灾,目前已覆盖16个地域,拥有10万张显卡的推理集群。
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
405 0
分布式爬虫框架Scrapy-Redis实战指南
基于Scrapy-Redis的分布式景点数据爬取与热力图生成
基于Scrapy-Redis的分布式景点数据爬取与热力图生成
229 67
高并发秒杀系统实战(Redis+Lua分布式锁防超卖与库存扣减优化)
秒杀系统面临瞬时高并发、资源竞争和数据一致性挑战。传统方案如数据库锁或应用层锁存在性能瓶颈或分布式问题,而基于Redis的分布式锁与Lua脚本原子操作成为高效解决方案。通过Redis的`SETNX`实现分布式锁,结合Lua脚本完成库存扣减,确保操作原子性并大幅提升性能(QPS从120提升至8,200)。此外,分段库存策略、多级限流及服务降级机制进一步优化系统稳定性。最佳实践包括分层防控、黄金扣减法则与容灾设计,强调根据业务特性灵活组合技术手段以应对高并发场景。
398 7
【📕分布式锁通关指南 02】基于Redis实现的分布式锁
本文介绍了从单机锁到分布式锁的演变,重点探讨了使用Redis实现分布式锁的方法。分布式锁用于控制分布式系统中多个实例对共享资源的同步访问,需满足互斥性、可重入性、锁超时防死锁和锁释放正确防误删等特性。文章通过具体示例展示了如何利用Redis的`setnx`命令实现加锁,并分析了简化版分布式锁存在的问题,如锁超时和误删。为了解决这些问题,文中提出了设置锁过期时间和在解锁前验证持有锁的线程身份的优化方案。最后指出,尽管当前设计已解决部分问题,但仍存在进一步优化的空间,将在后续章节继续探讨。
778 131
【📕分布式锁通关指南 02】基于Redis实现的分布式锁
|
2月前
|
redis分布式锁在高并发场景下的方案设计与性能提升
本文探讨了Redis分布式锁在主从架构下失效的问题及其解决方案。首先通过CAP理论分析,Redis遵循AP原则,导致锁可能失效。针对此问题,提出两种解决方案:Zookeeper分布式锁(追求CP一致性)和Redlock算法(基于多个Redis实例提升可靠性)。文章还讨论了可能遇到的“坑”,如加从节点引发超卖问题、建议Redis节点数为奇数以及持久化策略对锁的影响。最后,从性能优化角度出发,介绍了减少锁粒度和分段锁的策略,并结合实际场景(如下单重复提交、支付与取消订单冲突)展示了分布式锁的应用方法。
187 3

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问