组建机器学习团队

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

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

成功的机器学习项目总会让团队有能力扮演各种角色 代表性。在小型团队中,个人需要处理 多个角色的职责。

确立团队做法

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

流程文档

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

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

更多潜在问题

型号
  • 我可以在同一项目的不同数据集上训练模型吗 比如微调?

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

训练
  • 如何根据手工设计的样本检查模型的预测结果?

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

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

  • 如何了解哪些功能对 预测?

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

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

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

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

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

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

生产化、监控和维护
  • 我认为我创建了一个很好的模型。如何发布正式版?

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

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

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

  • 我得到一个页面/错误,提到了关于该模型的一些信息。 我该怎么做?

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

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

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

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

  • 我的模型依赖于哪些上游系统, ?

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

注意事项

“机器学习最佳实践”的构成要素可能因公司、团队和不同组织之间 个人。对于 例如,有些团队成员可能会认为实验性 Colab 作为主要 而其他人则希望使用 R 语言。有些人可能对 但有人认为监控是最重要的 虽然有其他人知道良好的特征生成做法, 想要使用 Scala每个人都“对”自己的想法 调整得当,组合就会大放异彩。否则,情况就会变得一团糟。

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

效果评估

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

在确定预期和可交付成果时,应考虑 评估项目或方法是否不成功。换句话说, 重要的是,团队成员的绩效并不能直接关联到 项目成功与否。例如,团队成员 数周时间来调查最终以失败告终的解决方案。即便是在 优质的代码、详尽的文档以及有效的 对评估应该有积极的贡献。

检查您的理解情况

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