tensorflow serving生产部署模型

docker安装tfserving

1
docker pull tensorflow/serving:2.11.0

docker启动tfserving服务

1
2
3
4
5
6
7
8
9
10
11
docker run -t --rm \
--name=tfx \
-p 8500:8500 -p 8501:8501 \
-v /mnt/disk1/data/zhoutao/250609-square_modeling/data/saved_model:/models_rcmd \
-v /mnt/disk1/data/deploy/tfx/config:/tfx_configs \
tensorflow/serving:2.11.0 \
--model_config_file=/tfx_configs/models.config \
--model_config_file_poll_wait_seconds=60 \
--monitoring_config_file=/tfx_configs/monitoring.config \
--file_system_poll_wait_seconds=30 \
--enable_model_warmup

其中:

  • 8500是grpc的端口,8501是http的端口
  • /models_rcmd是存放模型的目录;/tfx_configs是存放配置文件的目录
  • --model_config_file=/tfx_configs/models.config: 指定多模型的配置文件路径
  • --model_config_file_poll_wait_seconds=60: 每隔60秒轮询更新models.config配置文件
  • --file_system_poll_wait_seconds=30: 每隔30秒轮询更新每个模型的版本
  • --enable_model_warmup: 启用模型预热功能,加速首次访问模型的速度(需要提供预热数据文件到assets.extra/目录中)
  • 更多tfserving配置

配置文件

更多详询

models.config

1
2
3
4
5
6
7
8
9
10
11
12
model_config_list {
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'
}
}

monitoring.config

1
2
3
4
prometheus_config {
enable: true,
path: "/monitoring/prometheus/metrics"
}

参考资料