# ModelPackagingManager **Repository Path**: aiconntest/model-packaging-manager ## Basic Information - **Project Name**: ModelPackagingManager - **Description**: 智能模型代码服务化封装和模型管理工具 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 15 - **Forks**: 6 - **Created**: 2025-03-17 - **Last Updated**: 2025-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 服务封装及部署工具 ## 工具介绍 本工具主要实现将深度学习框架神经网络代码转换工具所得到的模型代码封装为可部署的服务模型,工具支持线上部署测试,由三个模块组成,模型的服务化封装模块、多服务的版本管理模块、封装管理流程自动化模块。其中模型的服务化封装模块由模型封装基础环境,模型配置读取部分,模型封装执行部分组成,通过读取模型代码和模型依赖,并基于基础镜像环境,实现模型环境的安装配置和模型代码的复制部署,完成模型的服务化封装功能。多服务的版本管理模块,有模型存储组件和模型管理组件两部分组成,前者负责模型代码和模型镜像的存储工作,后者实现对于模型和镜像的版本管理,用户权限管理,上传下载控制,日志记录等,实现对于模型的方便快捷版本控制。最后的封装管理流程自动化模块,基于持续部署和持续集成技术实现整个封装管理流程的自动化,实现模型的自动封装和模型上传。 ## 工具部署安装流程: ### 前置条件: 1.安装最新版的Kubernetes集群 2.安装最新版的 Helm 3.安装Kubernetes集群控制工具Kubectl并确保在配置文件中完成了集群控制权限配置。 ### 工具安装: 通过运行如下.sh文件完成工具安装 ``` bash quick-install-mbdms.sh ``` 上述命令将会在指定的微服务平台中完成工具及其依赖包括(PostgreSQL 和 MinIO)。 为了获取工具的UI界面需要执行如下命令,并保持终端运行。 ``` kubectl --namespace mbdms-system port-forward svc/mbdms 8080:80 ``` 新启一个命令行并运行如下命令完成账户的初始化: ``` YATAI_INITIALIZATION_TOKEN=$(kubectl get secret yatai-env --namespace mbdms -system -o jsonpath="{.data. MBDMS_INITIALIZATION_TOKEN}" | base64 --decode) echo "Open in browser: http://127.0.0.1:8080/setup?token=$MBDMS_INITIALIZATION_TOKEN" ``` 接着打开上述链接完成账户的配置和初始化。 ### 工具模型封装组件安装: 通过运行如下.sh文件完成组件安装 ``` bash quick-install-mbdms-image-builder.sh ``` 至此工具主体安装完成。 ## 工具使用示例: 当您完成模型封装部署工具的设置之后,下面是一个具体的流程示例,展示如何使用这个工具来部署和测试机器学习模型: ### 步骤1: 准备模型 首先,确保您有一个已经训练好的模型,这里假设您使用了本工具的封装组件来封装这个模型。封装过程大致如下: ``` 1.# 在您的Python环境中 2.import bentoml 3. 4.# 加载您的模型,这里假设为一个Scikit-Learn模型 5.model = ... 6. 7.# 封装您的模型到BentoML 8.bento_svc = bentoml.sklearn.get("my_model:latest") 9.bento_svc.pack("model", model) 10. 11.# 保存您的Bento服务 12.saved_path = bento_svc.save() 13. ``` ### 步骤2:推送镜像至模型封装部署工具 首先,获取API令牌并登录到BentoML CLI: ![](./1.png) ![](./2.png) 推送你的新构建镜像到模型封装部署工具: ``` bentoml push my_model:latest ```