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

AVa*_*arf 2 tensorflow tensorflow-serving

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

Hap*_*ene 5

你可以。

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

然后,您需要使用包含新模型条目的新 model_config_file 刷新 tf serve。请参阅此处了解如何向模型配置文件添加条目。为了让服务器接受新的配置,有两种方法可以做到:

  1. 保存新的配置文件并重新启动 tf 服务。
  2. 无需重新启动 tf 服务即可即时重新加载新模型配置。该服务在model_service.proto中定义为HandleReloadConfigRequest,但该服务的REST api似乎不支持,因此需要依赖gRPC API。遗憾的是,gRPCPython 客户端似乎没有实现。我设法从 protobuf 文件生成 Java 客户端代码,但它非常复杂。这里的一个例子解释了如何生成用于进行 gRPC 推理的 Java 客户端代码,并且与 handleReloadConfigRequest() 非常相似。