【问题标题】:MLOps - How to refresh a ML modelMLOps - 如何刷新 ML 模型
【发布时间】:2020-07-01 09:10:23
【问题描述】:

下图显示了我们公司用于管理模型生命周期的两条管道。

  • 第一个管道“应用程序”涉及创建托管模型并具有推理逻辑的应用程序组件。
  • 第二个,即“模型”,是一个导致生成二进制格式模型的管道。

(模型和应用程序)将一起部署在我们的编排器(kubernetes 集群)中。

我的情况是应用程序逻辑不会改变,但模型会改变。 我会发现自己处于以下情况。

我想有两种方法可以管理协调器上的运行时模型刷新(希望有人建议我其他我没有考虑过的可能性):

  1. 在应用程序逻辑中;代码通过采用新模型通过线程管理刷新。
    • 优点:不会生成新容器
    • 缺点:能够引入错误。
  2. 通过管道;管道必须由事件触发(在我的情况下是 git 分支上的合并),并通过执行滚动更新来引入容器。运行时的新容器将加载新模型。
    • 优点:现有流程
    • 缺点:模型的每个新版本都应提供容器的新构建,即使应用程序逻辑没有改变。

[问题] 对于这些情况,是否有任何最佳实践(可能通过图像上的标签系统)有人可以建议我?

谢谢 基普利科

【问题讨论】:

    标签: machine-learning kubernetes model microservices mlops


    【解决方案1】:

    最无缝的方式是通过 k8s/kubectl 执行rolling update。这将需要一个新容器,但是,这被认为是最佳实践,因为每个容器都保持原子性和可重复性。通过线程更新模型将很难调试。

    您可以做的另一种情况是blue-green deployment 使用 Istio,并在新旧模型之间缓慢移动流量,尽管这需要更多开销。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-08
      • 2019-06-16
      • 1970-01-01
      • 2018-07-22
      • 2021-11-30
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多