Tensorflow Serving:如何使用 tensorflow serving 重新训练当前在生产中提供服务的模型?

Tensorflow Serving: How to re train a model that is currently served in production using tensorflow serving?

如何使用 tensorflow serving 使用当前在生产中提供的新数据重新训练模型? 我们是否必须手动训练模型并再次提供服务?或者是否有任何自动执行此操作的方法。

我正在使用带有 docker 的 tensorflow 服务。

基本上这个想法是: 考虑到已经有一个使用 tensorflow serving 服务的模型,将来我会得到一些额外的数据,然后我希望模型与这些数据相匹配,那么我们如何对同一个模型进行这种训练?

问题1:我有训练模型的脚本,但是一定要训练吗locally/manually?

回答:据我了解你所说的应该在本地或在一些远程服务器上完成,你可以根据方便在任何地方做tensorflow服务的主要重要步骤是以服务器可以使用的相应格式保存模型。请参阅 link 了解如何保存以及如何将其加载到服务 docker 容器中。 serving tensorflow model

问题2:假设我创建了一个全新的模型(除了当前服务器的modelA),我如何将它再次加载到tensorflow serving?我是否必须手动将其加载到 docker 目标路径?

回答:是的,如果您在不使用服务配置的情况下加载它,您将必须手动关闭容器,重新映射命令中的路径,然后将其加载到 docker容器。这就是服务配置帮助您仅在运行时加载模型的地方。

问题3:TFX文档说要更新model.config文件来添加新模型,但是服务是运行怎么更新呢.

答案:一个基本的配置文件应该是这样的

  config {
    name: 'my_first_model'
    base_path: '/tmp/my_first_model/'
    model_platform: 'tensorflow'
  }
  config {
    name: 'my_second_model'
    base_path: '/tmp/my_second_model/'
    model_platform: 'tensorflow'
  }
}

在启动 docker 容器之前需要映射此文件,当然还有路径以及不同模型所在的位置。此配置文件更改后将在服务 docker 容器中相应地加载新模型。您还可以维护同一模型的不同版本。有关详细信息,请参阅此 link serving config。服务会定期自动查找此文件,一旦检测到某些更改,它就会自动加载新模型,而无需重新启动 docker 容器。