机器学习项目要求团队的成员拥有一系列技能、专业知识和技能, 与机器学习相关的责任和责任。这些是最常见的 常见机器学习团队中的以下角色:
角色 | 知识和技能 | 主要交付成果 |
---|---|---|
机器学习产品经理 | 机器学习产品经理深入了解机器学习的优势, 优势和机器学习开发过程。它们协调业务问题 指导机器学习团队、最终用户、 以及其他利益相关方。他们 确定产品愿景、定义应用场景 需求,并规划项目并确定项目优先级。 |
产品要求文档 (PRD)。 |
工程经理 | 工程经理通过设定、沟通和 实现团队优先要务。喜欢机器学习 他们需要根据业务问题来调整机器学习解决方案。 他们为团队成员设定了明确的期望 进行绩效评估,并协助开展职业生涯和 职业发展。 |
设计文档、项目计划和性能评估。 |
数据科学家 | 数据科学家使用定量分析和统计分析 从数据中汲取洞见和价值。它们有助于识别和测试 特征、原型模型以及模型可解释性方面的帮助。 | 报告和数据可视化,解答业务问题 统计分析。 |
机器学习工程师 | 机器学习工程师负责设计、构建、投入生产和管理机器学习模型。 他们是对机器学习有深入了解的强大软件工程师 技术和最佳做法。 | 已部署具有足够预测质量的模型,以满足业务需求 目标。 |
数据工程师 | 数据工程师构建数据流水线,用于存储、汇总和 处理大量数据。他们负责开发基础设施 用于收集原始数据并将其转换为 用于模型训练和传送的实用格式。数据工程师 负责整个机器学习开发过程中的数据。 | 全面生产化的数据流水线,进行必要的监控和 提醒。 |
开发者运营 (DevOps) 工程师 | DevOps 工程师负责开发、部署、扩缩和监控 机器学习模型的服务基础架构。 | 用于传送、监控、测试和提醒 模型的行为。 |
成功的机器学习项目总会让团队有能力扮演各种角色 代表性。在小型团队中,个人需要处理 多个角色的职责。
确立团队做法
因为机器学习中的角色、工具和框架差异很大 因此建立通用做法至关重要, 出色的流程文档例如,一位工程师 认为仅获取正确的数据就足以开始训练模型, 而负责的工程师则负责验证数据集是否经过匿名化处理 并记录其元数据和出处。确保工程师分享 流程和设计模式的通用定义可减少混淆和 提高团队工作效率
流程文档
流程文档应定义团队的工具、基础架构和流程 将用于机器学习开发。良好的流程文档有助于使新流程与现有流程保持一致 团队成员。他们应回答以下类型的问题:
- 如何为模型生成数据?
- 我们如何检查、验证和直观呈现数据?
- 如何修改训练数据中的输入特征或标签?
- 如何自定义数据生成、训练和评估流水线?
- 如何更改模型架构以适应输入的变化 特征或标签?
- 我们如何获得测试样本?
- 我们使用哪些指标来判断模型质量?
- 我们如何在生产环境中发布模型?
- 我们如何知道模型是否存在问题?
- 我们的模型依赖于哪些上游系统?
- 如何使 SQL 可维护且可重复使用?
更多潜在问题
型号我可以在同一项目的不同数据集上训练模型吗 比如微调?
如何向流水线添加新的测试数据集?
如何根据手工设计的样本检查模型的预测结果?
如何查找、检查和直观呈现模型 错误?
如何确定哪项功能对给定的影响最严重 预测?
如何了解哪些功能对 预测?
如何基于所选数据集计算或绘制模型预测,或 示例?
如何计算模型在 所选数据集?
如何开发和计算自定义指标?
如何离线比较我的模型与其他模型?
我是否可以在单个事件中针对多个模型评估执行元分析 开发环境?
我能否将当前模型与 10 个月前的模型进行比较?
我认为我创建了一个很好的模型。如何发布正式版?
如何验证我的新模型是否在生产环境中正确运行?
我可以获取模型评估随时间变化的历史记录吗?
我如何知道模型何时出现问题?
我得到一个页面/错误,提到了关于该模型的一些信息。 我该怎么做?
如何自定义数据生成/训练/评估 ?
应该何时以及如何创建全新的流水线?
我需要 SQL 来生成一些数据。我应该将其放在哪里?
我们的模型服务如何运作?有图表吗?
我的模型依赖于哪些上游系统, ?
我不知道什么问题。我应该与谁联系(以及如何联系)?
注意事项
“机器学习最佳实践”的构成要素可能因公司、团队和不同组织之间 个人。对于 例如,有些团队成员可能会认为实验性 Colab 作为主要 而其他人则希望使用 R 语言。有些人可能对 但有人认为监控是最重要的 虽然有其他人知道良好的特征生成做法, 想要使用 Scala每个人都“对”自己的想法 调整得当,组合就会大放异彩。否则,情况就会变得一团糟。
建立团队在之前将要使用的工具、流程和基础架构 那么项目失败的区别在于 还是提前一个季度成功启动。
效果评估
由于机器学习固有的模糊性和不确定性,人员经理需要 明确预期,并尽早确定可交付成果。
在确定预期和可交付成果时,应考虑 评估项目或方法是否不成功。换句话说, 重要的是,团队成员的绩效并不能直接关联到 项目成功与否。例如,团队成员 数周时间来调查最终以失败告终的解决方案。即便是在 优质的代码、详尽的文档以及有效的 对评估应该有积极的贡献。