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

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 在云栖计算之旅第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+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
6月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
在数字化转型中,企业亟需从海量数据中快速提取价值并转化为业务增长动力。5月15日19:00-21:00,阿里云三位技术专家将讲解Kafka与Flink的强强联合方案,帮助企业零门槛构建分布式实时分析平台。此组合广泛应用于实时风控、用户行为追踪等场景,具备高吞吐、弹性扩缩容及亚秒级响应优势。直播适合初学者、开发者和数据工程师,参与还有机会领取定制好礼!扫描海报二维码或点击链接预约直播:[https://developer.aliyun.com/live/255088](https://developer.aliyun.com/live/255088)
502 35
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
|
6月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
223 12
|
2月前
|
消息中间件 监控 Java
Apache Kafka 分布式流处理平台技术详解与实践指南
本文档全面介绍 Apache Kafka 分布式流处理平台的核心概念、架构设计和实践应用。作为高吞吐量、低延迟的分布式消息系统,Kafka 已成为现代数据管道和流处理应用的事实标准。本文将深入探讨其生产者-消费者模型、主题分区机制、副本复制、流处理API等核心机制,帮助开发者构建可靠、可扩展的实时数据流处理系统。
335 4
|
9月前
|
Java 关系型数据库 MySQL
新一代 Cron-Job分布式任务调度平台 部署指南
简单易用、超低延迟,支持用户权限管理、多语言客户端和多租户接入的分布式任务调度平台。 支持任何Cron表达式的任务调度,支持常用的分片和随机策略;支持失败丢弃、失败重试的失败策略;支持动态任务参数。
310 110
|
9月前
|
Java 调度 Maven
新一代 Cron-Job 分布式任务调度平台 正式发布!
简单易用、超低延迟,支持用户权限管理、多语言客户端和多租户接入的分布式任务调度平台。 支持任何Cron表达式的任务调度,支持常用的分片和随机策略;支持失败丢弃、失败重试的失败策略;支持动态任务参数。
372 100
|
10月前
|
人工智能 调度 芯片
PAI训练服务:云上大模型训练新篇章
本文介绍了通用AI时代下的新训练方法及PAI平台的优化。随着大模型时代的到来,算力需求激增,硬件和网络通信成为瓶颈。PAI平台通过自动容错、3D健康检测等技术确保训练稳定性;通过资源配额、智能调度等提高性价比;并推出PAI-TorchAcc和PAI-ChatLearn两大引擎,分别实现高效训练加速和灵活的对齐训练,显著提升训练性能与效果。这些改进解决了大规模AI训练中的关键问题,提升了效率和稳定性。
|
5月前
|
运维 监控 Linux
WGCLOUD运维平台的分布式计划任务功能介绍
WGCLOUD是一款免费开源的运维监控平台,支持主机与服务器性能监控,具备实时告警和自愈功能。本文重点介绍其计划任务功能模块,可统一管理Linux和Windows主机的定时任务。相比手动配置crontab或Windows任务计划,WGCLOUD提供直观界面,通过添加cron表达式、执行指令或脚本并选择主机,即可轻松完成任务设置,大幅提升多主机任务管理效率。
|
7月前
|
SQL 监控 Go
新一代 Cron-Job分布式调度平台,v1.0.8版本发布,支持Go执行器SDK!
现代化的Cron-Job分布式任务调度平台,支持Go语言执行器SDK,多项核心优势优于其他调度平台。
151 8
|
9月前
|
机器学习/深度学习 数据采集 人工智能
MATLAB在机器学习模型训练与性能优化中的应用探讨
本文介绍了如何使用MATLAB进行机器学习模型的训练与优化。MATLAB作为强大的科学计算工具,提供了丰富的函数库和工具箱,简化了数据预处理、模型选择、训练及评估的过程。文章详细讲解了从数据准备到模型优化的各个步骤,并通过代码实例展示了SVM等模型的应用。此外,还探讨了超参数调优、特征选择、模型集成等优化方法,以及深度学习与传统机器学习的结合。最后,介绍了模型部署和并行计算技巧,帮助用户高效构建和优化机器学习模型。
MATLAB在机器学习模型训练与性能优化中的应用探讨
|
8月前
|
数据采集 监控 数据可视化
11.7K Star!这个分布式爬虫管理平台让多语言协作如此简单!
分布式爬虫管理平台Crawlab,支持任何编程语言和框架的爬虫管理,提供可视化界面、任务调度、日志监控等企业级功能,让爬虫开发管理效率提升300%!
327 1

热门文章

最新文章