组建机器学习团队

机器学习项目要求团队成员具备与机器学习相关的各种技能、专业知识和职责。以下是典型机器学习团队中最常见的角色:

角色 知识和技能 主要交付成果
机器学习产品经理 机器学习产品经理对机器学习的优缺点以及机器学习开发过程有深入了解。他们通过指导机器学习团队、最终用户和其他相关方合作,将业务问题与机器学习解决方案协调一致。他们负责制定产品愿景、定义使用场景和要求,以及规划和确定项目的优先级。 产品要求文档 (PRD)。
如需查看机器学习异常值检测 PRD 的示例,请参阅 异常值检测 PRD
工程经理 工程经理通过设定、沟通和实现团队优先事项来实现业务目标。与机器学习产品经理一样,他们会根据业务问题调整机器学习解决方案。他们为团队成员设定了明确的预期,进行绩效评估,并协助他们实现职业发展和职业发展。 设计文档、项目计划和性能评估。
如需查看机器学习设计文档的示例,请参阅 go/ml-design-doc-example
数据科学家 数据科学家使用定量和统计分析从数据中提取分析洞见和价值。它们有助于识别和测试功能、模型原型,并帮助提高模型可解释性。 通过统计分析解答业务问题的报告和数据可视化内容。
机器学习工程师 机器学习工程师能够设计、构建、生产和管理机器学习模型。他们都是强大的软件工程师,对机器学习技术和最佳做法有深入的了解。 部署的模型具有足够的预测质量,可以实现业务目标。
数据工程师 数据工程师会构建用于存储、汇总和处理大量数据的数据流水线。他们开发用于收集原始数据并将其转换为用于模型训练和传送的实用格式的基础架构和系统。数据工程师负责整个机器学习开发流程中的数据。 具有必要的监控和提醒功能的完整生产化数据流水线。
开发者运营 (DevOps) 工程师 DevOps 工程师负责开发、部署、扩缩和监控机器学习模型的服务基础架构。 用于传送、监控、测试模型行为和发出提醒的自动化流程。

成功的机器学习项目会有一些团队为每个角色都得到充分代表。在小型团队中,将由个人承担多个角色的职责。在这些实例中, Vertex AI 等 AutoML 工具可以通过自动执行模型开发、理解和部署等机器学习任务来提供帮助。

建立团队实践

由于机器学习开发中的角色、工具和框架差异很大,因此通过优秀的流程文档来建立通用做法至关重要。例如,一名工程师可能会认为仅获得正确的数据就足以开始训练模型,而负责任的工程师则会验证数据集是否已正确匿名化并记录其元数据和出处。确保工程师分享流程和设计模式的通用定义可以减少混淆,提高团队的速度。

流程文档

流程文档应定义团队将用于机器学习开发的工具、基础架构和流程。优秀的流程文档有助于让新老团队成员保持一致。他们应该回答以下类型的问题:

  • 如何为模型生成数据?
  • 如何检查、验证和直观呈现数据?
  • 如何修改训练数据中的输入特征或标签?
  • 如何自定义数据生成、训练和评估流水线?
  • 如何更改模型架构以适应输入特征或标签的变化?
  • 我们如何获取测试样本?
  • 我们将使用哪些指标来判断模型质量?
  • 如何在生产环境中发布模型?
  • 我们如何知道模型是否出了问题?
  • 我们的模型依赖哪些上游系统?
  • 如何使 SQL 可维护且可重复使用?

如需查看包含这些问题列表的 Google 文档,请访问 go/ml-list-of-questions

更多潜在问题

型号
  • 我可以在同一流水线中利用不同数据集训练模型,例如进行微调吗?

  • 如何向流水线添加新的测试数据集?

培训
  • 如何在手动创建的样本中检查模型的预测结果?

  • 如何查找、检查并直观呈现模型出错的地方?

  • 如何确定哪个特征对给定预测影响最大?

  • 如何了解哪些特征对给定样本中的预测影响最大?

  • 如何根据所选数据集或样本计算或绘制模型预测结果?

  • 如何计算模型对选定数据集的预测的标准指标?

  • 如何开发和计算自定义指标?

  • 如何比较我的模型与其他离线模型?

  • 我可以在单个开发环境中针对多个模型评估执行元分析吗?

  • 我可以将当前模型与 10 个月前的模型进行比较吗?

生产、监控和维护
  • 我想我创建了一个很好的模型。如何将其发布到生产环境中?

  • 如何验证我的新模型是否在生产环境中正确运行?

  • 我可以获取模型评估的历史记录随时间的变化吗?

  • 我如何得知模型存在问题?

  • 分配给我的一个页面/错误,提及模型的相关信息。 我该怎么做?

流水线
  • 如何自定义数据生成/训练/评估流水线?

  • 我应该何时以及如何创建全新的流水线?

SQL
  • 我需要 SQL 才能生成一些数据。应将其放置在何处?

基础架构
  • 我们的模型服务如何运作?是否有图表?

  • 我的模型依赖哪些上游系统,而我应该了解这些系统?

通信
  • 我什么都不知道。我应该与谁联系(以及如何联系)?

注意事项

“机器学习最佳实践”的构成因公司、团队和个人而异。例如,一些团队成员可能会将实验性 Colab 视为主要可交付成果,而另一些团队成员则需要使用 R 语言进行工作。有些人可能热衷于软件工程,有些人认为监控是最重要的事情,而其他人知道良好的特征生产做法,但想要使用 Scala。每个人都从自己的角度看是“对”的,如果正确引导,组合将变得强大。如果不能,就可能显得一片混乱。

先建立团队在编写一行代码之前要使用的工具、流程和基础架构,是项目两年后失败,还是比计划时间提前一季度成功启动之间的区别。

效果评估

由于机器学习固有的不确定性和不确定性,人事经理需要提前设定明确的预期并设定可交付成果。

在确定预期和可交付成果时,请考虑如果项目或方法不成功,将如何评估这些预期和成果。换句话说,团队成员的表现与项目的成功并没有直接关系,这一点非常重要。例如,团队成员花数周来调查最终失败的解决方案的情况并不少见。即便是这样,他们的高质量代码、全面的文档处理能力和有效的协作应该也会对他们的评估起到积极作用。