上虞第一城市门户欢迎您!   手机上虞广播网

经过数十年的探索已开发到极致,但生产机器学习还没有步入这一阶

来源:上虞门户网  2020-03-11 17:12

生产机器学习具有组织性问题。

 

该问题是伴随其出现的副产品,因为生产机器学习出现时间相对较短。

 

尽管更成熟的领域(如网络开发)经过数十年的探索已开发到极致,但生产机器学习还没有步入这一阶段。

 

举个例子,假如你的任务是为初创企业建立一个产品工程团队,来负责开发某个网络应用程序。即使没有组建团队的经验,你也能找到很多有关如何建立和发展工程团队的文章和书籍。

 

现在,假如你的公司是一家涉足机器学习的初创企业。你已经聘请了一位数据科学家来领导完成最初的工作,且成效显著。机器学习与公司产品的关系越来越紧密,数据科学家承担的责任越来越重大,很明显,机器学习团队需要发展。

 

这种情况下,没有那么多有关如何组建生产机器学习团队的文章和书籍供人参考。

 

这种情况十分普遍,机器学习公司的新责任(尤其是基础设施)交由数据科学家承担的情况时有发生。

 

这样是不对的。

 

机器学习和机器学习基础设施之间的区别

 

来源:Pexels

 

现在,平台工程师和产品工程师之间的区别已经很清楚了。同样,数据分析师和数据工程师之间也有着明显的不同。

 

很多公司的机器学习仍然缺少这样的专业知识。

 

要了解区分机器学习和机器学习基础设施为什么这么重要,这对于研究两者各自的工作内容和所需工具会很有帮助。

 

为了设计和训练新模型,数据科学家需要:

 

· 花时间在notebook上分析数据、进行实验。

· 考虑数据结构、为数据集选择正确的模型体系等问题。

· 使用Python、R、Swift或Julia之类的编程语言。

· 在PyTorch或TensorFlow等机器学习框架方面有自己的见解。

 

换句话说,数据科学家的职责、技能和工具将围绕操纵数据来开发模型,最终输出的将是能够提供最准确预测的模型。

 

机器学习基础设施与之截然不同。

 

将模型投入生产的普遍做法是将其作为微服务部署到云端。要将模型部署为生产应用程序界面,工程师需要:

 

· 同时关注分配文件、终端和云服务商的控制台,以优化稳定性、延迟和成本。

· 考虑自动伸缩实例、更新模型(前提是应用程序界面不崩溃)、在图形处理器上进行推理等问题。

· 使用Docker、Kubernetes、Istio、Flask等工具,以及云服务商提供的任何服务或应用程序界面。

 

下图展示了机器学习和机器学习基础设施之间的区别,十分形象,易于理解:

 

机器学习vs.机器学习基础设施

 

直观来看,数据科学家应该处理左边的圆圈,而不是右边的圆圈。

 

非专业人士管理基础设施有什么问题?

 

假如必须指定某个人来管理你的机器学习基础设施,但你又不想让他专职完成这项工作,那么只有两个选择:

 

· 数据科学家,因为他们熟悉机器学习。

· 开发运营工程师,因为他们熟悉通用基础设施。

 

这两个选择都有问题。

 

首先,数据科学家应该用尽可能多的时间做他们擅长的工作——数据科学。虽然学习基础设施对他们来说并不是难事,但基础设施和数据科学都是专职工作,将数据科学家的时间分配给这两项工作会降低工作质量。

 

其次,公司需要专门负责机器学习基础设施的人员。在生产过程中提供模型与托管网络应用程序不同,需要有人专门负责该项工作,能够在组织内部宣传机器学习基础设施。

 

事实证明,这样的宣传至关重要。笔者接触过很多机器学习公司,令人惊讶的是,公司内部成员的瓶颈通常不是来自技术方面的挑战,而是来自公司自身的挑战。

 

例如,笔者见过某些机器学习团队需要图形处理器 (GPUs)进行推理——GPT-2这样的大模型基本上需要图形处理器提供合理的延迟——却无法获得它们,因为这些团队的基础设施由更大的开发运营团队管理,而开发运营团队并不想把费用记在自己的账上。

 

有人专门负责机器学习基础设施,意味着该公司不仅拥有了能够不断改进基础设施的团队成员,还拥有了能够满足团队需要的宣传者。

 

那么谁来管理基础设施呢?

 

机器学习基础设施工程师。

 

这样一个头衔也许并不能让人认同,先把头衔的事放到一边,必须承认的是,生产机器学习仍然处于发展的早期阶段,更不用说头衔了。不同的公司可能会赋予其不同的称呼:

 

· 机器学习基础设施工程师

· 数据科学平台工程师

· 机器学习生产工程师

 

成熟的机器学习公司(比如Spotify)正在招聘这样的职位:

 

来源:Spotify

 

网飞公司也是如此:

 

来源:网飞公司

 

随着支持机器学习的功能(比如Gmail的Smart Compose、优步的ETA预测和网飞公司的内容推荐)在软件中越来越普遍,机器学习基础设施也变得越来越重要。

 

如果人们希望未来存在大量支持机器学习的软件,那么消除基础设施瓶颈至关重要——为此,人们需要将其视为真正的专业知识,让数据科学家专注于数据科学工作。

 

别再让数据科学家管理Kubernetes集群了……

免责声明:以上内容均基于笔者对机器学习团队的观察——并非对该行业的学术调查。笔者是Cortex的贡献者,它是一个用于在生产中部署模型的开源平台。

Copyright 2012-2013 上虞第一城市门户网站 版权所有

郑重声明:网站资源摘自互联网,如有侵权,麻烦通知删除,谢谢!