对于许多公司而言,如何从零开始组建一支机器学习团队,是一项艰巨的任务。这篇文章提供了一些实用的建议,对求职者同样具有参考价值。
近年来,机器学习领域取得了显著进展,然而管理机器学习团队却是一项全新的挑战。许多管理者因需求或自身技术背景而被推上了这一职位。在一些公司,工程师或产品经理负责建立新的机器学习能力,但他们可能缺乏相关经验。
管理任何技术团队都是充满挑战的: - 需要招聘优秀人才,并进行培养和发展。 - 需要管理团队的输入,确保方向一致。 - 要做出长期的技术决策,管理技术债务。 - 还需应对高层管理的期望。
管理机器学习团队尤其复杂: - 机器学习人才稀缺且成本高昂。 - 机器学习项目时间安排不确定,风险高。 - 机器学习是高技术债务的领域。 - 高层管理者通常对机器学习的理解有限。
最近,我参加了加州大学伯克利分校的“全栈深度学习训练营”,这是一个优秀的课程。Josh Tobin的讲座提供了关于机器学习团队管理的宝贵见解。接下来的内容将为你提供一些关于如何构建和管理机器学习团队的建议,无论是作为管理者还是求职者。
让我们来看看最常见的机器学习角色及其所需技能:
机器学习产品经理:与机器学习团队合作,为业务和终端用户提供能力。负责设计文档、创建线框图、制定优先级和项目计划。
DevOps工程师:负责部署和监控生产系统。负责运行和维护机器学习产品的基础设施。
数据工程师:构建数据管道,从数据存储中聚合和收集数据,监控数据行为。使用Hadoop、Kafka和Airflow等分布式系统。
机器学习工程师:训练和部署预测模型。使用TensorFlow和Docker等工具处理生产中的预测系统。
机器学习研究员:训练预测模型,但通常是前瞻性或非生产关键的。使用TensorFlow、PyTorch和Jupyter进行建模和报告。
数据科学家:这是一个概括性术语,涵盖从本科生到博士生的广泛背景。在一些公司,该角色需要通过数据分析解决问题。
这些角色所需的技能可以通过以下图表清晰展示: - 横轴表示机器学习的专业水平。 - 气泡大小表示沟通和技术写作能力(越大越好)。
关于如何构建机器学习团队,目前尚无统一的方法,但根据公司原型及其机器学习成熟度,有一些最佳实践。
根据公司的具体情况,可以采取以下三种策略:
管理机器学习项目极具挑战性: - 功能差异大,项目进度可能停滞数周甚至更长时间。 - 很难在早期阶段规划项目,因为不清楚哪些方案可行。 - 由于不同的价值观、背景、目标和标准,研究和工程之间存在文化差异。
管理机器学习团队的关键在于采用概率性规划: - 从初始阶段到最终阶段,项目过程充满不确定性。 - 尝试多种方法,根据投入衡量进展,而非结果。 - 让研究人员和工程师合作,尽早建立端到端管道,以实现快速成功。 - 向高层管理者说明机器学习项目的不确定性。
根据Element AI发布的《2019年全球人工智能人才报告》,顶级人工智能人才供不应求。只有少数人真正从事对整个领域产生重大影响的研究。
希望这篇文章能帮助你有效地构建机器学习团队。在接下来的博客文章中,我将分享更多关于全栈深度学习训练营的学习心得,敬请期待。