智能开发工具库

发现AI开发利器,提升研发效率

← 返回 教程指南

TensorFlow Serving部署模型实战

首先确保模型已保存为SavedModel格式。使用tf.saved_model.save()导出,注意指定签名函数。建议将模型版本号作为子目录名,例如/models/my_model/1/。启动TensorFlow Serving容器:docker run -p 8501:8501 -p 8500:8500 --mount type=bind,source=/path/to/models,target=/models tensorflow/serving --model_config_file=/models/models.conf。

配置models.conf可管理多个模型,设置模型名称、base_path和版本策略。RESTful API默认端口8501,发送POST请求到http://localhost:8501/v1/models/my_model:predict,请求体为JSON格式,包含instances数组。gRPC端口8500,使用Python客户端grpc和tensorflow_serving库调用。

性能优化:调整线程数(--num_workers)、启用batching(--enable_batching),设置最大batch大小和超时时间。对于高并发场景,可结合负载均衡器。监控方面,TensorFlow Serving暴露Prometheus指标,可集成Grafana仪表盘。

注意:模型输入输出需与训练时一致。若使用自定义op,需编译so文件并挂载。多模型时注意内存消耗,每个模型独占内存,建议使用共享模型管理。对于高频推理,可考虑使用TensorRT加速,将模型转换为TensorRT engine。

实践建议:先用小模型测试API联通性,再逐步增加复杂度。记录每个请求的响应时间,建立基线。定期更新模型版本,利用TensorFlow Serving的版本管理实现无缝切换。