机器学习平台和机器学习框架有何不同,你真的搞懂了吗?

2023-06-01 0 399

机器学习平台和机器学习框架有何不同,你真的搞懂了吗?AI 第一线编者按:

近几年,AI 领域屡现开创性重大进展,招揽了全球民营企业竞相采用 AI 技术来培植新增长、形成新势能、大力推进产业与信息技术的技术创新结合。在这个大背景下,AI 专业人才开始供大于求,AI 产品迎暴发。

然而新技术浑然不觉一定技术壁垒,电脑学习不仅须要演算法生物学家构筑新数学模型,技师应用领域新数学模型,还须要技师齐心协力工程建设机器学习网络平台。而在应用领域电脑学习的民营企业和项目组中,工程建设电脑学习网络平台正是重要组成部分。

那么电脑学习网络平台是甚么呢?它又有甚么注重优点?今天,才云信息技术 AI 网络平台技师 gaocegege 将为诸位释疑释疑。

更多高质量

电脑学习网络平台对于相同技师配角来说,有著相同的涵义。在之前正式发布的关于 Kubeflow 的该文中,有不少网民私底下查问究竟甚么是电脑学习网络平台,它与电脑学习架构答相同。在这首诗里,我将从相同的层次来介绍一直谈及的电脑学习网络平台究竟是甚么。

01 如果你有两个演算法技师

首先,我给大家讲个故事情节:

小咩是 TooYoung 信息技术的演算法技师,前段时间他正在为子公司实现两个人脸识别的数学模型。为了支持他的组织工作,子公司 Infra 项目组的技师小婶给了他三台电脑,每台各别备有 4 块英伟达显示卡。

并要,小婶笑了笑小咩的手臂:兄妹,之后两个月,这些电脑就行了你用。小咩表层Bouzemont,心里其实早已乐开怀,他早已好久没有在这么多显示卡的电脑上点亮过人格了。

机器学习平台和机器学习框架有何不同,你真的搞懂了吗?Vladimir Iglovikov

领到电脑后,小咩须要做的第二件事是配环境。经过简单的取舍,小咩决定采用自己熟识的 TensorFlow 来进行数学模型的开发组织工作。尽管 TensorFlow 早已正式发布 2.0 版,但小咩是两个索宾卡的人,他还是生活习惯采用经典之作的 1.4 版。他登入到了电脑上,发现事情并不简单。

三台电脑中:

电脑 A 的 TensorFlow 只支持 CPU;

电脑 B 的 TensorFlow 的版是 1.13;

电脑 C 是子公司里的演算法生物学家小莎在投稿 NeurIPS 时做实验用的,只安装了 PyTorch。

小咩叹了一口气,他飞快下楼买了一瓶快乐水,撸起了袖子,开始环境配置之旅。

第一台电脑的问题在于已装的 TensorFlow 版不支持 GPU。小咩熟练地卸载了电脑 A 的环境,首先确认电脑 A 上没有安装开源的英伟达驱动 Nouveau。之后,他开始安装英伟达的官方驱动以及 cuDNN,最后安装了支持 GPU 的 TensorFlow 版。看着屏幕上打出的 Hello World,小咩嘴角扬起了微笑。

第二台电脑的问题在于 TensorFlow 的版太新了。于是小咩依样画葫芦,卸载了新版,安装了旧版。但在这个过程中,他发现 TensorFlow v1.4 不支持电脑 B 上的 CUDA 9.0。虽然有些不情愿,小咩还是打开了谷歌,熟练键入“Remove CUDA 9.0 and install CUDA 8.0”。按照网民的指示,他终于解决了这个问题。

第三台电脑问题比较少,小咩很快就处理好了。

接下来,小咩就可以开始自己的演算法实验了。为了方便,他先在自己的笔记本电脑上建立了两个 Jupyter Notebook,将数据下载到电脑上,进行了小规模的实验。

经过一天的努力,他觉得自己的演算法效果还算不错,可以放到服务器上进行分布式训练,以期更快的训练速度。于是他利用 /etc/hosts 给三台电脑做了两个简单的服务发现,利用 TensorFlow 的分布式训练功能进行了分布式的训练。

经过数天调参,小咩数学模型的各项 metrics 都达到了子公司的要求,于是他准备将数学模型正式发布到子公司的生产环境中。小咩利用了开源项目 TensorFlow Serving,在子公司内部的 PaaS 网络平台上新建了两个服务,并将自己训练的数学模型正式发布到了子公司的生产集群上。看着流量稳定地灌入自己的数学模型服务,小咩深吸了一口气。

02 如果你有两个电脑学习网络平台

时间一天天过去了,这个数学模型不知不觉早已在线上服务了数月,小咩也由技师变成了子公司里的 Tech Lead。前段时间,这一数学模型有了相关的增量数学模型,但小咩早已没有足够的时间再参与到一线的开发组织工作中了。为了进一步提升数学模型性能,小咩项目组里的新进技师小豆接起了这项任务,利用新的数据集重新训练数学模型,并再次正式发布。

在几个星期之前,Infra 项目组利用开源项目 Kubeflow 为演算法技师和演算法生物学家们搭建了两个麻雀虽小五脏俱全的机器学习网络平台。小豆决定利用这一网络平台对数学模型进行训练。

他首先利用 Infra 项目组早已打包好的 TensorFlow v1.4 的 Docker 镜像,用网络平台发起了一次分布式训练。训练中的服务发现,异常处理等都由网络平台自动完成。

训练间隙,小豆在查看文档发现网络平台还支持超参数训练,而且采用起来非常简单,只须要指定相应的参数搜索空间即可。于是他又发起了一次超参数学习任务,对数学模型的超参数选择进行了优化。

数学模型训练结

机器学习平台和机器学习框架有何不同,你真的搞懂了吗?

03 电脑学习的工程化落地

通过以上故事情节,我们可以了解到,电脑学习网络平台的用户往往是电脑学习演算法生物学家或技师。而电脑学习网络平台希望解决的是电脑学习工程化落地的问题。

在小咩第一次进行数学模型开发与部署的时候,他遇到了很多来自系统环境和服务发现等原本应该由 Infra 来解决的问题。这其中包括服务器上的显示卡驱动问题、TensorFlow 版的问题、服务发现的问题、训练过程中的跟踪与错误恢复等。而当小豆在电脑学习网络平台上进行数学模型训练和数学模型正式发布时,这些问题早已都交由网络平台来自动化处理,他可以专注于业务的开发。

对于电脑学习技师,TensorFlow、PyTorch 这些架构改变的是电脑学习的编程范式,而电脑学习网络平台改变的是电脑学习的开发与正式发布流程。

而从基础架构技师的角度来看,电脑学习网络平台某种程度上类似 PaaS,但又有所相同。两者相同之处在于都涉及到资源的管理与调度、服务发现等功能,相同之处在于电脑学习网络平台对于 GPU 有极其强烈的需求,与此同时,和传统的应用领域相比,电脑学习有著相同的组织工作流程。

举个例子,传统应用领域可以很好地抽象出持续集成与持续部署组织工作流,应用领域的每一次提交都可以触发对应的测试与正式发布流程。而对于电脑学习任务来说,测试往往并不是对代码本身的测试,而是对数学模型效果的测试。

类似的诸多差异导致了目前的 PaaS 等网络平台不能很好地处理电脑学习这一应用领域场景的需求。换句话说,这时候我们须要两个新的网络平台,它既继承了 PaaS 的某些功能,又针对更好地支持电脑学习业务,增加了大量新优点。

下面我们就来具体地谈谈,这些优点包括甚么。

机器学习平台和机器学习框架有何不同,你真的搞懂了吗?

04 电脑学习网络平台的优点

准备数据是一次电脑学习任务的起点,但数据准备的网络平台化,从实现上来说应该是比较困难的。因为数据准备是两个需求差异非常大、很难将其标准化的过程。目前开源领域也有一些针对相同场景的打标工具,如 labelme 等,但这一方面的工程实现和研究性组织工作其实都不太常见。

训练是电脑学习任务中的重中之重。电脑学习网络平台的训练支持指的是,用户通过指定采用的资源数量、分布式数学模型(AllReduce、ParameterServer 等)、分布式配置(ParameterServer 数量等)等,直接在网络平台上进行数学模型训练。

从网络平台的角度来看,这一优点主要涉及到对相同类型的架构、相同的分布式数学模型、相同的硬件的支持,以及分布式训练任务的服务发现、错误处理,相同任务的资源隔离与复用等问题。除此之外,有些场景对于在线训练也有须要,如何支持在线训练,是两个电脑学习全流程都须要考虑的问题。

再接下来,就是 数学模型服务。这一优点与传统的 PaaS 比较类似,因为数学模型服务目前多是以 RESTful API 暴露给外部的,与传统的 We

回到 版管理,传统的应用领域往往只涉及配置与代码的管理,而电脑学习则多了不少新的层次,如数学模型、版等。这一部分的优点虽然比较 dirty work,但是却与用户的采用体验息息相关。除此之外,还有整个过程中的监控问题(训练过程监控,服务过程监控),也是同样性质的组织工作。

在解决完上面的问题后,电脑学习组织工作流的构筑 这一优点就水到渠成地摆到台面上了。如何让用户用尽可能少的交互取得他 / 她想要的效果,以及如何加强这一过程的自动化,是离不开组织工作流方面的组织工作的。

至于超参数训练与数学模型结构搜索,这是电脑学习网络平台的高级优点。虽然自动电脑学习听上去非常有前途,但相关技术目前仍处于研究阶段。对于超参数训练来说,最难过的一关是性价比问题。Random Search、Grid Search 和贝叶斯优化方法是最常用的调参方法,它们找到的参数确实可能比人工调参有更好的效果,但与此同时,它们也会须要更多的硬件资源。因此这一优点属于锦上添花,而不能起到雪中送炭的作用。至于数学模型结构搜索,就更遥远了。

05 小结

上述的介绍是挂一漏万的,两个成熟的网络平台系统一定有更多的细节值得去讨论,限于篇幅关系,这里不再展开。我撰写此文只是想大致说明一下,电脑学习网络平台究竟是怎样的两个存在,它可以帮助到用户做到甚么事情,提高了哪些方面的效率。

介绍完之后,再打两个小小的广告。我们项目组目前正在招聘中。如果你对 构筑基于 Kubernetes 的 Cloud Native 电脑学习网络平台系统感兴趣,可以了解下我司才云信息技术的产品 Caicloud Clever。一直以来,我们始终在这一方面努力攻坚,目前才云信息技术在电脑学习网络平台开源项目 Kubeflow 上的贡献位列全球前三。

如果诸位读者对我们的组织工作感兴趣,欢迎投递简历到 gaoce@caicloud.io。

也欢迎诸位同行多多指教,共同促进这一领域的重大进展。

原文地址:

http://gaocegege.com/Blog/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/mlp1

机器学习平台和机器学习框架有何不同,你真的搞懂了吗?

你也「在看」吗?👇

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务