云服务器内容精选
-
解释说明 选择批量预测结果的保存位置,可以选择您创建的空文件夹。 批量服务的输出结果目录会有一个manifest文件。 假设用户输出结果路径为/test-bucket/test/,则结果存放位置如下: OBS桶/目录名 ├── test-bucket │ ├── test │ │ ├── infer-result-{{task_id}}.manifest │ │ ├── infer-result-{{task_id}} │ │ │ ├── 1.jpg_result.txt │ │ │ ├── 2.jpg_result.txt 文件格式: 文件名为“infer-result-{{task_id}}.manifest”,task_id为批量任务id,批量服务对应唯一的批量任务id。 当处理文件数目较多时,可能会有多个manifest文件,后缀相同,均为“.manifest”,文件名以后缀区分,例如“infer-result-{{task_id}}_1.manifest”等。 manifest同一目录下会创建infer-result-{{task_id}}目录存放文件处理结果。 manifest文件内容是多行JSON,每行JSON描述一个输入数据的对应输出结果。 JSON内容包含多个字段。 source:输入数据描述,与输入的manifest一致。 result:文件处理结果,取值为“SUC CES SFUL”或“FAILED”,分别代表成功和失败。 inference-loc:result为“SUCCESSFUL”时显示。输出结果路径,格式为“obs://{{桶名}}/{{对象名}}”。 error_message:result为“FAILED”时显示。输出失败原因。
-
背景说明 访问在线服务的实际业务中,用户可能会存在如下需求: 高吞吐量、低时延 TCP或者RPC请求 因此,ModelArts提供了VPC直连的高速访问通道功能以满足用户的需求。 使用VPC直连的高速访问通道,用户的业务请求不需要经过推理平台,而是直接经VPC对等连接发送到实例处理,访问速度更快。 由于请求不经过推理平台,所以会丢失以下功能: 认证鉴权 流量按配置分发 负载均衡 告警、监控和统计 图1 VPC直连的高速访问通道示意图
-
背景说明 WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。WebSocket协议在2011年由IETF标准化为RFC 6455,后由RFC 7936补充规范。Web IDL中的WebSocket API由W3C标准化。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,并进行双向数据传输。
-
方式一:使用Python语言通过AppKey+AppSecret认证鉴权方式发送预测请求 下载Python SDK并在开发工具中完成SDK配置。具体操作请参见在Python环境中集成API请求签名的SDK。 创建请求体,进行预测请求。 输入为文件格式 # coding=utf-8 import requests import os from apig_sdk import signer if __name__ == '__main__': # Config url, ak, sk and file path. # API接口公网地址,例如"https://8e******5fe.apig.******.huaweicloudapis.com/v1/infers/f2682******f42" url = "在线服务的调用地址" # 认证用的app_key和app_secret硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以app_key和app_secret保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_APP_KEY和HUAWEICLOUD_APP_SECRET。 app_key = os.environ["HUAWEICLOUD_APP_KEY"] app_secret= os.environ["HUAWEICLOUD_APP_SECRET"] file_path = "预测文件的本地路径" # Create request, set method, url, headers and body. method = 'POST' headers = {"x-sdk-content-sha256": "UNSIGNED-PAYLOAD"} request = signer.HttpRequest(method, url, headers) # Create sign, set the AK/SK to sign and authenticate the request. sig = signer.Signer() sig.Key = app_key sig.Secret = app_secret sig.Sign(request) # Send request files = {'images': open(file_path, 'rb')} resp = requests.request(request.method, request.scheme + "://" + request.host + request.uri, headers=request.headers, files=files) # Print result print(resp.status_code) print(resp.text) “files”参数的请求体样式为“files={"请求参数":("文件路径",文件内容,“文件类型”)}”,参数填写可以参考表1。 表1 files参数说明 参数 是否必填 说明 请求参数 是 在线服务输入参数名称。 文件路径 否 上传文件的路径。 文件内容 是 上传文件的内容。 文件类型 否 上传文件类型。当前支持以下类型: txt类型:text/plain jpg/jpeg类型:image/jpeg png类型:image/png 输入为文本格式(json类型) 读取本地预测文件并进行base64编码的请求体示例如下: # coding=utf-8 import base64 import json import os import requests from apig_sdk import signer if __name__ == '__main__': # Config url, ak, sk and file path. # API接口公网地址,例如"https://8e******5fe.apig.******.huaweicloudapis.com/v1/infers/f2682******f42" url = "在线服务的调用地址" # 认证用的app_key和app_secret硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以app_key和app_secret保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_APP_KEY和HUAWEICLOUD_APP_SECRET。 app_key = os.environ["HUAWEICLOUD_APP_KEY"] app_secret= os.environ["HUAWEICLOUD_APP_SECRET"] file_path = "预测文件的本地路径" with open(file_path, "rb") as file: base64_data = base64.b64encode(file.read()).decode("utf-8") # Create request, set method, url, headers and body. method = 'POST' headers = { 'Content-Type': 'application/json' } body = { 'image': base64_data } request = signer.HttpRequest(method, url, headers, json.dumps(body)) # Create sign, set the AppKey&AppSecret to sign and authenticate the request. sig = signer.Signer() sig.Key = app_key sig.Secret = app_secret sig.Sign(request) # Send request resp = requests.request(request.method, request.scheme + "://" + request.host + request.uri, headers=request.headers, data=request.body) # Print result print(resp.status_code) print(resp.text) “body”中的参数名由在线服务的输入参数决定,需要和“类型”为“string”的输入参数“名称”保持一致。此处以“image”为例。“body”中的base64_data值为string类型。
-
方式二:使用Java语言通过AppKey+AppSecret认证鉴权方式发送预测请求 下载Java SDK并在开发工具中完成SDK配置。具体操作请参见在Java环境中集成API请求签名的SDK。 创建Java类,进行预测请求。 由于在APIG的Java SDK中,“request.setBody()”只支持String类型,所以只支持输入为文本格式的预测请求。 此处以json格式为例介绍读取本地预测文件并进行base64编码的请求体: // Package name of the demo. package com.apig.sdk.demo; import com.cloud.apigateway.sdk.utils.Client; import com.cloud.apigateway.sdk.utils.Request; import org.apache.http.HttpHeaders; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class MyAkSkTest { public static void main(String[] args) { # API接口公网地址,例如"https://8e******5fe.apig.******.huaweicloudapis.com/v1/infers/f2682******f42" String url = "在线服务的调用地址"; // 认证用的appKey和appSecret硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以appKey和appSecret保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_APP_KEY和HUAWEICLOUD_APP_SECRET。 String appKey = System.getenv("HUAWEICLOUD_APP_KEY"); String appSecret = System.getenv("HUAWEICLOUD_APP_SECRET"); String body = "{}"; try { // Create request Request request = new Request(); // Set the AK/AppSecret to sign and authenticate the request. request.setKey(appKey); request.setSecret(appSecret); // Specify a request method, such as GET, PUT, POST, DELETE, HEAD, and PATCH. request.setMethod(HttpPost.METHOD_NAME); // Add header parameters request.addHeader(HttpHeaders.CONTENT_TYPE, "application/json"); // Set a request URL in the format of https://{Endpoint}/{URI}. request.setUrl(url); // Special characters, such as the double quotation mark ("), contained in the body must be escaped. request.setBody(body); // Sign the request. HttpRequestBase signedRequest = Client.sign(request); // Send request. CloseableHttpResponse response = HttpClients.createDefault().execute(signedRequest); // Print result System.out.println(response.getStatusLine().getStatusCode()); System.out.println(EntityUtils.toString(response.getEntity())); } catch (Exception e) { e.printStackTrace(); } } } “body”由具体文本格式决定,此处以json为例。
-
方式三:使用Python语言通过AppCode认证鉴权方式发送预测请求 下载Python SDK并在开发工具中完成SDK配置。具体操作请参见在Python环境中集成API请求签名的SDK。 创建请求体,进行预测请求。 输入为文件格式 # coding=utf-8 import requests import os if __name__ == '__main__': # Config url, app code and file path. # API接口公网地址,例如"https://8e******5fe.apig.******.huaweicloudapis.com/v1/infers/f2682******f42" url = "在线服务的调用地址" # 认证用的app_code硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以app_code保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_APP_CODE。 app_code = os.environ["HUAWEICLOUD_APP_CODE"] file_path = "预测文件的本地路径" # Send request. headers = { 'X-Apig-AppCode': app_code } files = { 'images': open(file_path, 'rb') } resp = requests.post(url, headers=headers, files=files) # Print result print(resp.status_code) print(resp.text) “files”中的参数名由在线服务的输入参数决定,需要和“类型”为“file”的输入参数“名称”保持一致。此处以“images”为例。 输入为文本格式(json类型) 读取本地预测文件并进行base64编码的请求体示例如下: # coding=utf-8 import base64 import requests import os if __name__ == '__main__': # Config url, app code and request body. # API接口公网地址,例如"https://8e******5fe.apig.******.huaweicloudapis.com/v1/infers/f2682******f42" url = "在线服务的调用地址" # 认证用的app_code硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以app_code保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_APP_CODE。 app_code = os.environ["HUAWEICLOUD_APP_CODE"] file_path = "预测文件的本地路径" with open(file_path, "rb") as file: base64_data = base64.b64encode(file.read()).decode("utf-8") # Send request headers = { 'Content-Type': 'application/json', 'X-Apig-AppCode': app_code } body = { 'image': base64_data } resp = requests.post(url, headers=headers, json=body) # Print result print(resp.status_code) print(resp.text) “body”中的参数名由在线服务的输入参数决定,需要和“类型”为“string”的输入参数“名称”保持一致。此处以“image”为例。“body”中的base64_data值为string类型。
-
APP认证鉴权 当支持APP认证功能的在线服务运行成功处于“运行中”状态,就可以对服务进行调用 。在调用之前您需要进行APP认证鉴权。 当使用APP认证,且开启了简易认证模式,API请求既可以选择使用Appkey和AppSecret做签名和校验,也可以选择使用AppCode进行简易认证(ModelArts默认启用简易认证)。推荐使用AppKey/AppSecret认证,其安全性比AppCode认证要高。 AppKey/AppSecret认证:通过AppKey与AppSecret对请求进行加密签名,可标识发送方并防止请求被修改。使用AppKey/AppSecret认证时,您需要使用专门的签名SDK对请求进行签名。 AppKey:APP访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 AppSecret:APP私有访问密钥,即与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 AppKey进行简易认证时,即在调用API的时候,在HTTP请求头部消息增加一个参数“apikey”(参数值为“AppKey”),实现快速认证。 AppCode认证:通过AppCode认证通用请求。 AppCode认证就是在调用API的时候,在HTTP请求头部消息增加一个参数“X-Apig-AppCode”(参数值为“AppCode”),而不需要对请求内容签名,API网关也仅校验AppCode,不校验请求签名,从而实现快速响应。 您可以在服务详情页的“调用指南”页签(如图5)获取API接口公网地址(对应下文示例中的在线服务的调用地址url)和AppKey/AppSecret(对应下文示例中的app_key、app_secret)和AppCode(对应下文示例中的app_code)。请注意使用图中第二行用于APP认证方式的API接口公网地址。 以下情况下需要对API接口公网地址进行拼接修改: 当模型配置文件中apis定义了路径,调用地址后需拼接自定义路径。如:“{在线服务的调用地址}/predictions/poetry”。 如果是部署SD WebUI推理服务,调用地址后需添加"/"。如:“https://8e******5fe.apig.******.huaweicloudapis.com/v1/infers/f2682******f42/”。 图5 获取APP认证鉴权相关信息
-
准备工作 使用专属资源池部署在线服务,服务状态为“运行中”。 需使用新版专属资源池部署服务,详情请参见ModelArts Standard资源池功能介绍。 只有专属资源池部署的服务才支持VPC直连的高速访问通道。 VPC直连的高速访问通道,目前只支持访问在线服务。 因流量限控,获取在线服务的IP和端口号次数有限制,每个主账号租户调用次数不超过2000次/分钟,每个子账号租户不超过20次/分钟。 目前仅支持 自定义镜像 导入模型,部署的服务支持高速访问通道。
-
约束限制 服务升级关系着业务实现,不当的升级操作会导致升级期间业务中断的情况,请谨慎操作。 ModelArts支持部分场景下在线服务进行无损滚动升级。按要求进行升级前准备,做好验证,即可实现业务不中断的无损升级。 表1 支持无损滚动升级的场景 创建模型的元模型来源 服务使用的是公共资源池 服务使用的是专属资源池 从训练中选择元模型 不支持 不支持 从容器镜像中选择元模型 不支持 支持,创建模型的自定义镜像需要满足创建模型的自定义镜像规范。 从OBS中选择元模型 不支持 不支持
-
方式二:通过服务详情页面修改服务信息 登录ModelArts管理控制台,在左侧菜单栏中选择“模型部署”,进入目标服务类型管理页面。 单击目标服务名称,进入服务详情页面。 您可以通过单击页面右上角“修改”,修改服务基本信息,然后根据提示提交修改任务。 当修改了服务的某些参数配置时,系统会自动重启服务使修改生效。在提交修改服务任务时,如果涉及重启,会有弹窗提醒。 在线服务参数说明请参见部署模型为在线服务。修改在线服务还需要配置“最大无效实例数”设置并行升级的最大节点数,升级阶段节点无效。
-
方式一:通过服务管理页面修改服务信息 登录ModelArts管理控制台,在左侧菜单栏中选择“模型部署”,进入目标服务类型管理页面。 在服务列表中,单击目标服务操作列的“修改”,修改服务基本信息,然后根据提示提交修改任务。 当修改了服务的某些参数配置时,系统会自动重启服务使修改生效。在提交修改服务任务时,如果涉及重启,会有弹窗提醒。 在线服务参数说明请参见部署模型为在线服务。修改在线服务还需要配置“最大无效实例数”设置并行升级的最大节点数,升级阶段节点无效。
-
在线服务预测时,如何提高预测速度? 部署在线服务时,您可以选择性能更好的“计算节点规格”提高预测速度。例如使用GPU资源代替CPU资源。 部署在线服务时,您可以增加“计算节点个数”。 如果节点个数设置为1,表示后台的计算模式是单机模式;如果节点个数设置大于1,表示后台的计算模式为分布式的。您可以根据实际需求进行选择。 推理速度与模型复杂度强相关,您可以尝试优化模型提高预测速度。 ModelArts中提供了模型版本管理的功能,方便溯源和模型反复调优。 图1 部署在线服务 父主题: 在线服务
-
操作步骤 登录RES管理控制台,在左侧导航栏选择进入“在线服务”页面。 在页面上方单击“创建”进入“创建在线服务”,在页面填写相关参数。 填写基本信息并选择服务类型。您可以根据实际情况填写“名称”、“场景”和“描述”信息。其中“场景”信息可选择您在全局配置页面创建的场景。 图1 基本信息 根据业务需求选择服务类型。包括“推荐引擎”、“排序”和“文本标签”。 单击“添加在线流程”,并进行命名,您最多可以部署5个在线流程。根据选择的服务类型配置在线流程,包括融合、过滤、排序和模型及配置等关键信息。具体参数信息参见表1。服务类型选择推荐引擎。 图2 创建在线服务 表1 创建在线服务参数说明 参数名称 子参数 说明 融合 “推荐结果设置” “添加推荐候选集”(选择离线或近线任务所生成的推荐候选集进行排序) 任务别名和UUID:单击操作列表的“选择”添加离线或近线的任务名称和候选集ID。 优先级:优先级高的推荐结果将确保展示在优先级低的之前。 同优先级数据占比:优先级相同的推荐候选集,该占比展示推荐数量,同优先级下的数据占比之和需要等于100%。 “添加在线候选集”(根据设置的参数在线进行召回,必须添加全局特征信息文件才可设置参数) 任务别名和UUID:分别默认为“在线候选集召回”和“online-recall”,无需改动。 优先级、同优先级数据占比:同添加推荐候选集。 设置参数:单击操作列的“设置参数”进行召回策略参数的配置。根据业务需求选择召回类型为物品或者用户,配置在线召回特征。在线召回的特征属性来自于公共配置的全局特征信息文件。 可单击“添加推荐候选集、添加在线候选集”配置多个候选集,作为当前在线流程的排序候选集。 说明: 在线候选集的延迟较推荐候选集较高,如无特殊需求,建议选择推荐候选集。 容错 容错用于数据请求异常时的固定人工输出召回集。需要在离线作业创建召回策略进行人工策略的计算。单击“选择”获取人工导入策略的任务别名和UUID。 离线过滤 过滤 过滤数据来源于过滤规则产生的候选集,单击“选择”获取过滤的任务别名和UUID。 在线过滤 【去重】物品属性 属性名从画像算子生成,如“product_color”,则对产品颜色相同的物品进行去重。 【去重】忽略长度 截断物品ID末尾指定长度后的字符串进行去重,如指定长度为2,则SKU_A1234和SKU_A1244只会保留其中一个。 属性过滤规则 指定定制化用户属性以及物品属性过滤规则,属性过滤规则用于过滤最终用户的推荐结果。例如,对于一线城市的用户过滤敏感信息物品,使之不进入候选集。单击增加属性过滤规则。 用户属性:指定在用户属性中需要过滤的字段,包含属性名和属性值。来源于画像数据,即特征工程中初始用户画像-物品画像-标准宽表生成算子作业输出的数据,用户属性来自于公共配置的全局特征信息文件。如过滤籍贯是广东且性别为男性的用户。 物品属性:指定在物品属性中需要过滤的字段,包含属性名和属性值。来源于画像数据,即特征工程中初始用户画像-物品画像-标准宽表生成算子作业输出的数据,物品属性的名称来自于公共配置的全局特征信息文件。如过滤产品颜色为红色且产品品牌为华为的物品。 排序方式 “点击率预估” 特征工程:排序数据来源于排序算子作业产生的候选集。单击“选择”获取排序策略的任务别名和UUID。 模型文件路径:排序策略生成的模型存储路径。 “属性权重” 属性权重:输入属性,权重默认1.0 。也可单击“增加属性权重”。 公共配置 “全局特征信息文件” 为json格式文件。指定在去重过滤即属性过滤中物品属性和用户属性的特征信息文件,如物品属性需要“feature_name”、“feature_type”、“feature_value_type”字段来表示特征名,特征类型以及特征值类型。需预先存储在OBS中。 “画像” 画像为特征工程中初始用户画像-物品画像-标准宽表生成算子的结果。且此画像会用于去重过滤、属性过滤以及排序的计算中。单击“选择”获取特征工程作业产生的UUID。 模型及配置 - 设置模型名称、模型版本、计算节点规格、计算节点个数和分流(%)。 模型名称和模型版本选择调用API接口的模型名称和模型版本。“计算节点规格”默认2核|8GiB,“计算节点个数”默认为2,“分流”之和必须是100%。 完成该项配置后,单击“下一步”进入规格确认页面,核对无误后,单击“完成”。当您通过在线服务列表查看在线服务的状态由“初始化”、“部署中”变更为“运行中”时即完成在线服务的部署。在线服务一般需要运行一段时间,根据您的数据量和资源不同,运行时间将耗时几分钟到几十分钟不等,请您耐心等待。
-
访问在线服务简介 在线服务的状态处于“运行中”,则表示在线服务已部署成功,部署成功的在线服务,将为用户提供一个可调用的API,此API为标准Restful API。在集成至生产环境之前,需要对此API进行调测。 在线服务的API默认为HTTPS访问,同时还支持WebSocket访问。在线服务部署时如果选择了“升级为WebSocket”,服务部署完成后,API接口公网地址将是一个WebSocket协议地址。请参见Websocket访问在线服务。 当前ModelArts支持访问在线服务的认证方式有以下方式(均以HTTPS请求为例): Token认证 AK/SK认证 APP认证 ModelArts支持通过以下几种方式调用API访问在线服务: 访问在线服务(公网访问通道) 访问在线服务(VPC高速访问通道) 调用API访问在线服务时,对预测请求体大小和预测时间有限制: 请求体的大小不超过12MB,超过后请求会被拦截。 因APIG(API网关)限制,平台每次请求预测的时间不超过40秒。 父主题: 访问在线服务
-
了解服务的输入参数 针对您部署上线的服务,您可以在服务详情页面的“调用指南”中,了解本服务的输入参数,即上文提到的输入请求类型。 图1 查看服务的调用指南 调用指南中的输入参数取决于您选择的AI应用来源: 如果您的元模型来源于自动学习或预置算法,其输入输出参数由ModelArts官方定义,请直接参考“调用指南”中的说明,并在预测页签中输入对应的JSON文本或文件进行服务测试。 如果您的元模型是自定义的,即推理代码和配置文件是自行编写的(配置文件编写说明),“调用指南”只是将您编写的配置文件进行了可视化展示。调用指南的输入参数与配置文件对应关系如下所示。 图2 配置文件与调用指南的对应关系 如果您的元模型是采用模型模板导入,不同的模板指定了其对应的输入输出模式,请参见模型模板简介的相关说明。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格