在过去几年里,机器学习领域经历了巨大的发展,但作为一门相对较新的学科,其团队管理方式也在不断演变。目前,许多机器学习经理被赋予管理职责,往往是由于他们的专业能力或是在学术领域的深厚背景。有些公司在缺乏机器学习实战经验的情况下,就安排工程或产品负责人负责新机器学习功能的构建。
管理任何技术团队都是具有挑战性的: - 需要招聘优秀的人才。 - 要管理和提升这些人才。 - 要管理团队的输入,确保产品质量过关。 - 希望做出良好的长期技术选择,并管理技术债务。 - 还需要管理来自管理层的期望。
然而,管理一个机器学习团队更是充满挑战: - 机器学习人才稀缺且成本高昂。 - 机器学习团队需要多种不同的角色。 - 机器学习项目的时间表不确定,存在高度的不确定性。 - 机器学习被视为“高息信用卡的技术债”。 - 管理层通常对机器学习的理解有限。
我最近参加了加州大学伯克利分校的全栈深度学习训练营,这是一个教授全栈生产深度学习的优质课程。其中,Josh Tobin 教授的一次讲座提供了关于机器学习团队管理的最佳实践。这篇文章将概述其中的一些观点,如果你是管理者,这可能会帮助你思考如何建立和管理机器学习团队;如果你是求职者,它也可能帮助你在机器学习领域找到一份工作。
让我们来看看最常见的机器学习团队角色及其所需技能: - 机器学习产品经理:负责与机器学习团队、其他业务部门及用户交流。他们设计文档、创建线框图,并制定机器学习项目的计划和优先级。 - 开发工程师:负责部署和监控产品系统,确保机器学习产品的基础设施运行良好。 - 数据工程师:构建数据管道,从数据存储中收集和监控数据行为。他们使用分布式系统,如 Hadoop、Kafka、Airflow。 - 机器学习工程师:负责训练和部署预测模型。他们使用 TensorFlow 和 Docker 等工具处理实际数据上的预测系统。 - 机器学习研究员:负责训练预测模型,但这些模型通常是前瞻性的,与实际应用联系不大。他们使用 TensorFlow/PyTorch/Jupyter 来建立模型,并撰写报告描述实验。 - 数据科学家:涵盖了从本科到博士背景的人,通常需要通过分析回答业务问题。
关于如何组建机器学习团队尚未形成共识,但取决于组织类型和成熟度。以下是几种典型的组织模式:
管理机器学习项目极具挑战性: - 项目进展不可预知,需要灵活应对。 - 机器学习过程是非线性的,难以提前计划。 - 研究和工程之间存在文化差异,双方往往不注重彼此。 - 管理层通常缺乏对这些问题的理解。
有效的管理方法包括: - 计划机器学习项目。 - 尝试多种方式。 - 根据投入而非结果衡量进度。 - 让研究人员和工程师共同工作。 - 快速连接端到端管道,展示进度。 - 向管理层传达机器学习项目的不确定性。
机器学习人才供不应求,特别是顶级人才。以下是招聘策略: - 对于机器学习工程师:寻找具备软件工程技能并对机器学习有浓厚兴趣的人。 - 对于机器学习研究员:寻找高质量的论文作者,有实际经验的人,以及有自学能力的人。 - 寻找途径:LinkedIn、招聘会、学术会议等。
面试机器学习候选人时,需考虑以下几点: - 验证候选人的优势。 - 确保他们在不擅长的领域也能达到最低要求。 - 评估背景与文化的契合度、编码能力、机器学习知识、数学难题、项目经验和机器学习理论。
如果你正在寻找机器学习工作,可以利用以下资源: - LinkedIn、招聘顾问、校园招聘会。 - 参加机器学习会议,建立人脉。 - 直接申请公司官网职位。
希望这些信息能帮助你有效地构建和管理机器学习团队。