Skip to content

Latest commit

 

History

History
188 lines (100 loc) · 7.87 KB

deploy-machine-learning-model-to-production.md

File metadata and controls

188 lines (100 loc) · 7.87 KB

将预测模型部署到生产环境中

原文: https://machinelearningmastery.com/deploy-machine-learning-model-to-production/

5 个实现机器学习的最佳实践。

并非所有预测模型都是 Google 规模的。

有时,您需要开发一个小型预测模型,并将其放入软件中。

我最近收到了这个读者问题:

实际上,我对机器学习的知识缺少一部分。在构建机器学习模型之前,所有教程都会为您提供相应的步骤。你怎么能用这个模型?

在这篇文章中,我们将介绍一些最佳实践,以简化模型到生产的过渡,并确保您充分利用它。

How To Deploy Your Predictive Model To Production

如何将您的预测模型部署到生产 照片由 reynermedia ,保留一些权利。

我有一个模特。怎么办?

因此,您已经完成了一个系统化的过程,并创建了一个可靠且准确的模型,可以预测您的问题。

你想以某种方式使用这个模型。

  • 也许你想创建一个可以进行临时预测的独立程序。
  • 也许您希望将模型合并到现有软件中。

我们假设您的软件是适度的。您不是在寻找 Google 规模的部署。也许它只适合你,也许只是一个客户或者可能是一些工作站。

到目前为止还不错?

现在,我们需要了解一些最佳实践,以便将准确可靠的模型投入运营。

5 模型部署最佳实践

为什么不将模型打入您的软件并发布?

你可以。但是,通过添加一些额外的步骤,您可以确信您正在部署的模型是可维护的并且长期保持准确。

您是否已将模型投入生产? 请发表评论并分享您的经历。

在将预测模型部署到生产环境中时,您可以采取以下五个最佳实践步骤。

1.指定表现要求

你需要清楚地说明什么是好的和坏的表现。

这可能是准确率或误报或任何指标对业务都很重要。

拼出,并使用您开发的当前模型作为基线数字。

随着您改进系统,这些数字可能会随着时间的推移而增加。

表现要求很重要。没有它们,您将无法设置确定系统是否按预期运行所需的测试。

在达成最低,平均或表现范围预期之前,请不要继续。

2.从模型系数中分离预测算法

您可能已使用库来创建预测模型。例如,R,scikit-learn 或 Weka。

您可以选择使用该库部署模型,或者在软件中重新实现模型的预测方面。您甚至可能希望将您的模型设置为 Web 服务

无论如何,最好将从模型内部做出预测的算法分开。这是从训练数据中学习的模型中的特定系数或结构。

2A。选择或实现预测算法

机器学习算法的复杂性通常在模型训练中,而不是在做出预测。

例如,使用回归算法做出预测非常简单,并且易于以您选择的语言实现。这将是重新实现的明显算法的示例,而不是模型训练中使用的库。

如果您决定使用该库做出预测,请熟悉 API 和依赖项。

用于做出预测的软件就像应用程序中的所有其他软件一样。

像软件一样对待它。

实现它,编写单元测试,使其健壮。

2B。序列化您的模型系数

让我们调用模型学习的数字或结构:_ 系数 _。

这些数据不是您的应用程序的配置。

将其视为软件配置。

使用软件项目将其存储在外部文件中。版本吧。将配置视为代码,因为它可以轻松破坏您的项目。

随着您改进模型,您很可能需要在将来更新此配置。

3.为您的模型开发自动化测试

您需要自动化测试来证明您的模型按预期工作。

在软件领域,我们所有这些回归测试。随着我们对系统的不同部分进行更改,它们确保软件未来的行为不会退化。

为您的模型编写回归测试。

  • 收集或提供一小部分数据样本做出预测。
  • 使用生产算法代码和配置做出预测。
  • 确认测试中预期的结果。

这些测试是你的预警警报。如果它们失败,您的模型将被破坏,您无法发布软件或使用该模型的功能。

使测试严格执行模型的最低表现要求。

除了要包含的域中的任何原始数据集之外,我强烈建议设计您理解的测试用例。

我还强烈建议随着时间的推移收集异常值和有趣的案例,这些案例会产生意外结果(或破坏系统)。这些应该被理解并添加到回归测试套件中。

每次代码更改后和每次发布之前运行回归测试。每晚运行它们。

4.开发反向测试和现在测试基础设施

模型将发生变化,软件和正在做出预测的数据也将发生变化。

您希望使用大型数据库上的指定配置自动评估生产模型。

这将允许您有效地回溯测试历史数据模型的更改,并确定您是否真正做出了改进。

这不是可用于超参数调整的小数据集,这是可用的全套数据,可能按月,年或其他一些重要分界进行划分。

  • 将当前运营模型运行到基准表现。
  • 运行新模型,竞争进入运营的地方。

设置完成后,每晚或每周运行一次,并自动报告。

接下来,添加一个 Now-Test。

这是对最新数据的生产模型的测试。

也许这是今天,本周或本月的数据。我们的想法是获得一个早期警告,即生产模型可能会步履蹒跚。

这可能是由内容漂移引起的,其中模型利用的数据中的关系随着时间的推移而微妙地变化。

如果表现低于最低表现要求,此 Now-Test 还可以吐出报告并发出警报(通过电子邮件)。

5.挑战然后试用模型更新

您需要更新模型。

也许您设计了一个需要新代码和新配置的全新算法。重温以上所有要点。

更小且更易于管理的变化将是模型系数。例如,您可能设置了每晚运行的模型超参数的网格或随机搜索,并吐出新的候选模型。

你应该这样做。

测试模型并且非常关键。给每个模型一个新的模型。

使用上面第 4 点中的 Back-Test 和 Now-Test 基础架构评估新模型的表现。仔细检查结果。

使用回归测试评估更改,作为最终的自动检查。

测试使用该模型的软件的功能。

也许可以将更改推送到某些位置或测试版中以获得反馈,同样可以降低风险。

一旦您确信它满足最低表现要求并且优先于之前的结果,请接受您的新模型。

像棘轮一样,考虑随着模型表现的提高,逐步更新表现要求。

摘要

将小型模型添加到操作软件是非常可行的。

在这篇文章中,您发现了 5 个步骤,以确保您覆盖您的基础并遵循良好的工程实践。

总之,这些步骤是:

  1. 指定表现要求。
  2. 从模型系数分离预测算法。
  3. 为您的模型开发回归测试。
  4. 开发反向测试和现在测试基础设施。
  5. 挑战然后试用模型更新。

如果您对有关操作机器学习模型的更多信息感兴趣,请查看帖子:

这更多是关于 Google 规模的机器学习模型部署。观看所提及的视频,并查看 AirBnB 和 Etsy 生产管道的重要链接。

您对此帖子有任何疑问或将您的模型投入生产吗? 在评论中提出您的问题,我会尽力回答。