云服务器内容精选
-
创建AI应用操作步骤 登录ModelArts管理控制台,在左侧导航栏中选择“AI应用”,进入AI应用列表页面。 单击左上角的“创建应用”,进入“创建应用”页面。 在“创建应用”页面,填写相关参数。 填写AI应用基本信息,详细参数说明请参见表1。 表1 AI应用基本信息参数说明 参数名称 说明 名称 AI应用名称。支持1~64位可见字符(含中文),名称可以包含字母、中文、数字、中划线、下划线。 版本 设置所创建AI应用的版本。第一次导入时,默认为0.0.1。 说明: AI应用创建完成后,可以通过创建新版本,导入不同的元模型进行调优。 描述 AI应用的简要描述。 填写元模型来源及其相关参数。当“元模型来源”选择“从训练中选择”时,其相关的参数配置请参见表2。 图1 从训练中选择元模型 表2 元模型来源参数说明 参数 说明 “元模型来源” 选择“从训练中选择”。 在“选择训练作业”右侧下拉框中选择当前账号下已完成运行的训练作业。 “动态加载”:用于实现快速部署和快速更新模型。若勾选动态加载,则模型文件和运行时依赖仅在实际部署时拉取。当单个模型文件大小超过5GB时,必须配置“动态加载”。 “AI引擎” 元模型使用的推理引擎,选择训练作业后会自动匹配。 “推理代码” 推理代码自定义AI应用的推理处理逻辑。显示推理代码URL,您可以直接复制此URL使用。 “运行时依赖” 罗列选中模型对环境的依赖。例如依赖“tensorflow”,安装方式为“pip”,其版本必须为1.8.0及以上版本。 “AI应用说明” 为了帮助其他AI应用开发者更好的理解及使用您的AI应用,建议您提供AI应用的说明文档。单击“添加AI应用说明”,设置“文档名称”及其“URL”。AI应用说明最多支持3条。 “部署类型” 选择此AI应用支持部署服务的类型,部署上线时只支持部署为此处选择的部署类型,例如此处只选择在线服务,那您导入后只能部署为在线服务。当前支持“在线服务”、“批量服务”和“边缘服务”。 确认信息填写无误,单击“立即创建”,完成AI应用的创建。 在AI应用列表中,您可以查看刚创建的AI应用及其对应的版本。当AI应用状态变更为“正常”时,表示AI应用导入成功。在此页面,您还可以创建新版本、快速部署服务、发布AI应用等操作。
-
将 自定义镜像 创建为AI应用 参考从容器镜像中选择元模型导入元模型,您需要特别关注以下参数: 元模型来源:选择“从容器镜像中选择” 容器镜像所在的路径:选择已制作好的自有镜像 图4 选择已制作好的自有镜像 容器调用接口:指定模型启动的协议和端口号。请确保协议和端口号与自定义镜像中提供的协议和端口号保持一致。 镜像复制:选填,选择是否将容器镜像中的模型镜像复制到ModelArts中。 健康检查:选填,用于指定模型的健康检查。仅当自定义镜像中配置了健康检查接口,才能配置“健康检查”,否则会导致AI应用创建失败。 apis定义:选填,用于编辑自定义镜像的apis定义。模型apis定义需要遵循ModelArts的填写规范,参见模型配置文件说明。 本样例的配置文件如下所示: [{ "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" } } ]
-
本地构建镜像 以linux x86_x64架构的主机为例,您可以购买相同规格的E CS 或者应用本地已有的主机进行自定义镜像的制作。 购买ECS服务器的具体操作请参考购买并登录弹性云服务器。镜像选择公共镜像,推荐使用ubuntu18.04的镜像。 图1 创建ECS服务器-选择X86架构的公共镜像 登录主机后,安装Docker,可参考Docker官方文档。也可执行以下命令安装docker。 curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh 获取基础镜像。本示例以Ubuntu18.04为例。 docker pull ubuntu:18.04 新建文件夹“self-define-images”,在该文件夹下编写自定义镜像的“Dockerfile”文件和应用服务代码“test_app.py”。本样例代码中,应用服务代码采用了flask框架。 文件结构如下所示 self-define-images/ --Dockerfile --test_app.py “Dockerfile” From ubuntu:18.04 # 配置华为云的源,安装 python、python3-pip 和 Flask RUN cp -a /etc/apt/sources.list /etc/apt/sources.list.bak && \ sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list && \ sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list && \ apt-get update && \ apt-get install -y python3 python3-pip && \ pip3 install --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple Flask # 复制应用服务代码进镜像里面 COPY test_app.py /opt/test_app.py # 指定镜像的启动命令 CMD python3 /opt/test_app.py “test_app.py” from flask import Flask, request import json app = Flask(__name__) @app.route('/greet', methods=['POST']) def say_hello_func(): print("----------- in hello func ----------") data = json.loads(request.get_data(as_text=True)) print(data) username = data['name'] rsp_msg = 'Hello, {}!'.format(username) return json.dumps({"response":rsp_msg}, indent=4) @app.route('/goodbye', methods=['GET']) def say_goodbye_func(): print("----------- in goodbye func ----------") return '\nGoodbye!\n' @app.route('/', methods=['POST']) def default_func(): print("----------- in default func ----------") data = json.loads(request.get_data(as_text=True)) return '\n called default func !\n {} \n'.format(str(data)) # host must be "0.0.0.0", port must be 8080 if __name__ == '__main__': app.run(host="0.0.0.0", port=8080) 进入“self-define-images”文件夹,执行以下命令构建自定义镜像“test:v1”。 docker build -t test:v1 . 您可以使用“docker images”查看您构建的自定义镜像。
-
创建AI应用的自定义镜像规范 针对您本地开发的模型,在制作AI应用的自定义镜像时,需满足ModelArts定义的规范。 自定义镜像中不能包含恶意代码。 自定义镜像大小不超过50GB。 对于同步请求模式的AI应用,如果预测请求时延超过60s,会造成请求失败,甚至会有服务业务中断的风险,预测请求时延超过60s时,建议制作异步请求模式的镜像。 镜像对外接口 设置镜像的对外服务接口,推理接口需与config.json文件中apis定义的url一致,当镜像启动时可以直接访问。下面是mnist镜像的访问示例,该镜像内含mnist数据集训练的模型,可以识别手写数字。其中listen_ip为容器IP,您可以通过启动自定义镜像,在容器中获取容器IP。 请求示例 curl -X POST \ http://{listen_ip}:8080/ \ -F images=@seven.jpg 图1 listen_ip获取示例 返回示例 {"mnist_result": 7} (可选)健康检查接口 如果在滚动升级时要求不中断业务,那么必须在config.json文件中配置健康检查的接口,供ModelArts调用,在config.json文件中配置。当业务可提供正常服务时,健康检查接口返回健康状态,否则返回异常状态。 如果要实现无损滚动升级,必须配置健康检查接口。 自定义镜像如果需要在“在线服务”模块使用OBS外部存储挂载功能,需要新建一个OBS挂载专属目录如“/obs-mount/”,避免选择存量目录覆盖已有文件。OBS挂载仅开放对挂载目录文件新增、查看、修改功能不支持删除挂载目录文件对象,若需要删除文件请到OBS并行文件系统中手动删除。 健康检查接口示例如下。 URI GET /health 请求示例curl -X GET \ http://{listen_ip}:8080/health 响应示例 {"health": "true"} 状态码 表1 状态码 状态码 编码 状态码说明 200 OK 请求成功 日志文件输出 为保证日志内容可以正常显示,日志信息需要打印到标准输出。 镜像启动入口 如果需要部署批量服务,镜像的启动入口文件需要为“/home/run.sh”,采用CMD设置默认启动路径,例如Dockerfile如下: CMD ["sh", "/home/run.sh"] 镜像依赖组件 如果需要部署批量服务,镜像内需要安装python、jre/jdk、zip等组件包。 (可选)保持Http长链接,无损滚动升级 如果需要支持滚动升级的过程中不中断业务,那么需要将服务的Http的“keep-alive”参数设置为200s。以gunicorn服务框架为例,gunicorn缺省情形下不支持keep-alive,需要同时安装gevent并配置启动参数“--keep-alive 200 -k gevent”。不同服务框架参数设置有区别,请以实际情况为准。 (可选)处理SIGTERM信号,容器优雅退出 如果需要支持滚动升级的过程中不中断业务,那么需要在容器中捕获SIGTERM信号,并且在收到SIGTERM信号之后等待60秒再优雅退出容器。提前优雅退出容器可能会导致在滚动升级的过程中业务概率中断。要保证容器优雅退出,从收到SIGTERM信号开始,业务需要将收到的请求全部处理完毕再结束,这个处理时长最多不超过90秒。例如run.sh如下所示: #!/bin/bash gunicorn_pid="" handle_sigterm() { echo "Received SIGTERM, send SIGTERM to $gunicorn_pid" if [ $gunicorn_pid != "" ]; then sleep 60 kill -15 $gunicorn_pid # 传递 SIGTERM 给gunicorn进程 wait $gunicorn_pid # 等待gunicorn进程完全终止 fi } trap handle_sigterm TERM 父主题: 使用自定义镜像创建AI应用(推理部署)
-
创建AI应用操作步骤 登录ModelArts管理控制台,在左侧导航栏中选择“AI应用”,进入AI应用列表页面。 单击左上角的“创建”,进入“创建AI应用”页面。 在“创建AI应用”页面,填写相关参数。 填写AI应用基本信息,详细参数说明请参见表1。 表1 AI应用基本信息参数说明 参数名称 说明 名称 AI应用名称。支持1~64位可见字符(含中文),名称可以包含字母、中文、数字、中划线、下划线。 版本 设置所创建AI应用的版本。第一次导入时,默认为0.0.1。 说明: AI应用创建完成后,可以通过创建新版本,导入不同的元模型进行调优。 描述 AI应用的简要描述。 填写元模型来源及其相关参数。当“元模型来源”选择“从 对象存储服务 (OBS)中选择”时,其相关的参数配置请参见表2。 针对从OBS导入的元模型,ModelArts要求根据模型包规范,编写推理代码和配置文件,并将推理代码和配置文件放置元模型存储的“model”文件夹下。如果您选择的目录下不符合模型包规范,将无法创建AI应用。 图1 从OBS中选择元模型 表2 元模型来源参数说明 参数 说明 “选择元模型” 选择元模型存储的OBS路径。 OBS路径不能含有空格,否则创建AI应用会失败。 “AI引擎” 根据您选择的元模型存储路径,将自动关联出元模型使用的“AI引擎”。 如果“AI引擎”是Custom引擎时,需要配置容器调用接口,用于指定模型启动的协议和端口号。固定请求协议是HTTPS,端口号为8080。 “健康检查” 用于指定模型的健康检查。选择了“AI引擎”和“运行环境”后,部分支持健康检查的引擎会显示该参数。使用Custom引擎时,需要在镜像中配置健康检查接口,否则会导致服务部署失败。 检查方式:可以选择“HTTP请求检查”或者“执行命令检查”。 使用Custom引擎时,支持选择“HTTP请求检查”或者“执行命令检查”。 使用非Custom引擎时,仅支持选择“HTTP请求检查”。 健康检查URL:“检查方式”选择“HTTP请求检查”时显示,填写健康检查的URL,默认值为“/health”。 健康检查命令:“检查方式”选择“执行命令检查”时显示,填写健康检查的命令。 健康检查周期:填写1-2147483647之前的整数,单位为秒。 延迟时间(秒):实例启动后,延迟执行健康检查的时间。填写0-2147483647之间的整数,单位为秒,不能为空。 健康检查最大失败次数:填写1-2147483647之间的整数。在服务启动阶段,当健康检查请求连续失败达到所填次数后,服务会进入异常状态;在服务运行阶段,当健康检查请求连续失败达到所填次数后,服务会进入告警状态。 说明: 使用Custom引擎时需要符合自定义引擎规范,请参见使用自定义引擎创建AI应用。 当AI应用配置了健康检查,部署的服务在收到停止指令后,会延后3分钟才停止。 “动态加载” 用于实现快速部署和快速更新模型。若勾选“动态加载”,则模型文件和运行时依赖仅在实际部署时拉取。单个模型文件大小超过5GB,需要配置“动态加载”。 “运行时依赖” 罗列选中模型对环境的依赖。例如依赖“tensorflow”,安装方式为“pip”,其版本必须为1.8.0及以上版本。 “AI应用说明” 为了帮助其他AI应用开发者更好的理解及使用您的AI应用,建议您提供AI应用的说明文档。单击“添加AI应用说明”,设置“文档名称”及其“URL”。AI应用说明支持增加3条。 “配置文件” 系统默认关联您存储在OBS中的配置文件。打开开关,您可以直接在当前界面查看或编辑模型配置文件。 说明: 该功能即将下线,后续请根据“AI引擎”、“运行时依赖”和“apis定义”修改模型的配置信息。 “部署类型” 选择此AI应用支持部署服务的类型,部署上线时只支持部署为此处选择的部署类型,例如此处只选择在线服务,那您导入后只能部署为在线服务。当前支持“在线服务”、“批量服务”和“边缘服务”。 “apis定义” 提供AI应用对外Restfull api数据定义,用于定义AI应用的输入、输出格式。apis定义填写规范请参见模型配置文件编写说明中的apis参数说明,示例代码请参见apis参数代码示例。 确认信息填写无误,单击“立即创建”,完成AI应用创建。 在AI应用列表中,您可以查看刚创建的AI应用及其对应的版本。当AI应用状态变更为“正常”时,表示AI应用创建成功。在此页面,您还可以创建新版本、快速部署服务、发布AI应用等操作。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格