15 年老兵谈阿里云大规模机器学习实践

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介:   近年来,机器学习技术的发展归因于我们有极其庞大的数据用来训练算法。当企业需要落地大规模机器学习时,往往会面临很多难题,如何解决这些问题?如何系统了解大规模机器学习落地的技巧?其适用场景是什么?InfoQ 希望通过该选题解决这些问题,并推动企业在大规模机器学习方面的实践。本文,InfoQ 有幸采访了阿里云机器学习研究员林伟,听他分享自己的经验和见解。

  近年来,机器学习技术的发展归因于我们有极其庞大的数据用来训练算法。当企业需要落地大规模机器学习时,往往会面临很多难题,如何解决这些问题?如何系统了解大规模机器学习落地的技巧?其适用场景是什么?InfoQ 希望通过该选题解决这些问题,并推动企业在大规模机器学习方面的实践。本文,InfoQ 有幸采访了阿里云机器学习研究员林伟,听他分享自己的经验和见解。

  15 年老兵谈阿里云大规模机器学习实践

  毫无疑问,我们已经迈入人工智能时代,机器学习几乎渗透了我们日常生活和工作的方方面面,创建深度学习模型越来越容易,但大规模工业部署却依然没有那么容易,第一现在模型变得越来越大,越来越深,需要强大算力和海量的数据才能够支撑训练出更好的模型;第二模型训练出来需要在推理的时候高效的执行才能真正让模型落地,这个里面就需要非常多系统工程优化,以及模型和工程一起的协同优化。当然并不是模型越大,训练效果就会一定好,模型本身的提高以及训练方式都决定了最终模型实际效果,这就需要我们也在算法,训练手段层面的突破。

  对众多深度学习开发者而言,只要拥有一张 GPU 卡,很多流行的 AI 模型都可以得以训练。但对公司而言,随着业务需求的提高、精度要求的提高,就会面临更大模型、更多数据训练的需求,此时就需要更强大分布式训练平台以适应大规模的训练的需求,同时因为数据量增加,我们需要让 AI 训练和大数据平台结合起来,从而满足算法研究者各种数据组合加工,尝试不同训练方式,从而能够快速迭代模型,提高模型的精度。

  那么,何为大规模机器学习有明确的界定吗?

  采访中,林伟表示,我们所说的“大规模”可以解释为需要几千台机器、几千个工作者一起协同训练,也可以理解为多硬件资源,比如 GPU。

  在阿里巴巴内部,林伟所在团队训练过非常大规模的稀疏网络,这类模型很容易大,而且更多偏向于推荐、搜索等信息流类型,往往需要几千个工作者的协同训练。同时对于稠密网络,比如感知类的 AI 网络,比如视觉、语音、自然语言处理现在也在变得越来越大,也需要要几十张到几百张卡一起训练。

  根据林伟介绍,一个大规模的机器学习平台首先要具备优秀的调度能力,并非所有任务每天都需要大量资源,但要保证极限情况下的承受能力足够强,而所需资源不多时又可及时释放。所以,大部分本科机器学习平台都是从小规模逐渐做起来的,这个过程会积累一些能力,比如沉淀一些框架和平台,或者帮助开发者做分布式训练等。

  阿里最近推出了机器学习平台 PAI 的 DSW,其托管在云平台之上,非常方便,开发者可随时打开 IDE,该平台可自动保存工作内容,然后可以快速开发。如果开发者觉得模型基本完成,希望无感知提交到更大的集群中时就涉及关于模型的开发。

  模型离不开数据,在数据处理中,开发人员需要有配套的大数据处理能力,需要对数据进行清洗和提纯,这就要求平台需要具备大数据能力,这也是为什么计算平台会把 AI 和大数据作为两大引擎,因为彼此之间需要交互。同时,平台上训练出的模型需要在业务中达到一定效果,比如让服务做到低延时、高吞吐,保证服务发布、更新、迭代、切换以及报警、监控等。

  AI 需要大量的数据,而这些数据还得有标签,这意味着数据标注平台同样重要,可以帮助用户快速处理数据。其实,现在 AI 整个训练流程非常灵活,如果要在更大的范围内做一些训练,比如发布一个模型,可能会有一些 bad case 或者识别不好的负样本,我们要把这些 case 积累在一起,并帮助用户重新调整模型以提高最终效果。

  事实上,AI 属于计算密集型任务,需要大量数据交互,所以分配资源的时候要根据任务大小来考虑如何对应到底层硬件的拓扑结构上,使之能够充分利用异构特性完成整个过程,我们能够充分利用系统对训练任务的理解,有效调度不同部分到不同的资源上面,充分地利用多种硬件资源,发挥系统的最高效率。

  此外,要考虑容错,因为过大的集群经常容易发生错误,机器并不是永动机,随时可能出现问题,软件也不能保证没有 bug,容错需要和调度系统配合在一起。

  在这个流程中,为了提高效率,还需要配备各种性能优化和加速工具,包括推理、量化、压缩、蒸馏等,这些工具彼此之间的连接也是平台需要做的事情。

  总之,AI 工程非常复杂,牵涉很多环节。

  回顾阿里的机器学习研发之路,林伟表示,与所有事物的发展过程一样。起初都是希望通过各种技术手段提升商业效果,当时阿里内部各个部门都有自己的算法团队,从集团的横向层面来看,这种烟囱式结构是比较低效的,因此希望沉淀出一些通用能力,这就是 PAI 的前身。

  那时,深度学习还没有火起来,更多的是传统机器学习、传统的训练模型或者统计算法,阿里希望能够复用这些算法,进而提高整个集团的研发效率,于是就推出了?PAI-Studio,其实就是把算法沉淀为组件,在数据处理和算法之间做串联,使之能够图形化管理,这是 PAI-Studio1.0 时代,这个时代就是更好的把工作流程串成可视化的图。

  随着深度学习的出现,业界开始出现形形色色的算法。此时,阿里希望可以把深度学习的能力做起来,因为阿里内部有大量数据,特别是核心电商领域,由于数据量过于庞大, 开源引擎的问题开始暴露出来,会遇到各种各样规模性问题,这促使阿里在这方面走得很快。

  随着优化的逐渐深入,大家已经开始应用深度学习做感知类应用。在这种情况下,阿里自研的机器学习引擎在外面也是有市场的。阿里开始对外输出,服务更多的企业客户。

  一直以来,林伟认为做系统的人可以分为三类:第一类是做出来的系统可以解决业务问题;第二类是做出来的系统可以在未来 5 年持续不断地在原来的设计上叠加新功能,并且具备一定可扩展性,这样的系统具备一定生命力;第三类是通过一些部分的重构和变革,可以让系统随着业务规模的增长持续发展,这一类是最强的也是最难的,基于这些想法,林伟整个团队不断迭代机器学习平台 PAI,并且在阿里巴巴内部业务和外部业务均取得了不错的效果。

  15 年老兵谈阿里云大规模机器学习实践

  机器学习 PAI 平台的目的是希望算法开发同学能够更加高效地开发应用算法,帮开发者做到更好的性能,更大规模和更低成本的训练。

  在阿里巴巴内部,业务场景数量很多,数据规模也很大,这让我们能够训练出一些有效模型。但这些训练模型往往需要很多异构机器协同,我们会搭建一个很大的共享平台,让形形色色的任务都在平台上跑,最大的任务可能要处理 TB 级别的数据。如何让训练任务跑得起来,在需要共享的集群里面做好调度和系统配合,使得我们充分利用这些资源提高集群效率,是我们整个平台的愿景。

  最开始,PAI 在 Studio 方面做得比较多,林伟整个团队将阿里巴巴的 AI 能力以 Studio 的模式开放出去。其中包括智能数据标注、可视化建模、在线预测部署等全托管的 AI 工程服务

  15 年老兵谈阿里云大规模机器学习实践

  机器学习 PAI Studio

  最近这一年,PAI 更加注重云原生,与 K8s 等进行了紧密结合,使服务能够对云上的客户体系更加规则。包括云原生交互式开发平台 PAI-DSW,以及云原生分布式深度学习训练平台 PAI-DLC

  15 年老兵谈阿里云大规模机器学习实践

  机器学习 PAI DSW

  15 年老兵谈阿里云大规模机器学习实践

  机器学习 PAI DLC

  另外,林伟带领团队在使用体验上不断投入,包括产品的易用性和敏捷性,以及 Open API ,希望可以帮助更多个人和小型企业慢慢成长。

  PAI 同样是一个开放的平台,在深度学习框架这层一直是拥抱开源、兼容生态,比如会在开源的 TF 框架下面做优化,同时将更改及时提交到开源社区,也与 Facebook 形成战略合作,推动有关 Pytorch 的一系列优化想法。在开源开放层面,开源的 ALink 与 Flink 形成数据和算法的有效结合。如今,阿里在集群管理层面也开始参与到 K8s 社区,希望有更多贡献。

  如果企业希望内部实践大规模机器学习平台,林伟建议,在人才层面,想要构建大规模机器学习平台需要对业务有所理解,算法团队需要具备一些基本功,虽然现在的机器学习没有传统的机器学习对算法要求那么高,但迭代模型还是需要建立在对算法、数据、模型原理的理解上,并且需要具备一定数学基础。

  在工程上面,林伟表示,工程是模型落地、产业化很重要的一环,企业需要深入考虑各种引擎的优劣,挑选适合自己需求的,可能是研发为主,也可能是效率或者模型很大的情况下需要分布式的训练、服务和推理平台等。

  同时,AI 工程比较复杂,不仅局限于训练和推理,还需要关注数据的处理,现在业界也有很多做深度学习的企业,如果具备有算法团队,再加上开源框架,单机或许就可以训练模型,这种方式遇到大规模训练的时候,其实是有很多挑战的,最开始碰到的可能是数据问题,数据该怎么管,怎么样存、再往后可能就是训练的问题,所以是否可以有效管理并探索出适合自己的方向,可能是比较重要的事情。

  “我不是打广告,我觉得选择云平台最终可以帮助企业提高效率、节省成本,并且开发人员应该把自己的关注点放在业务相关的算法层面,这一层其实有大量发展空间。同时,因为阿里云兼容各类生态和标准,因此也不存在绑定问题,不满意随时可以搬下去,但上云确实是业界的趋势。”

  初始上云时,企业可能在考虑与使用物理机相比到底有没有竞争力,但从长远来看,云平台提供的弹性和灵活等特性会大大节省成本。而且,对于有技术梦想的公司来说,云平台其实有很多想象和实验的空间,企业可以根据自己的需求选择不同层次的 API,接入不同的能力,然后提高自己公司的生产效率,更好地应对业务发展。

  在过往 15 年分布式系统的从业生涯中,林伟同样见证了开发者生产力被一步步解放的过程,自从云计算、人工智能等新兴技术出现,市面上不时就可以听到开发者对这些技术将取代人工的担忧。

  对此,林伟表示,其实你从另一个层面来看就会发现技术的世界一直在更新换代,以操作系统为例,当 Linux 和 Windows 占据上风之后,其他操作系统都慢慢消失了,那曾经的这群开发者去哪里了呢?要么积极加入到 Linux 和 Windows 的开发中,要么拥抱新的技术变化,去看看下一个技术热点是什么。事实上,每一个业务场景发生变化的时候,都可能是新的机会,可以尝试做下一波要爆发的技术,从中获得的满足感将会很大。

  对于做平台的研发人员而言,只要场景清晰了,就会开始沉淀,但肯定也会有一些混沌的、未知的领域,这些地方就会有大量新的思路和想法出现,身处其中的每个人都在发挥自己的长处,然后慢慢沉淀。

  嘉宾介绍:

  林伟,阿里云机器学习研究员,对大规模并发系统有 10 年以上的系统架构设计及研发经验,并在国际一流 ODSI、NSDI、SIGMOD 会议上多次发表论文。原微软大数据平台组的核心成员,曾在微软亚洲搜索技术中心和微软美国工作 10 年,一直从事分布式系统开发和大数据平台的相关工作。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
12天前
|
机器学习/深度学习 数据采集 自然语言处理
构建高效机器学习模型的策略与实践
【4月更文挑战第30天】 在数据驱动的时代,机器学习(ML)作为一项核心技术,其应用范围和影响力日益扩大。然而,构建一个既高效又准确的机器学习模型并非易事。本文将探讨一系列实用的策略和技术,用于优化机器学习的工作流程,包括数据预处理、特征工程、模型选择、超参数调优以及模型评估等方面。通过这些策略,读者可以提升模型的性能,确保在实际应用中达到预期的准确度和效率。
|
3天前
|
机器学习/深度学习 算法 异构计算
构建高效机器学习模型的策略与实践
【5月更文挑战第8天】 随着数据科学领域的不断进步,机器学习(ML)已成为解决复杂问题的重要工具。然而,构建一个既高效又准确的ML模型并非易事。本文将详细探讨在设计和训练机器学习模型时可以采用的一系列策略,以优化其性能和效率。我们将讨论特征工程的重要性、选择合适的算法、调整参数以及评估模型的有效性。通过这些策略,读者将能够更好地理解如何提升模型的预测能力并避免常见的陷阱。
|
6天前
|
存储 监控 Apache
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
网易的灵犀办公和云信利用 Apache Doris 改进了大规模日志和时序数据处理,取代了 Elasticsearch 和 InfluxDB。Doris 实现了更低的服务器资源消耗和更高的查询性能,相比 Elasticsearch,查询速度提升至少 11 倍,存储资源节省达 70%。Doris 的列式存储、高压缩比和倒排索引等功能,优化了日志和时序数据的存储与分析,降低了存储成本并提高了查询效率。在灵犀办公和云信的实际应用中,Doris 显示出显著的性能优势,成功应对了数据增长带来的挑战。
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
|
11天前
|
机器学习/深度学习 人工智能 算法
【Python 机器学习专栏】强化学习在游戏 AI 中的实践
【4月更文挑战第30天】强化学习在游戏AI中展现巨大潜力,通过与环境交互和奖励信号学习最优策略。适应性强,能自主探索,挖掘出惊人策略。应用包括策略、动作和竞速游戏,如AlphaGo。Python是实现强化学习的常用工具。尽管面临训练时间长和环境复杂性等挑战,但未来强化学习将与其他技术融合,推动游戏AI发展,创造更智能的游戏体验。
|
11天前
|
机器学习/深度学习 运维 算法
【Python机器学习专栏】异常检测算法在Python中的实践
【4月更文挑战第30天】本文介绍了异常检测的重要性和在不同领域的应用,如欺诈检测和网络安全。文章概述了四种常见异常检测算法:基于统计、距离、密度和模型的方法。在Python实践中,使用scikit-learn库展示了如何实现这些算法,包括正态分布拟合、K-means聚类、局部异常因子(LOF)和孤立森林(Isolation Forest)。通过计算概率密度、距离、LOF值和数据点的平均路径长度来识别异常值。
|
11天前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】支持向量机(SVM)在Python中的实践
【4月更文挑战第30天】SVM是一种高效的监督学习算法,适用于分类和回归,尤其擅长处理高维和非线性问题。通过寻找最大边际超平面来分隔数据,SVM具有高效性、鲁棒性、灵活性和稀疏性等特点。
|
11天前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】自动化特征选择与优化的实践
【4月更文挑战第30天】特征选择在机器学习中至关重要,能降低模型复杂度,提高泛化能力和避免过拟合。本文介绍了自动化特征选择的三种方法:过滤法(如SelectKBest)、包装法(如RFE)和嵌入法(如随机森林)。通过结合这些方法,可实现特征优化,包括数据预处理、初步筛选、模型训练与评估、特征优化和结果验证。自动化特征选择能提升模型性能,适应不同数据集和任务需求,为机器学习项目提供坚实基础。
|
12天前
|
测试技术 块存储 开发者
阿里云块存储团队软件工程实践
本文介绍了阿里云团队软件工程实际开发流程,并简述了开发过程中遇到的一些问题。且附带案例,以及遇到案例中出现的情况应当如何应对。
|
12天前
|
机器学习/深度学习 Cloud Native 持续交付
构建高效机器学习模型的策略与实践构建未来:云原生技术在企业数字化转型中的关键作用
【4月更文挑战第30天】 在机器学习领域,构建一个高效的模型不仅需要深厚的理论基础,还需结合先进的技术手段和策略。本文将探讨一系列提升模型性能的方法,包括数据预处理、特征选择、模型调参以及集成学习等。通过具体案例分析,揭示这些方法如何在实际问题中得以应用,并讨论它们对模型性能的影响。文中还将涉及最新的研究进展,为读者提供前瞻性的指导意义。 【4月更文挑战第30天】随着企业加速其数字化转型之旅,云原生技术已成为推动创新和灵活性的核心。本文深入探讨了云原生架构的原则,包括微服务、容器化、持续集成/持续部署(CI/CD)、以及声明式APIs。分析了这些技术如何共同促进可伸缩性、敏捷性和容错性,同时
|
12天前
|
机器学习/深度学习 数据采集 自然语言处理
构建高效机器学习模型的策略与实践
【4月更文挑战第30天】 在机器学习领域,构建一个高效的模型不仅需要深厚的理论基础,还需结合先进的技术手段和策略。本文将探讨一系列提升模型性能的方法,包括数据预处理、特征选择、模型调参以及集成学习等。通过具体案例分析,揭示这些方法如何在实际问题中得以应用,并讨论它们对模型性能的影响。文中还将涉及最新的研究进展,为读者提供前瞻性的指导意义。

热门文章

最新文章