4个步骤成功构建出一个机器学习团队
作者头像
  • 张琦
  • 2020-02-29 21:26:56 2

导读

对于许多公司而言,如何从零开始组建一支机器学习团队,是一项艰巨的任务。这篇文章提供了一些实用的建议,对求职者同样具有参考价值。

近年来,机器学习领域取得了显著进展,然而管理机器学习团队却是一项全新的挑战。许多管理者因需求或自身技术背景而被推上了这一职位。在一些公司,工程师或产品经理负责建立新的机器学习能力,但他们可能缺乏相关经验。

管理任何技术团队都是充满挑战的: - 需要招聘优秀人才,并进行培养和发展。 - 需要管理团队的输入,确保方向一致。 - 要做出长期的技术决策,管理技术债务。 - 还需应对高层管理的期望。

管理机器学习团队尤其复杂: - 机器学习人才稀缺且成本高昂。 - 机器学习项目时间安排不确定,风险高。 - 机器学习是高技术债务的领域。 - 高层管理者通常对机器学习的理解有限。

最近,我参加了加州大学伯克利分校的“全栈深度学习训练营”,这是一个优秀的课程。Josh Tobin的讲座提供了关于机器学习团队管理的宝贵见解。接下来的内容将为你提供一些关于如何构建和管理机器学习团队的建议,无论是作为管理者还是求职者。

第一步 - 定义角色

让我们来看看最常见的机器学习角色及其所需技能:

  1. 机器学习产品经理:与机器学习团队合作,为业务和终端用户提供能力。负责设计文档、创建线框图、制定优先级和项目计划。

  2. DevOps工程师:负责部署和监控生产系统。负责运行和维护机器学习产品的基础设施。

  3. 数据工程师:构建数据管道,从数据存储中聚合和收集数据,监控数据行为。使用Hadoop、Kafka和Airflow等分布式系统。

  4. 机器学习工程师:训练和部署预测模型。使用TensorFlow和Docker等工具处理生产中的预测系统。

  5. 机器学习研究员:训练预测模型,但通常是前瞻性或非生产关键的。使用TensorFlow、PyTorch和Jupyter进行建模和报告。

  6. 数据科学家:这是一个概括性术语,涵盖从本科生到博士生的广泛背景。在一些公司,该角色需要通过数据分析解决问题。

这些角色所需的技能可以通过以下图表清晰展示: - 横轴表示机器学习的专业水平。 - 气泡大小表示沟通和技术写作能力(越大越好)。

第二步 - 构建团队

关于如何构建机器学习团队,目前尚无统一的方法,但根据公司原型及其机器学习成熟度,有一些最佳实践。

原型1 - 初创和专业机器学习

  • 这些公司可能没有专门的机器学习团队,或者机器学习只是特定项目的一部分。
  • 缺乏机器学习专业知识。
  • 招聘和留住优秀人才非常困难。

原型2 - 研究和开发机器学习

  • 机器学习工作集中在研发部门,雇佣机器学习研究员和博士生。
  • 大公司,如石油天然气、制造业或电信公司。
  • 能够雇佣有经验的研究人员,但很难将研究转化为实际业务价值。

原型3 - 产品中嵌入机器学习

  • 产品团队或业务单元拥有机器学习专长。
  • 非软件公司或金融服务公司。
  • 机器学习改进带来商业价值,但招聘和培育顶尖人才仍然困难。

原型4 - 独立机器学习部门

  • 机器学习部门直接向高级管理层汇报。
  • 产品经理与研究人员和工程师合作,将机器学习融入产品。
  • 高级管理层可以协调数据和计算资源,但模型推广可能具有挑战性。

原型5 - 机器学习优先

  • CEO投资机器学习,公司专注于快速成功。
  • 从事长期项目,包括大型科技公司和专注于机器学习的初创公司。
  • 数据访问便利,招聘渠道丰富,部署流程简单,但难以在所有部门嵌入机器学习思想。

根据公司的具体情况,可以采取以下三种策略:

  1. 软件工程师 vs. 研究:机器学习团队在多大程度上担任构建或集成软件?
  2. 数据所有权:机器学习团队对数据采集、入库、标注和流水线有多少控制权?
  3. 模型所有权:机器学习团队是否负责将模型部署到生产环境中?

第三步 - 管理项目

管理机器学习项目极具挑战性: - 功能差异大,项目进度可能停滞数周甚至更长时间。 - 很难在早期阶段规划项目,因为不清楚哪些方案可行。 - 由于不同的价值观、背景、目标和标准,研究和工程之间存在文化差异。

管理机器学习团队的关键在于采用概率性规划: - 从初始阶段到最终阶段,项目过程充满不确定性。 - 尝试多种方法,根据投入衡量进展,而非结果。 - 让研究人员和工程师合作,尽早建立端到端管道,以实现快速成功。 - 向高层管理者说明机器学习项目的不确定性。

第四步 - 招聘人才

根据Element AI发布的《2019年全球人工智能人才报告》,顶级人工智能人才供不应求。只有少数人真正从事对整个领域产生重大影响的研究。

如何寻找机器学习人才?

  1. 招聘机器学习工程师:寻找具备软件工程技能、对机器学习感兴趣且愿意学习的人。
  2. 招聘机器学习研究员:关注研究质量而非数量,寻找有创新思维的研究人员,考虑招聘邻近领域的人员,如数学、物理和统计学背景的人才。
  3. 招聘途径:利用LinkedIn、招聘中介、大学招聘会,参加机器学习会议(如NeurIPS、ICLR、ICML),关注ArXiv上的研究论文并与作者联系。

如何面试机器学习候选人?

  1. 验证候选人优点:确保研究人员能创造性地思考新的机器学习问题,工程师具备扎实的工程技能。
  2. 确保候选人达到最低标准:测试研究人员的工程知识和编写代码的能力,测试工程师的简单机器学习知识。

如何找到机器学习的工作?

  1. 资源:利用LinkedIn、招聘人员、校园招聘,参加机器学习会议。
  2. 脱颖而出:建立通用的软件工程技能,展示对机器学习的兴趣,展示广泛的知识,展示完成机器学习项目的能力,证明可以创造性地思考机器学习问题。
  3. 面试准备:复习软件工程面试的实际,准备谈论过去的项目,复习机器学习理论和基本算法,创造性地思考如何应用机器学习解决面试公司的具体问题。

希望这篇文章能帮助你有效地构建机器学习团队。在接下来的博客文章中,我将分享更多关于全栈深度学习训练营的学习心得,敬请期待。

    本文来源:图灵汇
责任编辑: : 张琦
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
构建步骤团队机器成功学习一个
    下一篇