机器学习运用设计阶段的 10 个圈套和 11 个最佳实际

图灵汇官网

机器学习应用设计阶段的常见陷阱与最佳实践

你是否成功设计、训练并测试过一个机器学习应用(MLA)?尽管经过了实验室的验证,但其表现却未达到预期,甚至在实际应用中遭遇失败?如果是这种情况,不妨继续阅读本文,我将详细介绍我们团队曾遇到的一些常见陷阱及如何避免这些陷阱的最佳实践。

方法

降低机器学习应用的设计、开发和部署成本,是DataOps、DevOps、MLOps等众多操作方法论的一部分。我们主张应循序渐进,逐步掌握机器学习应用生命周期的各个环节。本文主要聚焦于机器学习应用设计阶段遇到的陷阱及其解决方案。

项目管理

项目管理可以被视为一系列步骤或循环。按特定顺序执行的任务,例如设计、开发、测试和部署,是典型的瀑布式项目管理方法。然而,我们建议采用迭代和异步的方式完成任务,以提高效率。

常见陷阱与最佳实践

陷阱1:盲目寻找机器学习解决方案

作为一家咨询公司,我们经常在客户不需要机器学习解决方案的情况下,仍将其引入。这主要是因为在2016年及更早的时候,许多客户只是希望声称自己在使用机器学习,而实际上并没有真正的需求或准备。

陷阱2:缺乏数据和问题定义

在2017年之前,我们曾遇到过没有发现数据或明确问题的情况。因此,这两个陷阱需要首先解决。

最佳实践1:理解业务需求,定义机器学习解决方案

选择那些愿意明确业务需求并支持你定义合适机器学习解决方案的合作伙伴。

最佳实践2:控制成本,确保成功

第一个项目应注重功能扩展而非优化现有系统。避免将机器学习应用于现有的遗留系统,这需要谨慎规划。

最佳实践3:识别并定义业务用例、流程和数据流图

识别关键绩效指标(KPI),并了解哪些方面对利益相关者最为重要。这有助于找到最需要改进的领域。

最佳实践4:一次只开发一个机器学习应用

确定业务用例后,应专注于开发一个机器学习应用。只有在第一个应用取得成功后,才考虑扩展到其他应用。

最佳实践5:投资增加,推动更多项目

在第一个应用成功部署后,可以进一步扩大投资,启动更多项目。但需注意,不要因为实验室中的良好表现而忽视潜在的风险。

陷阱3:设计单体架构

构建单一的应用程序会导致瀑布式开发过程,其中各部分高度耦合。

最佳实践6:设计组件化管道或微服务架构

将机器学习应用设计为组件化的管道或微服务。每个组件应具有明确的输入和输出,且彼此独立。

最佳实践7:机器学习应用设计蓝图

设计阶段应包括功能性和非功能性需求的确定,这些需求将指导应用的架构设计,并影响生产策略。

最佳实践8:应用软件工程最佳实践

利用软件开发的经验教训,特别是在处理随机性的机器学习项目中。大部分传统软件工程的方法和最佳实践同样适用于机器学习项目。

陷阱4:重复造轮子

很多项目因前期研究不足而不得不重新开始。一开始,可以尝试搜索GitHub或其他资源,找到已有的代码或论文,从而节省时间和精力。

陷阱5:解决方案过于简单

对于小规模项目,现成的解决方案可能已经足够。但在竞争激烈的市场中,可能需要定制功能或多个模型组合。

最佳实践9:自然语言处理应用需要Transformer架构

自然语言处理应用近年来有了显著变化,使用Transformer架构可以显著提升性能。例如,BERT模型因其强大的预训练能力和大规模参数量而优于传统的GLOVE模型。

陷阱6:缺乏沟通

即使项目进展顺利,也会出现各种小问题。提供定期的状态更新报告,有助于消除误解。

陷阱7:错误的业务用例

确保准确理解业务需求,否则可能需要重新评估并可能重新开始项目。

陷阱8:机器学习应用无法满足需求

如果业务需求发生变化或优先级调整,你可能需要重新评估需求并提供替代方案。

陷阱9:客户缺乏机器学习经验

为客户提供必要的培训和支持,帮助他们更好地理解和使用机器学习技术。

陷阱10:缺乏机器学习部署基础设施

对于缺乏机器学习部署环境的情况,建议使用云服务。例如,Google Cloud Platform、AWS和Microsoft Azure都是不错的选择。

最佳实践10:云端部署

推荐使用Google Cloud Platform进行机器学习模型的部署。GCP提供的Colab服务是一个很好的免费选项。

最佳实践11:定期审核解决方案

机器学习领域发展迅速,需及时跟进最新的研究成果和技术进展,确保解决方案始终有效。

结语

本文旨在帮助读者了解在机器学习应用设计阶段可能遇到的问题,并提供相应的解决方案。无论是作为外部顾问还是内部团队成员,这些陷阱和最佳实践都将有助于你成功地设计和实施机器学习应用。随着机器学习的普及,我们预计未来会有更多成功的案例出现。

本文来源: 图灵汇 文章作者: 蒋孟婷