组建机器学习团队

机器学习项目要求团队的成员拥有各种技能、专业知识和技能, 与机器学习相关的责任和责任。这些是最常见的 常见机器学习团队中的以下角色:

角色 知识和技能 主要交付成果
机器学习产品经理 机器学习产品经理深入了解机器学习的优势, 优势和机器学习开发过程。它们协调业务问题 直接联系机器学习团队、最终用户、 以及其他利益相关方。他们 确定产品愿景、定义应用场景 需求,并规划项目并确定项目优先级。 产品要求文档 (PRD)。
工程经理 工程经理通过设定、传达和实现团队优先事项来实现业务目标。与机器学习产品经理一样,他们负责将机器学习解决方案与业务问题相结合。 他们会为团队成员设定明确的期望,开展绩效评估,并协助团队成员提升职业和专业发展水平。 设计文档、项目计划和效果评估。
数据科学家 数据科学家使用定量分析和统计分析 从数据中汲取洞见和价值。它们有助于识别和测试特征、构建模型原型,并有助于提高模型的可解释性。 通过统计分析回答业务问题的报告和数据可视化图表。
机器学习工程师 机器学习工程师负责设计、构建、投入生产和管理机器学习模型。 他们是对机器学习有深入了解的强大软件工程师 技术和最佳做法。 部署的模型具有足够的预测质量,可满足业务目标。
数据工程师 数据工程师构建数据流水线,以存储、汇总和处理大量数据。他们负责开发基础设施 用于收集原始数据并将其转换为 用于模型训练和传送的实用格式。数据工程师 负责整个机器学习开发过程中的数据。 全面生产化的数据流水线,进行必要的监控和 提醒。
开发者运营 (DevOps) 工程师 DevOps 工程师负责开发、部署、扩缩和监控机器学习模型的服务基础架构。 用于传送、监控、测试和提醒 模型的行为。

成功的机器学习项目的团队中,每个角色都有充分的代表。在较小的团队中,个人需要承担多个角色的职责。

建立团队做法

因为机器学习中的角色、工具和框架差异很大 因此建立通用做法至关重要, 出色的流程文档例如,某位工程师可能认为,只需获取正确的数据即可开始训练模型,而更负责任的工程师会验证数据集是否已正确匿名化,并记录其元数据和来源。确保工程师共享流程和设计模式的常见定义,有助于减少混淆并提高团队的开发速度。

流程文档

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

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

更多潜在问题

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

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

训练
  • 如何检查模型对手动创建的示例的预测结果?

  • 如何查找、检查和直观呈现模型 错误?

  • 如何确定哪项功能对给定的影响最严重 预测?

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

  • 如何基于所选数据集计算或绘制模型预测,或 示例?

  • 如何计算模型在 所选数据集?

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

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

  • 我能否在单个任务中针对多个模型评估执行元分析 开发环境?

  • 我能否将当前模型与 10 个月前的模型进行比较?

正式版发布、监控和维护
  • 我认为我创建了一个不错的模型。如何在正式版中发布?

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

  • 我可以获取一段时间内模型评估的历史记录吗?

  • 如何知道模型出现问题?

  • 我被分配了一个页面/bug,其中提到了该模型。 我该怎么做?

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

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

SQL
  • 我需要 SQL 来生成一些数据。我应该将其放在哪里?

基础架构
  • 模型服务如何运作?有图表吗?

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

通信
  • 我无法解决问题。我应该与谁联系(以及如何联系)?

注意事项

“机器学习最佳实践”的构成要素可能因公司、团队和不同组织之间 个人。例如,有些团队成员可能会将实验性 Colab 作为主要交付成果,而其他成员则希望使用 R 进行工作。有些人可能对 但有人认为监控是最重要的 虽然有其他人知道良好的特征生成做法, 想要使用 Scala从各自的角度来看,每个人都是“正确的”,如果能正确引导,这种组合将会发挥强大作用。否则,可能会出现混乱。

建立团队在之前将要使用的工具、流程和基础架构 那么项目失败的区别在于 还是提前一个季度成功启动。

效果评估

由于机器学习固有的模糊性和不确定性,人力资源经理需要尽早设定明确的期望并确定交付成果。

在确定预期和可交付成果时,应考虑 评估项目或方法是否不成功。换句话说, 需要注意的是,团队成员的绩效并不能直接 项目成功与否。例如,团队成员花费数周时间研究最终未能成功的解决方案的情况并不少见。即便是在 优质的代码、详尽的文档以及有效的 对评估应该有积极的贡献。

检查您的理解情况

创建出色的流程文档并建立通用做法的主要原因是什么?
提高项目速度。
正确。拥有良好的流程文档并确立 有助于减少混淆并简化开发流程。
在整个公司范围内建立最佳实践。
由于机器学习开发因项目而异,因此团队通常会制定自己的一套最佳实践,以便高效工作并提高速度。
确保团队中的所有工程师都具有相同的专业水平。
机器学习团队中的工程师通常拥有各种技能和 知识。流程文档有助于工程师就最佳实践达成一致 以加快速度。