前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习平台的演进史

机器学习平台的演进史

作者头像
哒呵呵
发布2021-09-29 16:14:09
2.3K0
发布2021-09-29 16:14:09
举报
文章被收录于专栏:鸿的学习笔记

机器学习平台的最大的驱动力应该是面向数据科学家的基于 Python 的开源技术生态系统的蓬勃发展,比如 scikit-learn、XGBoost 和 Tensorflow/PyTorch 等等。也是因为有了这些算法库的存在,让大部分人都可以使用算法去完成自己的想法,而不需要知道艰深的数学知识,也不需要知道算法的具体实现。

作为一个企业,一个合格的机器学习解决方案不能仅仅局限于使用 IDE 运行几个算法库得出结果,而是一个包括代码、运行环境、模型和数据的完整流程,四者缺一不可。

随着机器学习平台的演进,对代码、运行环境、模型和数据这四个方面也有着不同的侧重:

  • 第一代机器学习平台侧重于代码和运行环境:重点是编写代码、协作和轻松执行代码。
  • 第二代机器学习平台侧重于模型:重点是快速创建和跟踪实验,以及部署、监控和理解模型。
  • 第三代机器学习平台侧重于数据:重点是特征和标签的构建以及机器学习工作流的自动化。

这三类机器学习平台并没有绝对的优劣,对于企业而言,也不一定一开始就要选择第三代机器学习平台,凡事都要有一个演进的过程。如果说草创阶段,大可以选择第一代机器学习平台,先让机器学习应用于业务,产生业务价值;然后再引入第二代机器学习平台让机器学习模型能快速且自动化的应用于业务。

第一代机器学习平台:协作开发

现在的机器学习平台的基础是在二十世纪初期形成的,而这一切都因为 Python 开源库生态系统。Python 开源库生态系统让机器学习的开发变得无比简单。

NumPy (2006)、pandas (2008) 和 scikit-learn (2007)让 Python 中的数据转换和建模比以前容易得多,并且结合 matplotlib (2003) 和 IPython (2001) 等工具,数据科学家们可以快速地启动本地开发环境,并且可以随时使用多种工具。

许多早期的数据行业的从业者来自学术界,他们以前习惯于使用像 Mathematica 和 Maple 等面向 Notebooks 的工具,因此,2011 年 IPython Notebooks 的发布(后来在 2015 年更名为 Jupyter Notebooks)受到了非常多人的追捧。

由于 Pypa(也就是它维护着 virtualenv 和 pip 等工具),Python 包和环境管理也变得更加容易。几年后,数据科学家收获了 XGBoost(2014)、TensorFlow(2015)和 PyTorch(2016)等更强大的建模工具。

对于 Notebooks 的使用无论是现在还是未来,都将会占据着数据科学家的大部分时间。

尽管如此,Notebooks 依然有着不少缺陷,比如

  1. 很难与同事共享工作内容,或协作开发;
  2. 很难建立一个正确的环境来运行别人的 Notebook;
  3. 很难使用有效的软件基础架构去运行代码;
  4. 无法定时调度笔记本;
  5. 没有代码规范。

不是没有企业或个人试图去解决这些问题,比如 JupyterHub 等,但是 Notebooks 本身的特点局限了它的发展,它专注于机器学习流程里的代码和运行环境,而没有考虑模型和数据。这导致了即使是定制系统,也不能解决问题。

正是没有把模型和数据考虑进开发流程导致了:

  • 很难和生产环境整合:Notebooks 是这一代机器学习平台的核心软件,但众所周知,它们在生产环境中难以依赖并且极易出错。
  • 以数据科学家为中心:基于代码的方法非常适合数据科学家,但这意味着其它工程师很难使用它。
  • 很难进行数据处理:特征工程、特征存储、模型部署和监控,所有这些都必须手动或在外部完成。

尽管第一代的机器学习平台在开发中得到了大量的使用,但时间证明它们对于生产环境来说,依然是一个糟糕的平台。

第二代机器学习平台:基于模型的解决方案

正是因为第一代机器学习平台有着种种缺陷,于是有人开始讨论“数据科学工作流程”或机器学习开发生命周期 (MLDLC)。这里的重点是开发一个类似于软件开发生命周期的框架,并通过使用它让机器学习团队像软件开发团队一样的去完成从机器学习模型开发到部署生产的一系列流程。

对于整个机器学习开发生命周期而言,Notebook 完成了特征工程和模型训练这一部分内容,剩余的内容交给了用于模型训练的 AutoML 工具和实验跟踪器、用于模型部署和监控的 MLOps 工具、用于模型洞察的可解释 AI 工具 (XAI) 以及用于端到端自动化的数据处理工具。至于特征存储,则是近几年才开始出现的,比如 Databricks 公司的 Feature Store。类似于下面这样

所有的这些工具都解决了机器学习开发生命周期中的一个特定的问题,而且它们都专注于模型本身,而不是代码。这代表了对机器学习平台的思考发生了相当大的转变。与其期望数据科学家通过写代码从头开始解决所有问题,也许更合理的方法是简单地为他们提供工具,帮助他们自动化工作流程的各个部分并提高他们的工作效率。许多数据科学家意识到他们的团队主要使用“现成的”算法(而不是从头开发算法),所以整个算法开发就可以类似拼图的方式去完成。

这并不是说每个人都欢迎这些工具。尤其是 AutoML,可能会因为某些数据科学家不相信该过程的结果(因此引入了 XAI),或者可能因它的存在而感到受到威胁而遭到强烈反对(工具最后都是服务于人的,使用好工具会大大提升自己的开发效率)。

从表面上看,所有这些基于模型的方案看起来都很棒。但是依然存在着下面这些问题:

  • 非常多的工具:数数上面的流程图引入了多少工具,这么多的工具让排查故障变得非常困难。
  • 隔离了数据层面:这些工具都以模型为中心,对模型而非对数据进行操作。仍然需要像 Notebook 这样的工具来处理数据。
  • 复杂的 API/SDK 网络:比如编写一个生成训练数据的脚本(可能是在 Notebook 完成的),通过 API 或 SDK 将生成的 Dataframe 传递到 AutoML 框架中,再将生成的模型通过 API 或 SDK 导入到您的 MLOps 工具中,然后通过您的 XAI 框架运行它。至于如何给预测结果进行评判,那就需要编写另一个利用更多 API 的脚本,在 Airflow 之类的调度系统中运行。
  • 数据处理工作依然很复杂:比如特征工程、特征存储、实体关系映射等。
  • 所需的专家团队更加庞大:需要招聘大量的软件开发工程师、机器学习工程师和数据科学家等团队,而没有真正实现机器学习的简单化。

目前的第二代机器学习平台在很多企业开始使用,并且由一些专门做企业 AI 的开发商完成第二代机器学习平台的搭建。

第三代机器学习平台:声明式的数据优先的 AI 系统

第三代机器学习平台是基于一个简单的理论,也就是:

什么是机器学习模型?也就是输入数据到模型中,并输出预测结果,并对输出结果进行评估。

在这里面,我们可以注意到,机器学习平台需要以数据为中心进行开发和衍生。

第三代机器学习平台是建立在第一代和第二代基础之上的,正是因为它们在生产环境中遇到了不少麻烦,才让人们重新思考是否还能再进行完善或者是彻底重构。第三代机器学习平台是因为 AI 算法已经足够成熟了,只需要像平台提供一些训练数据就可以让平台完成一次机器学习模型的训练和部署到生产环境。在整个过程中,不需要任何代码编写,也不需要引入大量的复杂工具。

基于上面的讨论,我们可以认为第三代机器学习平台应该包含:

  • 特征存储系统:这里包括特征存储和特征之间的关系,特征处理的自动化,对特征的抽象化和通用化;
  • 声明式的 AI 引擎:可以理解类似于SQLFlow的东西,使用sql就可以完成机器学习模型的训练;
  • MLOps 和 XAI:自动化进行模型部署,自动生成模型预测的结果,无需进行复杂的代码开发。

当然因为时代的限制,这些东西依然在探索中。比如有苹果公司的 Overton 和 Trinity、优步的Ludwig,Andrew Ng 和 特斯拉的 Andrej Karpathy 也开始在演讲中倡导以数据为中心规划机器学习模型。感兴趣的读者可以读下:https://queue.acm.org/detail.cfm?id=3479315 这篇文章。

希望未来有一天能看到第三代机器学习平台的真正落地实践。

参考链接:
  1. https://analyticsindiamag.com/why-jupyter-notebooks-are-so-popular-among-data-scientists/
  2. https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUhkKGvjtV-dkAIsUXP-AL4ffI/edit#slide=id.g362da58057_0_6
  3. https://continual.ai/post/is-data-first-ai-the-next-big-thing
  4. https://queue.acm.org/detail.cfm?id=3479315
  5. https://en.wikipedia.org/wiki/Explainable_artificial_intelligence
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿的笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一代机器学习平台:协作开发
  • 第二代机器学习平台:基于模型的解决方案
  • 第三代机器学习平台:声明式的数据优先的 AI 系统
  • 参考链接:
相关产品与服务
腾讯云 TI 平台
腾讯云 TI 平台(TencentCloud TI Platform)是基于腾讯先进 AI 能力和多年技术经验,面向开发者、政企提供的全栈式人工智能开发服务平台,致力于打通包含从数据获取、数据处理、算法构建、模型训练、模型评估、模型部署、到 AI 应用开发的产业 + AI 落地全流程链路,帮助用户快速创建和部署 AI 应用,管理全周期 AI 解决方案,从而助力政企单位加速数字化转型并促进 AI 行业生态共建。腾讯云 TI 平台系列产品支持公有云访问、私有化部署以及专属云部署。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档