针对目前不支持的AI引擎,您可以针对该引擎构建自定义镜像,并将镜像导入,创建为AI应用。本文详细介绍如何使用自定义镜像完成AI应用的创建,并部署成在线服务。
操作流程如下:
:在本地制作自定义镜像包,镜像包规范可参考创建AI应用的自定义镜像规范。 :验证自定义镜像的API接口功能,无误后将自定义镜像上传至SWR服务。 :将上传至SWR服务的镜像导入的AI应用管理。 :将导入的模型部署上线。
本地构建镜像
以linux 架构的主机为例,您可以购买相同规格的ECS或者应用本地已有的主机进行自定义镜像的制作。
购买ECS服务器的具体操作请参考购买并登录弹性云服务器。镜像选择公共镜像,推荐使用.04的镜像。
图1 创建ECS服务器-选择X86架构的公共镜像
登录主机后,安装,可参考。也可执行以下命令安装。
curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh
获取基础镜像。本示例以.04为例。
docker pull ubuntu:18.04
新建文件夹“self–”,在该文件夹下编写自定义镜像的“”文件和应用服务代码“.py”。本样例代码中,应用服务代码采用了flask框架。
文件结构如下所示
self-define-images/ --Dockerfile --test_app.py
进入“self–”文件夹,执行以下命令构建自定义镜像“test:v1”。
docker build -t test:v1 .
您可以使用“ ”查看您构建的自定义镜像。
本地验证镜像并上传镜像至SWR服务 在本地环境执行以下命令启动自定义镜像
docker run -it -p 8080:8080 test:v1
图2 启动自定义镜像
另开一个终端,执行以下命令验证自定义镜像的三个API接口功能。
curl -X POST -H "Content-Type: application/json" --data '{"name":"Tom"}' 127.0.0.1:8080/ curl -X POST -H "Content-Type: application/json" --data '{"name":"Tom"}' 127.0.0.1:8080/greet curl -X GET 127.0.0.1:8080/goodbye
如果验证自定义镜像功能成功,结果如下图所示。
图3 校验接口
上传自定义镜像至SWR服务。上传镜像的详细操作可参考如何登录并上传镜像到SWR。 完成自定义镜像上传后,您可以在“容器镜像服务>我的镜像>自有镜像”列表中看到已上传镜像。
图4 上传镜像列表
将自定义镜像创建为AI应用
参考从容器镜像中选择元模型导入元模型,您需要特别关注以下参数: apis定义:选填,用于编辑自定义镜像的apis定义。模型apis定义需要遵循的填写规范,参见模型配置文件说明。
本样例的配置文件如下所示:
[{ "url": "/", "method": "post", "request": { "Content-type": "application/json" }, "response": { "Content-type": "application/json" } }, { "url": "/greet", "method": "post", "request": { "Content-type": "application/json" }, "response": { "Content-type": "application/json" } }, { "url": "/goodbye", "method": "get", "request": { "Content-type": "application/json" }, "response": { "Content-type": "application/json" } } ]
将AI应用部署为在线服务 参考部署为在线服务将AI应用部署为在线服务。 在线服务创建成功后,您可以在服务详情页查看服务详情。
图6 调用指南
您可以通过“预测”页签访问在线服务。
图7 访问在线服务