当前位置: 首页 > news >正文

Docker用model.config部署及更新多个模型

步骤:
1、本地打包模型
2、编写model.config文件
3、使用 Docker 启动一个 TensorFlow Serving 容器
4、本地打包后的模型修改后,修改本地model.config,再同步更新容器的model.config

1、本地打包模型(本地路径)
在这里插入图片描述

2、编写model.config文件

model_config_list:{config:{name: "model_1",base_path: "/models/model_1",model_platform: "tensorflow"},config:{name: "model_2",base_path: "/models/model_2",model_platform: "tensorflow"}
}

3、使用 Docker 启动一个 TensorFlow Serving 容器

docker run 
-p 8500:8500 
-p 8501:8501 
--mount type=bind,source=/save_data/tfs_model/,target=/models/ 
-t tensorflow-serving:2.6.0 
--model_config_file=/models/models.config 
-v /save_data/tfs_model/models.config:/models/models.config 
--allow_version_labels_for_unavailable_models &注意!注意!注意!
target后面的/models/是固定写法,不能修改。
就是将本地的source路径与容器的target路径,进行映射,本地source下的文件夹与容器target文件夹进行内容共享。model.config中的base_path写路径映射后模型在容器中的路径。

命令解析:

  1. docker run
    这是 Docker 的核心命令,用于创建并启动一个新的容器。
  2. -p 8500:8500 -p 8501:8501
    这部分指定了端口映射:
    8500:8500 表示将宿主机的 8500 端口映射到容器的 8500 端口。
    8501:8501 表示将宿主机的 8501 端口映射到容器的 8501 端口。
    TensorFlow Serving 默认使用 8500 端口进行 gRPC 通信,8501 端口用于 HTTP/REST API 通信,通过这种方式,宿主机可以访问容器内的 TensorFlow Serving 服务。
  3. –mount type=bind,source=/save_data/tfs_model/,target=/models/
    这部分指定了挂载卷:
    –mount 是 Docker 的挂载选项,用于将宿主机的目录或文件挂载到容器内部。
    type=bind 表示使用绑定挂载的方式,将宿主机的文件系统直接映射到容器中。
    source=/save_data/tfs_model/ 指定宿主机上的目录路径,这里是 /save_data/tfs_model/。
    target=/models/ 指定容器内的目标路径,这里是 /models/。
    这样,宿主机的 /save_data/tfs_model/ 目录中的内容会被直接映射到容器的 /models/ 目录中,方便模型文件的共享和访问。
  4. -t tensorflow-serving:2.6.0
    -t 是 Docker 的选项,用于指定容器的名称或标签。
    tensorflow-serving:2.6.0 是 TensorFlow Serving 的 Docker 镜像名称和版本号,表示使用 TensorFlow Serving 2.6.0 版本的镜像来启动容器。
  5. –model_config_file=/models/models.config
    这是 TensorFlow Serving 的一个参数,用于指定模型配置文件的路径:
    –model_config_file 是 TensorFlow Serving 的命令行参数,用于指定模型配置文件的路径。
    /models/models.config 是容器内的路径,指向模型配置文件。这个文件定义了模型的加载和配置信息,例如模型的名称、存储路径等。
  6. -v /save_data/tfs_model/models.config:/models/models.config
    这部分也是挂载卷的操作:
    -v 是 Docker 的挂载选项,与 --mount 类似,用于将宿主机的文件或目录挂载到容器中。
    /save_data/tfs_model/models.config:/models/models.config 表示将宿主机的 /save_data/tfs_model/models.config 文件挂载到容器的 /models/models.config 路径。
    这样,容器可以访问宿主机上的 models.config 文件,确保模型配置的一致性。
  7. –allow_version_labels_for_unavailable_models
    这是 TensorFlow Serving 的另一个参数:
    –allow_version_labels_for_unavailable_models 是 TensorFlow Serving 的一个配置选项,允许为尚未加载的模型版本设置标签。
    这在模型管理中很有用,例如在模型更新或回滚时,可以通过标签快速定位模型版本。
  8. &
    & 是一个 Shell 符号,表示将命令放在后台运行。
    这意味着 Docker 容器将在后台启动,不会阻塞当前终端。

4、同步更新容器的model.config(需修改本地IP)

config_file = "/save_data/tfs_model/models.config"
channel = grpc.insecure_channel("本地ip:8500")
stub = model_service_pb2_grpc.ModelServiceStub(channel)
request = model_management_pb2.ReloadConfigRequest()# 读取配置文件内容
config_content = open(config_file, "r").read()
model_server_config = model_server_config_pb2.ModelServerConfig()
model_server_config = text_format.Parse(text=config_content, message=model_server_config)# 设置请求内容
request.config.CopyFrom(model_server_config)# 发送请求
request_response = stub.HandleReloadConfigRequest(request, 10)
if request_response.status.error_code == 0:print("TF_Serving配置文件已更新.")
else:print("TF_Serving配置文件更新失败.")print(str(request_response.status.error_code))print(str(request_response.status.error_message))

相关文章:

  • Linux 线程互斥
  • ifconfig -bash: ifconfig: command not found
  • Yarn的定义?
  • 前端实战:基于 Vue 与 QRCode 库实现动态二维码合成与下载功能
  • 清华大学李升波教授的强化学习Tutorial Lecture
  • 关于yarn
  • This article is for Unreal Authorized Indicator Application
  • 大模型本地部署之ollama安装及deepseek、qwen等模型下载操作
  • Deno Dep:颠覆传统的模块化未来
  • Manim教程:第七章 坐标系统
  • Perf学习
  • 爱普生RX8010SJ实时时钟模块在安防监控设备中的应用
  • 江苏广电HC2910-创维代工-Hi3798cv200-2+8G-海美迪安卓7.0-强刷包
  • 静态测试:软件质量保障的第一道防线
  • 鸿蒙开发对于RelativeContainer高度设置‘auto‘后还是没有自适应问题的解决方案
  • 阿里云镜像加速仅支持阿里云产品了
  • 打造搜索神功:Express 路由中的关键词探查之道
  • 6.6.图的广度优先遍历(英文缩写BFS)
  • 二维点拟合直线ransac c++
  • 2.1 SQL server的安装以及一个数据表的创建
  • 准85后青海海北州副州长、州公安局局长李贤荣挂职临沂市副市长
  • 李在明涉嫌违反《公职选举法》案将于15日进行首次重审公审
  • “三桶油”一季度净赚966亿元:业绩分化加剧,有人欢喜有人愁
  • 龙翔被撤销南京市人大常委会主任职务,此前已被查
  • 人民日报钟声:国际社会应共同维护科学溯源的正确方向
  • 5月起,这些新规将施行