TFServing是否有API可重新加载已部署的指定版本模型?
TF Serving同版本模型覆盖后重载解决方案
前提准备
启动TF Serving时需要先开启对应参数支持同版本模型重载:
# 核心启动参数示例 tensorflow_model_server \ --model_config_file=/path/to/your/model.config \ --allow_reload_models=true \ --reload_unmodified_model_versions=true \ # 允许重载版本号不变但文件变更的模型 --rest_api_port=8501 \ --grpc_port=8500
如果需要自动轮询重载,可额外添加轮询间隔参数,单位为秒:--file_system_poll_wait_seconds=30(示例为每30秒自动扫描模型目录变更,无需手动触发请求)
手动触发重载的方式
1. REST API 方式
单指定模型版本重载
发POST请求到如下地址:http://localhost:8501/v1/models/common:reload
请求体为:
{ "version": "0" }
全量模型配置重载
如果需要重载所有模型配置,触发全量模型加载检查,可发POST请求到:http://localhost:8501/v1/config:reload
无需请求体即可触发所有模型的版本文件校验,覆盖后的版本0模型会被重新加载。
2. RPC 方式
对应的gRPC接口为 tensorflow.serving.ModelService.Reload,可通过传入模型名称和指定版本号触发指定版本重载,直接调用即可触发目标版本模型的文件重加载逻辑。
注意事项
覆盖模型文件时请保证操作原子性:不要直接在/var/models/common/0目录下修改文件,建议先在同磁盘的临时目录下写入完整的新版本模型文件,再用mv命令原子替换整个0目录,避免TF Serving在文件写入过程中触发重载导致加载失败。
内容的提问来源于stack exchange,提问作者loner233
相关产品推荐
相关产品推荐

