15 年轻兵谈阿里云大规模机器学习实际
作者头像
  • 2020-06-22 19:09:30 10

近年来,机器学习技术的进步很大程度上得益于我们拥有大量的数据来训练算法。然而,当企业需要大规模应用机器学习时,经常会遇到许多挑战,如何解决这些问题?如何系统地了解大规模机器学习的应用技巧?哪些场景适合使用大规模机器学习?

InfoQ希望通过这一选题帮助企业解决这些问题,并推动企业在大规模机器学习方面的实际应用。为此,InfoQ采访了阿里云机器学习研究员林伟,聆听他对机器学习领域的见解。

什么是大规模机器学习

毋庸置疑,我们已经步入了人工智能时代,机器学习已经渗透到我们生活的各个方面。尽管创建深度学习模型变得越来越简单,但在工业中的大规模部署仍然充满挑战。首先,现代模型变得越来越大、越来越复杂,需要强大的计算能力和海量的数据来支持。其次,模型训练完成后,需要高效的推理能力来实现真正的落地应用。这不仅需要系统工程的优化,还需要模型和工程的协同优化。当然,并不是模型越大就一定越好,模型本身的改进和训练方法的选择都会影响最终效果。因此,我们需要在算法和训练方法方面不断创新。

对于许多深度学习开发者来说,只需要一张GPU卡就能训练许多流行的AI模型。然而,随着业务需求的增长和精度要求的提高,公司需要更大规模的模型和更多的数据进行训练。这时就需要更强大的分布式训练平台来满足大规模训练的需求。同时,随着数据量的增加,我们需要将AI训练与大数据平台相结合,以满足算法研究人员的各种数据处理需求,从而快速迭代模型,提高模型精度。

那么,如何定义“大规模机器学习”?

在采访中,林伟提到,“大规模”通常意味着需要数千台机器和数千名工作者协同工作,也可以理解为需要多种硬件资源,如GPU。在阿里巴巴内部,林伟所在的团队曾训练过非常大规模的稀疏网络,这些模型往往需要数千名工作者协同训练。对于稠密网络,例如感知类的AI网络(如视觉、语音和自然语言处理),也需要数十甚至数百张GPU卡共同训练。

如何设计完善的大规模机器学习平台

根据林伟的介绍,一个完善的大规模机器学习平台首先要有良好的调度能力。并非所有任务每天都需要大量资源,但必须确保在极端情况下有足够的资源支持。而在资源需求较少时,应及时释放资源。因此,大多数机器学习平台都是从小规模逐步发展起来的,过程中会积累一些能力和经验,例如沉淀一些框架和平台,或者帮助开发者进行分布式训练。

阿里最近推出的机器学习平台PAI的DSW,托管在云平台上,非常便捷。开发者可以随时打开IDE,该平台会自动保存工作内容,以便快速开发。如果开发者认为模型基本完成,并希望将其无缝提交到更大的集群中,则涉及到模型的开发。

模型离不开数据处理。在数据处理过程中,开发人员需要具备强大的大数据处理能力,包括数据清洗和提纯。这要求平台具备大数据处理能力。同时,训练出的模型需要在实际业务中发挥作用,例如提供低延迟和高吞吐的服务,确保服务发布、更新、迭代和切换等操作的顺利进行。

AI需要大量带标签的数据,这意味着数据标注平台同样重要。它可以帮助用户快速处理数据。实际上,AI训练流程非常灵活,如果需要在更大范围内进行训练,可能会遇到一些不良案例或识别不佳的负样本。我们需要积累这些案例,并帮助用户调整模型以提高最终效果。

AI属于计算密集型任务,需要大量数据交互。因此,在分配资源时,需要根据任务的大小考虑如何与底层硬件的拓扑结构相匹配,充分利用异构特性。我们可以充分利用系统对训练任务的理解,有效地调度不同部分到不同的资源上,充分利用各种硬件资源,提高系统效率。

此外,还需要考虑容错机制,因为大型集群容易出现故障,机器并非永动机,随时可能出问题,软件也可能存在漏洞。容错机制需要与调度系统协同工作。

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

总之,AI工程非常复杂,涉及多个环节。

阿里大规模机器学习实践

回顾阿里在机器学习研发道路上的经历,林伟表示,与任何事物的发展过程一样,最初的目标是通过各种技术手段提升商业效果。当时,阿里内部各业务部门都有自己的算法团队,这种烟囱式的结构效率较低。因此,希望沉淀出一些通用能力,这就是PAI的前身。

那时,深度学习尚未兴起,更多的是传统的机器学习和传统训练模型。阿里希望利用这些算法提高整体研发效率,因此推出了PAI-Studio。该平台将算法封装为组件,实现数据处理和算法的串联,使其可视化管理。这就是PAI-Studio 1.0时代的特征,那时的重点在于将工作流程可视化。

随着深度学习的兴起,各种算法层出不穷。阿里希望能够发展深度学习的能力,尤其是在核心电商业务中,数据量巨大,开源引擎的问题逐渐显现,遇到各种规模性问题。这促使阿里在这方面迅速发展。

随着优化的深入,人们开始使用深度学习进行感知类应用。在这种情况下,阿里自主研发的机器学习引擎在市场上也有了一席之地。阿里开始对外输出,服务更多的企业客户。

林伟认为,构建系统的人可分为三类:第一类是能够解决问题的系统;第二类是可以在未来五年内不断扩展的新功能,并具有一定的可扩展性;第三类是通过部分重构和变革,使系统随着业务规模的增长持续发展的系统。林伟的团队不断迭代机器学习平台PAI,并在阿里巴巴内外取得了很好的效果。

实际建议

如果企业希望构建大规模机器学习平台,林伟建议:

人才层面:构建大规模机器学习平台需要对业务有所了解,算法团队需要具备一些基本技能。虽然现代机器学习对算法的要求不像传统机器学习那么高,但迭代模型仍需建立在对算法、数据和模型原理的理解基础上,并且需要一定的数学基础。

工程层面:工程是模型落地和产业化的关键环节。企业需要深入思考各种引擎的优劣,选择适合自己需求的解决方案。可以是研发为主,也可以是在大规模训练、服务和推理平台下采用分布式系统。

复杂性:AI工程不仅仅是训练和推理,还包括数据处理。现在有许多专注于深度学习的企业,如果拥有算法团队和开源框架,单机或许可以训练模型,但遇到大规模训练时会有许多挑战。首先需要解决的是数据管理问题,包括数据存储、管理和训练等。能否有效管理和探索适合自己的方向,可能是关键问题。

“我不是在打广告,我认为选择云平台最终可以帮助企业提高效率、降低成本,并且开发人员应该专注于业务相关的算法层面。这一层其实有很大的发展空间。同时,由于阿里云兼容各种生态和标准,因此不存在绑定问题,不满意可以随时迁移。但上云确实是行业趋势。”

最初上云时,企业可能需要权衡是否比使用物理机更有竞争力,但从长远来看,云平台提供的弹性和灵活性将大大降低成本。对于有技术梦想的公司来说,云平台提供了许多想象和实验的空间,可以根据自身需求选择不同层次的API,接入不同的能力,从而提高公司的生产效率,更好地应对业务发展。

结束语

在过去的15年中,林伟见证了开发者生产力逐步解放的过程。云计算和人工智能等新兴技术不断涌现,市场上不时有人担心这些技术将取代人工。

对此,林伟表示,技术世界一直在更新换代。以操作系统为例,当Linux和Windows占据主导地位后,其他操作系统逐渐消失。曾经的开发者要么加入了Linux和Windows的开发,要么拥抱新的技术变化,看看下一个技术热点是什么。事实上,每当业务场景发生变化时,都会有新的机会出现。可以尝试抓住新技术带来的机遇,从中获得满足感。

对于平台研发人员来说,只要场景清晰,就会开始沉淀。但总有一些混沌和未知领域,这些地方会出现大量新的思路和想法。每个人都在发挥自己的优势,逐渐沉淀下来。

嘉宾介绍

林伟,阿里云机器学习研究员,拥有超过10年的大规模并发系统架构设计及研发经验。他曾是微软大数据平台组的核心成员,在微软亚洲搜索技术中心和美国微软工作10年,一直从事分布式系统开发和大数据平台相关工作。

    本文来源:图灵汇
责任编辑: :
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
云大轻兵阿里实际机器规模学习15
    下一篇