云服务器内容精选

  • SSE在线服务调用 SSE协议本身不提供额外的认证方式,和HTTP请求方式一致。 可以使用ModelArts提供的以下认证方式: token认证 AK/SK APP认证 SSE服务调用如下(以图形界面的软件Postman进行预测,token认证为例): 图1 SSE服务调用 图2 响应头Content-Type 正常情况下,可以观察到响应头Content-Type为text/event-stream;charset=UTF-8。
  • 处理方法 不管是用方式1还是方式2,要判断是否是模型服务返回的不合预期的结果都需要获取到本次推理请求的response header及response body。 如果是方式1,可以通过浏览器的开发者工具获取到推理请求的response信息。以Chrome浏览器为例,可以使用快捷键F12打开开发者工具,然后选择“Network”页签,再单击“预测”,可以在Network页签窗口中看到本次推理请求的response信息如下图。 图1 推理请求的response信息 在name栏找到推理请求,其中推理请求的URL包含“/v1/infers”的关键字,可以在header栏中的url看到完整url,分别在Headers页签及Response页签中查看response的信息。 如果是方式2可以根据不同的工具查看response header及body信息,比如CURL命令可以通过-I选项查看response header。 如果查看到的response header中Server字段为ModelArts且response body中没有显示ModelArts.XXXX的错误码,此时收到的response信息为模型服务返回的response信息,如果不符合预期,可以判断为模型服务返回的结果不符合预期。
  • 建议与总结 鉴于模型服务有从对象存储服务(OBS)中导入,从容器镜像中导入,从AI Gallery中获取等多种途径,对于上述不同模型服务的来源所产生的常见问题及处理方法建议如下: 从容器镜像中导入:由于此种方式镜像为用户完全自定义的镜像,错误原因会因自定义镜像的不同而不同,建议查看模型日志确定错误原因。 从对象存储服务(OBS)中导入:如您收到的返回是MR系列错误码,如MR.0105,请查看在线服务详情页面的日志页签查看对应的错误日志。 从AI Gallery中获取:请咨询该模型在AI Gallery中的发布者。
  • 原因分析 在线服务启动后,ModelArts提供两种方式的预测: 方式1:在ModelArts的Console的预测页签进行预测; 方式2:在ModelArts的Console的调用指南页签获取到调用地址,然后通过cURL或者Postman等工具进行预测。 无论是方式1还是方式2,当推理请求发送出去后都有可能收到不符合预期的推理结果。 推理请求经过一系列传递后最终是会进入到模型服务中,模型服务可能是以自定义镜像的方式导入的,可能是因为模型服务在处理推理请求时候出现了问题导致结果不符合预期,能准确判断出来是否是在模型服务中出的问题对于快速解决问题帮助很大。
  • 了解服务的输入参数 针对您部署上线的服务,您可以在服务详情页面的“调用指南”中,了解本服务的输入参数,即上文提到的输入请求类型。 图1 查看服务的调用指南 调用指南中的输入参数取决于您选择的AI应用来源: 如果您的元模型来源于自动学习或预置算法,其输入输出参数由ModelArts官方定义,请直接参考“调用指南”中的说明,并在预测页签中输入对应的JSON文本或文件进行服务测试。 如果您的元模型是自定义的,即推理代码和配置文件是自行编写的(配置文件编写说明),“调用指南”只是将您编写的配置文件进行了可视化展示。调用指南的输入参数与配置文件对应关系如下所示。 图2 配置文件与调用指南的对应关系 如果您的元模型是采用模型模板导入,不同的模板指定了其对应的输入输出模式,请参见模型模板简介的相关说明。
  • 背景说明 WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。WebSocket协议在2011年由IETF标准化为RFC 6455,后由RFC 7936补充规范。Web IDL中的WebSocket API由W3C标准化。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,并进行双向数据传输。
  • 处理方法 Header: 在调用指南页签上最多可以获取到两个api地址,分别是支持IAM/AKSK认证的地址以及支持APP认证的地址,对于支持不同认证方式的地址, 对header的组织也不同,具体如下: IAM/AKSK认证方式:需要在header的X-Auth-Token字段上填入该租户在该region的domain级别的token。具体指导参见连接:获取IAM用户Token。 APP认证的方式:APP认证方式又可以细分为AppCode认证和APP签名认证。 AppCode认证需要在header的X-Apig-AppCode字段上填入绑定给该在线服务的APP的AppCode。 APP签名认证需要在header的X-Sdk-Date和Authorization字段中填入通过sdk或者工具使用该在线服务绑定的APP的AppKey和AppSecret所生产的这两个字段的值,以完成对该请求的签名认证。具体指导参见链接:访问在线服务(APP认证)。 Body: body的组装和模型强相关,不同来源的模型body的组装方式不同。 模型为从容器镜像中导入的:需要按照自定义镜像的要求组织,请咨询该镜像的制作人。 模型为从对象存储(OBS)导入的:此时对body的要求会在推理代码中体现,具体在推理代码的_preprocess方法中,该方法将输入的http body转换成模型期望的输入,具体的指导可以查看文档:模型推理代码编写说明。 模型从AI Gallery中获取的:请查看AI Gallery中的调用说明或者咨询该模型的提供方。
  • 原因分析 在线服务部署完成且服务处于运行中状态后,可以通过调用指南页签的调用地址对模型发起预测请求,出于安全考虑,ModelArts会通过相关的认证鉴权机制避免在线服务被无关人员非法调用。所以在预测请求的header信息中包含的是调用者的身份信息,在body部分是需要进行预测的内容。 header的部分需要按照华为云的相关机制进行认证,body部分需要根据模型的要求如前处理脚本的要求,如自定义镜像的要求进行输入。
  • 约束限制 服务升级关系着业务实现,不当的升级操作会导致升级期间业务中断的情况,请谨慎操作。 ModelArts支持部分场景下在线服务进行无损滚动升级。按要求进行升级前准备,做好验证,即可实现业务不中断的无损升级。 支持在线服务无损升级的场景请参见表1。 异步在线服务仅支持滚动升级(扩实例)的升级模式。 表1 支持无损升级的场景 创建AI应用的元模型来源 服务使用的是公共资源池 服务使用的是专属资源池 从训练中选择元模型 不支持 不支持 从模板中选择元模型 不支持 不支持 从容器镜像中选择元模型 不支持 支持 镜像需要满足创建AI应用的自定义镜像规范。 须知: AI应用的版本有如下操作,不支持无损滚动升级: 没有配置健康检查; 修改了接口协议。例如:把http协议修改为https协议; 修改了模型的端口; 从OBS中选择元模型 不支持 不支持
  • 访问在线服务简介 在线服务的状态处于“运行中”,则表示在线服务已部署成功,部署成功的在线服务,将为用户提供一个可调用的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秒。 父主题: 访问在线服务
  • 响应消息 响应参数请参见表2。 表2 响应参数说明 参数名称 是否必选 参数类型 说明 is_success 是 Boolean 是否成功。 images 是 List 返回镜像列表信息,请参见表3 images参数说明。 表3 images参数说明 参数名称 是否必选 参数类型 说明 image_id 是 String 镜像ID。 model_name 是 String 镜像名称。 model_version 是 String 镜像版本。 type 是 String 镜像类型。 build_time 是 Long 镜像构建时间。 update_time 是 Long 镜像更新时间。
  • 示例 成功响应示例 { "is_success": true, "images": [{ "image_id": "xxxxxx", "model_name": "res-default", "model_version": "1.0.0", "type": "infer", "build_time": 1547866687137, "update_time": 1547866687137}]} 失败响应示例 { "is_success": false, "error_code": "res.2301", "error_msg": "Failed to resolve the token from the request." }
  • 响应示例 状态码: 200 OK { "jobs" : [ { "workspace_id" : "a79b01afa69d4ddc943aa3423fc43531", "resource_id" : "c27aea2b50004187a36fdbd136368895", "job_id" : "a489f06e41434d5cb7e4776de70824df", "job_name" : "11", "description" : "", "platform" : "AIP", "category" : "SERVICE", "job_type" : "infer", "status" : "PRE_STOP", "job_config" : { "flows" : [ { "rules" : [ { "table_name" : "r4-UIREC", "rule_ratio" : 100.0, "priority" : "1" } ], "filter_sets" : [ "f1-FILTER" ], "attr_value_rules_filter" : [ { "attr_values_a" : [ { "name" : "age", "value" : "1" } ], "attr_values_b" : [ { "name" : "author", "value" : "2" } ] } ], "attr_value_rules_reserve" : [ { "attr_values_a" : [ { "name" : "extend_float", "value" : "11" } ], "attr_values_b" : [ { "name" : "author", "value" : "22" } ] } ], "attr_pair_rules_filter" : [ { "attr_pairs" : [ { "party_a" : "age", "party_b" : "author" }, { "party_a" : "extend_float", "party_b" : "author" } ] } ], "attr_pair_rules_reserve" : [ { "attr_pairs" : [ { "party_a" : "extend_float", "party_b" : "category" } ] } ], "deduplication_list" : [ ], "model_version" : "" } ] }, "enable" : 1, "smnEnable" : 0 } ], "is_success" : true}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 is_success Boolean 是否成功。 jobs jobs object 作业详情。 message String 返回消息(请求成功时,不返回此字段)。 error_code String 错误码(请求成功时,不返回此字段)。 表5 jobs 参数 参数类型 描述 category String 类别。 config_info String 配置信息。 description String 描述。 job_id String 作业id。 job_name String 作业名称。 job_type String 作业类型。 next_schedule_time Integer 下次调度时间。 platform String 平台。 resource_id String 资源id。 schedule String 调度参数。 status String 状态。 workspace_id String 工作空间id。 job_config jobConfig object 作业配置。 表6 jobConfig 参数 参数类型 描述 nearline_recall_param NearLineRecallParam object 近线召回作业参数(近线召回作业需要提供此参数)。 max_recommended_num Integer 最大候选集个数(所有召回作业需提供此参数)。 最小值:1 最大值:200 match_feature_pairs Array of MatchFeaturePair objects 匹配特征对(属性匹配召回作业需要提供此参数)。 striping Striping object 行条化策略(属性匹配召回作业、物品协同过滤召回作业、用户协同过滤召回作业需要提供此参数)。 match_type String 匹配类型(属性匹配召回作业需提供此参数): UI,基于用户推荐物品 UU,基于用户推荐用户 II,基于物品推荐物品 IU,基于物品推荐用户 matrix_factorization MatrixFactorization object 矩阵分解参数配置(交替最小二乘协同过滤作业需提供此参数)。 behavior_frequencys Array of BehaviorFrequency objects 行为频率信息(历史行为记忆召回作业、历史行为过滤作业需提供此参数)。 file_path String 文件路径(人工配置候选集作业需要提供此参数)。 ucb_param UcbParam object UCB作业参数(UCB召回作业需要提供此参数)。 behavior_gravity BehaviorGravity object 重力衰减因子(综合行为热度召回作业需要提供此参数)。 category Category object 类别(综合行为热度召回作业需要提供此参数)。 behavior_logic String 行为逻辑过滤(历史行为过滤作业需提供此参数): AND,同时满足则过滤 OR, 满足一个则过滤 features_engineering EtlBasicParameter object 特征参数(离线特征工程作业需要提供此参数)。 sample_param SampleParam object 样本参数(离线特征工程作业需要提供此参数)。 deep_learning_parameters DeepLearingParam object 排序作业通用参数(LR、DEEPFM、AutoGroup需要提供此参数)。 algorithm_specify_parameters AlgorithmSpecifyParameters object 排序算法特定参数(LR、DEEPFM、AutoGroup需要提供此参数)。 load_widetable Boolean 导入宽表(离线数据导入作业需要提供此参数)。 load_profile Boolean 导入画像(离线数据导入作业需要提供此参数)。 save_mode String 保留已有宽表(离线数据导入作业需要提供此参数): append,是 new,否 overwirte,覆盖 indicators Array of Indicator objects 统计指标(效果评估作业需要提供此参数)。 offline_rank_job_name String 离线排序作业名称(在线训练任务需要提供此参数)。 update_interval Integer 更新周期(在线训练任务需要提供此参数)。 optimizer Optimizer object 优化器(在线训练任务需要提供此参数)。 flows Flow object 在线流程(在线训练任务需要提供此参数)。 表7 NearLineRecallParam 参数 参数类型 描述 time_limit Boolean 时间过滤。 timeFeature String 时间特征。 retainDays Integer 保留期(天)。 recall_fileds Array of RecallFiled objects 召回字段。 itemCF_job_name String 物品协同过滤作业名称。 表8 RecallFiled 参数 参数类型 描述 name String 字段名称。 value Integer 使用字段值的个数。 最小值:1 最大值:10 缺省值:1 表9 MatchFeaturePair 参数 参数类型 描述 user_feature_name String 用户特征。 item_feature_name String 物品特征。 weight Double 权重。 match_count Boolean 匹配个数度量。 表10 Striping 参数 参数类型 描述 nearest_neighborhood Integer 最近领域个数。 band Integer 相似程度。 最小值:1 最大值:20 row Integer 相似距离。 最小值:1 最大值:10 表11 MatrixFactorization 参数 参数类型 描述 implicit_vector_rank Integer 隐向量维度。 最小值:1 最大值:100 regular_param Double 优化正则化系数。 最小值:1.0E-8 最大值:1 max_iterator_num Integer 迭代次数。 最小值:1 最大值:50 表12 BehaviorFrequency 参数 参数类型 描述 behavior_type String 行为类型: view,曝光 click,点击 collect,收藏 uncollect,取消收藏 search_click,搜索后点击 comment,评论 share,分享 like,点赞 dislike,点衰 grade,评分 consume,消费 use,观看视频/听音乐/阅读 download,下载 tip,打赏 subscribe,关注 lower_limit Integer 最小次数。 最小值:1 upper_limit Integer 最大次数。 最小值:1 time_interval Integer 时间区间。 最小值:1 表13 UcbParam 参数 参数类型 描述 alpha Double 折中参数。 最小值:0 最大值:1 min_used_num Integer 最小行为次数。 最小值:30 最大值:1000 表14 BehaviorGravity 参数 参数类型 描述 weaken_factor Double 衰减因子。 最小值:0.1 最大值:5 view_type String 行为次数统计方法: pv,访问量 uv,独立访客 algo_type String 算法类型: normal,通用 time,时间 表15 Category 参数 参数类型 描述 user_meta_list Array of strings 用户特征。 item_meta_list Array of strings 物品特征。 表16 EtlBasicParameter 参数 参数类型 描述 user_features Array of FeatureTransformation objects 用户特征。 item_features Array of FeatureTransformation objects 物品特征。 rank_etl_filter RankETLFilter object 过滤参数。 表17 FeatureTransformation 参数 参数类型 描述 attr Attribute object 特征。 discrete_method String 离散方法: equal_distance_discrete,等距离散 user_define_discrete,自定义离散 normalize,归一化 null,不离散 params Object 具体处理参数。 表18 Attribute 参数 参数类型 描述 name String 名称。 data_type String 数据类型。 other_uses Array of strings 其他用途。 表19 RankETLFilter 参数 参数类型 描述 filter_type String 行为去重方式: abs_weight,权重绝对值 date,日期 time_type String 时间类型: day,天 week,周 month,月 is_monday_first Boolean 周一是否是第一天。 表20 SampleParam 参数 参数类型 描述 divide_type String 训练集测试集划分方式: TIME,时间比例 RAMDOM,个数比例 train_rate Double 训练数据占比。 最小值:0.01 最大值:1 test_rate Double 测试数据占比。 最小值:0.01 最大值:1 表21 DeepLearingParam 参数 参数类型 描述 initial_parameters Initial object 初始化参数。 optimize_parameters Optimizer object 优化参数。 regular_parameters Regular object 正则化参数。 max_iterations Integer 最大迭代轮数。 最小值:1 最大值:1000 early_stop_iterations Integer 提前终止训练轮数。 最小值:1 最大值:1000 batch_size Integer 批量大小。 最小值:1 dataset_split_parts Integer 训练数据集切分数量。 最小值:1 最大值:10 restart_train Boolean 重新训练。 表22 Initial 参数 参数类型 描述 initial_method String 初始化方法。 mean_value Double 平均值。 最小值:-1 最大值:1 standard_deviation Double 标准差。 最小值:0 最大值:1 min_value Double 最小值。 最小值:-1 最大值:0 max_value Double 最大值。 最小值:0 最大值:1 表23 Optimizer 参数 参数类型 描述 type String 优化器类型。 learning_rate Double 学习率。 initial_accumulator_value Double 初始梯度累加和。 最小值:0 最大值:1 lambda1 Double L1正则项系数。 最小值:0 最大值:1 lambda2 Double L2正则项系数。 最小值:0 最大值:1 epsilon Double 数值稳定常量。 最小值:0 最大值:1 decay_rate Double 衰减因子。 最小值:0 最大值:1 decay_steps Double 衰减步长。 最小值:1 表24 Regular 参数 参数类型 描述 l2_regularization Double L2正则项系数。 最小值:0 最大值:1 regular_loss_compute_mode String 正则损失计算方式。 embed_l2_regularization Double 隐向量层L2正则化系数。 最小值:0 最大值:1 wide_l2_regularization Double wide部分L2正则化系数。 最小值:0 最大值:1 structure_l2_regularization Double 结构化部分L2正则化系数。 最小值:0 最大值:1 表25 AlgorithmSpecifyParameters 参数 参数类型 描述 latent_vector_length Integer 隐向量长度(DEEPFM需要提供此参数)。 最小值:1 最大值:100 architecture Array of integers 神经网络结构(DEEPFM需要提供此参数)。 active_function String 激活函数(DEEPFM需要提供此参数,AutoGroup需要提供此参数)。 value_keep_probability Double 神经元值保留概率(DEEPFM需要提供此参数,AutoGroup需要提供此参数)。 最小值:0 最大值:1 embed_size Array of integers 各阶隐向量长度(AutoGroup需要提供此参数)。 mlp_architecture Array of integers 神经网络结构(AutoGroup需要提供此参数)。 max_order Integer 最大交互阶数(AutoGroup需要提供此参数)。 hash_sizes Array of integers 哈希长度(AutoGroup需要提供此参数)。 hash_compensation Array of numbers 特征交互层惩罚项系数(AutoGroup需要提供此参数)。 use_wide_part Boolean 使用线性部分(AutoGroup需要提供此参数)。 structure_optimizer Optimizer object 优化器参数(AutoGroup需要提供此参数)。 merge_multi_hot Boolean 融合多值特征(AutoGroup需要提供此参数)。 fix_structure Boolean 固定哈希结构(AutoGroup需要提供此参数)。 表26 Indicator 参数 参数类型 描述 indicator_name String 指标名称: clickPVRate,点击PV率 clickUVRate,点击UV率 customize,自定义 indicator_params IndicatorParam object 指标参数(自定义指标需要提供)。 表27 IndicatorParam 参数 参数类型 描述 customize_parameter CustomizeParameter object 自定义参数。 customize_formula CustomizeFormula object 自定义公式。 表28 CustomizeParameter 参数 参数类型 描述 alias String 别名。 behavior_type String 行为类型。 threshold Double 阈值。 最小值:0 最大值:1 deduplication String 去重。 表29 CustomizeFormula 参数 参数类型 描述 alias String 别名。 formula String 公式。 表30 Flow 参数 参数类型 描述 flow_id String 流程id。 attr_pair_rules_filter Array of AttrPairRules objects 属性对过滤。 attr_pair_rules_reserve Array of AttrPairRules objects 属性对保留。 deduplication_list Array of Deduplication objects 属性去重。 attribute_info AttributeInfo object 综合排序信息。 bloom_filter_conf BloomFilterConf object 布隆过滤器配置。 group_attr String 分组打散属性。 pre_deal Boolean 在排序前去重。 rank_setting String 排序配置信息。 rules Rule object 候选集融合。 filter_sets Array of strings 过滤配置信息。 attr_value_rules_filter Array of AttrValueRules objects 属性值过滤。 attr_value_rules_reserve Array of AttrValueRules objects 属性值保留。 ctr_job String 排序作业(使用点击率预估时需要提供此参数)。 ratio Integer 流量占比。 最小值:1 最大值:100 toppings Array of strings 需要置顶的候选集列表。 表31 AttrPairRules 参数 参数类型 描述 attr_pairs Array of AttrPair objects 属性对。 表32 AttrPair 参数 参数类型 描述 party_a String 被推荐对象的属性名。 party_b String 被推荐对象的属性名。 表33 Deduplication 参数 参数类型 描述 attributes Array of strings 属性。 表34 AttributeInfo 参数 参数类型 描述 rank_feature_pairs Array of RankFeaturePair objects 属性匹配对。 numerical_attrs Array of NumericalAttr objects 属性权重。 num_statistics_type String 统计方式: ORDER,顺序 ABS,绝对值 表35 RankFeaturePair 参数 参数类型 描述 feature_name_a String 待推荐对象的属性。 feature_name_b String 被推荐对象的属性。 weight Float 权重。 最小值:0.01 最大值:1 表36 NumericalAttr 参数 参数类型 描述 name String 特征名。 weight Float 权重。 最小值:0.001 最大值:1 表37 BloomFilterConf 参数 参数类型 描述 behaviors Array of strings 待过滤行为类型。 interval Integer 过滤时间。 最小值:1 最大值:7 表38 Rule 参数 参数类型 描述 table_name String 候选集表名。 rule_ratio Integer 规则占比。 最小值:1 最大值:100 priority Integer 优先级。 最小值:1 最大值:10 表39 AttrValueRules 参数 参数类型 描述 attr_values_a Array of AttrValue objects 被推荐对象的属性-值配置。 attr_values_b Array of AttrValue objects 待推荐对象的属性-值配置。 表40 AttrValue 参数 参数类型 描述 name String 属性名称。 value String 属性值。
  • URI GET /v2.0/{project_id}/workspaces/{workspace_id}/resources/{resource_id}/service-instance 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id,获取方式请参见获取项目ID。 resource_id 是 String 资源id。 workspace_id 是 String 工作空间id。 表2 Query参数 参数 是否必选 参数类型 描述 category 是 String 服务类别: SERVICE,在线服务