将模型热加载到 TensorFlow 服务容器中

Hot load of models into tensorflow serving container

我知道如何将模型加载到容器中,我也知道我们可以创建一个静态配置文件,当我们 运行 tensorflow 服务容器将它传递给容器并稍后使用其中一个模型时在该配置文件中,但我想知道是否有任何方法可以将全新模型(不是以前模型的更新版本)热加载到 运行ning tensorflow 服务容器中。我的意思是我们 运行 带有模型 A 的容器,然后我们将模型 B 加载到容器中并使用它,我们可以这样做吗?如果是怎么办?

可以。

首先您需要将新模型文件复制到您在启动 tf serve 时指定的 model_base_path,以便服务器可以看到新模型。目录布局通常是这样的:$MODEL_BASE_PATH/$model_a/$version_a/* 和 $MODEL_BASE_PATH/$model_b/$version_b /*

然后您需要使用包含新模型条目的新 model_config_file 刷新 tf 服务。参见 here on how to add entries to the model config file。要让服务器接受新的配置,有两种方法可以做到:

  1. 保存新配置文件并重启 tf 服务。
  2. 在不重新启动 tf 服务的情况下即时重新加载新模型配置。此服务在 model_service.proto as HandleReloadConfigRequest, but the service's REST api does not seem to support it, so you need to rely on the gRPC API. Sadly the Python client for gRPC seems unimplemented. I managed to generate Java client code from protobuf files, but it is quite complex. An example 中定义,解释了如何生成 Java 用于进行 gRPC 推理的客户端代码,并且执行 handleReloadConfigRequest() 非常相似。