You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow Serving多版本模型:能否通过不同端点调用?

TensorFlow Serving按版本调用模型的正确方式

问题描述

我正在评估使用tensorflow/serving Docker镜像托管已保存的TensorFlow模型的方案。我的模型目录结构为:

test-model
  1
    saved model v1
  2
    saved model v2

使用如下Docker命令启动服务:

docker run \
-v "test-model:/models/test-model" \
-e MODEL_NAME=test-model \
tensorflow/serving

尝试通过不同端点调用不同版本的模型,比如http://localhost:8501/v1/models/test-model/1和http://localhost:8501/v1/models/test-model/v1,但均返回报错:

{"error": "Malformed request: POST /v1/models/test-model/v1:predict"}

解决方案

TensorFlow Serving支持通过REST API指定模型版本调用,但你使用的端点格式不正确,正确的两种调用方式如下:

方式1:通过路径指定版本

在模型名后添加/versions/版本号,完整端点为:

http://localhost:8501/v1/models/test-model/versions/1:predict

调用版本2时则改为:

http://localhost:8501/v1/models/test-model/versions/2:predict

方式2:通过查询参数指定版本

在标准预测端点后添加?version=版本号,完整端点为:

http://localhost:8501/v1/models/test-model:predict?version=1

同样,版本2的调用端点为:

http://localhost:8501/v1/models/test-model:predict?version=2

补充说明

  • 若不指定版本,TensorFlow Serving默认会加载并使用目录中版本号最大的模型(此场景下为版本2)。
  • 版本号必须是你模型目录中存在的整数(比如你的1和2),不能使用自定义字符串(如v1)。

内容的提问来源于stack exchange,提问作者senjin.hajrulahovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 06:15:02