Skip to content

Latest commit

 

History

History
129 lines (65 loc) · 10.1 KB

deploy-machine-learning-model.md

File metadata and controls

129 lines (65 loc) · 10.1 KB

部署机器学习模型是什么意思?

原文:www.kdnuggets.com/2020/02/deploy-machine-learning-model.html

评论

Luigi Patruno、数据科学家和 ML in Production 的创始人

我最近向Twitter 社区询问了他们在机器学习方面最大的痛点,以及他们的团队在 2020 年的工作重点。最常提到的痛点之一是部署机器学习模型。更具体地说,“你如何以自动化、可重现和可审计的方式部署机器学习模型?”

好问题!

在教授机器学习时,很少讨论 ML 部署的话题。训练算法和神经网络架构往往是重点,因为这些是“核心”机器学习思想。我并不反对这一点,但我认为如果数据科学家不能部署模型,他将无法为业务增加多少价值。

如果你搜索有关如何部署模型的资源,你会发现很多关于编写 Flask API 的博客文章。虽然这些文章做得很好,但并非所有 ML 模型都需要部署在 Flask API 后面。实际上,有时这会适得其反。这些文章很少讨论部署模型时需要考虑的因素、可使用的各种工具以及其他重要概念。这些话题非常广泛,一篇博客文章无法全面覆盖。

这就是为什么我写了一个关于部署机器学习模型的多部分博客系列。该系列将讨论部署机器学习模型的意义、部署模型时需要考虑的因素、使用的软件开发策略以及需要利用的工具和框架。如果你希望在每篇文章发布时收到通知,请留下你的电子邮件地址!

在讨论任何工具之前,我们先问一个问题:部署模型是什么意思?

部署机器学习模型是什么意思?

在考虑使用什么工具来部署模型之前,你需要对部署的意义有一个清晰的理解。为了获得这种理解,将自己置身于软件工程师的角度是很有帮助的。软件工程师如何看待“部署”代码?将代码的部署概念转移到机器学习领域时会发生什么?将部署视为软件工程师而非数据科学家,将显著简化部署模型的含义。

为了理解部署 ML 模型的含义,让我们简要讨论一下 ML 项目的生命周期。假设一位产品经理 (PM) 发现了一些用户需求,并确定可以使用机器学习来解决这个问题。这将涉及创建一个新产品或通过机器学习功能增强现有产品,通常以监督学习模型的形式。

产品经理将与 ML 团队负责人会面,通过定义项目目标、选择指标和设置代码库来规划项目。如果存在适当的训练和验证数据,项目将交给数据科学家或 ML 工程师处理特征工程和模型选择的迭代过程。

此阶段的目标是构建一个预测性能水平达到或超过规划阶段设定目标的模型。在这些初始阶段,驱动这个项目的用户需求仍未得到满足。即使存在一个达到最低预测性能要求的模型,这些需求也不会得到满足。

设置机器学习项目。全栈深度学习

只有当一个机器学习模型的洞察定期提供给其构建目标的用户时,这个模型才会开始为组织创造价值。将训练好的 ML 模型的预测提供给用户或其他系统的过程被称为部署。部署与特征工程、模型选择或模型评估等常规机器学习任务完全不同。

因此,部署在缺乏软件工程或 DevOps 背景的数据科学家和 ML 工程师中并不十分理解。但幸运的是,这些技能并不难学。通过实践,任何数据科学家都可以学习如何将模型部署到生产环境中。

你如何决定如何部署?

要决定如何部署一个模型,你需要了解最终用户应该如何与模型的预测进行互动。这最好通过几个示例来理解。我们将从一个非常简单的用例开始,逐步增加复杂性。

部署示例 1:部署潜在客户评分模型

假设一位数据科学家为一组精通 SQL 的技术分析师构建了一个潜在客户评分模型。这些分析师希望根据潜在客户转化为客户的可能性将新的潜在客户分组。

每天早晨,他们希望利用数据库中的数据来创建/更新他们在 BI 工具中维护的仪表盘。

由于分析师知道 SQL 并期望将模型评分存储在数据库中,“部署”潜在客户评分模型意味着为新的潜在客户生成每日评分,并将这些评分存储在分析师的数据库中。

部署的关键方面是

  1. 预测可以在一组新潜在客户上生成,

  2. 这些预测需要每天提供,并且

  3. 预测需要存储在数据库中。部署过程需要满足这三项约束条件,以便机器学习模型能为业务带来价值。

考虑一个稍微复杂一点的情况。

销售部门负责人了解了模型,并希望将模型的见解提供给他的账户执行者。自然地,也让我们感到遗憾的是,账户执行者不知道 SQL,因此在这种情况下,将预测存储在数据库中还不够。

产品经理决定,为了增加业务价值,必须在账户执行者使用的 CRM 工具中显示潜在客户评分。

之前示例中的部署方面 1 和 2(为一组潜在客户生成预测并每天生成一次)仍然有效,但方面 3 不再适用。部署涉及将分数从数据库流入 CRM 工具。这将涉及设置额外的 ETL 过程。

部署示例 2:部署推荐系统

对于我们的最终示例,假设我们考虑一下推荐系统——机器学习的一个流行应用,如何进行部署。假设我们在一家电子商务公司工作,该公司希望向用户展示购买产品的推荐。我们将考虑两种部署的变体。

场景 1:公司希望在用户登录到网站或移动应用程序后展示产品推荐。预测需要在任何时候都可以获取,这对我们的部署提出了延迟约束,影响我们是否能够在用户登录时即时生成预测,或是必须提前生成并缓存预测。部署必须使模型的预测对移动应用和网页应用都可用。因此,将我们的部署与这些应用程序分离是可取的。

场景 2:公司希望向现有客户的营销邮件中添加 5 条推荐。这些邮件每周发送给用户两次;一封邮件在周一下午发送,另一封在周五早上发送。在这种情况下,可以同时计算所有用户的推荐并进行缓存。与之前的场景相比,延迟要求要宽松得多。将这些推荐存储在数据库中就足够了。生成邮件的过程可以在数据库中查找用户的推荐,并将前 5 条推荐添加到个性化邮件中。

从这些示例中,我们可以看到,确定如何部署机器学习模型时需要考虑多个因素。这些因素包括:

  • 预测应生成的频率

  • 是否应该一次生成单个实例的预测,还是一批实例的预测

  • 访问模型的应用程序数量

  • 这些应用程序的延迟要求

结论

机器学习模型的自动化部署是 2020 年数据科学家和机器学习工程师面临的最大难题之一。由于模型只有在洞察定期提供给最终用户时才能为组织增值,因此机器学习从业者必须了解如何尽可能简单高效地部署他们的模型。确定如何部署模型的第一步是理解最终用户应如何与模型的预测进行互动。

原文。经授权转载。

简介:Luigi Patruno是一位数据科学家和机器学习顾问。他目前是 2U 的数据科学总监,领导一个负责构建机器学习模型和基础设施的数据科学团队。作为顾问,Luigi 帮助公司通过应用现代数据科学方法来生成战略业务和产品倡议的价值。他创办了MLinProduction.com以收集和分享将机器学习应用于实际操作的最佳实践,并且他还教授了统计学、数据分析和大数据工程的研究生课程。

相关:


我们的前三个课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业生涯。

2. Google 数据分析专业证书 - 提升你的数据分析技能

3. Google IT 支持专业证书 - 支持组织的 IT 需求


更多相关内容