模型部署模式
本文描述了两种常见模式正毫升工件通过分期和恢复生产。改变模型的异步本性和代码意味着有多个可能的模式,一个毫升开发过程可能也会步其后尘。
模型是由代码,但由此产生的模型工件和创造它们的代码可以异步操作。和代码更改,新模型版本可能不发生在同一时间。例如,考虑以下场景:
检测欺诈性交易,您将开发一个毫升管道通过每周一个模型。代码可能不是经常变化,但该模型可能接受再培训,每周将新数据。
您可以创建一个大型的、深层神经网络对文档进行分类。在这种情况下,训练模型计算昂贵和耗时的,培训模型可能会经常发生。然而,部署的代码,可以更新服务,并监视这个模型没有培训模型。
两种模式的区别在于是否模型工件或培训生产模型工件的代码正在向生产推广。
部署代码(推荐)
在大多数情况下,砖推荐“部署代码”的方法。这种方法纳入推荐MLOps工作流。
在此模式中,火车模型的代码在开发环境中开发的。相同的代码移动到暂存,然后生产。模型训练在每个环境:最初在开发环境中作为模型开发的一部分,在分段(数据)的有限子集作为集成测试的一部分,并在生产环境中(完整的生产数据)来产生最终的模型。
优点:
在组织对生产数据的访问是受限制的,这个模式允许训练模型对生产数据在生产环境中。
自动模式培训更安全,因为培训代码审查,测试和批准生产。
支持代码遵循相同的模式,模型训练的代码。通过集成测试阶段。
缺点:
数据科学家的学习曲线的手从代码的合作者可以陡峭。预定义的项目模板和工作流是有帮助的。
也在此模式中,数据科学家必须能够评估培训结果的生产环境中,他们的知识来识别并修复ML-specific问题。
如果你的情况要求模型被训练在举办全面生产数据集,您可以使用一个混合的方式通过部署代码阶段,训练模型,然后将其部署到生产环境模型。这种方法可以节省培训成本在生产但在分段添加了一个额外的运营成本。
部署模型
在此模式中,生成模型工件通过训练代码在开发环境中。测试工件的登台环境部署到生产。
这个选项可以被认为是一个或多个以下应用:
模型训练非常昂贵或难以复制。
所有的工作都是做在一个砖工作区。
你不使用外部回购或一个CI / CD的过程。
优点:
数据科学家的简单切换
在模型训练是昂贵的情况下,只需要训练模型。
缺点:
如果没有生产数据可以从开发环境(可能是真的出于安全考虑),这种架构可能不是可行的。
自动模式培训在这个模式是一个棘手的问题。您可以在开发环境中自动化培训,但生产团队负责部署模型可能不接受由此产生的模型作为生产就绪。
支持代码,如管道用于工程特征,推断,和监控,需要分别部署到生产。
下图对比的代码上面部署模式在不同生命周期执行环境。
图中所示的环境是最后一步是运行环境。例如,在模式部署模型,最后在开发环境中执行单元测试和集成测试。在部署代码模式中,单元测试和集成测试开发环境,运行和最终执行单元测试和集成测试的登台环境。