平码五不中公式规律
  • / 198
  • 下载费用:30 金币  

特征处理权衡管理.pdf

关 键 ?#21097;?/dt>
特征 处理 权衡 管理
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580044236.8

申请日:

2015.06.30

公开号:

CN106663037A

公开日:

2017.05.10

当前法律状态:

实审

有效性:

审中

法?#19978;?#24773;: 发明专利申请更正?#25490;?#25991;件类型代码=1608?#25490;?#25991;件序号=101754933010卷=33号=19页码=扉页 IPC(主分类)=G06F0009500000更正项目=优先权数据误=无正=有10项优先权数据|||发明专利公报更正?#25490;?#25991;件类型代码=1608?#25490;?#25991;件序号=101754933010卷=33号=19 IPC(主分类)=G06F0009500000更正项目=优先权数据误=无正=有10项优先权数据|||实质审查的生效IPC(主分类):G06F 9/50申请日:20150630|||公开
IPC分类号: G06F9/50 主分类号: G06F9/50
申请人: 亚马逊科技公司
发明人: L·P·迪拉克; N·M·科雷亚; C·E·达纳克尔; A·M·英格曼; S·克里肖南; 李瑾; S·R·普瓦蒂; S·赞拉蒂昂; R·拉马克里肖南; 郑天铭; 卓东辉; T·阿加瓦尔; R·M·斯蒂勒; 钱俊; M·布鲁克纳; R·赫布里奇; D·布里克; P·P·Y·李
地址: 美国华盛顿
优先权:
专利代理机构: 中国国际贸?#29366;?#36827;委员会专利商标事务所 11038 代理人: 吴信刚
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580044236.8

授权公告号:

|||||||||

法律状态公告日:

2017.07.11|||2017.07.11|||2017.06.06|||2017.05.10

法律状态类型:

发明专利申请更正|||发明专利公报更正|||实质审查的生效|||公开

摘要

在机器学习服务处,识别可用于训练模型的一组候选变量,包括通过特征处理变换产生的至少一个处理的变量。确定指示实现所述特征处理变换对与所述模型的预测目标相关联的性能度量的影响的成本估计。至少部分地基于所述成本估计,实现排除所述特征处理变换的特征处理提议。

权利要求书

1.一种系统,包括:
一个或多个计算装置,其被配?#32654;矗?br />通过与提供商网络的机器学习服务的客户端的一个或多个编程?#25442;?#30830;定(a)将使用指
定训练数据组预测的一个或多个目标变量,(b)包括特定预测质量度量的一个或多个预测
质量度量,以及(c)包括特定预测运行时间目标的一个或多个预测运行时间目标;
识别一组候选特征处理变换以便从所述指定数据组的一个或多个输入变量导出第一
组处理的变量,其中所述第一组处理的变量的至少子集可用于训练机器学习模型以便预测
所述一个或多个目标变量,并且其中所述组候选特征处理变换包括特定特征处理变换;
确定(a)指示实现所述特定候选特征处理变换对所述特定预测质量度量的影响的质量
估计,以及(b)指示实现所述特定候选特征处理变换对与所述特定预测运行时间目标相关
联的特定运行时间性能度量的影响的成本估计;
至少部分地基于所述质量估计并且至少部分地基于所述成本估计生成将提供给所述
客户端用于批准的特征处理提议,其中所述特征处理提议包括推荐以实现所述特定特征处
理变换;以及
响应于来自所述客户端的批准的指示,执行使用从所述特定特征处理变换获得的特定
处理的变量训练的机器学习模型。
2.如权利要求1所述的系统,其中为了确定所述质量估计,所述一个或多个计算装置实
现所述机器学习模型的多个评估运行,其包括其中所述特定处理的变量的第一组值提供为
对所述机器学习模型的输入的第一评估运行,以及其中所述特定处理的变量的不同组的值
提供为对所述机器学习模型的输入的第二评估运行。
3.如权利要求1-2中任一项所述的系统,其中为了确定所述成本估计,所述一个或多个
计算装置实现所述机器学习模型的第一变型以及所述机器学习模型的第二变型的各自评
估运行,其中使用包括所述特定处理的变量的第一训练组训练所述第一变型,并且使用排
除所述特定处理的变量的第二训练组训练所述第二变型。
4.如权利要求1-3中任一项所述的系统,其中所述特定预测质量度量包括以下各项中
的一个或多个:(a)AUC(曲线下区域)度量,(b)准确度度量,(c)召回度量,(d)敏感度度量,
(e)真阳性?#21097;?f)特异性度量,(g)真阴性?#21097;?h)精度度量,(i)假阳性?#21097;?j)假阴性?#21097;?k)
F1得分,(l)覆盖度量,(m)绝对百分比误差度量,或者(n)平方误差度量。
5.如权利要求1-4中任一项所述的系统,其中所述特定特征处理变换包括使用以下各
项中的一个或多个:(a)分位数仓函数,(b)笛卡尔乘积函数,(c)二元语法函数,(d)n元语法
函数,(e)正交稀疏二元语法函数,(f)日历函数,(g)图像处理函数,(h)音频处理函数,(i)
生物信息学处理函数,或者(j)自然语言处理函数。
6.一种方法,包括:
通过一个或多个计算装置执行:
在机器学习服务处识别可用于训练机器学习模型以预测一个或多个目标变量的一组
候选输入变量,其中所述组候选输入变量至少包括由适用于训练数据组的一个或多个输入
变量的特定特征处理变换生成的特定处理的变量;
确定(a)指示实现所述特定特征处理变换对特定预测质量度量的影响的质量估计,以
及(b)指示实现所述特定特征处理变换对与特定预测目标相关联的性能度量的影响的成本
估计;以及
至少部分地基于所述质量估计并且至少部分地基于所述成本估计实现包括所述特定
特征处理变换的特征处理计划。
7.如权利要求6所述的方法,其还包括通过所述一个或多个计算装置执行:
至少部分地基于对对应于多个候选特征处理变换的各自质量估计?#36879;?#33258;成本估计的
分析,生成一个或多个特征处理提议,其包括推荐所述特定特征处理变换的特定特征处理
提议;以及
向客户端提供所述一个或多个特征处理提议的指示,其中所述实现所述特征处理计划
响应于从所述客户端获得所述特定特征处理提议的批准的指示。
8.如权利要求6-7中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:
通过所述机器学习服务的一个或多个编程接口接收包括以下各项中的一个或多个的
各自指示的模型创建请求:(a)所述一个或多个目标变量,(b)包括所述特定预测质量度量
的一个或多个预测质量度量,(c)包括所述特定预测目标的一个或多个预测目标,或者(d)
包括识别强制性特征处理变换的特定?#38469;?#30340;一个或多个?#38469;?br />
9.如权利要求6-8中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:
响应于确定至少部分地基于所述模型创建请求一个或多个特征处理提议对所述机器
学习服务的客户端不可接受,
将需求重新考虑请求传输到所述客户端;以及
从所述客户?#31169;?#25910;分配给以下各项中的一个或多个的相对优先级的指示:(a)所述特
定预测质量度量,或者(b)所述特定预测目标。
10.如权利要求6-9中任一项所述的方法,其中所述特定预测目标包括以下各项中的一
个或多个:(a)模型执行时间目标,(b)存储器使用目标,(c)处理器使用目标,(d)存储装置
使用目标,(e)网络使用目标,或者(f)预算。
11.如权利要求6-10中任一项所述的方法,其还包括通过所述一个或多个计算装置执
行:
提供编程接口,使得所述机器学习服务的客户端能够确定所述机器学习模型的特定执
?#26032;?#36275;所述特定预测目标的程度。
12.如权利要求6-11中任一项所述的方法,其还包括通过所述一个或多个计算装置执
行:
从客户?#31169;?#25910;指示由所述客户端请求的对所述训练数据组的所述输入变量的一个或
多个特征处理变换的配方的指示,其中所述特定特征处理变换不包括在所述配方中;以及
向所述客户端提供对所述配方的所提议修?#27169;?#20854;中所述所提议修改包括所述特定特征
处理变换的指示。
13.一种存储程序指令的非暂时计算机可访问存储介?#21097;?#25152;述程序指令当在一个或多
个处理器?#29616;?#34892;时:
在机器学习服务处识别可用于训练机器学习模型以预测一个或多个目标变量的一组
候选输入变量,其中所述组候选输入变量至少包括由适用于训练数据组的一个或多个输入
变量的特定特征处理变换引起的特定处理的变量;
确定指示实现所述特定特征处理变换对与特定预测目标相关联的性能度量的影响的
成本估计;以及
至少部分地基于所述成本估计实现排除所述特定特征处理变换的特征处理提议。
14.如权利要求13所述的非暂时计算机可访问存储介?#21097;?#20854;中所述指令当在所述一个
或多个处理器?#29616;?#34892;时:
确定指示实现所述特定特征处理变换对特定预测质量度量的影响的质量估计;
其中至少部分地基于所述质量估计实现所述特征处理提议。
15.如权利要求13-14中任一项所述的非暂时计算机可访问存储介?#21097;?#20854;中所述机器学
习模型包括以下各项中的一个或多个:(a)分类模型,(b)回归模型,(c)自然语言处理(NLP)
模型,或者(d)聚集模型。

说明书

特征处理权衡管理

背景技术

机器学习组合来自统计学和人工智能的技术?#28304;?#24314;可从经验数据学习并推广到
解决诸如自然语言处理、金融欺诈检测、恐怖主义威?#24067;?#21035;检测、人类健康诊?#31995;?#21508;?#33267;?#22495;
中的问题的算法。近年来,正在从诸如各种传感器、web服务器日志、社交媒体服务、金融交
易记录、安全摄像机等各?#25351;?#31181;的来源收集可潜在用于机器学习模型的越来越多的原始数
据。

传?#25104;希?#32479;计学和人工智能方面的专业知识是开发和使用机器学习模型的前提条
件。对于许多业务分析师并甚至对于高资格的主题专家,获得这种专业知识的困难有时是
太大的?#20064;?#20197;至于不能充分利用潜在可用的大量数据来改进业务预测和决定。此外,许多
机器学习技术可以是计算密集?#27169;?#24182;且在至少一些情况下,可能难以精确地预测技术的各
个阶段可能需要多少计算能力。鉴于这种不可预测性,对于商业组织来说建立他们自己的
机器学习计算设施可能并不总是可取的或可行的。

从机器学习算法获得的结果的质量可以取决于用于训练模型的经验数据有多好
地捕获数据中表示的不同变量之间的关键关系以及可如何高效和有效地识别这些关系。取
决于将使用机器学习解决的问题的性?#21097;?#21487;能必须分析非常大的数据组以便能够进行准确
预测,特别是相对不频繁但重要的事件的预测。例如,在金融欺诈检测应用中,其中欺诈交
易的数量通常是交易总数的非常小的一小部分,识别可用于将交易标记为欺诈的因素可潜
在需要分析数百万交易记录,每个表示几十个或甚至几百个变量。对原始输入数据组大小、
?#25442;?#25110;归一化大量潜在不完整或含有错误的记录和/或提取原始数据的代表性子集的能力
的?#38469;?#20063;表示对于机器学习技术的许多潜在受益者不容易克服的?#20064;?#23545;于许多机器学习
问题,在数据可有效地用于训练模型之前,变换可能必须应用于各种输入数据变量。在一些
传统机器学习环?#25345;校?#21487;用于应用此类变换的机制可能不是最?#35757;模?#20363;如,有时可能必须逐
个地将类似的变换应用于数据组的许多不同变量,潜在地需要大量繁琐和易出错的工作。

附图说明

图1示出根据至少一些实施方案的可实现机器学习服务的各种部件的示例性系统
环境。

图2示出根据至少一些实施方案的使用提供商网络的多种网络可访问服务实现的
机器学习服务的实例。

图3示出根据至少一些实施方案的用于机器学习服务的提供商网络的多个可用性
容器和安全容器的使用的实例。

图4示出根据至少一些实施方案的可在机器学习服务处生成的多个处理计划和对
应资源组的实例。

图5示出根据至少一些实施方案的机器学习服务处的作业的异步调度的实例。

图6示出根据至少一些实施方案的可使用机器学习服务生成和存储的示例性?#30772;?br />(artifact)。

图7示出根据至少一些实施方案的响应于实例化数据源的客户端请求的统计的自
动生成的实例。

图8示出根据至少一些实施方案的可在机器学习服务处支持的若干模型使用模
式。

图9a和图9b是示出根据至少一些实施方案的可在支持机器学习作业的异步调度
的机器学习服务处执行的操作的方面的流程图。

图10a是示出根据至少一些实施方案的可在支持一组幂等编程接口的机器学习服
务处执行的操作的方面的流程图。

图10b是示出根据至少一些实施方案的可在机器学习服务处执行以收集并散布关
于与不同问题域相关的最佳实践的信息的操作的方面的流程图。

图11示出根据至少一些实施方案的与机器学习服务处的数据变换的配方的使用
相关联的示例性?#25442;ァ?br />

图12示出根据至少一些实施方案的配方的示例性部分。

图13示出根据至少一些实施方案的可用于定义配方句法的示例性语法。

图14示出根据至少一些实施方案的可针对配方的一部分生成的抽象句法树的实
例。

图15示出根据至少一些实施方案的可用于搜索可从机器学习服务获得的域特定
配方的编程接口的实例。

图16示出根据至少一些实施方案的机器学习服务的实例,所述机器学习服务代表
客户端自动探索配方变换的参数设置的?#27573;В?#24182;?#19968;?#20110;此类探索的结果选择可接受或推荐
的参数设置。

图17是示出根据至少一些实施方案的可在支持用于数据组变换的可重新使用配
方的机器学习服务处执行的操作的方面的流程图。

图18示出根据至少一些实施方案的用于通过机器学习服务对大的输入数据组执
行有效存储器内过滤操作的示例性过程。

图19示出根据至少一些实施方案的与改变用于对机器学习数据组的过滤操作序
列的块大小相关联的权衡。

图20a示出根据至少一些实施方案的块级过滤操作(包括混排之后进行?#33267;?的示
例性序列。

图20b示出根据至少一些实施方案的包括块级过滤以及块内过滤的存储器内过滤
操作的示例性序列。

图21示出根据至少一些实施方案的对数据组的存储器内采样的替代方法的实例。

图22示出根据至少一些实施方案的基于观察记录边界的位置确定块边界的实例。

图23示出根据至少一些实施方案的可响应于对从各种数据源类型中的任一个提
取数据记录的请求而在机器学习服务处调度的作业的实例。

图24示出根据至少一些实施方案的可由客户端使用由机器学习服务实现的I/O
(输入-输出)库的编程接口提交的记?#25216;?#32034;请求的示例性组成元素。

图25是示出根据至少一些实施方案的可在实现用于对大输入数据组的存储器内
过滤操作序列的I/O库的机器学习服务处执行的操作的方面的流程图。

图26示出根据至少一些实施方案的可用于提高由机器学习模型进行的预测的质
量的迭代过程的实例。

图27示出根据至少一些实施方案的可用于机器学习模型的交叉验证的数据组分
?#35757;?#23454;例。

图28示出根据至少一些实施方案的用于可使用伪随机数序列执行的交叉验证的
输入数据组的一致块级?#33267;训?#23454;例。

图29示出根据至少一些实施方案的可由于不?#23454;?#22320;重置伪随机数生成器发生的
输入数据组的不一致块级?#33267;训?#23454;例。

图30示出根据至少一些实施方案的调度相关训练和评估作业对的示例性时间线。

图31示出根据至少一些实施方案的响应于客户端请求在机器学习服务处生成一
致性元数据的系统的实例。

图32是示出根据至少一些实施方案的可响应于对机器学习模型的训练和评估迭
代的请求在机器学习服务处执行的操作的方面的流程图。

图33示出根据至少一些实施方案的可针对机器学习服务处的预测生成的决定树
的实例。

图34示出根据至少一些实施方案的在机器学习模型的训练阶段的树构造过程期
间按深度优先次序将决定树节点的表示存储在持久性存储装置处的实例。

图35示出根据至少一些实施方案的可为决定树的节点生成的预测效用分布信息
的实例。

图36示出根据至少一些实施方案的至少部分地基于运行时间存储器占用目标和
累积预测效用的组合修剪决定树的实例。

图37示出根据至少一些实施方案的至少部分地基于预测时间变化目标修剪决定
树的实例。

图38示出根据至少一些实施方案的可生成用于训练在机器学习服务处使用决定
树总体的模型的多个作业的实例。

图39是示出根据至少一些实施方案的可在机器学习服务处执行以按深度优先次
序生成并修剪存储到持久性存储装置的决定树的操作的方面的流程图。

图40示出根据至少一些实施方案的被配?#32654;?#22522;于对候选特征处理变换的成本和
益处的分析为客户端生成特征处理提议的机器学习服务的实例。

图41示出根据至少一些实施方案的基于测量的预测速度和预测质量从若?#21830;?#20195;
者选择特征处理组的实例。

图42示出根据至少一些实施方案的机器学习服务的客户端与特征处理管理器之
间的示例性?#25442;ァ?br />

图43示出根据至少一些实施方案的使用随机选择修剪候选特征处理变换的实例。

图44示出根据至少一些实施方案的用于识别推荐的候选特征处理变换组的贪婪
(greedy)技术的实例。

图45示出根据至少一些实施方案的特征处理优化技术的第一阶段的实例,其中使
用第一组候选处理变量训练模型并对所述模型进行评估。

图46示出根据至少一些实施方案的特征处理优化技术的随后阶段的实例,其中使
用修改的评估数据组来重新评估模型以确定使用各种处理的变量对预测质量的影响。

图47示出根据至少一些实施方案的特征处理优化技术的另一示例性阶段,其中使
用一组修改的处理的变量来重新训练模型以确定使用处理的变量对预测运行时间成本的
影响。

图48是示出根据至少一些实施方案的可在基于质量对比运行时间成本权衡推荐
特征处理变换的机器学习服务处执行的操作的方面的流程图。

图49是根据至少一些实施方案的可使得客户端能够查看各种机器学习模型运行
的状态的编程?#28508;?#26495;接口的实例。

图50示出根据至少一些实施方案的用于生成并使用线性预测模型的示例性过程。

图51示出根据至少一些实施方案的示例性情?#24120;?#20854;中用于训练模型的机器学习服
务器的存储器容量可变为参数向量大小的?#38469;?br />

图52示出根据至少一些实施方案的技术,其中在训练期间其各自参数值存储在参
数向量中的特征的子集可被选择作为修剪受害者。

图53示出根据至少一些实施方案的系统,其中将用于线性模型的训练阶段的学习
迭代的观察记录可流传输到机器学习服务。

图54是示出根据至少一些实施方案的可在机器学习服务处执行的操作的方面的
流程图,在所述机器学习服务处,响应于检测触发条件,可从参数向量修剪对应于一个或多
个特征的参数以减少训练期间的存储器消耗。

图55示出根据至少一些实施方案的可用于获得分配给特征的权重的绝对值的分
位数边界估计的单遍技术。

图56示出根据至少一些实施方案的使用分位数分仓(quantile binning)变换来
捕获机器学习模型的原始输入变量与预测目标变量之间的非线性关系的实例。

图57示出根据至少一些实施方案的可在机器学习服务处模型的训练阶段期间生
成的并发分仓计划的实例。

图58示出根据至少一些实施方案的可在机器学习服务处实现的并发多变量分位
数分仓变换的实例。

图59示出根据至少一些实施方案的可用于表示机器学习服务处的并发分仓操作
的配方的实例。

图60示出根据至少一些实施方案的系统的实例,其中客户端可利用机器学习服务
的编程接口来指示它们关于并发分位数分仓的使用的偏好。

图61是示出根据至少一些实施方案的可在实现并发分位数分仓变换的机器学习
服务处执行的操作的方面的流程图。

图62示出根据至少一些实施方案的示例性系统环?#24120;?#20854;中机器学习服务实现?#25442;?br />式图形界面,使得客户端能够探索各种预测质量度量目标之间的权衡并且修改可用于解释
模型执行结果的设置。

图63示出根据至少一些实施方案的可通过?#25442;?#24335;图形界面提供的二进制分类模
型的评估运行的结果的示例性视图。

图64a和图64b集体示出根据至少一些实施方案的由客户端通过对?#25442;?#24335;图形界
面的特定控制指示的预测解释阈值的变化对一组模型质量度量的影响。

图65示出根据至少一些实施方案的与其各自控件可包括在?#25442;?#24335;图形界面中的
机器学习模型的评估运行有关的高级度量的实例。

图66示出根据至少一些实施方案的可用于修改分类标签并查看基于输出变量值
选择的观察记录的?#38468;?#30340;?#25442;?#24335;图形界面的元件的实例。

图67示出根据至少一些实施方案的可通过?#25442;?#24335;图形界面提供的多路分类模型
的评估运行的结果的示例性视图。

图68示出根据至少一些实施方案的可通过?#25442;?#24335;图形界面提供的回归模型的评
估运行的结果的示例性视图。

图69是示出根据至少一些实施方案的可在实现使得客户端能?#25442;?#20110;探索评估结
果修改预测解释设置的?#25442;?#24335;图形界面的机器学习服务处执行的操作的方面的流程图。

图70示出根据至少一些实施方案的可利用机器学习数据组的空间有效表示来确
定机器学习服务处一个数据组是否可能包括另一数据组的复本观察记录的示例性复本检
测器。

图71a和图71b集体示出根据至少一些实施方案的用于机器学习服务处的复本观
察记录的概率检测的布隆过滤器的使用的实例。

图72示出根据至少一些实施方案的可在机器学习服务的复本检测器处使用的替
代复本定义的实例。

图73示出根据至少一些实施方案的机器学习服务处的大数据组的复本检测的并
行方法的实例。

图74示出根据至少一些实施方案的给定机器学习数据组内的概率复本检测的实
例。

图75是示出根据至少一些实施方案的可在实现观察记录的复本检测的机器学习
服务处执行的操作的方面的流程图。

图76是示出可在至少一些实施方案中使用的示例性计算装置的框图。

虽然在本文?#22411;?#36807;对若干实施方案和示意性附图举例的方式描述了实施方案,但
本领域的技术人员应认识到,实施方案不限于所述实施方案或附图。应理解,附图和对其的
详细描述并?#19988;?#22270;将实施方案限于所公开的特定形式,而相反,其意图在于涵盖落入由所
附权利要求书限定的精神和?#27573;?#20869;的所有修改、等效物和替代方案。本文中使用的标题都
仅用于组织目?#27169;?#24182;?#20063;?#19981;意图用于限制本说明书或权利要求书的?#27573;А?#36143;穿本申请所使
用的词语“可”是在许可的意义上(即意指具有可能性)、而非强制的意义上(即意指必须)使
用。类似地,词语“包括(include/including/includes)?#24065;?#21619;着包括但不限于。

具体实施方式

描述用于设计来支持大量用户和多种多样的算法和问题大小的可定制、容?#36164;?#29992;
的机器学习服务(MLS)的方法和设备的各种实施方案。在一个实施方案中,可由服务定义多
个MLS编程接口(诸如应用编程接口(API)),其指导非专家用户相对快速地开始使用机器学
习最佳实践,而用户不必花费大量的时间和精力调谐模型或学习高级统计学或人工智能技
术。接口可例如允许非专家?#35272;?#20110;用于构建、训练和使用机器学习模型的过程的各方面的
默认设置或参数,其中默?#29616;?#20174;解决类似类型的机器学习问题的其他实践者的累积经验中
导出。同时,专家用户可定制他们希望用于各种类型的机器学习任务诸如输入记录处理、特
征处理、模型构建、执行和评估的参数或设置。在至少一些实施方案中,除了或代替使用实
?#25351;?#31181;类型的机器学习任务的预先定义的库,MLS客户端可能够例如通过向服务注册它们
自己的定制功能来扩展服务的内置能力。取决于实现此类定制模块或功能的客户端的业务
需要或目标,在一些情况下可与服务的其他用户共享模块,而在其他情况下定制模块的使
用可限制到其实现者/拥有者。

在一些实施方案中,可支持相对直接的配方语言,从而允许MLS用户指示他们希望
已应用在数据组上的各种特征处理步骤。此类配方可以文本格式指定,并随后编译成可根
据需要重新用于不同资源组上的不同数据组的可执行格式。在至少一些实施方案中,MLS可
在包括具有分布在世界各地的数十万计算和存储装置的多个数据中心的提供商网络处实
现,从而允许以太?#32440;?#26631;度或拍?#32440;?#26631;度数据组的机器学习问题,并且以相对透明的方式
对应地解决大的计算要求,同时仍然确保高水平的隔离和敏感数据的安全性。提供商网络
的预先存在的服务诸如支持可通过web服务接口访问的?#25105;?#22823;数据对象的存储服务、数据
库服务、虚拟计算服务、并行计算服务、高性能计算服务、负载平衡服务等在至少一些实施
方案中可用于各种机器学习任务。对于具有高可用性和数据耐久性要求的MLS客户端,机器
学习数据(例如,原始输入数据、变换/操纵的输入数据、中间结果或最终结果)和/或模型可
跨不同地理位置或可用性容器复制,如下所述。为了满足MLS客户端的数据安全需求,在一
些实施方案中,实现用户定义的功能或第三方功能的所选择数据组、模型或代码可被限制
到由提供商网络定义的安全容器,其中例如客户端的机器学习任务以隔离的单租户方式执
行,而不是可通常用于一些提供商网络的服务的多租户方法。术语“MLS控?#30772;?#38754;”在本文中
可用于指硬件和/或软件实体的集合,所述实体负责代表MLS的客户端实?#25351;?#31181;类型的机器
学习功能并且负责外部MLS客户端不一定可见的管理任务,诸如确保提供足够的一组资源
以满足客户端需求、检测和?#25351;垂收稀?#29983;成?#23454;?#31561;。术语“MLS数据平面”可指用于处理、传送
和存储用于客户端请求的操作的输入数据以及处理、传送和存储由于客户端请求的操作而
产生的输出数据的路径和资源。

根据一些实施方案,可通过MLS编程接口生成、修改、读取、执行和/或查询/搜索与
机器学习任务相关的多个不同类型的实体。在一个实施方案中受支持的实体类型可尤其包
括数据源(例如,可从其获得用于机器学习的输入记录的位置或对象的描述符),通过分析
输入数据生成的统计组,配方(例如,将应用到用于训练模型的输入数据的特征处理变换描
述符),处理计划(例如,用于执行各种机器学习任务的模板),模型(其还可被称为预测器),
将用于配方和/或模型的参数组,诸如预测或评估的模型执行结果,用于将在流传输或实时
数据上使用的模型的在线访?#23454;悖?#21644;/或别名(例如,已被“公布”用于如下所述的模型版本
的指针)。这些实体类型的实例在本文中可被称为机器学习?#30772;罰?#20363;如,特定配方或特定模
型可每个被认为是?#30772;貳?#19979;文将更详细地论述实体类型中的每一个。

MLS编程接口可使得用户能够提交对于给定机器学习工作流的若干相关任务的各
自请求,诸如用于从数据源提取记录、生成关于记录的统计、特征处理、模型训练、预测等的
任务。编程接口(诸如API)的给定调用可对应于对关于所支持类型的实体的一个或多个实
例的一个或多个操作或任务的请求。一些任务(和对应的API)可涉及多种不同的实体类型,
例如,请求创建数据源的API可导致数据源实体实例以及统计实体实例的生成。给定工作流
的一些任务可取决于其他任务的结果。取决于数据的量和/或将执行的处理的本?#21097;?#19968;些任
务可能花费?#24863;?#26102;或甚至几天来完成。在至少一些实施方案中,可采取异步方法来调度任
务,其中MLS客户端可提交取决于早前提交的任务的输出的另外任务,而无需等待早前提交
的任务完成。例如,客户端可在早前提交的任务T1完成之前提交对任务T2和T3的各自请求,
即使T2的执行至少部分地取决于T1的结果,并且T3的执行至少部分地取决于T2的结果。在
此类实施方案中,MLS可注意确保给定任务只有在其?#35272;?#24615;(如果存在任?#25105;览?#24615;的话)已
满足时被调度以执行。

在一些实现中,作业对象的队列或集合可用于存储所请求任务的内部表示。如本
文所用的术语“任务”是指对应于来自客户端的给定请求的一组逻辑操作,而术语“作业”是
指MLS内的任务的内部表示。在一些实施方案中,给定作业对象可表示将由于客户端对特定
编程接口的调用以及对其他作业的?#35272;?#24615;而执行的操作。MLS可负责确保在发起对应操作
之前已满足给定作业的?#35272;?#24615;。MLS还可在此类实施方案中负责为每个作业生成处理计划、
识别用于计划的?#23454;?#36164;源组(例如,CPU/核,存储装置或存储器)、调度计划的执行、收集结
果、提供/将结果保存在?#23454;?#30340;目的地,并且至少在一些情况下用于向请求客户端提供状态
更新或响应。MLS还可在一些实施方案中负责确保一个客户端的作业的执行不影响或干扰
其他客户端的作业的执行。在一些实施方案中,可支持任务之间的部分?#35272;?#24615;,例如在一系
列任务(T1、T2、T3)中,T2可取决于T1的部分完成,并且T2可因此在T1完成之前调度。例如,
T1可包括统计计算的两个阶段或遍数P1和P2,并且T2可能够在阶段P1完成时立即进行,而
不需等待阶段P2完成。T1的部分结果(例如,在阶段P1期间计算的至少一些统计)在一些情
况下可在其变得可用时立即提供给请求客户端,而不用等待整个任务完成。可在一些实现
中使用包括对应于来自MLS多个客户端的请求的作业的单个共享队列,而在其他实现中各
自队列可用于不同客户端。在一些实现中,代替或除了队列之外,可用于对对象集合建模的
列表或其他数据结构可用作将调度的作业的容器。在一些实施方案中,来自客户端的单个
API请求可导致MLS生成若干不同作业对象。在至少一个实施方案中,并非所有客户端API请
求可使用作业实现,例如,相对短或轻质任务可相对于对应请求同步执行,而不引发作业创
建和异步作业调度的开销。

由MLS实现的API可在一些实施方案?#24615;?#35768;客户端提交创建、查询所支?#25351;?#31181;实体
类型中的至少一些的实例的属性、读取、更新/修改、搜索或删除所支?#25351;?#31181;实体类型中的
至少一些的实例的请求。例如,对于实体类型“DataSource?#20445;?#31867;似于“createDataSource”、
“describeDataSource”(以获得数据源的属性的值)、“updateDataSource”、
“searchForDataSource?#24065;?#21450;“deleteDataSource”的各自API可由MLS支持。配方、模型等的
类似组的API可受到支持。在各种实施方案中,一些实体类型还可具有用于执行或运行实体
的API,诸如“executeModel”或“executeRecipe”。API可被设计来在很大程度上易于学习和
自我记录(例如,使得使用给定API的正确方式对于非专家而言是明显的),重点在于使得执
行最常见的任务简单而会不使得执行更复杂的任务变得太?#36873;?#22312;至少一些实施方案中,可
支持API的多个版本:例如,用于有线协议的一个版本(在联网堆栈的应用级处)、作为JavaTM
库或SDK(软件开发工具包)的另一版本、作为Python库的另一版本等等。在各种实现中,API
请求可由客户端使用HTTP(超文本传送协议)、HTTPS(安全HTTP)、Javascript、XML等提交。

在一些实施方案中,一些机器学习模型可例如由一组模型开发者或数据科学家使
用MLS API创建和训练,并且随后公?#21152;?#21478;一群用户使用。为了便于公布模型由与仅仅模型
的创建者相比更广泛的观众使用,同时防止更广泛的观众的非熟练成员对模型的潜在不适
当修?#27169;?#22312;此类实施方案中可支持“别名”实体类型。在一个实施方案中,别名可包括不可变
名称(例如,“SentimentAnalysisModel1”)和已经创建并存储在MLS?#30772;?#20648;存库中的模型的
指针(例如,“samModel-23adf-2013-12-13-08-06-01?#20445;?#30001;MLS为模型生成的内部标识符)。
关于别名的不同权限组可被授予给模型开发者,而不是被授予给可获得别名用于执行的用
户。例如,在一个实现中,可允许业务分析师组的成员使用模型的别名名称来运行模型,但
是可?#36745;?#35768;改变指针,而可允许模型开发者修改指针和/或修改基础模型。对于业务分析
师,通过别名暴露的机器学习模型可表示已通过专?#24050;?#35777;的“黑盒子”工具,其预期为各种
输入数据组提供有用的预测。业务分析师可能?#25442;?#29305;别关心这种模型的内部工作。模型开
发者可继续对各种算法、参数和/或输入数据组进行实验以获得基础模型的改进版本,并且
可能够将指针改变为指向增强版本以提高由业务分析师获得的预测的质量。在至少一些实
施方案中,为?#31169;?#21035;名用户与对基础模型的改变隔离,MLS可保证(a)别名只能指向已经被
成功训练的模型以及(b)当别名指针改变时,原始模型和新模型(即,由旧指针和新指针指
向的各自模型)消耗相同类型的输入并提供相同类型的预测(例如,二进制分类,多类分类
或回归)。在一些实现中,如果为给定模型创建别名,则给定模型本身可被指定为不可修改
?#27169;?#20363;如,在这种实现中,在创建别名之后,由指针“samModel-23adf-2013-12-13-08-06-
01”参考的模型可即使是它的开发者也?#36745;?#34987;修改。关于模型开发和使用的角色和能力的
这种完全分离可允许商业组织内的更多观众受益于机器学习模型,而不仅仅是足以开发模
型的技术人员。

关于对应于给定作业的操作被?#25104;?#21040;MLS服务器的方式,多个选择可以是可用的。
例如,可能在许多不同服务器之间划?#25351;?#23450;作业所需的工作以实?#25351;?#22909;的性能。作为开发
作业的处理计划的一部分,在一些实施方案中,MLS可为作业选择工作负载分布策略。在各
种实施方案中为工作负载分布确定的参数可基于作业的性?#35782;?#19981;同。此类因素可包括例如
(a)确定处理的遍数,(b)确定并行化水平(例如,在将使用?#25104;?缩减技术实现的作业的情
况下的“?#25104;?#22120;”和“缩减器”的数量)),(c)确定将用于终止作业的收敛准则,(d)确定在作
业期间产生的中间数据的目标耐久性水平,或者(e)确定作业的资源容量限制(例如,可基
于MLS服务器池中可用的服务器数量或客户端的预算限制分配给作业的服务器的最大数
量)。在选择工作负载策略之后,可根据所述策略识别将使用的实?#39318;?#28304;组,并且可在所识
别资源上调度作业的操作。在一些实施方案中,可为MLS预先配置计算服务器和/或存储服
务器的池,并且可从这种池选择给定作业的资源。在其他实施方案中,资源可从分配给代表
其执行作业的客户端的池中选择,例如,客户端可在提交API请求之前从提供商网络的计算
服务获取资源,并且可向MLS提供所获取资源的指示以用于作业调度。如果客户提供的代码
(例如,不必由MLS完全测试和/或不包括在MLS的库中的代码)被用于给定作业,那么在一些
实施方案中,可能需要客户端获取将用于作业的资源,使得运行客户端提供的代码的任何
副作用可被限制到客户端自己的资源,而?#25442;?#28508;在地影响其他客户端。

示例性系统环境

图1示出根据至少一些实施方案的可实现机器学习服务(MLS)的各种部件的示例
性系统环境。在系统100中,MLS可实现一组编程接口161(例如,API、命令行工具、网页或独
立GUI),所述编程接口可由客户端164(如,由MLS的客户拥有或分配给其的硬件或软件实
体)使用来提交对于多种机器学习任务或操作的请求111。MLS的管理或控?#30772;?#38754;部分可包
括MLS请求处理机180,所述MLS请求处理机接受客户端请求111并且将对应作业对象插入
MLS作业队列142中,如箭头112所指示的。通常,MLS的控?#30772;?#38754;可包括还可集体称为MLS管
理器的多个部件(包括请求处理机、工作负载分布策略选择器、一个或多个作业调度器、度
量收集器以及充当与其他服务的接口的模块)。MLS的数据平面可包括例如服务器池185的
至少一个子集,用于存储输入数据组、中间结果或最后结果的存储装置(其一些可以是MLS
?#30772;?#20648;存库的部分),以及用于传送客户端输入数据和结果的网络路径。

如前所述,每个作业对象可指示将由于编程接口161的调用执行的一个或多个操
作,并且给定作业的调度可在一些情况下取决于早前生成的作业的操作的至少一个子集的
成功完成。在至少一些实现中,作业队列142可被管理为先进先出(FIFO)队列,其中另外的
?#38469;?#26159;必须满足给定作业的?#35272;?#24615;要求以便将所述作业从队列移除。在一些实施方案中,
代表若干不同客户端创建的作业可放置在单个队列中,而在其他实施方案中,可维持多个
队列(例如,使用的提供商网络的每个数据中心中的一个队列或者每MLS客户一个队列)。相
对于请求111的提交异步地,在所描绘实施方案中,可将已满足其?#35272;?#24615;要求的下一作业从
作业队列142移除,如箭头113指示?#27169;?#24182;且可为其识别包括工作负载分布策略的处理计划。
工作负载分布策略层175(其也可以是如前所述的MLS控?#30772;?#38754;的部件)可确定作业的?#31995;?br />级操作将分布在一个或多个计算服务器(例如,从池185选择的服务器)之间的方式,和/或
针对作业分析或操纵的数据将分布在一个或多个存储装置或服务器之间的方式。在已生成
处理计划并且已识别将用于作业的?#23454;?#36164;源组之后,可在资源上调度作业的操作。在一些
实施方案中,一些作业的结果可作为MLS?#30772;?#23384;储在储存库120内,如箭头142指示的。

在至少一个实施方案中,一些相对简单类型的客户端请求111可导致MLS请求处理
机180对MLS?#30772;?#20648;存库120内的对应?#30772;?#30340;中间生成、检索、存储或修改(如箭头141指示
的)。因此,可能不是所有类型的客户端请求需要在作业队列142中插入作业对象。例如,在
此类实施方案中,现存模型的别名的创建或移除可能不需要新作业的创建。在图1中示出的
实施方案中,客户端164可能够例如通过编程接口161发布读取请求118来查?#21019;?#20648;在储存
库120中的?#30772;?#30340;至少一个子集。

客户端请求111可指示可由MLS使用来执行操作的一个或多个参数,诸如数据源定
义150、特征处理变换配方152或者将用于特定机器学习算法的参数154。在一些实施方案
中,各自表示参数的?#30772;?#20063;可存储在储存库120中。可对应于来自客户端164的一系列API请
求的一些机器学习工作流可包括MLS的输入记录处理机160从原始数据储存库130(例如,数
据源定义150中指示的储存库)提取和?#25442;?#36755;入数据记录,如由箭头114指示的。工作流的此
第一部分可响应于从客户端164的特定API调用发起,并且可使用来自池185的第一组资源
执行。输入记录处理机可例如根据限定在MLS的I/O(输入/输出)库中的一组功能将此类任
务执行为?#33267;?#25968;据记录、对数据记录采样等等。输入数据可包括数据记录,所述数据记录包
括多种数据类型中的任一个的变型,例如像文本、数值数据类型(例如,实数或整数)、布尔、
二进制数据类型、分类数据类型、图像处理数据类型、音频处理数据类型、生物信息学数据
类型、结构化数据类型诸如符合非结构化信息管理架构(UIMA)的数据类型等等。在至少一
些实施方案中,实现MLS的输入数据可?#29992;?#25110;压缩,并且MLS输入数据处理机械可必须在输
入数据记录可用于机器学习任务之前执行解密或解压。在其中使用?#29992;?#30340;一些实施方案
中,MLS客户端可必须向MLS提供解密元数据(例如,密?#20426;?#23494;码或其他凭证)以允许MLS解密
数据记录。类似地,使用的压缩技术的指示在一些实现中可由客户端提供以使得MLS能够适
当地解压输入数据记录。可将由输入记录处理机产生的输出供给到特征处理器162(如由箭
头115指示的),其中可根据配方152使用来自池185的另一组资源执行162一组变换操作。多
种特征处理方法中的任一个可取决于问题域使用:例如,通常用于计算机视觉问题的配方
可不同于用于语音识别问题、自然语言处理等等的配方。特征处理变换的输出116可进而用
作所选择机器学习算法166的输入,其可根据算法参数154使用来自池185的又一组资源执
行。多种多样的机器学习算法可由MLS库自然支持,包括例如随机森林算法、神经网络算法、
随机梯度下降算法等。在至少一个实施方案中,MLS可被设计为可扩展?#27169;?#20363;如,客户端可提
供或注册其自己的模块(其可被限定为用户限定的功能)以用于输入记录处理、特征处理或
者用于实现除了由MLS自然支持之外的另外机器学习算法。在一些实施方案中,机器学习工
作流的中间结果中的一些(例如,由输入记录处理机产生的汇总统计)可存储在MLS?#30772;?#20648;
存库120中。

在图1描绘的实施方案中,MLS可维持包含关于各种机器学习任务的最佳实践的信
息的知识库122。条目可由MLS的各种控?#30772;?#38754;部件例如基于从服务器池185收集的度量、由
客户端164提供的反馈等等添加到最佳实践KB 122中。客户端164可能够通过编程接口161
搜索并检索KB条目,如由箭头117指示?#27169;?#24182;且可使用条目中包含的信息来为其请求提交选
择参数(诸如将使用的特定配方或算法)。在至少一些实施方案中,可由MLS基于针对各种类
型的机器学习实践随时间识别的最佳实践实现新的API(或者可选择API参数的默?#29616;?。

图2示出根据至少一些实施方案的使用提供商网络的多种网络可访问服务实现的
机器学习服务的实例。实体(诸如公司或公共部门组织)所建立的用于将可通过互联网和/
或其他网络访问的一个或多个服务(诸如各种类型的多租户和/或单租户基于云的计算或
存储服务)提供给一组分布式客户端的网络在本文中可称为提供商网络。给定提供商网络
可包括托管实现、配置和分?#21152;?#25552;供商提供的基础设施和服务所需的各种资源池的许多数
据中?#27169;?#35832;如物理和/或虚拟化计算机服务器、存储装置、联网设备等的集?#31232;?#33267;少一些提供
商网络和对应网络可访问服务可分别被称为“公共云”和“公共云服务”。在大的提供商网络
内,一些数据中心可位于与其他数据中心不同的城?#23567;?#24030;或国家,并且在一些实施方案中,
分配给诸如MLS的给定服务的资源可分布在若干此类位置之间以便实现期望别的可用性
级、?#25910;匣指?#21644;性能,如以下参考图3更详细描述的。

在图2示出的实施方案中,MLS利用提供商网络202的存储服务202、计算服务258以
及数据库服务255。在所描绘实施方案中,这些服务中的至少一些还可由其他客户(例如,在
提供商网络处实现的其他服务,和/或提供商网络外面的外部客户)并发使用,即,服务可不
限于MLS使用。可建立MLS网关222来接收由客户端164通过外部网络206(诸如部分互联网)
提交的客户端请求210。MLS网关222可例如被配置有可用于访问MLS的一组公共可访问的IP
(互联网协议)地址。在一些实施方案中,客户端请求可根据由MLS实现的代表性状态传送
(REST)API格式化。在一个实施方案中,MLS客户可被提供SDK(软件开发工具包)204以用于
本地安装在客户端计算装置处,并且请求210可?#24433;?#29031;SDK写的程序内提交。在各种实施方
案中,客户端还可或替代地从已分配给客户端的计算服务262的计算服务器262访问MLS功
能。

存储服务252可例如实现可用于创建并操纵?#25105;?#22823;小的非结构化数据对象的web
服务接口。数据库服务255可实现关系或非关系数据库。在所描绘实施方案中,存储服务252
和/或数据库服务255可扮演关于MLS的多?#32440;?#33394;。在一些实施方案中,MLS可需要客户端164
为其机器学习任务定义提供商网络边界内的数据源。在这种情?#25345;校?#23458;户端可首先将数据
从外部数据源229传送到提供商网络内的内部数据源,诸如由存储服务252管理的内部数据
源230A或由数据库服务255管理的内部数据源230B。在一些情况下,MLS的客户端可已经在
使用提供商网络服务用于其他应用,并?#20918;?#23384;在存储服务252或数据库服务255处的那些应
用的一些输出(例如,web服务器日志或视频文件)可充当MLS工作流的数据源。

响应于至少一些客户端请求210,MLS请求处理机180可生成对应作业对象并将其
存储在作业队列142内,如以上论述的。在图2描绘的实施方案中,作业队列142可本身由存
储在数据库服务255处的数据库对象(例如,表格)表示。作业调度器272可例如在检查到已
满足作业的?#35272;?#24615;要求之后从队列142检索作业,并且从计算服务258识别一个或多个服务
器262以便执行作业的计算操作。用于计算的输入数据可由服务器262从内部或外部数据源
读取。在各种实施方案中,MLS?#30772;?#20648;存库220可在数据库服务255内(和/或在存储服务252
内)实现。在一些实施方案中,各种机器学习任务的中间或最后结果也可存储在存储服务
252和/或数据库服务255内。

在一些实施方案中,提供商网络的其他服务,例如包括负载平衡服务、并行计算服
务、自动化缩放服务和/或身份管理服务,也可由MLS使用。负载平衡服务可例如用于在一组
服务器262之间自动地分布计算负载。实现?#25104;?缩减编程模型的并行计算服务可用于一些
类型的机器学习任务。自动化缩放服务可用于添加或移除被分配给特定长久机器学习任务
的服务器。在一些实施方案中,客户端请求的授权和?#29616;?#21487;在提供商网络的身份管理服务
的帮助下执行。

在一些实施方案中,提供商网络可被组织成多个地理区域,并且每个区域可包括
一个或多个可用性容器,所述可用性容器还可称为“可用性区”。可用性容器进而可包括一
个或多个不同物理驻地或数据中心中的部分或全部,所述物理驻地或数据中心?#36824;?#24314;(例
如,利用独立基础设施部件,诸如电力相关设备、冷却设备和/或物理安全部件),其方式为
使得给定可用性容器中的资源与其他可用性容器中的?#25910;?#32477;缘。一个可用性容器中的?#25910;?br />可不预期导致任何其他可用性容器中的?#25910;希?#22240;此,给定物理主机或服务器的可用性配置
文件意图独立于不同可用性容器中的其他主机或服务器的可用性配置文件。

除了其在不同可用性容器之间的分布之外,提供商网络资源还可在一些实施方案
中划分为不同的安全容器。例如,虽然通常提供商网络的各种类型的服务器可在不同客户
的应用之间共享,但一些资源可限制于由单个客户使用。安全策略可被限定为确保指定组
的资源(其可包括由若干不同提供商网络服务例如像计算服务、存储服务或数据库服务管
理的资源)仅由指定客户或指定组的客户端使用。这种组的资源可在本文中被称为“安全容
器”或“安全组”。

图3示出根据至少一些实施方案的用于机器学习服务的提供商网络的多个可用性
容器和安全容器的使用的实例。在所描绘实施方案中,提供商网络302包括可用性容器
366A、366B和366C,其每个可包括一个或多个数据中心的部分或全部。每个可用性容器366
具有其自己组的MLS控?#30772;?#38754;部件344:例如,分别位于可用性容器366A-366C中的控?#30772;?#38754;
部件344A-344C。给定可用性容器中的控?#30772;?#38754;部件可包括例如,MLS请求处理机的实例、一
个或多个MLS作业队列、作业调度器、工作负载分布部件等等。不同可用性容器中的控?#30772;?br />面部件可按需要彼此通信,例如以便协调利用多于一个数据中心处的资源的任务。每个可
用性容器366具有将以多租户方式使用的MLS服务器的各自池322(例如,322A-322C)。服务
器池322可每个用于执行多种MLS操作,潜在地并发用于不同的MLS客户端。相比之下,为了
执行需要更高安全性或隔离性级别的MLS任务,可使用指定用于仅单个客户端的工作负载
的单租户服务器池,诸如单租户服务器池330A、330B和330C。池330A和330B属于安全容器
390A,而池330C是安全容器390B的部分。在所描绘实例中,安全容器390A可唯一地用于客户
C1(例如,以便运行客户提供的机器学习模块或由客户指定的第三方模块),而安全容器
390B可唯一地用于不同的客户C2。

在一些实施方案中,由MLS使用的至少一些资源可安排在跨可用性容器边界的冗
余组中,使得MLS任务可继续,尽管存在影响给定可用性容器的MLS资源的?#25910;稀?#20363;如,在一
个实施方案中,可建立包括可用性容器366A中的至少一个服务器S1和可用性容器366B中的
至少一个服务器S2的冗余组RG1,使得S1的MLS相关的工作负载可?#25910;?#36716;移到S2(或反之亦
然)。对于长久的MLS任务(诸如涉及太?#32440;?#26631;度或拍?#32440;?#26631;度数据组的任务),给定MLS作业
的状态可周期性地检查指向到持久性存储装置(例如,在还被设计来经受单个可用性容器
?#25910;?#30340;提供商网络的存储服务或数据库服务处),使得?#25910;?#36716;移服务器可从最近的检查点
?#25351;?#37096;分完成的任务而不是必须从头开始。提供商网络的存储服务和/或数据库服务可例
如使用擦除编码或其他复制技术固有地提供非常高的数据耐久性水平,因此数据组可不需
要必须在发生?#25910;?#30340;情况下复制。在一些实施方案中,MLS的客户端可能够为其输入数据
组、中间数据组、?#30772;?#31561;指定期望的数据耐久性水平以及期望的计算服务器可用性水平。
MLS控?#30772;?#38754;可基于客户端要求确定多个可用性容器中的资源是否应该用于给定任务或给
定客户端。客户端必须为各种MLS任务支付的计费金额可至少部分地基于其耐久性和可用
性要求。在一些实施方案中,一些客户端可向MLS控?#30772;?#38754;表明它们仅希望使用给定可用性
容器或给定安全容器内的资源。对于某些类型的任务,在长距离上传输数据组和/或结果的
成本可能很高,或者传输所需时间可能很长,以致MLS可能将任务限制在提供商网络的单个
地理区域内(或甚至在单个数据中心内)。

处理计划

如前所述,在至少一些实施方案中,MLS控?#30772;?#38754;可负责生成处理计划,所述处理
计划对应于响应于客户端请求生成的作业对象中的每一个。针对每个处理计划,可随后必
须识别对应组的资源以便例如基于为计划选择的工作负载分布策略、可用资源等等来执行
计划。图4示出根据至少一些实施方案的可在机器学习服务处生成的各种类型的处理计划
和对应资源组的实例。

在所示出情?#25345;校琈LS作业队列142包括五个作业,每个对应于客户端对各自API的
调用。作业J1(在队?#22411;?#37096;处示出)响应于API1的调用创建。作业J2至J5分别响应于API2至
API5的调用创建。对应于作业J1,可生成输入数据?#25442;?#35745;划422,并且可使用资源组RS1执行
所述计划。输入数据?#25442;?#35745;划可包括读取并验证指定数据源的内容、填充遗漏值、识别并丢
弃(或以其他方式响应于)包含错误的输入记录等等的操作。在一些情况下,输入数据还可
在其可为?#21496;换?#30446;的被读取之前必须被解压、解密或以其他方式操纵。对应于作业J2,统计
生成计划424可生成并随后在资源组RS2?#29616;?#34892;。将为每个数据属性生成的统计的类型(例
如,数值属性的平均值、最小值、最大值、标?#35745;?#24046;、分位数分?#20540;?以及生成统计的方式(例
如,是否由数据?#25442;?#35745;划422生成的所有记录将用于统计,或者将使用?#21451;?#26412;)可在统计生
成计划中指示。在所描绘实施方案中,作业J2的执行可取决于作业J1的完成,但导致作业J2
的生成的客户端请求可在J1完成之前已经提交好了。

对应于作业J3(和API3)的基于配方的特征处理计划426可生成并且在资源组RS3
?#29616;?#34892;。以下提供关于配方的句法和管理的另外?#38468;凇?#20316;业J4可导致模型训练计划428的生
成(其可进而涉及训练的若干迭代,例如具有不同的参数组)。模型训练可使用资源组RS4执
行。模型执行计划430可对应于作业J5(由客户端对API5的调用引起),并且模型可最终使用
资源组RS5执行。在一些实施方案中,相同组的资源(或重叠组的资源)可用于执行客户端的
作业中的若干或全部,例如,资源组RS1–RS5可不必彼此不同。在至少一个实施方案中,客户
端可例如通过包括在API调用中的参数指示期望处理计划的各种元素或属性,并且MLS可将
此类客户端偏好考虑在内。例如,对于特定统计生成作业,客户端可指示可使用25%的?#25442;?br />的输入记录的随机选择的样本,并且MLS可相应地生成包括生成25%数据的随机样本的步
骤的统计生成计划。在其他情况下,MLS控?#30772;?#38754;可被给予更多自由度来精确地决定将如何
实现特定作业,并且它可咨询其最佳实践的知识基础来选择将使用的参数。

作业调度

图5示出根据至少一些实施方案的机器学习服务处的作业的异步调度的实例。在
所描绘实例中,客户端?#35757;?#29992;四个MLS API,API1至API4,并且四个对应作业对象J1至J4被
创建并放置在作业队列142中。时间线TL1、TL2和TL3从调用API的客户端、创建作业并将所
述作业插入队列142中的请求处理机以及将作业从队列移除并且在所选择资源处调度作业
的作业调度器的角度显示事件序列。

在所描绘实施方案中,除了不存在对其他作业的?#35272;?#24615;的基本情况之外,可支持
两种类型的作业间?#35272;?#24615;。在称为“完成?#35272;?#24615;”的一种情况下,一个作业Jp的执行不能开
始直到在另一作业Jq成功完成(例如,因为需要Jq的最后输出作为Jp的输入)。完全?#35272;?#24615;
在图5中由作业对象中示出的参数“dependsOnComplete”指示,例如,J2取决于J1完成执行,
并且J4取决于J2成功完成。在其他类型的?#35272;?#24615;中,一个作业Jp的执行可在另一作业Jq的
某一指定阶段完成时立即开始。此后一种?#35272;?#24615;类型可被称为“部分?#35272;?#24615;?#20445;?#24182;且在图5中
由“dependsOnPartial”参数指示。例如,J3取决于J2的部分完成,并且J4取决于J3的部分完
成。注意在一些实施方案中,为了简化调度,此类基于阶段的?#35272;?#24615;可通过将具有N个阶段
的作业?#33267;?#25104;N个更小作业从而将部分?#35272;?#24615;转换为完全?#35272;?#24615;来处理。在所描绘实例中,
J1不具有任一类型的?#35272;?#24615;。

如客户端时间线TL1上指示?#27169;?#21487;在时间段t0至t1内调用API1至API4。即使由客户
端请求的一些操作取决于对应于早前调用的API的操作的完成,在所描绘实施方案中,MLS
可允许客户端早于早前调用的API的作业的处理提交?#35272;?#25805;作请求。在至少一些实施方案
中,由客户端指定在API调用中的参数可指示作业间?#35272;?#24615;。例如,在一个实现中,响应于
API1,客户端可被提供有J1的作业标识符,并且所述作业标识符可被包括为API2中的参数
以指示需要API1的结果来执行对应于API2的操作。如请求处理机的时间线TL2指示?#27169;?#22312;
API调用之后不久,对应于每个API调用的作业可创建并排队。因此,所有四个作业在t1之后
短时间内已生成并放置在作业队列142内。

如作业调度器时间线TL3中示出?#27169;?#20316;业J1可在时间t2处调度以用于执行。在所描
绘实施方案中,J1插入在队列142(t0之后不久)中与J1的调度之间的?#26144;?#21487;因为多个原因
发生,例如,因为在队列142中在J1之前可能存在其他作业,或者因为为J1生成处理计划并
且识别将用于J1的资源要花费一些时间,或者因为在t2之前没有足够的资源可用。J1的执
行一直持续到t3。在所描绘实施方案中,当J1完成时,(a)客户端得到通知以及(b)J2被调度
以用于执行。如J2的dependsOnComplete参数值指示?#27169;琂2取决于J1的完成,并且J2的执行
可因此在t3之后开始,即使在t3之前J2的处理计划已准备好并且J2的资源组已经可用。

在所描绘实例中,如J3的“dependsOnPartial”参数值指示?#27169;琂3可在J2的工作的
指定阶段或子集完成时开始。在所示出实例中,J2的部分(J3取决于其)在时间t4处完成,并
且J3的执行因此在t4处开始(与J2的剩余部分的执行并行)。在所描绘实例中,客户端可在
时间t4处得到关于J2的部分完成的通知(例如,J2的完成阶段的结果可提供给客户端)。

在时间t5处,J3的部分(J4取决于其)可完成,并且客户端可相应地得到通知。然
而,J4还取决于J2的完成,因此J4不能开始直到在J2在t6处完成。J3继续执行直到t8。J4在
早于t8的t7处完成。在所描绘示例性情?#25345;校?#23458;户端得到关于对应于各自API调用API1–
API4的作业中的每一个的完成的通知。在一些实施方案中,作业之间的部分?#35272;?#24615;可不受
支持,相反,如前所述,在一些情况下,此类?#35272;?#24615;可通过将多阶段作业?#33267;?#25104;更小作业来
转换成完全?#35272;?#24615;。在至少一个实现中,代替或除了在对应于API调用的作业完成时(或在
作业的阶段完成时)得到通知之外,客户端可能够向MLS提交查询以确定对应于各种API调
用的操作的状态(或完成的程度)。例如,可实现MLS作业监控网页,使得客户端能够查看其
请求的进程(例如,通过每个作业的“完成比例”指示符)、预期完成时间等等。在一些实施方
案中,客户端可使用轮询机制来确定作业的进程或完成。

MLS?#30772;?/u>

图6示出根据至少一些实施方案的可使用机器学习服务生成和存储的示例性?#30772;?br />(artifact)。通常,MLS?#30772;?#21487;包括可由于MLS编程接口的调用以持久方式存储的对象中的
任一个。在一些实现中,传递到MLS的一些API参数(例如,配方的文本版本)可存储为?#30772;貳?br />如所示,在所描绘实施方案中,MLS?#30772;?01可尤其包括数据源602、统计603、特征处理配方
606、模型预测608、评估610、可修改或开发中模型630以及已公布模型或别名640。在一些实
现中,MLS可为所示出至少一些类型的?#30772;?#30340;每个实例生成各自的唯一标识符并且将标识
符提供给客户端。客户端可随后使用标识符来指代?#30772;?例如,在随后API调用中,在状态查
询?#26800;?#31561;)。

创建数据源?#30772;?02的客户端请求可包括例如数据记录可从其读取的地址或位置
的指示,以及数据记录的格式或模式的某一指示。例如,可提供HTTP GET请求可指向其以检
索数据记录的源URI(通用资源识别符)的指示、提供商网络存储服务处的存储对象的地址
或者数据库表格标识符。在一些实现中,可通过单独逗号?#25351;?#21464;量(csv)文件来指示格式
(例如,数据记录的字段或列的序列和类型)。在一些实施方案中,MLS可能够推导出创建数
据源?#30772;?#25152;需要的地址和/或格式信息的至少一部分,例如基于客户端的标识符,可能推断
客户端的数据源的根目录或者根URI,并?#19968;?#20110;对前几个记录的分析,可能推导出模式的列
的至少数据类型。在一些实施方案中,创建数据源的客户端请求还可包括例如通过使用MLS
的I/O库对数据记录采样或者?#33267;?#25152;述数据记录来重新安排原始输入数据的请求。当请求
数据源的创建时,在一些实现中,还可需要客户端提供可由MLS使用来访问数据记录的安全
凭证。

在一些实施方案中,如以下关于图7更详细描述?#27169;?#21487;为数据源的数据记录自动生
成至少一些统计603。在其他实施方案中,MLS还可或替代地使得客户端能够例如通过
createStatistics(dataSourceID、statisticsDescriptor)请求的等效物明确地请求各种
类型的统计的生成,其中客户端指示将为指定数据源生成的统计的类型。生成的统计?#30772;?br />的类型可基于输入记录变量的数据类型变化,例如,对于数值变量,可生成平均值、中值、最
小值、最大值、标?#35745;?#24046;、分位数仓、空值数或“不适用”?#26723;取?#22312;至少一些实施方案中,还可
自动或按需要生成诸如相关性的交叉变量统计。

在一些实施方案中,包括特征处理变换指令的配方606可由客户端提供(或者选自
可从MLS配方集合访问的一组可用配方)。在此类实施方案中,允许客户端限定多组变量、分
配、对其他?#30772;分?#22914;模型的?#35272;?#24615;以及变换输出的配方语言可由MLS支持,如以下更详细描
述的。在一些实现中,以文本形式提交的配方可编译成可执行版本并且在各种数据组?#29616;?br />新使用。

在所描绘实施方案中,可生成并存储表示机器学习模型或预测因子的至少两种类
型的?#30772;貳?#32463;常,开发并精修模型的过程可花费很长时间,因为开发者可试图使用各种数据
组?#36879;?#31181;参数提高预测的准确度。例如,可能在几周或几个月内改进一些模型。在此类情境
中,可能?#26723;?#20351;得其他用户(例如,业务分析师)利用模型的一个版本,而模型开发者继续生
成其他改进的版本。因此,在一些实施方案中,表示模型的?#30772;?#21487;属于两种分类中的一?#37073;?br />可修改模型630以及已公布的模型或别名640。别名可包括模型的别名名称或标识符以及指
针(例如,在所描绘实施方案中,别名640A指向模型630B,并且别名640B指向模型630D)。如
本文所用,短语“公布模型”指的是使得模型的特定版本可由一组用户参考别名名称或标识
符执行。在一些情况下,可能?#36745;?#35768;所述组用户中的至少一些修改模型或别名。在一些实施
方案中,非专家用户678可被授予对别名的读取和执行权限,而模型开发者676还可?#36745;?#35768;
修改模型630(和/或别名640的指针)。在一些实施方案中,可向别名用户提供一组保证:例
如,一旦别名公布,别名(以及由别名指代的基础模型)的输入和输出的格式将不改变,并且
模型开发者已充分测试并验证别名指向的基础模型。另外,在此类实施方案中,可关于别名
强制多个其他逻辑?#38469;?#20363;如,如果为以在线模式使用的模型创建别名(以下关于图8更详
细地描述模型使用模式),那么MLS可保证指向的模型保持在线(即,模型不能?#23545;?。在一些
实现中,可在当前处于生产模式的别名与处于内部使用或测试模式的别名之间进行区分,
并且MLS可确保不为处于生产模式的别名删除或?#23545;?#22522;础模型。在一些实施方案中,当创建
在线模式模型的别名时,可为别名确定预测/评估的最小吞吐?#21097;?#24182;且MLS可确保分配给模
型的资源可满足最小吞吐率。在模型开发者676相对于已为其创建别名640的模型630的较
旧版本提高模型630的较新版本的准确率和/或性能特性之后,他们可能切换别名的指针使
得其现在指向改进的版本。因此,非专家用户可不必以他们使用别名的方式改变任何事情,
同时受益于改进。在一些实施方案中,别名用户可能够提交查询来获悉基础模型最后改变
的时间,或者可在其请求别名的执行时得到基础模型自最后执行以来已改变的通知。

在一些实施方案中,模型执行的结果诸如预测608(在其中因变量的实际值未知的
情?#25345;?#27169;型为因变量预测的值)以及模型评估610(当模型的预测可与因变量的已知?#21040;?#34892;
比较时计算的模型准确度的测量)也可由MLS存储为?#30772;貳?#27880;意,在随后描述中,术语“因变
量”、“输出变量”和“目标变量”可互换使用,并且术语“自变量”和“输入变量?#24065;?#21487;互换使
用。尽管在至少一些类型的机器学习技术中,因变量值可被假定为取决于一个或多个自变
量的值,但这不意味着暗示自变量中的任一个必须统计独立于其他自变量中的任一个。除
了图6中示出的?#30772;?#31867;型之外,在一些实施方案中也可支持其他?#30772;?#31867;型,例如,在一些实
施方案中,表示可用于流传输数据上的实时模型执行(与静态数据组上的成批模式执行相
反)的网络端点的对象可存储为?#30772;罰?#24182;且在其他实施方案中,客户端会话日志(例如,给定
会话期间客户端与MLS之间的所有?#25442;?#30340;记录)可存储为?#30772;貳?br />

在一些实施方案中,MLS可支持相关作业的循环调度。例如,客户端可创建诸如模
型的?#30772;罰?#24182;且可希望相同模型在指定时间点处针对不同输入数据组被重新训练和/或重
新执行(例如,对于训练或预测迭代中的每一个、使用资源的相同配置)。在一些情况下,可
明确指定时间点(例如,通过客户端请求“每天在11:00、15:00和19:00在数据源DS1处的当
前可用数据组?#29616;?#26032;运行模型M1”的等效物)。在其他情况下,客户端可指示迭代将调度的
条件(例如,通过客户端请求“无论何时下一组1000000个新纪录变得可从数据源DS1获得重
新运行模型M1”的等效物)。对于每个循环训练或执?#26800;?#20195;,可将各自作业放置在MLS作业队
列中。在一些实施方案中,MLS可实现一组编程接口,实现此类调度循环操作。使用这?#32440;?br />口,客户端可指定将用于每个迭代的一组模型/别名/配方?#30772;?或相同基础?#30772;?#30340;各自版
本),和/或将使用的资源配置。在一些实施方案中,此类编程接口可被称为“流水线API”。除
了图6中示出的?#30772;?#31867;型之外,在一些实施方案中,流水线?#30772;?#21487;存储在MLS?#30772;?#20648;存库中,
其中流水线?#30772;?#30340;每个实例表示通过此类API请求的一组命名循环操作。在一个实施方案
中,在提供商网络处实现的单独管理的数据流水线服务可结合MLS使用以便支持此类循环
操作。

如上所述,在一些实施方案中,在数据源创建时,MLS可自动地生成统计。图7示出
根据至少一些实施方案的响应于实例化数据源的客户端请求的统计的自动生成的实例。如
所示,客户端764通过MLS API 761向MLS控?#30772;?#38754;780提交数据源创建请求712。创建请求可
指定数据记录可从其检索的地址或位置,以及任选地指示数据记录的列或字段的模式或格
式文件。

响应于接收请求712,MLS控?#30772;?#38754;780可生成数据源?#30772;?02并且将其存储在MLS
?#30772;?#20648;存库中。另外,并且在一些情况下取决于MLS处的资源的当前可用性,在所描绘实施
方案中,MLS还可发起一个或多个统计对象730的生成,即使客户端请求并未明确地请求此
类统计。在各种实施方案中,多个不同类型的统计的任何组合可以两种模式中的一种自动
地生成。例如,对于非常大的数据组,可在第一阶段获得基于?#21451;?#26412;(例如,大数据组的随机
选择的子集)的初始组统计763,而从整个数据组导出的全样本统计764的生成可推迟到第
二阶段。这种针对统计生成的多阶段方法可实现例如以便允许客户端在第一阶段相当快速
地获得数据组值的?#33268;?#25110;近似概要,使得客户端可开始计划随后的机器学习工作流步骤而
无需等待完整数据组的统计分析。

如所示,可在任一阶段获得各种不同统计。对于数值变量,基本统计765可包括平
均值、中值、最小值、最大值以及标?#35745;?#24046;。数值变量还可被分仓(分类到一组?#27573;В?#35832;如四
分位数或五分位数);此类仓767可用于构造可显示给客户端的直方图。取决于变量分布的
性?#21097;?#21487;选择线性或对数仓边界。在一些实施方案中,也可计算不同变量之间的相关性768。
在至少一个实施方案中,MLS可利用自动生成的统计(诸如相关值)来识别可具有比其他变
量大的预测能力的候选变量组769。例如,为了避免某些类的模型的过拟合,可仅推荐彼此
非常强烈地相关的一组变量中的一个变量作为对模型的输入的候选者。在此类情?#25345;校?#23458;
户端可能够避免探索其他变量的重要性所需的时间和努力。在其中给定数据记录可具有几
百或甚至?#30422;?#21464;量的许多问题域中,预期具有更大预测有效性的候选变量的这种自动选择
可对MLS的客户端来说非常有价值。

图8示出根据至少一些实施方案的可在机器学习服务处支持的若干模型使用模
式。模型使用模式可广义地分为三类:成批模式、在线或实时模式以及局部模式。在成批模
式中,给定模型可在静态数据记录组上运行。在实时模式中,网络端点(例如,IP地址)可被
分配为指定模型的输入数据记录将提交到的目的地,并且模型预测可在记录被接收时在流
传输数据记录组上生成。在局部模式中,客户端可接收已在MLS处训练和验证的指定模型的
可执行表示,并且客户端可在其选择的计算装置上运行模型(例如,在位于客户端网络中而
不是在实现MLS的提供商网络中的装置处)。

在所描绘实施方案中,MLS的客户端164可通过编程接口861向MLS控?#30772;?#38754;180提
交模型执行请求812。模型执行请求可指定执行模式(成批、在线或局部),将用于模型运行
的输入数据(在一些情况下可使用指定数据源或配方产生),期望的输出的类型(例如,预测
或评估),和/或任选的参数(诸如期望模型质量目标、将用于在线预测的最小输入记录组大
小,等等)。作为响应,MLS可为模型执行生成计划并且选择?#23454;?#36164;源来实现计划。在至少一
些实施方案中,可在如前所述的接收执行请求812时生成作业对象,指示对其他对象的任何
?#35272;?#24615;(诸如用于特征处理的配方的执行),并且可将作业放置在队列中。针对成批模式
865,例如,可识别一个或多个服务器以运行模型。针对在线模式867,可安装模型(例如,配
置有网络地址),数据记录可流传输到所述模型,并且可从所述模型检索包括预测868和/或
评估869的结果。在至少一个实施方案中,客户端可任选地为将以在线模式实例化的模型指
定预期工作负载水平,并且可根据预期工作负载水平选择将为模型部署的所述组提供商网
络资源。例如,客户端可通过模型执行/创建请求的参数指示在每个1百万记录的数据组上
预期每天高达100个预测请求,并且可选择为模型选择的服务器来处理指定的请求速率。针
对局部模式,MLS可封装模型的可执行局部版本843(其中,可已在执行请求812中指定将提
供的可执行类型的?#38468;冢?#35832;如?#32440;?#20195;码的类型或者模型将在其上运行的硬件架构)并且将
局部模型传输到客户端。在一些实施方案中,可仅支持所示出执行模式的子集。在一些实现
中,并非执行模式和输出类型的所有组合可被支持,例如,尽管可在一个实现中支持在线模
式的预测,但可不支持在线模式的评估。

用于实现MLS操作的方法

图9a和图9b是示出根据至少一些实施方案的可在支持机器学习作业的异步调度
的机器学习服务处执行的操作的方面的流程图。如图9a的元素901所示,MLS可通过编程接
口(诸如API、命令行工具、网页或定制GUI)从客户?#31169;?#25910;对属于MLS的一组所支持实体类型
的实体执行特定操作的请求。在所描绘实施方案中,实体类型可包括例如,数据源、统计、特
征处理配方、模型、别名、预测和/或评估。所请求操作可包括例如,创建、读取(或描述属
性)、修改/更新属性、执行、搜索或删除操作。在一些实施方案中,并非所有操作类型可应用
到所有实体类型,例如,可能不能“执行”数据源。在至少一些实现中,请求可由客户端?#29992;?br />或封装,并且MLS可必须使用?#23454;?#23494;钥和/或凭证来提取请求的内容。

可接下来根据MLS的各种规则或策略验证请求(元素904)。例如,根据安全策略,可
检查授予请求客户端的权限、角色或能力以便确保授权客户端执行所请求操作。可针对一
些类型的请求检查请求本身的句法和/或对象诸如作为请求参数传递的配方。在一些情况
下,也可必须检查请求中指示的一个或多个数据变量的类型。

如果请求传递验证检查,那么可做出关于是否将为请求创建作业对象的决定。如
前所述,在一些情况下,所需工作量可足够小使得MLS可只能够同步或?#25353;?#32852;”地执行所请求
操作,而不是创建作业对象并将其插入队列中以便异步执行(至少在这样的情?#25345;校?#20854;中已
经满足请求的前提条件或?#35272;?#24615;,并?#26131;?#22815;资源可用于MLS以完成所请求工作)。如果对请
求的分析指示需要作业(如元素907中检测的),那么可生成作业对象,指示将在MLS处执行
的?#31995;图?#25805;作的性质以及对其他作业的任?#25105;览?#24615;,并且可将作业对象放置在队列中(元
素913)。在一些实现中,可通知请求客户端已接受请求以用于执行(例如,通过向客户端指
示已排队作业以用于稍后执行)。在一些情况下,客户端可提交另一编程请求而无需等待排
队的作业完成(或甚?#37327;?#22987;)。如果作业不具有尚未满足的任?#25105;览?#24615;,并且满足用于立即
或串联执行的其他准则(也如元素907中确定的),那么可在不创建作业对象的情况下执行
所请求操作(元素910)并且可任选地将结果提供给请求客户端。可针对通过MLS编程接口接
收的每个请求执行对应于元素901-913的操作。在将特定作业Jk放置在队列中之后的某一
点,可将Jk识别(例如,通过MLS控?#30772;?#38754;的作业调度器部件)为将实现的下一个作业(图9b
的元素951)。为了识别将实现的下一个作业,调度器可例如从队列的头部(尚未执行的最早
插入的作业)开始并且搜索其?#35272;?#24615;(如果指定了任何)?#35757;?#21040;满足的作业。

除了图9a的元素904中指示的验证种类之外,在一些实施方案中,MLS可在各种其
他阶段执行验证,例如,带着总体目标:(a)当发现特定请求无效?#26412;?#24555;告知客户端,以及
(b)避免MLS资源在不可能成功的请求上的浪?#36873;?#22914;图9b的元素952所示,可对元素951中识
别的作业Jk执行一?#21482;?#22810;种类型的验证检查。例如,在一个实施方案中,每个客户端可具有
对可应用到其作业的资源的配额或限制(诸如可并发用于给定客户的所有作业或者用于客
户的任何给定作业的服务器的最大数量)。在一些实现中,可为若干不同资源类型(例如,
CPU/核、存储器、盘、网络带宽等)中的每一个设置各自配额。在此类情?#25345;校?#20316;业调度器可
负责验证将代表其运行作业Jk的客户端的一个或多个配额未耗尽。如果配额已耗尽,那么
作业的执行可推迟直到客户端的资源中的至少一些释放(例如,由于代表同一客户端执行
的其他作业的完成)。此类?#38469;?#38480;制可有助于限制任何给定客户端?#21202;?#20849;享的MLS资源的能
力,并?#19968;?#26377;助于最小化无意错误或恶意代码的?#22909;?#21518;果。除了配额检查之外,至少一些作
业可需要其他类型的运行时间验证,例如,可必须对涉及特征处理的作业的输入数据组执
行数据类型检查,或者MLS可必须验证输入数据组大小在可接受界限内。因此,在至少一些
实施方案中,可同步地(在接收到请求时,如与图9a的元素904中指示的)以及异步地(如图
9b的元素952中指示的)验证客户端请求。可针对Jk识别工作负载分布策略和处理计划,例
如,将使用的处理遍数或阶段的数量、将使用的并行度、将用于完成Jk的迭代收敛准则(元
素954)。在一些实施方案中,当生成处理计划时可考虑多个另外因素,诸如客户端预算?#38469;?br />(如果有的话)、客户端的数据耐久性需要、客户端的性能目标、安全需要(诸如以隔离而不
是多租户模式运?#26800;?#19977;方代码或客户端提供的代码的需要)。

根据所选择分布策略和处理计划,可针对Jk识别一组资源(元素957)。可例如从
MLS管理的共享池和/或从客户分配的或客户拥有的池选择资源(其可包括计算服务器或集
群、存储装置等)。可随后在所识别资源?#29616;?#34892;JK的操作(元素960),并且可在操作完成时
(或者在阻止操作的完成的?#25910;?#30340;情况下)任选地通知代表其创建Jk的客户端。

幂等编程接口

由MLS客户端请求的一些类型的操作可以是资源密集的。例如,取决于部署的资源
组和使用的并行度,摄入太?#32440;?#26631;度的数据组(例如,响应于创建数据存储区的客户端请
求)或者生成关于这种数据组的统计可花费?#24863;?#26102;或几天。假定在至少一些实施方案中处
理客户端请求的异步方式,客户端可有时多次结束提交同一请求。在一些情况下,因为客户
端不知道先前提交是否被接受(例如,因为客户?#23435;?#33021;注意到先前提交已被接受的指示,或
者因为这种指示丢失了),此类多个提交可发生。在其他情况下,因为客户端已假设由于已
经很长时间未提供完成所请求任务的预期结果,先前请求肯定失败了,所以可接收复本请
求。如果,响应于这?#25351;?#26412;提交,MLS实际上调度另一潜在大作业,那么可不必要地部署资
源,并且客户端可能在一些情况下为仅旨在服务一次的请求付费两次。因此,为了避免此类
有问题的情?#24120;?#22312;至少一个实施方案中,由MLS支持的编程接口中的一个或多个可被设计为
幂等?#27169;?#20351;得同一客户端对复本请求的重新提交不具有?#22909;?#21518;果。

图10a是示出根据至少一些实施方案的可在支持一组幂等编程接口的机器学习服
务处执行的操作的方面的流程图。在图10a中,创建接口(例如,类似于“createDataSource”
或“createModel”的API)用作幂等编程接口的实例。尽管幂等性可特别适用于涉及创建诸
如数据源和模型的?#30772;?#30340;编程接口,但在各种实施方案中,幂等接口还可被支持用于其他
类型的操作(例如,删除或执行)。如元素1001所示,可通过诸如特定API的编程接口在MLS处
从客户端C1接收创建实体类型ET1的新实例的请求。请求可指示由客户端选择的将用于新
实例的标识符ID1。在一些实现中,客户端可需要指定实例标识符,并且可如以下描述使用
标识符来检测复本请求。(允许客户端选择标识符可具有另外优点:客户端可能够向实体实
例分配比由MLS分配的名称更有意义的名称)。MLS可生成包括在客户端对编程接口的调用
中的输入参数的表示IPR1(元素1004)。例如,输入参数组可供应作为对所选择散列函数的
输入,并且散列函数的输出可保存为IPR1。

在图10a描绘的实施方案中,对于所生成?#30772;分?#30340;至少一些,MLS储存库可存储对
应的实例标识符、输入参数表示以及客户端标识符(即,请求?#30772;?#30340;创建的客户端的标识
符)。MLS可例如通过查找?#30772;?#20648;存库来检查具有实例标识符ID1和客户端标识符C1的实体
类型ET1的实例是否已经存在于储存库中。如果未发现这种实例(如元素1007中检测到的),
那么可将具有标识符ID1、输入参数表示IPR1和客户端标识符C1的类型ET1的新实例插入到
储存库中(元素1007)。另外,取决于实例的类型,可将作业对象添加到作业队列以便执行对
应于客户端请求的另外操作,诸如读取/摄入数据组、生成一组统计、执行特征处理、执行模
型等。在所描绘实施方案中,可生成对客户端的请求的成功响应(元素1016)。(注意,在一些
实现中,成功响应可以是隐含?#27169;?#20363;如,错误消息的不存在可充当成功的隐含指示符)。

如果,在对应于元素1007的操作中,在储存库中发现具有相同实例标识符ID1和客
户端标识符C1的预先存在的实例,那么MLS可检查预先存在的实例的输入参数表示是否也
与IPR1匹配(元素1013)。如果输入参数表示也匹配,那么MLS可假设客户端的请求是(无害
的)复本,并且没有新的工作需要执行。因此,如果发现这?#25351;?#26412;请求,那么MLS还可向客户
端指示成功(隐含地或明确地)(元素1016)。因此,如果客户端已经无意地重新提交同一请
求,那么可避免新作业对象的创建和相关联资源使用。在一些实现中,如果使用所述方法发
现客户端请求是对早前请求的精确复本,那么可向客户端提供请求虽然未被指定为错误但
实际上被识别为复本的指示。如果预先存在的实例的输入参数表示不匹配客户端的请求的
输入参数表示,那么可将错误消息返回到客户端(元素1019),例如指示存在具有相同标识
符的同一实体类型ET1的预先存在的实例。在一些实现中,代替需要客户端提交标识符,可
使用复本检测的不同方法,诸如使用客户端请求的持久日志,或者使用表示(请求、客户端)
组合的签名。

最佳实践

构件可由大量客户针对各种使用情况使用的机器学习服务的一个优点是:随时间
可变得可能识别例如关于哪些技术最佳适于数据?#25442;?#37319;样或子集提取、特征处理、预测等
等的最佳实践。图10b是示出根据至少一些实施方案的可在机器学习服务处执行以收集并
散布关于与不同问题域相关的最佳实践的信息的操作的方面的流程图。如元素1051所示,
可将由于客户端请求而在MLS处生成的至少一些?#30772;?诸如配方和模型)基于问题域分类成
组,例如,一些?#30772;?#21487;用于财务分析,其他?#30772;?#29992;于计算机视觉应用,其他?#30772;?#29992;于生物信
息学等等。在不同实施方案中可基于各种因素执行这种分类,例如,基于所使用的算法类
型、输入和输出变量的名称、客户提供的信息、客户的身份等等。

在一些实施方案中,MLS控?#30772;?#38754;可包括从用于机器学习操作的各阶段的资源收
集性能和其他度量的一组监控代理(元素1054)。例如,使用具有C1的CPU评级和M1的存储器
大小的服务器来构建随机森林的N个树所花?#35757;?#22788;理时间量可被收集为度量,或者根据在
数据库服务处从数据源研究的数据属性的数量计算一组统计所花?#35757;?#26102;间量可被收集为
度量。MLS还可收集评级/分级或者来自MLS客户端的关于用于不同问题域的各种方法或模
型的有效性或质量的其他类型的反馈。在一些实施方案中,还可收集模型预测有效性的定
量测量,诸如用于各种分类器的接收器操作特性(ROC)曲线下的区域。在一个实施方案中,
关于质量的一些信息可由MLS推导出或者隐含地观察到,而不是通过明确客户端反馈获得,
例如,通过跟踪在模型最终用于测试数据组之前在训练迭代期间改变的参数组。在一些实
施方案中,客户端可能够决定其与MLS的?#25442;?#26159;否可用于最佳实践知识基础增强,例如,一
些客户端可能不希望其定制技术变得由其他人广泛使用,并且可因?#21496;?#23450;退出与MLS或与
其他用户共享与此类技术相关联的度量。

基于所收集度量和/或反馈,可识别机器学习工作流的各阶段的各自最佳实践组
(元素1057)。最佳实践中的一些可特定于特定问题域,而其他可以是更一般适用?#27169;?#24182;且可
因此跨问题域适用。识别的最佳实践的表示或总结可存储在MLS的知识库中。可允许MLS用
户访问(例如,通过浏览器或搜索工具)知识库(元素1060)。MLS还可将最佳实践并入暴露于
用户的编程接口中,例如,通过引入更可能导致用户利用最佳实践的新API,通过基于最佳
实践选择默认参数,通过改变下拉式?#35828;?#20013;的参数选择呈现的次序,使得与最佳实践相关
联的选择变得更可能被选择等等。在一些实施方案中,MLS可提供可帮助客户端实现其机器
学习目标的各种工具和/或模板。例如,基于web的富文本编辑器或可安装的集成开发环境
(IDE)可由MLS提供,其为配方、模型等提供模板和开发指?#29616;?#22914;自动句法错误校正。在至少
一个实施方案中,MLS可给用户提供证明在过去有用(例如,对于解决类似问题的其他客户
端)的候选模型或实例。在一些实现中,MLS还可维持由客户端(或者由与同一客户账户相关
联的一组用户)跨多个?#25442;?#20250;话执行的操作的历史,使得客户端能够容易对同一客户端早
前生成的?#30772;方?#34892;实验或者采用所述?#30772;貳?br />

特征处理配方

图11示出根据至少一些实施方案的与机器学习服务处的数据变换的配方的使用
相关联的示例性?#25442;ァ?#22312;所描绘实施方案中,由MLS定义的配方语言使得用户能够容易且简
明地指定将对指定数据记录组执行的变换以便准备用于模型训练和预测的记录。配方语言
可使得用户能够创建一个或多个变换将应用到的定制变量组,定义中间变量以及对其他制
品的?#35272;?#24615;等等,如以下更详细描述的。在一个示例性使用流中,原始数据记录可先从数据
源提取(例如,在MLS I/O库的帮助下由如图1中示出的输入记录处理机),根据一个或多个
配方处理,并随后用作用于训练或预测的输入。在另一使用流中,配方可本身并入有训练
和/或预测步骤(例如,可在配方内指定一个或多个目的地模型)。配方可应用到已经?#33267;?#25104;
训练子集和测试子集的数据记录,或者应用到?#33267;?#25104;训练子集和测试子集之前的整个数据
组。在至少一些实施方案中,给定配方可在若干不同数据组?#29616;?#26032;使用,潜在用于各种不同
机器学习问题域。MLS的配方管理部件可实现容易理解的复合模型(其中一个模型的输出可
用作另一个的输入,或者可在其中执?#26800;?#20195;预测)的生成,以及数据变换的最佳实践的共享
和重新使用。在至少一个实施方案中,可在单个配方内指示将以给定输入数据组开始执行
的连续变换的流水线。在一个实施方案中,MLS可针对一个或多个配方执行参数优化,例如
为了识别将用于特定机器学习算法的更有用的输入变量组,MLS可自动地改变此类变换性
质为将包括在n元语法中的分位数仓的大小或根词的数量。

在一些实施方案中,变换配方的文本版本1101可作为客户端在“createRecipe”
MLS API调用中的参数传递。如所示,在所描绘实施方案中,配方验证器1104可针对词法正
确性检查配方的文本版本1101,例如以便确保其符合由MLS定义的语法1151,并且配方包括
以预先定义的次序安排的一个或多个部分(图12中示出并且以下描述配方的预期结构的实
例)。在至少一些实施方案中,由MLS接收的配方的版本不需要一定是文本版本;相反,例如,
客户端可提供预处理的或部分组合的版本(其可在一些情况下为二进制格式而不是纯文
本)。在一个实施方案中,MLS可提供可用于准备配方的工具,例如,为基于web的配方编辑工
具或可下载集成开发环境(IDE)的形式。这种配方准备工具可例如提供句法和/或参数选择
指南、自动地校正句法错误和/或在配方(文本形式或二进制形式)发送到MLS服务之前在客
户端侧对配方文本执行至少一定程度的预处理。配方可使用在一个或多个库1152中定义的
多种不同变换函数或方法,诸如形成变量、n元语法(对于文本数据)、分位数仓(对于数值数
据变量)等的笛卡尔乘积的函数。在至少一些实施方案中,用于配方验证的库可包括第三方
或客户端提供的函数或库,表示已并入到MLS中以增强服务的核或自然支持的特征处理能
力的定制特征处理扩展。配方验证器1104还可负责验证以本文版本1101调用的函数(a)在
库1152的支持函数之间,并且(b)与?#23454;?#31614;名一起使用(例如,函数的输入参数与库中指定
的参数的类型和序列匹配)。在一些实施方案中,MLS客户可将另外函数注册为库的部分,例
如,使得客户“用户定义函数”(UDF)也可包括在配方中。在一些实施方案中,希望利用UDF的
客户可需要提供可用于实现UDF的模块的指示(例如,以源代码、可执行代码或对模块的源
或可执行版本可由MLS从其获得的第三方实体的引用的形式)。在一些实现中,多种不同编
程语言和/或执行环境可支持用于UDF,例如,包括JavaTM、Python等。在所描绘实施方案中,
配方的文本版本可转换成可执行版本1107。配方验证器1104可被认为是类似于用于配方语
言的编译器,其中配方的文本版本类似于源代码并且可执行版本类似于从源代码导出的编
译的二进制或?#32440;?#20195;码。在一些实施方案中,可执行版本还可被称为特征处理计划。在所描
绘实施方案中,配方的文本版本1101和可执行版本1107可存储在MLS?#30772;?#20648;存库120内。

在一些实施方案中,例如响应于指定输入数据组的“executeRecipe”API的等效
物,MLS的运行时间配方管理器1110可负责配方执行的调度。在所描绘实施方案中,示出同
一配方R1的具有各自输入数据组IDS1和IDS2的两个执行请求1171A和1171B。输入数据组可
包括数据记录,所述数据记录的变量可包括各种数据类型中的任一个的实例,例如像文本、
数值数据类型(例如,实数或整数)、布尔、二进制数据类型、分类数据类型、图像处理数据类
型、音频处理数据类型、生物信息学数据类型、结构化数据类型诸如符合非结构化信息管理
架构(UIMA)的特定数据类型等等。在每种情况下,运行时间配方管理器1110可检索(或生
成)R1的可执行版本;执行一组运行时间验证(例如,以便确保允许请求者执?#20449;?#26041;、输入数
据似乎是正确或预期格式等等);并?#26131;?#32456;调度R1的变换操作在各自资源组1175A和1175B
处的执行。在至少一些情况下,将用于变换的特定库或函数可基于输入记录的数据类型选
择,例如,可必须使用为特定结构化数据类型定义的对应库的函数或方法处理所述数据类
型的实例。在所描绘实施方案中,各自输出1185A和1185B可通过配方R1在IDS1和IDS2上的
应用产生。取决于配方R1的?#38468;冢?#36755;出1185A可表示将用作模型的输入的数据或者模型的结
果(诸如预测或评估)。在至少一些实施方案中,可相对于执行请求异步地应用配方,例如,
如前所述,可响应于执行请求将作业对象插入到作业队列中,并且可稍后调度执行。在一些
情况下,配方的执行可取决于其他作业,例如,取决于与输入记录处理(解密、解压、数据组
?#33267;?#25104;训练组和测试组等)相关联的作业的完成。在一些实施方案中,还可或替代地使用异
步地调度的作业管理文本配方的验证和/或编译。

在一些实施方案中,可接收指定文本格式的配方并?#19968;?#21253;括在指定数据组?#29616;?#34892;
配方的请求的客户端请求,即,图11中示出的静态分析步骤和执行步骤可不一定需要单独
客户端请求。在至少一些实施方案中,客户端可简单地指示将在数据组?#29616;?#34892;的例如选择
由MLS以编程方式暴露的配方集合的现存配方,并且甚至可能不必生成配方的文本版本。在
一个实施方案中,MLS的配方管理部件可检查输入数据变量组和/或配方中指示的变换的输
出,自动地识别可具有比其他变量或输出组高的预测能力的变量或输出组,并且将此类组
的指示提供给客户端。

图12示出根据至少一些实施方案的配方的示例性部分。在所描绘实施方案中,配
方1200的文本可包括四个单独部分,组定义部分1201、分配部分1204、?#35272;?#24615;部分1207以及
输出/目的地部分1210。在一些实现中,仅输出/目的地部分可以是强制性?#27169;?#22312;其他实现
中,部分的其他组合也可或相?#35789;?#24378;制性的。在至少一个实施方案中,如果配方中包括图12
中示出的四个部分类型中的多于一个,那么可必须以指定次序安排所述部分。在至少一个
实施方案中,可在与输出部分不同的部分中指示目的地模型(即,配方变换的输出将提供到
的机器学习模型)。

在组定义部分1201中,如由名称暗示?#27169;?#23458;户端可定义输入数据变量组,例如以便
使得进一步更容易在配方中指示相同变换操作将应用到一组所有成员变量。在至少一些实
施方案中,配方语言可定义一组基线组,诸如ALL_INPUT(包括输入数据组中的所有变量),
ALL_TEXT(数据组中的所有文本变量),ALL_NUMERIC(数据组中的所有整数和实数值变量),
ALL_CATEGORICAL(数据组中的所有分类变量)以及ALL_BOOLEAN(数据组中的所有布尔变
量,例如可仅具有值“真”或“假”(在一些实现中可分别表示为“1”和“0”)的变量)。在一些实
施方案中,配方语言可允许用户在定义组?#22791;?#21464;或“铸造”一些变量的类型,例如,似乎包括
?#25105;?#25991;本但仅预期仅具有一组离散值的变量,诸如一年中的?#36335;蕁?#19968;周中的几天的名称或
国家的州,可被转换为分类变量,而不是被视为通用文本变量。在组定义部分内,方法/函数
“group”和“group_remove”(或者表示组操作的其他类似函数)可在定义新的组时用于组合
或排除变量。在至少一些实施方案中,给定组定义可指代另一组定义。在图12中示出的示例
性部分内容1250中,定义了三个组:LONGTEXT、SPECIAL_TEXT和BOOLCAT。LONGTEXT包括输入
数据中的所有文本变量,除了称为“title”和“subject”的变量之外。SPECIAL_TEXT包括文
本变量“subject”和“title”。BOOLCAT包括输入数据中的所有布尔变量和分类变量。注意至
少在一些实施方案中,示出的示例性组定义可应用到任何数据组,即使数据组不包含
“subject”变量、“title”变量、任何布尔变量、任何分类变量或甚至任何文本变量。如果在
输入数据组中不存在文本变量,那么在这种实施方案中,例如LONGTEXT和SPECIAL_TEXT将
为相对于所述特定输入数据组的不具有成员的空组。

可在分配部分1204中定义可在配方1200的其他部分中引用的中间变量。在示例性
分配部分中,称为“binage”的变量根据应用到输入数据中的“age”变量的“quantile_bin”
函数(其在所描绘实施方案中被假设为包括在配方语言的预定义库函数之间)定义,具有
“30”的仓计数。称为“countrygender”的变量被定义为输入数据组的两个其他变量
“country”和“gender”的笛卡尔乘积,其中“cartesian”函数被假设为预定义库的部分。在
?#35272;?#24615;部分1207中,用户可指示配方取决于其的其他?#30772;?诸如在所示出实例中被引用为
“clustermodel”的具有MLS?#30772;?#26631;识符“pr-23872-28347-alksdjf”的模型)。例如,在一些
情况下,在配方的?#35272;?#24615;部分中引用的模型的输出可被摄入为配方的输入,或者引用的模
型的输出的一部分可包括在配方的输出中。在所描绘实施方案中,例如,在调度基于配方的
作业时,MLS作业调度器可使用?#35272;?#24615;部分。在不同实施方案中,可在给定配方中指示对各
种?#30772;分?#30340;任一个的?#35272;?#24615;,包括其他配方、别名、统计组等等。

在示例性输出部分1210中,多种变换应用到输入数据变量、变量组、配方的早前部
分中定义的中间变量或者?#35272;?#24615;部分中识别的?#30772;?#30340;输出。变换的数据被提供为对识别为
“model1”的不同模型的输入。在移除标点(通过“无标点”函数)并且将变量的文本转换为小
写(通过“lowercase”函数)之后,获得包括在LONGTEXT组中的变量的词频率逆向文档频率
(tfidf)统计。tfidf测量可旨在?#20174;?#21333;词在文档集合或语料库内的相对重要性;给定单词
的tfidf值通常与单词在文档中的出现次数成比例,总体上被单词在集?#29616;?#30340;频?#23454;?#28040;。
tfidf、无标点和小写函数都被假设为在配方的语言库中定义。类似地,输出部分中指示的
其他变换使用osb(正交稀疏二元)库函数、用于对数?#21040;?#34892;分?#21482;?#20998;组的quantile_bin库
函数以及笛卡尔乘积函数。部分1210中指示的一些输出可不一定涉及本身的变换:例如,输
出中可简单地包括输入数据组中的BOOLCAT组的变量,并且也可在配方的输出中没有任何
变化的情况下包括“clusternodel”的“clusterNum”输出变量。

在至少一些实施方案中,输出部分中列出的条目可用于隐含地丢弃未列出的那些
输入数据变量。因此,例如,如果输入数据组包括“taxable-income”数值变量,那?#20174;?#20110;输
出部分中不直接或间接引用它,在所示示例中可简单地将其丢弃。图12中示出的配方句法
和逐部分组织可与其他实施方案中的不同。在不同实施方案中可支持多种多样的函数和变
换类型(其至少一些可与图12中示出的特定实例不同)。例如,在一些实施方案中,可以配方
语言支持日期/时间相关函数“dayofweek”、“hourofday”、“month”等。在至少一个实施方案
中,可支持数学函数,诸如“sqrt”(平方根)、“log”(对数)等。在一些实施方案中,可支持用
于归一化数值的函数(例如,将值从?#27573;–N1至+N2}?#25104;?#21040;?#27573;0至1})或者填充遗漏值
(例如,“replace_missing_with_mean(ALL_NUMERIC)”)。在一个实施方案中,可允许单个表
达式内对一个或多个先前定义的组变量、中间变量或?#35272;?#24615;的多?#25105;?#29992;:例如,配方片段
“replace_missing(ALL_NUMERIC,mean(ALL_NUMERIC))”可被认为是有效的。在至少一些实
施方案中,也可在配方内允许涉及诸如“'income'+10*'capital_gains'”的变量的组合的
数学表达式。在一些配方中,注释可由?#25351;?#31526;指示诸如“//”。

配方验证

图13示出根据至少一些实施方案的可用于定义可接受配方句法的示例性语法。所
示的语法可根据解析器生成器的要求来格式化,诸如ANTLR(用于语言识别的另一工具)的
版本。如所示,语法1320定义在配方内使用的表达式的句法规则。假定类似于图13所示语法
的语法,诸如ANTLR的工具可生成可?#20248;?#26041;的文本版本构建抽象句法树的解析器,并且MLS
控?#30772;?#38754;可随后将抽象句法树转换成处理计划。图14中示出使用语法1320生成的示例性
树。

在图13中示出的示例性语法“MLS-Recipe”中,表达式“expr”可以是“BAREID”、
“QUOTEDID”、“NUMBER”或“functioncall”中的一个,其中在语法中进一步定义后四个实体
中的每一个。BAREID?#28304;?#20889;或小写字母开始,并且可包括数值。QUOTEDID可包括单引号内的
任何文本。NUMBER包括具有或不具有指数的实数值,以及整数。functioncall必须包括函数
名(BAREID),后面跟圆括号内的零个或多个参数。?#22791;?#25454;语法1320生成抽象句法树时,忽略
空格和注释,如以“->skip”结尾的行所指示的。

图14示出根据至少一些实施方案的可针对配方的一部分生成的抽象句法树的实
例。在所描绘实施方案中,可根据语法1320(或某一其他类似语法)将包括文本“cartesian
(binage、quantile_bin(‘hours-per-week’、10))”的示例性配方片段1410翻译成抽象句法
树1420。如所示,“cartesian”和“quantile_bin”被识别为函数调用,每个具有两个参数。在
所示配方片段的句法分析期间,配方验证器1104可确保传递给“cartesian”和“quantile_
bin”的参数的数量和次序与那些函数的定义匹配,并且在配方内定义变量“binage”和
“hours_per_week”。如果不满足这些条件中的任一个,那么可向提交该配方的客户端提供
指示“cartesian”片段所在的配方内的行号的错误消息。假设总体上在配方中没有发现验
证错误,可生成配方的可执行版本,其中部分1430可表示片段1410。

域特定的配方集合

在至少一些实施方案中,MLS的一些用户可以不是特征处理的专家,至少在他们开
始使用MLS时的时间段期间。因此,MLS可允许用户访问先前已发现可用于各种问题域中的
配方集?#31232;?#22270;15示出根据至少一些实施方案的可用于搜索可从机器学习服务获得的域特定
配方的编程接口的实例。如所示,网页1501可针对配方搜索实现,其包括向MLS用户提供高
级指南的消息区域1504以及配方可用于其的多个问题域。在所描绘实例中,MLS客户可使用
复选框来从问题域欺诈检测1507、情感分析1509、图像分析1511、基因组分析1513或者语音
识别1515中选择。用户还可使用所描绘网?#25345;?#30340;搜索项文本框1517搜索与其他问题域相关
联的配方。

对于所选择问题域(图像分析),网页1501上示出到五个示例性配方的链接:用于
面部识别的配方FR1和FR2、用于脑瘤识别的BTR1、用于海洋碎片识别的ODA1以及用于天文
事件检测的AED1。用户可通过点击配方名称获得关于给定配方的另外?#38468;冢?#20363;如,在一些实
施方案中,可提供配方做了什么的描述,可提供由其他用户提交的配方的评级/分级,配方
上的由其他用户提交的注释等等。如果用户发现他们希望使用的配方(未改变或者在修改
配方之后),那么他们可能够下载配方的文本版本,例如,用于包括在随后MLS API调用中。
在所描绘实施方案中,如消息区域1504中指示?#27169;?#29992;户还可能够提交其自己的配方以便包
括在由MLS暴露的集?#29616;小?#22312;至少一些实现中,MLS可在允许其他用户访问之前对所提交配
方执行某一组的验证步骤(例如,通过检查配方针对各种输入数据组产生有意义的输出)。

针对配方变换的自动参数调谐

针对许多类型的特征处理变换操作,诸如为数值数据属性创建分位数仓、生成n元
语法或者将稀疏或罕见单词从正分析的文档移除,可通常必须选择参数,诸如仓的大小/边
界、n元语法的长度、稀疏单词的移除准则等等。此类参数(在一些环?#25345;?#36824;可被称为超参
数)的值可对使用配方输出进行的预测具有重要影响。代替需要MLS用户手动地提交对每个
参数设置或参数设置的每个组合的请求,在一些实施方案中,MLS可支持自动的参数探索。
图16示出根据至少一些实施方案的机器学习服务的实例,所述机器学习服务代表客户端自
动探索配方变换的参数设置的?#27573;В?#24182;?#19968;?#20110;此类探索的结果选择可接受或推荐的参数设
置。

在所描绘实施方案中,MLS客户端164可提交包括参数自动调?#25104;?#32622;1606的配方执
行请求1601。例如,客户端164可指示输入数据中的一个或多个变量的分位数分仓的?#25191;?br />小/边界应由服务选择,或者n元语法中的单词的数量应由服务选择。在一些实施方案中,可
为各种集群相关的参数请求参数探索和/或自动调?#24120;?#35832;如给定数据组应被分类成的集群
的数量、集群边界阈值(例如,两个地理位置隔多远可被认为是一组“附近”位置的部分)等
等。在一些实施方案中,各种类型的图像处理参数设置可以是用于自动调谐的候选者,诸如
在特征处理期间给定图像应被剪裁、旋转或缩放的程度。自动参数探索还可用于文本文档
的向量表示的选择维度值(例如,根据潜在狄利克雷分布(LDA)技术)或者其他自然语言处
理技术。在一些情况下,客户端还可指示将用于终止参数值空间的探索例如达到可接受参
数值的准则。在至少一些实施方案中,客户端可被给予让MLS决定将使用的接受准则的选
项,这种选项可特别适用于非专家用户。在一个实现中,客户端可指示参数探索的资源或执
行时间上的限制。在至少一个实现中,至少一些输出变换的自动调?#25104;?#32622;的默认设置可以
是“真”?#27169;?#20363;如,客户端可必须明确地指示将不执行自动调谐以便阻止MLS针对变换探索参
数空间。

响应于将针对给定变换操作执行自动调谐的确定,MLS(例如,配方运行时间管理
器1640的参数探索器1642)可为变换选择参数调谐?#27573;?654(例如,是否应针对特定数值变
量探索10、20、30和40的分位数仓计数)。在不同实施方案中,可基于各种因素选择参数范
围,包括MLS已知的用于类似变换的最佳实践、资源?#38469;?#36755;入数据组的大小等等。在将调谐
用于若干变换操作的组合的各自参数(例如,如果针对多于一个变量自动调谐分位数分仓)
的情?#25345;校?#21442;数探索器1642可为每个参数选择一组各自值以便将尝试的组合的数量保持在
阈值下。已确定了参数值的?#27573;В?#21442;数探索器可针对每个参数值或组?#29616;?#34892;变换迭代,在至
少一些实现中将迭代结果1656存储在临时存储装置中。基于为不同参数值生成的结果组以
及使用的优化准则,至少一个参数值可被识别为对于每个参数都可接受。在所描绘实施方
案中,结果通知1667可提供给客户端,指示正自动调谐的不同参数的已接受或推荐的一个
或多个参数值1668。对于一些参数,并不总是直截?#35828;?#22320;将特定参数值识别为单个最佳值,
例如,因为若干不同值可导致类?#24179;?#26524;。在一些实施方案中,代替为这种参数识别单个最优
值,MLS可相反为给定参数P识别一组候选值{V1、V2、V3…Vn},使得所述组的所有值提供具
有类似质量的结果。所述组候选值可提供给客户端,使得客户端能够选择将使用的特定参
数值,并且客户端可通知MLS关于选择的参数值。在一个实施方案中,客户端可仅提供有使
用接受的/优化的参数值获得的配方变换的结果的指示,而不一定被告知关于使用的参数
值设置。

通过可重新使用的配方支持特征处理的方法

图17是示出根据至少一些实施方案的可在支持用于数据组变换的可重新使用配
方的机器学习服务处执行的操作的方面的流程图。如元素1701所示,可在提供商网络处实
现的网络可访问MLS处接收用于将对输入数据组执行的变换操作的配方的文本版本的指
示。在一个实施方案中,配方文本可包括根据由MLS定义的配方语言的四个部分中的一个或
多个:组定义部分、分配部分、?#35272;?#24615;部分以及输出/目的地部分(还可简单地被称为输出部
分)。在一些实施方案中,一个或多个部分(诸如输出部分)可以是强制性的。通常,输出/目
的地部分可指示将对在配方的其他部分中定义的实体或者直接对数据组的输入变量执行
的各种特征处理变换操作。组定义部分可用于定义输入变量的定制组(或与其他组结合的
输入数据变量或者从其他组导出的组)。此类组定义可使得更容易在输出部分中指定常见
变换将应用到若干变量。在一些实施方案中,配方语言可支持多个内置或预定义的组,诸如
ALL_NUMERIC或ALL_CATEGORICAL连同诸如“group_remove”和“group”的函数以便允许配方
创建者容易地指示在定义新组时将使用的变量排除和组?#31232;?#20998;配部分可用于定义可在配方
的别的地方使用的一个或多个中间变量。?#35272;?#24615;部分可指示配方取决于另一机器学习?#30772;?br />(诸如模型或另一配方)或者取决于存储在MLS的储存库中的多个其他?#30772;貳?#22312;一些实施方
案中,输出部分可不仅指示将应用到指定输入变量的特定变换、定义的组、中间变量或者依
赖性部分中指示的?#30772;?#30340;输出,而?#19968;?#25351;示变换结果将提供给其作为输入的目的地模型。

机器学习服务可自然地支持包括可用在配方的输出部分中的各种不同变换操作
的支持库,诸如图12中示出的函数的类型。在一些实施方案中,MLS可支持每个对应于给定
问题域或各自类的机器学习算法的若干不同库。另外,在一个实施方案中,MLS客户可能够
向MLS注册其自己的定制函数(称为“用户定义函数”或UDF)、第三方函数或者包括多个UDF
或第三方函数的库以便扩展MLS的核心特征处理能力。在一些实施方案中,UDF可以各种不
同格式(例如,包括一个或多个文本格式和/或一个或多个二进制格式)由客户端提供给
MLS。在此类实施方案中,可针对UDF支持多种不同编程或脚本语言。在一些实施方案中,可
支持用于向MLS注册外部产生的变换函数或库的API,例如使得客户端能够指示新注册的函
数是否可被其他客户端访问或被限制供提交客户端使用。在一个实现中,配方可包括导入
部分,其函数用在配方中的一个或多个库(例如,除了MLS的核心或标准库之外的库)可在所
述导入部分中列出。在一些实现中,MLS可对至少一些UDF施加资源使用限制,例如,以便阻
止CPU时间、存储器、盘空间等的失控消?#27169;?#21487;对给定UDF可运行的时间设置最大限值。?#28304;?br />方式,可限制执行潜在易于出错的UDF(例如,其逻辑包括某些条件下的无限循环的UDF)的
?#22909;?#21518;果。在至少一些实施方案中,配方文本(或配方文本可从其读取的文件或URL)可传递
作为由MLS客户端调用的API(诸如“createRecipe”API)中的参数。

可在MLS处例如根据语法的一组句法规则以及定义所支持变换方法或函数的一组
库验证配方文本(元素1704)。如果在文本验证检查期间识别句法错误或不可解决的令牌,
那么在至少一些实施方案中,可向配方提交者提供指示文本的需要被校正的部分(例如,通
过指示行数和/或错误诱导令牌)的错误消息。如果未发现错误或者在发现错误后校正并且
重新提交配方,那么可生成配方文本的可执行版本(元素1707)。在所描绘实施方案中,配方
的一个或两个版本(文本版本和可执行版本)可存储在MLS的?#30772;?#20648;存库中,例如,其中由
MLS生成的唯一配方标识符提供给配方提交者。

MLS可例如响应于不同API调用或者因为配方的初始提交包括执行请求,确定配方
将应用到特定数据组(元素1710)。可检查数据组以便确保其满足运行时间接受准则,例如,
输入变量名称和数据类型与配方中指示的那些输入变量名称和数据类型匹配,并且数据组
具有可接受大小(元素1713)。可针对配方执行识别一组提供商网络资源(例如,配置有如由
MLS确定的?#23454;?#37327;的存储和/或网络容量的一个或多个计算服务器)(元素1716)。可随后将
配方中指示的变换应用到输入数据组(元素1719)。在一些实施方案中,如以上关于图16描
述?#27169;琈LS可在努力识别一个或多个变换的可接受参数值时执行参数探索。在所描绘实施方
案中,在配方变换完成(和/或变换的结果提供到?#23454;?#30446;的地,诸如配方本身中指定的模型)
之后,可将配方的执?#22411;?#25104;的通知提供给请求执行的客户端(元素1722)。

I/O-有效输入数据过滤序列

如前所述,一些机器学习输入数据组可比可在机器学习服务的任何给定服务器处
获得的存储器的量大得多(例如,在太?#32440;?#30340;数量级上)。为了训练并评估模型,有时可必须
按序列对输入数据组执行多个过滤或输入记录重新安排操作。例如,为?#31169;?#21449;验证分类模
型,同一输入数据组可必须多次?#33267;?#25104;训练数据组和测试数据组,并且此类?#33267;?#25805;作可被
被认为是输入过滤的一个实例。其他输入过滤操作类型可包括采样(获得数据组的子集)、
混排(重新安排输入数据对象的次序)或者划分用于并行性(例如,将数据集划分为N个子集
用于使用?#25104;?#32553;减实现的计算或类似的并行计算范例,或者用于对模型执行多个并行训练
操作)。如果对于每个过滤操作(诸如连续混排或?#33267;?,占用若?#21830;纸?#31354;间的数据组?#21363;?br />持久性存储装置读取和/或写入到所述持久性存储装置,那么仅I/O操作自身所花?#35757;?#26102;间
可变得禁止,尤其是如果大部分的I/O包括?#26377;?#36716;基于盘的存储装置随机读取输入数据组
的单独观察记录。因此,在一些实施方案中,可在机器学习服务处实现这种技术:将大数据
组?#25104;?#21040;一次读取到某一数量的服务器的存储器中的较小邻接块,并且随后?#23454;?#22320;执行多
序列的块级过滤操作而不在连续过滤操作之间将数据组复制到持久性存储装置。在至少一
个这种实施方案中,机器学习服务可实现I/O库,使得客户端能够通过对数据源不可知的
API的单个调用指定将对指定数据组执行的各种输入过滤操作。这种库可尤其适用于以下
情?#24120;?#36755;入数据组包括存储在文件系统目录内的文件中而不是诸如表格的结构化数据库对
象中的变化长度的观察记录,尽管以下描述的分块和存储器内过滤技术可通常针对如下描
述的各种数据源类型(包括数据库)中的任一个执行。I/O库可允许客户端指示各种类型的
数据源(例如,单主机文件系统、分布式文件系统、在提供商网络处实现的存储服务、非关系
数据库、关系数据库等等),并且可被认为是数据源不可知?#27169;?#22240;为可支持相同类型的过滤
操作,而不管正使用的数据源的类型如何。在一些情况下,给定输入数据组的各自子集可存
储在不同类型的数据源中。

图18示出根据至少一些实施方案的用于通过机器学习服务(MLS)对大的输入数据
组执行有效存储器内过滤操作的示例性过程。如所示,在所描绘实施方案中,机器学习服务
的客户端希望从其提取观察记录的数据源1802可包括多个数据对象,诸如文件F1、F2、F3和
F4。文件的大小可不同,和/或任何给定文件中的观察记录的数量可不同于其他文件中的观
察记录的数量。如本文所用,当参考机器学习操作的输入数据时,术语“观察记录”可与术语
“数据记录”同步地使用。由客户端提交的数据记录提取请求可例如通过参考文件F1、F2、F3
和F4的位置(例如,目录名称或者一组URL)指示数据源1802。在所描绘实施方案中,响应于
提取请求,MLS可总体上判定或估计数据组的大小(例如,文件的组合大小),并且确定文件
应逻辑地级联以形成统一地址空间的次序。在所示处实例中,可例如通过按F1、F2、F3和F4
的次序将文件逻辑地级联以生成数据组1804。在一些实施方案中,客户端的数据记录提取
请求可指定多文件数据组的文件将组合(至少初始地)的次序和/或文件的大小。在其他实
施方案中,MLS可确定级联次序(例如,基于诸如文件名称的词法次序、文件的大小等等的各
种因素的任何组合)。注意,尽管在图18和一些随后图中,文件用作存储观察记录的数据对
象的实例,但在各种实施方案中,可使用用于输入过滤的类似技术,而不管使用的数据对象
的类型如何(例如,提供区块级接口的卷、数据库记录等)。

数据组1804的级联地址空间可随后再划分为多个邻接块,如块?#25104;?806中指示
的。在不同实施方案中,可基于若干因素中的任一个确定块的大小(Cs)。例如,在一个实施
方案中,块大小可设置,使得每个块可装入到MLS服务器(例如,图1的服务器池185)的存储
器中,将在所述服务器处生成对客户端的数据记录提取请求的至少一部分响应。考虑简单
的情?#24120;?#20854;中可用于若干MLS服务器中的每一个处的数据记录的存储器部分是Sm。在这种情
?#25345;校?#21487;选择使得Cs小于或等于Sm的块大小Cs,如图18所示。在其他实施方案中,客户端请
求可指示块大小偏好,或者MLS可定义即使不同服务器具有可用于数据记录的不同量的存
储器也将使用的默认块大小。在一些实施方案中,将用于对一个记录提取请求做出响应的
块大小可与用于另一记录提取请求的块大小不同;在其他实施方案中,相同块大小可用于
多个请求或者所有请求。级联数据组1804再划分成邻接块(而不是例如随机选择的子部分)
可增加数据组的部分,所述部分可通过比必须通过随机读取来读取的部?#25351;?#26377;效的顺序读
取来读入,如以下关于图19示出的。在一些实施方案中,给定块?#25104;?#30340;不同块可具有不同大
小,例如,对于给定数据组的所有块,块大小不需要一定相同。注意,数据组初始再划分成块
表示可在对数据组的物理I/O操作之前执行的逻辑操作。

在所描绘实施方案中,可例如基于正使用的块大小确定一组初始候选块边界
1808。如所示,在至少一些实施方案中,侯选快边界不需要与文件边界对准。在至少一些实
施方案中,当最终读取块时,可必须在一定程度上修改候选块边界以便将块边界与观察记
录边界对准,如以下参考图22更详细描述的。在一些实施方案中,可例如基于客户端的请求
中包括的过滤描述符(其还可被称为检索描述符)的内容为分块的数据组1810生成块级过
滤计划1850。块级过滤计划可指示例如将对输入数据的块执行多个存储器内过滤操作1870
(例如,1870A、1870B和1870N)的次序,所述存储器内过滤操作1870诸如混排、?#33267;选?#37319;样或
划分用于并行计算诸如?#25104;?#32553;减。在一些实施方案中,机器学习模型可支持模型的并行训
练,其中例如输入数据组的各自(以及潜在部分重叠的)子集可用于并行地训练给定模型。
在这种情?#25345;校?#19968;个训练操作的持续时间可至少部分地与另一个的持续时间重叠,并且输
入数据组可通过使用块级过滤操作?#25442;?#20998;用于并行训练会话。块级混排例如可涉及重新安
排块的相对次序,而不一定重新安排给定块内的观察记录的相对次序。以下描述各种类型
的块级过滤操作的实例。

在至少一些实施方案中,客户端可能不一定知道至少一些过滤操作将在数据组的
块上而不是在单独数据记录的粒度处执行。在所描绘实施方案中,可执行块的内容(例如,
分别包括在C1、C2、C3和C4中的观察记录)的数据传送1814以便根据序列的第一过滤操作来
将数据组加载到一个或多个MLS服务器的存储器中。为了实现序列的第一存储器内过滤操
作,例如,可执行指向存储至少一些块的一个或多个持久性存储装置的一组读取。在一些实
施方案中,例如,在过滤操作1870的序列的一个或多个操作之前,还可能需要解压和/或解
密。例如,如果数据以压缩形式存储在持久性存储装置处,那么其可根据由客户端提供的或
者由MLS确定的解压指令/元数据解压。类似地,如果源数据被?#29992;埽?#37027;么MLS可解密所述数
据(例如,使用由客户端提供的或指示的密钥或凭证)。

在完成所述组读取(和/或所述组相关联解压/解密操作)之后,块C1-C4的至少子
集可存在于MLS服务器存储器中。(如果序列的第一过滤操作涉及生成样本,例如,并非所有
块可能必须被读入)。可在MLS服务器存储器中?#23454;?#22320;执行计划1850的剩余过滤操作,例如,
在所描绘实施方案中不需要将任一个块的内容复制到持久性存储装置中,和/或不需要从
源数据位置重新读取任一个块的内容。例如,第一过滤操作的存储器内结果可充当第二过
滤操作的输入数据组,第二过滤操作的存储器内结果可充当第三过滤操作的输入数据组等
等。在所描绘实施方案中,过滤操作的序列的最后输出可用作记录解析1818(即,确定观察
记录的各种变量的内容)的输入。由于解析而生成的观察记录1880可随后被提供为对一个
或多个目的地例如对模型1884和/或特征处理配方1882的输入。因此,在所描绘实施方案
中,可仅需要单遍物理读取操作来实现多个不同过滤操作,这可导致与其中对于每个连续
过滤操作都将数据组复制到持久性存储装置(或重新读取)的情境相比大量输入处理加速。
当然,尽管可在不访问持久性存储装置的情况下在存储器中执行多个块级和/或观察记录
级操作,但如果必要的话任何这种操作的结果可存储到持久性存储装置,例如,使得结果可
稍后重新用于另一作业。因此,尽管通过上述技术使得更容易避免对基于盘的或其他持久
性存储装置的频繁和潜在耗时的I/O操作,但仍可基于应用的需求当和在必要时在任何阶
段执行对持久性存储装置的I/O。

通过如上所述的在块级执行过滤操作诸如混排或采样,可避免指向单独数据记录
的随机物理读取操作。考虑一种情?#24120;?#20854;中输入数据组?#25442;?#25490;(例如,以便交叉验证分类模
型),混排以一兆?#32440;?#30340;块大小在块级处执行,数据组的数据记录具有一千?#32440;?#30340;平均大
小,并且既不需要解压又不需要解密。如果原始数据组大小为1000兆?#32440;冢?#37027;么在随机混排
的任何给定迭代中,1000个块被逻辑安排的次序可改变。然而,在块级混排操作中,任何给
定块内的数据记录的次序将不改变。因此,位于特定块(例如,1000个块中的块654)内的所
有数据记录将被提供为组以使用混排的结果训练模型。如果块654内的记录相对于?#34892;?#36259;
的自变量V1(还可被称为输入变量)不是随机分布?#27169;?#37027;么块级混排可能?#25442;?#20026;了训练目的
相对于随机化V1的值如例如记?#25216;?#28151;排将那样好地结束。因此,至少在一些情?#25345;校?#30001;于在
块级而不是在数据记?#25216;?#25191;行过滤,可能?#22411;?#35745;质量或预测准确度的一些损失。然而,通常
通过?#23454;?#22320;选择块大小,质量/准确度的损失可保持在合理?#27573;?#20869;。图19示出根据至少一些
实施方案的与改变用于对机器学习数据组的过滤操作序列的块大小相关联的权衡。

图19中对于给定数据组DS1示出对应于两个示例性块?#25104;?#30340;读取操作。为了简化
展示,假设数据组DS1存储在单个盘上,使得盘读取头必须定位在指定偏移处以便在DS1上
开始读取操作(随机读取或一组顺序读取)。在块?#25104;?904A上,使用S1的块大小,并且DS1因
此在数据组地址空间内再划分成在偏移O1、O2、O3和O4处开始的四个邻接块。(注意,图19和
随后图中示出的示例性?#25104;?#20013;的块的数量保持得非常小以便说明描述的概念;实际上,数
据组可包括成百上千的块)。为了读取四个块,将必须执行总共(至少)四个读取头定位操作
(RHP)。在将盘读取头定位在偏移O1处之后,例如,可顺序地读入包括DS1的具有O1与O2之间
的偏移的内容的第一块。这种顺序读取(SR1)或一组顺序读取通常相对于随机读取可以是
快速?#27169;?#22240;为盘读取头可不必在顺序读取期间重新定位,并且盘读取头定位(也称为“寻
找”)可通常花费几毫秒,其可具有与顺序读取?#21018;鬃纸?#25968;据所花?#35757;?#26102;间相同的数量级。
因此,利用S1的块大小,读取如?#25104;?#21040;四个块的整个数据组DS1可涉及包括四个慢RHP
(RHP1–RHP4)和四个快顺序读取(SR1-SR4)的读取操作混合1910A。

代替使用S的块大小,如果如?#25104;?904B中使用2S的块大小(用于?#25104;?904A的大小
的两倍),那么如读取操作混合1910B中指示?#27169;?#23558;仅需要两个RHP(一个对应于偏移O1并且
一个对应于偏移O3),并且可通过两个顺序读取序列SR1和SR2读入数据组。因此,读取DS1所
需要的慢操作的数量将与使用的块大小成反比地减小。在权衡图1990的X轴上,块大小从左
到?#20197;?#21152;,并且在Y轴上,示出了由块大小变化引起的各种度量的变化。通常,增加块大小将
倾向于减少用于将大数据组传送到存储器中的总读取时间(TRT)。即使可并行地执行不同
块的读取,增加数据的顺序读取的部分将通常倾向于减少总读取时间。增加块大小可通常
需要MLS服务器处的更多存储器来保持块内容,如图1990中示出的每个服务器存储器需求
(MR)指示的。最后,如以上论述?#27169;?#23545;于至少一些类型的机器学习问题,增加的块大小可导
致机器学习模型的稍差的统计质量(QS)或稍差的预测准确度。这可能发生,因为给定块内
的记录可能不能相对于整个数据组中的记录(或相对于彼此)以与块相对于彼此过滤相同
的方式过滤。在其中MLS能够选择块大小的情?#25345;校?#22240;此,可必须考虑图1990中示出的总读
取时间、存储器需求以及统计质量之间的权衡。实际上,取决于块相对于整个数据组的大
小,由使用较大块引起的统计质量的损失可相当小。在至少一些实施方案中,块与MLS服务
器之间不需要1:1的关系,例如,给定MLS服务器可配?#32654;创?#20648;数据组的多个块。在一些实施
方案中,部分块或块的子集也可存储在MLS服务器处,例如,存储在给定服务器的存储器中
的块的数量不需要是整数。在各种实施方案中,除了块级过滤操作之外,如以下更详细描述
?#27169;?#21487;执行块内和/或跨块过滤操作(例如,观察记?#25216;?,这可帮助进一步减少统计质量的
损失。注意,图1990中示出的曲线旨在示出宽定性关系,不是精确的数学关系。不同度量相
对于块大小改变的比率可不同于图中示出?#27169;?#24182;且实际关系可能不一定由如所示的?#20132;?#26354;
线或线表示。

图20a示出根据至少一些实施方案的块级过滤操作(包括混排之后进行?#33267;?的示
例性序列。如所示,分块数据组2010包括十个块C1-C10。图20a顶部处的块C1的详细视图示
出其组分观察记录OR1-1至OR1-n,其中连续观察记?#21152;?#23450;界符2004分开。如所示,数据组或
块的观察记录不需要具有相同大小。在可以是计划1850的存储器内块级过滤操作中的一个
的块级混排操作2015中,块被重新排序。在混排之后,块次序可以是C5-C2-C7-C9-C10-C6-
C8-C3-C1-C4。在所描绘实例中,在随后块级?#33267;?#25805;作2020中,70%的块(例如,C5-C2-C7-
C9-C10-C6-C8)可放置在训练组2022中,而30%的块(C3-C1-C4)可放置在测试组2024中。在
所描绘实例中,在块级执行混排时,给定块内的观察记录的内部排序保持不变。因此,块C1
的观察记录在混排和?#33267;?#20043;后处于与混排和?#33267;?#36807;滤操作执行之前的相对次序相同的相
对次序(OR1-1、OR1-2…OR1-n)。注意,在所描绘实施方案中,对于至少一些类型的过滤操
作,除了避免到持久性存储装置的复制之外,块内容可能甚至不必从一个存储器位置移动
到另一存储器位置。例如,代替在混排期间将块从C1-C2-C3-C4-C5-C6-C7-C8-C9-C10物理
重新排序为C5-C2-C7-C9-C10-C6-C8-C3-C1-C4,块的指针可被修?#27169;?#20351;得指示第一块的指
针在混排之后指向C5而不是C1等等。

在一些实施方案中,如前所述,MLS还可支持观察记?#25216;?#22788;的过滤。例如,客户端的
记录提取请求可包括用于块级过滤和记?#25216;?#36807;滤的描述符。图20b示出根据至少一些实施
方案的包括块级过滤以及块内过滤的存储器内过滤操作的示例性序列。在所描绘实例中,
执行与图20a中示出的块级过滤操作相同组的块级过滤操作,即,对数据组2004执行块级混
排2015,之后是70-30?#33267;?020成训练组2022和测试组2024。然而,在块级?#33267;?#20043;后,还执行
块内混排2040,导致一些或所有块内的观察记录的重新安排。由于块内混排,块C1的观察记
录可按OR1-5、OR1-n、OR1-4、OR1-1、OR1-2…的次序提供为对模型或特征处理配方(或者随
后过滤操作)的输入,例如,其与块级混排之前的观察记录的初?#21363;?#24207;不同。还可根据客户
端的过滤描述符以类?#21697;?#24335;对图20a或图20b中未示出的其他块(例如,C2–C10)的观察记录
进行混排。在至少一个实施方案中,还可支持跨块记?#25216;?#36807;滤操作。例如,考虑其中至少两
个块Cj和Ck被读取到给定MLS服务器S1的存储器中的情境。在跨块混排中,在S1的存储器
中,Cj的至少一些观察记录可与Ck的一些观察记录混排或重新排序。在此类实施方案中,也
可跨共同定位在给定服务器的存储器中的块执行其他类型的记?#25216;?#36807;滤操作(例如,采样、
?#33267;?#25110;划分)。在一个实现中,多个服务器可与彼此合作以便执行跨块操作。对于一些应用,
在块级操作的结果组馈送到用于特征处理的配方或用于训练的模型之前可仅执?#26800;?#20010;块
级过滤操作,即,可能不需要一系列多个块级操作。在至少一些实施方案中,还可在一个或
多个块级操作之后执行其他类型的操作(诸如,观察记录的聚集/集合,或者将聚集函数应
用到观察记录的所选择变量的值)。

在块级或观察记?#25216;?#25191;行过滤操作的能力可实现用于实现相同输入过滤目标的
若干不同替代。图21示出根据至少一些实施方案的对数据组的存储器内采样的替代方法的
实例。将获得包括十个块C1–C10的分块的数据组2110的60%的样本,也就是说,将保留数据
组的大约60%的观察记录,而将从采样操作的输出排除大约40%的观察记录。

在由标记“1”的箭头指示的第一方法中,可实现对块的直截?#35828;?#30340;块级采样2112,
例如,导致将块C1、C2、C4、C6、C8和C10选择为期望样本。在第二方法中,可使用块级采样和
块内采样的组?#31232;?#20363;如,如由标记“2”的箭头指示?#27169;?#22312;第一步骤中,可使用块级采样2114选
择80%的块(导致保留块C1、C2、C3、C5、C6、C7、C8和C9)。接着,在块内采样步骤2116中,可选
择每个保留的块的75%的观察记录,导致大约60%的观察记录(由于80%的75%为60%)的
最后输出。在由标记“3”的箭头指示的第三替代方法中,可在单个块内采样步骤2118中对每
个块的60%的观察记录采样。在至少一些实施方案中,还可针对其他类型的过滤操作支持
用于实?#25351;?#23450;输入过滤目标的类似替代和组?#31232;?br />

在至少一些实施方案中,可必须调整候选块边界以便确保单独观察记录不被分
裂,并且确保观察记录被分配给块的方式的一致性。图22示出根据至少一些实施方案的基
于观察记录边界的位置确定块边界的实例。数据组2202A包括由记录定界符诸如定界符
2265分开的观察记录OR1–OR7(其大小可变化)。例如,在其中数据源包括字母数?#21482;?#25991;本文
件的一个实现中,换行?#22336;?“\n”)或其他特殊?#22336;?#21487;用作记录界定符。基于所选择块大小,
候选块边界碰巧落在数据组2202A中的观察记录的主体内。在所描绘实例中,候选块边界
(CCB)2204A落在观察记录OR2内,CCB 2204B落在OR4内,并且CCB2204C落在OR6内。在所描绘
实施方案中,以下方法可用于识别实际块边界(ACB)。从紧接在给定块的结束边界的CCB之
后的偏移开始,并且按增加偏移次序(例如,?#27492;?#24207;扫描或读取)检查数据组,将发现的第一
观察记录定界符选择作为块的结束ACB。因此,在数据组2202A的实例中,将OR2与OR3之间的
定界符的位置识别为对应于CCB 2204A的实际块边界2214A。类似地,ACB 2214B对应于OR4
与OR5之间的定界符,并且ACB 2214C对应于OR6与OR7之间的定界符。由于实际块边界的选
择,如块表格2252A中示出?#27169;?#22359;C1包括OR1和OR2,块C2包括OR3和OR4,并且块C3包括OR5和
OR6,而块C4包括OR7。使用所述技术,每个观察记?#21152;成?#21040;一个且仅一个块。

在一些实施方案中,可应用关于块边界的确定的相同规则,即使CCB碰巧与OR定界
符重?#31232;?#20363;如,在数据组2202B中,CCB 2204K碰巧与将OR2和OR3分开的定界符对准,CCB
2204L与将OR4和OR5分开的定界符对准,而CCB 2204M与将OR6和OR7分开的定界符对准。使
用上述规则,在每种情况下,针对下一个定界符的搜索从紧接在CCB之后的偏移开始,并且
将发现的下一个定界符选择作为ACB。因此,ACB 2214K定位在OR3与OR4之间的定界符处,
ACB 2214L定位在OR5与OR6之间的定界符处,并且ACB 2214M定位在OR7与OR8之间的定界符
处。如块表格2252B中指示?#27169;?#25968;据组2202B的块C1最终包括OR1、OR2和OR3,块C2包括OR4和
OR5,块C3包括OR6和OR7,并且块C4包括OR8。

图23示出根据至少一些实施方案的可响应于对从各种数据源类型中的任一个提
取数据记录的请求而在机器学习服务处调度的作业的实例。如所示,机器学习服务可实现
以数据源不可知的方式使得客户端164能够提?#36824;?#23519;记录提取/检索请求2310的一组编程
接口2361。MLS可支持若干不同类型的数据源2310,诸如可向数据对象呈现web服务接口的
对象存储服务2302;实现呈现区块装置接口的卷的区块存储服务2304;各种分布式文件系
?#25345;?#30340;任一个2306(诸如,Hadoop分布式文件系统或HDFS);以及单主机文件系统2308(诸如
Ext3的可由基于Linux的操作系统支持的变型)。在至少一些实施方案中,数据库(例如,关
系数据库或非关系数据库)也可以是所支持数据源。可在检索请求中指代使用所支持类型
的数据源中的任一个实现的数据对象(例如,文件),如由标记2352A和2352B的箭头指示的。
在一些实现中,单个客户端请求可指代输入数据对象,诸如位于若干不同类型的数据源和/
或一个或多个数据源类型的若干不同实例中的文件。例如,给定输入数据组的不同子集可
包括位于两个不同单主机文件系统2308处的文件,而另一输入数据组的各自子集可位于对
象存储服务和区块存储服务处。

MLS请求处理机180可接收记录提取请求2310,所述记录提取请求2310指示将对位
于一个或多个数据源处的指定数据组执行的一系列过滤操作,所述过滤操作诸如混排、分
?#36873;?#37319;样、划分(例如,用于并行计算诸如?#25104;?#32553;减计算,或者用于在时间上彼此重叠并且可
在使用的训练组上彼此重叠的模型训练操作/会话)等的?#25345;?#32452;?#31232;?#22312;所描绘实施方案中,
过滤计划生成器2380可生成指定的数据组的块?#25104;洌?#20197;及用于完成所请求系列的过滤操作
(处于块级、记?#25216;?#25110;两个级别)的多个作业,并且将作业插入一个或多个MLS作业队列142
中。例如,可生成一个或多个块读取作业2311来从数据源读入数据。如果需要的话,可创建
单独作业来解压块(诸如作业2312)和/或解密数据(作业2313)。在所描绘实施方案中,可针
对块级过滤操作生成作业2314,而可针对观察记?#25216;?#36807;滤操作生成作业2315。在所描绘实
施方案中,观察记?#25216;?#30340;过滤操作可包括块内操作(例如,给定块内的记录的混排)和/或跨
块操作(例如,可共同位于给定MLS服务器的存储器中的两个或更多个不同块的记录的混
排)。在至少一些实施方案中,可针对每个块的每种类型的操作创建各自作业,因此,例如,
如果块?#25104;?#23548;致100个块,那么可针对分别读入一个块创建100个作业,可针对第一块级过
滤操作创建100个作业等等。在其他实施方案中,可针对涉及多个块的操作创建给定作业,
例如,对于每个块可能不需要单独作业。在一些实施方案中,如以下更详细描述?#27169;?#25968;据组
?#33267;?#25104;训练组和测试组可实现为单独作业,一个用于训练组并且一个用于测试组。如前论
述?#27169;?#32473;定作业可指示对其他作业的?#35272;?#24615;,并且可使用此类?#35272;?#24615;来确保按正确次序执
行由客户端请求的过滤任务。

图24示出根据至少一些实施方案的可由客户端使用由机器学习服务实现的I/O
(输入-输出)库的编程接口提交的记录提取请求的示例性组成元素。如所示,观察记录(OR)
提取请求2401可包括指定输入数据组将从其检索的位置或地址的源数据组指示符2402。对
于存储在呈现web服务接口的对象存储服务中的数据组,例如,可指定一个或多个URL(统一
资源定位符)或URI(统一资源标识符);对于文件,一个或多个文件服务器主机名称、一个或
多个目录名称和/或一个或多个文件名称的某一组合可被提供为指示符2402。在一个实现
中,如果数据组包括多个对象诸如多于一个文件,那么客户端可包括用于数据组的对象的
逻辑级联的指令以形成统一地址空间(例如,“以文件名称的字母表次序组合目录d1的文
件,随后以字母表次序组合目录d2的文件”的逻辑等效物)。在一些实施方案中,观察记录的
预期格式2404或模式可包括在OR提取请求中,例如,指示OR的变量或字段的名称、变量间定
界符(例如,逗号、冒号、分号、制表符或其他?#22336;?以及OR定界符、变量的数据类型等等。在
至少一个实现中,MLS可向其数据类型未由客户端指示的变量分配默认数据类型(例如,“字
符串”或?#30333;址?。

在一个实施方案中,OR提取请求2401可包括压缩元数据2406,指示例如用于数据
组的压缩算法、存储压缩数据的单元或区块的大小(其可与将对其执行块级存储器内过滤
操作的块的大小不同)以及正确地解压数据组可能必要的其他信息。在一些实施方案中,在
请求2401中可包括解密元数据2408诸如密?#20426;?#20973;证和/或数据组上使用的?#29992;?#31639;法的指示。
在一些实现中并且针对某些类型的数据源,客户端可在请求2401中提供将用于能?#25442;?#24471;对
数据组的读取访问的授权/?#29616;?#20803;数据2410。这种元数据可包括例如,账户名或用户名以及
一组对应凭证,或者用于安全容器(类似于图3中示出的安全容器390)的标识符和密码。

在所描绘实施方案中,OR提取请求2401可包括一个或多个过滤描述符2412,指示
例如将在块级和/或在OR级处执行的过滤操作的类型(混排、?#33267;选?#37319;样等),以及将实现过
滤操作的次序。在一些实现中,可包括一个或多个描述符2452用于块级过滤操作,并且可包
括一个或多个描述符2454用于记?#25216;?例如,块内和/或跨块)过滤操作。每个这种描述符可
指示对应过滤操作的参数,例如,?#33267;?#25805;作的?#33267;?#27604;、采样操作的采样比、数据组将再划分
用于并行计算或并行训练会话的划分数、在发现记录的模式无效的情况下将采取的动作等
等。

在至少一个实施方案中,OR提取请求2401可包括分块偏好2414,指示例如特定可
接受块大小或可接受块大小的?#27573;А?#21487;在字段2416中指示过滤操作序列的输出将指向的目
的地(例如,特征处理配方或模型)。在一些实施方案中,客户端可指示过滤操作的性能目标
2418,诸如“完成”时间,其可由MLS使用来选择将使用的服务器的类型或者生成旨在实现期
望目标的过滤序列计划。注意,在至少一些实施方案中,并非图25中示出的所有组成元素可
包括在记录提取请求内,例如,压缩和/或解密相关字段可仅包括用于以压缩和/或?#29992;?#24418;
式存储的数据组。

图25是示出根据至少一些实施方案的可在实现用于对大输入数据组的存储器内
过滤操作序列的I/O库的机器学习服务处执行的操作的方面的流程图。可实现使得客户端
能够提交类似于图24中示出的那些观察记录提取请求的观察记录提取请求的I/O库。I/O库
可关于存储输入数据组的数据存储区的类型不可知,例如,可为存储在若干不同数据存储
区类型的任何组合处的记录提取请求提供一组常见编程接口。可接?#29031;?#31181;OR提取请求(元
素2501),指示可能太大而不能装入到MLS服务器的可用存储器中的源数据组。OR提取请求
可包括指示将对输入数据组执行的一系列过滤操作的一个或多个描述符。

可例如基于各种因素中的任一个确定将用于将输入数据组的邻接子集传送到一
个或多个MLS服务器的存储器中的块大小(元素2504),所述因素诸如:MLS服务器的存储器
容量?#38469;?#35831;求客户端通过请求的参数指示的偏好、MLS的默认设置、输入数据组的估计或
实际大小等等。在一些实现中,可选择若干不同块大小,例如,一些MLS服务器可具有比其他
服务器高的存储器容量,因此用于具有更多存储器的服务器的块可更大。在一些实施方案
中,如果输入数据组包括多个对象(诸如文件),那么可将对象逻辑地级联以便形成单个统
一地址空间(元素2507)。可例如基于请求中提供的指令或指南、基于对象名称的字母数字
排序、按文件大小的次序、?#27492;?#26426;次序或者?#20174;蒑LS选择的某一其他次序确定对象被级联的
序列。

可为数据组生成块?#25104;?元素2510),指示基于所选择块大小和统一地址空间的一
组候选块边界。可作为?#25104;?#29983;成过程的部分计算数据对象或输入数据组的对象内的候选块
边界的位置或偏移。可创建对应于OR提取请求中的过滤描述符的一系列块级过滤操作的计
划(元素2513)。在一些实施方案中,除了或代替块级过滤操作,计划可包括记?#25216;?#36807;滤操作
(例如,块内操作或跨块操作)。在一些实施方案中,可例如对共同位于给定MLS服务器的存
储器中的若干块的观察记录执行跨块操作。在其他实施方案中,还可或替代地对已读入到
不同MLS服务器的存储器中的块执行跨块操作。所支持过滤操作的类型可包括采样、?#33267;选?br />混排和/或划分。至少部分地基于计划的第一过滤操作,可执行从持久性存储装置到MLS服
务器存储器的数据组的块的至少子集的数据传送(元素2516)。取决于数据存储在OR提取请
求中指示的源位置处的方式,在一些实施方案中,除了读取操作之外,数据传送过程可包括
解密和/或解压。在一些实施方案中,客户端可请求MLS来在将块从源位置传送到MLS服务器
之前?#29992;?#21644;/或压缩数据,并且随后一旦?#29992;?#30340;/压缩的数据到达MLS服务器就执行反向操
作(解密和/或解压)。

在所描绘实施方案中,在MLS服务器的存储器中执行序列的第一过滤操作之后,例
如,在不将块复制到持久性存储装置或者针对其原始源位置重新读取块,可?#23454;?#22320;执行剩
余过滤操作(如果有的话)(元素2519)。在一个实施方案中,针对一个或多个过滤操作,可生
成各自作业并将其放置在MLS作业队列中。在至少一些实施方案中,可使用记录解析器来从
执行的过滤操作序列的输出获得观察记录(元素2522)。可将OR以编程方式提供到请求客户
端(例如,作为响应于表示OR提取请求的API调用返回的阵列或集合)和/或指定目的地,诸
如模型或特征处理配方(元素2525)。

输入数据组的一致过滤

图26示出根据至少一些实施方案的可用于提高由机器学习模型进行的预测的质
量的迭代过程的实例。过程可包括对于若干交叉验证迭代的每个重新?#33267;?#25110;重新混排输入
数据组,例如,如下描述的。包括带标记的观察记录(即,其因变量的值或“标签”是已知的观
察记录)的输入数据组可例如使用上述技术?#25104;?#21040;一组邻接块2602以便增加物理I/O的可
顺序地执行的部分。可执行存储器内块级?#33267;?#25805;作2604以便获得训练组2610和测试组
2615。例如,在一种情?#25345;校?0%的块可包括在训练组2610中,并且剩余20%的块可包括在
测试组2615中。可在训练运行2618中训练候选模型2620(例如,针对线性回归模型,可确定
将分配给数据组的各种自变量/输入变量的候选系数)。可随后使用候选模型2620来做出关
于测试组的预测,并且可获得模型的评估结果2625(例如,指示模型能够如何准确地使用候
选系数生成测试组的记录的因变量的预测)。在不同实施方案中,可取决于使用的模型的类
型获得准确度或质量的各种测量2630,例如,可为线性回归模型计算均方根误差(RMSE)或
均方根偏差(RMSD),可为二进制分类问题计算真阳性和真阴性之和与测试组的大小的比率
等等。

在所描绘实施方案中,如果准确度/质量测量2630是令人满意?#27169;?#37027;么候选模型
2620可指定为改进的模型2640。否则,可在尝试提高模型的预测的质量或准确度时采用若
干技术中的任一个。模型调谐2672可包括:修改用于预测的所述组自变量或输入变量,改变
模型执行参数(诸如基于树的分类模型的最小存储桶大小或最大树深),等等,以及执行另
外训练运行2618。可使用相同训练组和测试组迭代地执行模型调?#24120;?#22312;尝试增强结果的准
确度或质量时在每个迭代中改变输入变量和参数的某一组?#31232;?#22312;模型改进的另一方法中,
对于连续训练和评估迭代,可对训练数据组和测试数据组进行改变2674。例如,可混排输入
数据组(例如,在块级和/或在观察记?#25216;?,并且可获得一对新的训练/测试组用于下一轮
训练。在另一方法中,可通过例如识别其变量值似乎为无效的或异常值的观察记录并且将
此类观察记?#21363;?#25968;据组删除来提高数据的质量。用于模型改进的一种常见方法可涉及使用
从相同基础数据提取的指定数量的不同训练组和测试组交叉验证候选模型,如以下参考图
27描述的。正如可执行模型调谐2672的多个迭代一样,在一些实施方案中还可迭代地执行
数据组改变2674,例如,直到获得期望水平的质量/准确度,直到可用于模型改进的资源或
时间耗尽,或者直到尝试的改变?#36745;?#23548;致模型的质量或准确度的更多改进。

图27示出根据至少一些实施方案的可用于机器学习模型的交叉验证的数据组分
?#35757;?#23454;例。在所描绘实施方案中,包括带标记的观察记录2702的数据组以五种不同方式分
裂以获得每个包括80%的数据的各自训练组2720(例如,2720A–2720E)以及包括剩余的
20%的数据的对应测试组2710(例如,2710A-2710E)。训练组2720中的每一个可用于训练模
型,并且对应测试组2710可随后用于评估模型。例如,在交叉验证迭代2740A中,可使用训练
组2720A训练模型并随后使用测试组2710A评估所述模型。类似地,在交叉验证迭代2740B
中,可使用包括80%的输入数据的不同训练组2720B(以两个部分示出,图27中的部分1和部
分2),并?#20063;?#21516;测试组2710B可用于评估模型。图27中示出的交叉验证实例可被称为“5倍交
叉验证”(因为所生成的不同训练组/测试组对的数量以及训练和评估迭代的对应数量)。在
一些实施方案中,MLS可实现允许客户端请求k倍交叉验证的API,其中k是API参数,所述API
参数指示将生成用于使用相同基础输入数据组训练指定模型的不同训练组(以及对应测试
组)的数量。

在图27中示出的实例中,带标记的观察记录分布在八个块C1–C8中。如前所述,可
基于各种因素中的任一个确定块大小和边界,所述因素包括MLS服务器处的存储器大小限
制、客户端偏好等等。在一些情?#25345;校?#26399;望的?#33267;?#27604;(诸如图27中示出的80-20?#33267;?可导致
给定块的观察记录必须跨训练组和对应测试组分布。也就是说,在一些情况下,部分块可必
须包括在训练组和测试组中。例如,块C2的一些观察记录可包括在测试组2710A中,而块C2
的其他观察记录可包括在训练组2720A中。

注意,尽管在图27中训练组可似乎包括输入数据组的邻接部分,但实际上,在至少
一些实施方案中,可使用随机选择(例如,在块级、在观察记?#25216;?#25110;者在两个级别处)获得训
练数据组和测试数据组。通过改变包括在不同交叉验证迭代2740A-2740E的训练组和测试
组中的所述组观察记录,进行的预测的质量可通常提高,因为输入数据组的不同子集中的
输入变量值的局部不均匀性的影响可减少。例如,如果位于测试组2710A中的数据记录的子
集内的独立数值变量的值与整个数据组上的所述变量的平均值相比异常高,那么所述异常
对模型准确度/质量的影响将预期通过使用用于其他交叉验证迭代的不同测试数据组来消
散。

图28示出根据至少一些实施方案的用于可使用伪随机数序列执行的交叉验证的
输入数据组的一致块级?#33267;训?#23454;例。使用基于随机数的?#33267;?#31639;法2804来将数据组块C1-C10
分成训练组和测试组用于连续训练评估迭代(TEI)。每个TEI可例如表示特定交叉验证迭
代,诸如图27中示出的那些交叉验证,但还可独立于是否尝试交叉验证来执行此类训练和
评估迭代。可使用伪随机数生成器(PRNG)2850来获得伪随机数的序列2872。PRNG 2850可例
如实现为可从MLS的部件访问的MLS库或编程语言库的效用函数或方法。在所描绘实施方案
中,可使用种子值S(例如,实数或?#22336;?#20018;)来确定性地初始化或重置PRNG 2850的状态,使得
在利用给定种子S重置状态之后产生的伪随机数的序列是可重复的(例如,如果使用相同种
子重复多次重置PRNG,那么在每个这种状态重置之后将提供PRN的相同序列。

在所描绘实例中,为了简化展示,已选择输入数据组的块的数量(10)和?#33267;?#27604;
(80-20),使得整数的块放置到训练组和测试组中,即,给定块的观察记录不必分布在训练
组和测试组两者之间。可使用由PRNG产生的序列2872的伪随机数(PRN)来选择训练组和测
试组的成员。例如,使用具有84621356的值的第一PRN 2874(在重置PRNG的状态之后产生),
可选择块C7用于包括在将用于TEI 2890A的训练组2854A中。使用第二PRN 56383672,可选
择块C2用于训练组2854A等等。在所描绘示例性情?#25345;校?#22522;于随机数的?#33267;?#31639;法2804可?#35272;?br />于PRN序列的某些统计特性以便正确地将输入数据组的每个块指定到训练组或测试组中。
统计特性可包括非常大数量的不同伪随机数(或具有一定长度N的不同?#26377;?#21015;)预期在任何
给定序列中产生(例如,在给定PRN在序列中重复之前或者在长度N的?#26377;?#21015;重复之前)的性
质。如果在所描绘实施方案中,在生成给定训练组2854的时间与生成对应测试组2856的时
间之间未重置PRNG的状态,那么所生成的PRN 2872的序列可确保输入数据的每个块?#25104;?#21040;
训练组或测试组中,并且没有块既?#25104;?#21040;训练组中又?#25104;?#21040;测试组中。源数据组的每个对
象(例如,块或观察记录)放置在精确一个?#33267;?#32467;果组(例如,训练组或对应的测试组)的这
种分类操作可被称为“一致”或“有效”?#33267;选?#36755;入数据组的一个或多个对象(a)不放置在分
裂结果组中的任一个中或者(b)放置在?#33267;?#32467;果组中的多于一个中的?#33267;?#25805;作可被称为
“不一致”或“无效”?#33267;选?#22312;至少一些实施方案中,用于两?#22336;至延成??#25104;?#21040;训练组以及映
射到测试组)中的每一个的PRN的序列以及因此PRN源的状态可影响产生不一致?#33267;训?#27010;
率。进而,不一致?#33267;?#29992;于训练和评估可导致比使用一致?#33267;训?#24773;况差的预测质量和/或差
的准确度。

在至少一些实施方案中,例如,可基于响应于实现TEI的客户端请求的内容在训练
组和/或测试组内实现块内混排。因此,例如,训练组2854A的给定块(例如,C7)内的观察记
录可在其作为输入提供给正训练的模型之前在存储器中相对于彼此重新排序(不需要将记
录复制到持久性存储装置)。类似地,测试组2856A的给定块(例如,C3)的观察记录可在模型
被使用测试组评估之前在存储器中混排。

由于使用PRN序列2872,可实现具有块的训练组2854A(C7、C2、C4、C5、C9、C1、C10、
C8)和块的测试组2856A(C3、C6)的第一TEI 2890A。在一些实施方案中,还可使用同一PRNG
2850(例如,无需重新初始化或重置)来?#33267;?#36755;入数据组以用于下一个TEI 2890B。注意,对
于一些模型和/或应用,在各种实施方案中,可实现仅一个TEI。在所描绘实例中,TEI 2890B
的训练组2854B包括块(C8、C3、C5、C6、C10、C2、C1、C9)并且对应测试组2856B包括块(C4、
C7)。图28中示出的两个?#33267;?#26681;据以上提供的定义是一致/有效的。注意,尽管图28中在块级
示出数据的?#33267;眩?#20294;在至少一些实施方案中PRNG状态与?#33267;训?#19968;致性之间的相同类型的关
系可应用到观察记?#25216;?#22788;的?#33267;?或者涉及部分块的?#33267;?。也就是说,为了使用PRNG在观
察记?#25216;?#22788;执行一致?#33267;眩?#22312;训练组的确定与测试组的确定之间应理想地不重新初始化
PRNG的状态。在一些实施方案中,涉及部分块的?#33267;?#21487;实现为块级?#33267;眩?#20854;中将非整数数量
的块放置在每个?#33267;?#32467;果组中,之后是其记录跨多个?#33267;?#32467;果组分布的那些块的块内分
?#36873;?#38500;了两路?#33267;?#20043;外,?#33267;?#25968;据组的基于PRN的方法还可用于N路?#33267;?其中N>2)。

图29示出根据至少一些实施方案的可由于不?#23454;?#22320;重置伪随机数生成器发生的
输入数据组的不一致块级?#33267;训?#23454;例。在所描绘实例中,使用种子S初始化PRNG 1850。?#33267;?br />算法2804使用PRN序列2972A来产生训练组2954A,所述训练组2954A包括数据组2844A的包
括在图28的测试组2854A中的相同组的块(C7、C2、C4、C5、C9、C1、C10、C8)。在生成训练组
2954A之后,重新初始化PRNG。因此,重复所生成伪随机数的序列,例如,在重置之后生成的
第一PRN再一次为84621356,第二PRN再一次为56383672等等。在所描绘实例中,由于PRN的
重复,?#33267;?#31639;法选择块C7和C2包括在测试组2956A中。这?#22336;至?#21487;视为无效或不一致,因为
C2和C7?#20219;?#20110;训练组中又位于测试组中(并且因为块C3和C6既不位于训练组中也不位于测
试组中)。

在一些实施方案中,针对给定块或记录到训练组或测试组中的每个放置,可能不
能实时调用PRNG。相反,可事先生成一列伪随机数或随机数(例如,使用PRNG),并且预先生
成的列表中的数字可逐个用于?#33267;逊?#32622;。在这种情?#25345;校?#21482;要指针维持到列表中的用于训
练组的最后数?#37073;?#24182;且使用剩余数字(即,不用于训练组的数字)做出测试组放置决定,在至
少一些实施方案中就可实现?#33267;?#19968;致性。

在一个实施方案中,在达到一致?#33267;训?#21478;一方法中,可实?#25351;?#33258;机构(例如,API)
以便(a)保存PRNG的当前状态并且(b)以便将PRNG重置为保存状态。考虑一种情?#24120;?#20854;中可
调用API“save_state(PRNG)?#24065;?#20415;在已生成TEI的训练组之后将PRNG的内部状态保存到对
象“state_AfterTraining?#20445;?#24182;且可调用不同的API“set_state(PRNG,state_
AfterTraining)?#24065;?#20415;就在开始TEI的测试组的选择之前将PRNG(或不同PRNG)的状态重置
为保存状态。使用这样一对状态保存和?#25351;?#25805;作,可获得的PRN序列与如果在不保存/重置
PRNG状态情况下获得所有PRN则将获得的PRN序列相同。在一些实施方案中,与给定TEI的用
于测试组选择的PRN资源不同的PRN资源可用于训练组选择,如以下关于图30描述?#27169;?#24182;且
此类PRN资源的状态可同步化以帮助实现一致?#33267;选?br />

在至少一些实施方案中,从给定输入数据组选择测试组可相对于选择对应训练组
异步地(并且在一些情况下更迟地)发生。例如,单独作业可插入MLS作业队列中用于选择训
练组和选择对应测试组,并且作业可以类似于前述方式的方式独立于彼?#35828;?#24230;。在此类情
?#25345;校?#20026;了确保训练/测试?#33267;?#26159;有效且一致?#27169;?#23613;管两个操作之间存在?#26144;伲?#22312;一些实施
方案中,MLS可维持与训练组的选择有关的状态信息,这可随后用于帮助生成测试组。图30
示出根据至少一些实施方案的调度相关训练和评估作业对的示例性时间线。示出了在作业
调度器的时间线的大约四个小时的时间段(从特定一天的11:00至15:00)期间发生的四个
事件。

在时间t1处,模型M1的训练和评估迭代TEI1的训练作业J1开始。作业JI在MLS的一
组服务器SS1处调度,并且可包括训练组的选择,例如,在块级、在观察记?#25216;?#25110;者在两个级
别处。可使用伪随机数源(PRNS)3002(诸如返回PRN序列或者一列预先生成的PRN的函数或
方法)来生成作业J1的训练组。在时间t2处,可在服务器组SS2处调度用于不同模型M2的训
练和评估迭代TEI2的训练作业J2。可使用从不同PRNS 3002B获得的伪随机数获得作业J2的
训练组。

在时间t3处,调度用于TEI1的评估阶段的测试作业J3,比作业J1晚超过两个小时。
在所描绘实例中,例如,J3的调度可?#26144;?#30452;到J1完成,并且用于J1/J3的数据组的大小可如
此大使得花费多于两个小时来完成训练阶段。J3可在与用于J1的服务器组不同的服务器组
SS3处调度。在至少一些实现中,相比可用于服务器组SS1处?#27169;?#19981;同的PRNS 9002C可用于服
务器组SS3处。在所描绘实施方案中,为了确保训练/测试?#33267;训?#19968;致性,PRNS 3002C可与
PRNS 3002A同?#20581;?#22240;此,例如,如果种子值Seed1用于初始化PRNS 3002A,并且1000个伪随机
数在作业J1期间从PRNS 3002A获得,那么相同种子值Seed1可用于初始化逻辑等效的PRNS
3002C,并且1000个伪随机数可在获取将用于测试组选择的伪随机数之前从PRNS 3002C获
得。在一些实施方案中,如上论述的“save_state()”和“set_state()”调用的等效物可用
于使PRNS 3002C与PRNS 3002A同?#20581;?#22914;果预先生成的PRNS的列表用作PRN源,那么在一个实
施方案中,MLS可确保(a)同一列表用于J1和J3,并且(b)列表中的用于J3的第一PRN处于紧
接在用于J1的最后PRN的位置之后的位置。在各种实施方案中可使用其他同步化技术来确
保用于测试组确定的伪随机数的序列是这样?#27169;?#20351;得针对作业J1和J3实现有效且一致的分
?#36873;?#31867;似地,针对对应于训练作业J2的测试作业J4(在t4处调度),PRNS 3002D可与PRNS
3002B同?#20581;?#22312;至少所描绘实施方案中,为了确保?#33267;?#19968;致性,在用于生成训练组和对应测
试组的所述组伪随机数之间强制逻辑关系或一定程度的协调可以是必要的(例如,J3中使
用的数字可必须相对于J1中使用的数?#20013;?#35843;,并且J4中使用的数字可必须相对于J2中使用
的数?#20013;?#35843;)。

图31示出根据至少一些实施方案的响应于客户端请求在机器学习服务处生成一
致性元数据的系统的实例。一致性元数据可跨相关作业(例如,训练作业和对应的评估作
业)保留或共享以便实现关于图30论述的协调/同步化种类。在图31的系统3100中,MLS的客
户端164可通过MLS I/O库的数据源不可知的编程接口3161提交?#33267;?#35831;求3110。在一些实现
中,?#33267;?#35831;求可以是交叉验证请求的部分或者执行指定数量的训练和评估迭代的请求的部
分。在至少一个实施方案中,?#33267;?#35831;求可表示图24中示出的观察记录提取请求2401类型的
变型。?#33267;?#35831;求可包括例如可用于获得用于所请求?#33267;?#25805;作的伪随机数的一个或多个客户
端指定的种子值3120,但在至少一个实施方案中,此类种子值可不必由客户端提供。另外,
在所描绘实施方案中,?#33267;?#35831;求3110可包括输入数据组的指示3122(例如,文件名称、路径
或标识符)。?#33267;?#21442;数3124可指示一个或多个训练测试比(例如,图29中示出的80-20?#33267;?br />比)。在?#33267;?#35831;求是用于训练和评估迭代或交叉验证迭代的请求的部分的一些实施方案中,
期望迭代计数3126可包括在客户端请求中。

在所描绘实施方案中,MLS的请求处理机部件180可将请求3110传递到计划生成器
3180。计划生成器可确定一组一致性元数据3152,例如,可在针对所请求?#33267;训?#20195;插入在
MLS作业队列中的相关作业之间共享的元数据。元数据3152可例如包括客户端提供的种子
值3120。在一个实施方案中,如果客户端提供的种子值不可用(例如,因为用于客户端请求
的API 3161不需要种子被提供,或者因为客户?#23435;?#27861;提供有效种子值),那么计划生成器
3180可确定一组一个或多个种子值。此类MLS选择的种子值可例如基于输入数据组ID 3122
(例如,对应于输入数据组的文件名称或目录名称的散列值可用作种子)、客户端标识符、接
收到请求3110的时间、从其接收请求3110的IP地址等等的某一组?#31232;?#22312;一个实现中,MLS可
具有可用的伪随机数的若干源,诸如PRNG或预先生成的PRN列表,并且一个或多个PRN源的
标识符可包括在一致性元数据3152中。在将使用预先生成的PRN列表的实施方案中,可使用
指定列表内的最后使用的PRN的指针,使得使用列表的每个实体(例如,MLS作业执行器)在
其已使用列表的PRN的某一数?#31181;?#21518;更新指针。在上述“save_state()”和“set_state()”
操作的等效物支持用于PRNG的一个实施方案中,PRNG的状态记录可包括在元数据中。使用
PRNG的每个实体(例如,MLS作业执行器)可更新状态记录,例如,使得使用PRNG的下个实体
可大致设置其状态以获得可用于执行一致?#33267;训腜RN。

计划生成器3180可生成各自作业3155以便选择?#33267;?#32467;果组。例如,针对给定训练
和评估迭代,可创建一个作业以便选择训练组并且可生成另一作业以便选择测试组。在一
些实现中,由计划生成器3180创建的作业对象可包括将用于所述作业的一致性元数据的引
用或指针。在另一实现中,一致性元数据3152的至少一部分可包括在作业对象内。当执行作
业时,可使用元数据3152来确保输入数据组一致地?#33267;选?#22312;一些实施方案中,可创建包括训
练组选择和测试组选择两者的单个作业。

注意,在至少一些实施方案中,对于其他类型的输入过滤操作,诸如采样或混排,
可采取一致性或可重复性的类?#21697;?#27861;。例如,在一个实施方案中,客户端可希望确保混排可
重复性(即,如果稍后进行具有相同输入数据和相同请求参数的第二混排请求,那么可重新
获得一个混排请求的结果)或样本可重复性(即,由于重复样本请求可从数据组检索相同观
察记录或块)。如果过滤操作涉及伪随机数的使用,那么保存种子值和/或图31中示出的其
他类型的一致性元数据也可实现对混排可重复性和/或样本可重复性的支持。例如,可通过
以相同输入数据组开始并且利用与用于初始混排的种子值相同的种子值重新初始化PRNG
来获得重复混排。类似地,重新使用相同种子还可导致可重复样本。在各种实施方案中,可
使用上述种类的一致性元数据在块级、在观察记?#25216;?#25110;在块级和记?#25216;?#30340;某一组合处执行
一致?#33267;选?#22312;至少一个实施方案中,在执行块级?#33267;?#20043;后,训练组或测试组中的单独块的记
录可在用于训练/评估模型之前混排。

图32是示出根据至少一些实施方案的可响应于对机器学习模型的训练和评估迭
代的请求在机器学习服务处执行的操作的方面的流程图。如元素3201所示,可通过诸如MLS
I/O库API的编程接口接收执行一个或多个TEI(训练和评估迭代,诸如交叉验证迭代)的请
求。可为迭代生成一组一致性元数据,例如,包括伪随机数源(PRNS)的一个或多个初始化参
数值(诸如值V1)。例如,元数据可包括将用于初始化或重置PRNG的状态的种子值,或者一列
预先生成的伪随机数内的特定偏移的指针。在一些实施方案中,客户端可包括TEI请求中的
元数据的至少一部分。除了或代替种子值,一致性元数据可包括例如PRNS的标识符、PRNS的
状态的表示和/或指向一列伪随机数的指针。

如果请求中指示的输入数据组在多个文件或多个数据对象上伸展,那么可将文
件/对象逻辑地级联以便形成输入数据的统一地址空间。可将输入数据组的地址空间再划
分成邻接块(元素3207),例如,其中基于客户端偏好、MLS服务器处的存储器?#38469;?#21644;/或其他
因素选择块大小/边界。可将输入数据组的一个或多个块从持久性存储装置读入到一个或
多个MLS服务器处的各?#28304;?#20648;器,例如,使得将块C1的至少一部分存储在服务器S1处的存储
器中并且将块C2的至少一部分存储在服务器S2处的存储器中(元素3210)。

使用一致性元数据,可选择输入数据的第一训练组Trn1(元素3213),例如,其包括
块C1的至少一些观察记录。可在块级、观察记?#25216;?#25110;者块级和观察记?#25216;?#30340;某一组合处选
择训练组。在至少一些实施方案中,部分块可包括在训练组Trn1中(也就是说,给定块的一
些观察记录可包括在训练组中,而其他观察记录可最终包括在对应测试组中)。在一个实施
方案中,可使用初始化参数值V1来从源获得第一组伪随机数,所述源基于源的初始状态提
供此类数的确定性序列,并且可进而使用第一组伪随机数来选择用于训练目标机器学习模
型M1的训练组Trn1。

为了在模型已被训练之后评估所述模型,可使用一致性元数据确定测试组Tst1
(元素3216)(例如,使用从相同源或者从状态已与用于选择Trn1的源的状态同步的源获得
的一组伪随机数)。在一个实现中,例如,一致性元数据可指示种子Seed1以及从PRNG获得的
用于生成Trn1的伪随机数的计数N1。如果原始PRNG不可用于提供用于选择Tst1的伪随机数
(例如,如果在与用于识别Trn1的服务器不同的服务器处识别测试组,并且局部PRNG必须用
在每个服务处),那么可利用Seed1初始化等效PRNG,并且可在使用随后伪随机数(从第(N1+
1)个数开始)来选择Tst1之前丢弃从等效PRNG生成的前N1个伪随机数。在另一实现中,可设
计用于选择Trn1和Tst1(或任何对的训练组和测试组)的算法,其方式为使得,相同伪随机
数序列可用于选择Trn1和Tst1而同时仍满足前述一致性准则。在这种实现中,可使用相同
种子值来针对Tst1初始化PRNG,并且可能不必跳过任何伪随机数来选择Tst1。可使用测试
组Tst1测试/评估模型M1(例如,可确定模型预测的准确度/质量)。

在所描绘实施方案中,只要多个TEI保持将被执行(如元素3219中确定的),就可适
当地识别下一个迭代的训练组和测试组,无需将块内容中的任一个复制到其他位置(元素
3222)。在所描绘实施方案中,用于生成Trn1和Tst1的一致性元数据也可用于选择随后TEI
的训练组和测试组。在其他实施方案中,各自的一致性元数据组可用于各自TEI。在块级处
初始地识别训练组的至少一些实施方案中,可在使用观察记录训练模型之前在存储器中混
排训练组的单独块内的观察记录(即,可在没有对持久性存储装置的任何额外I/O的情况下
执行块内混排)。类似地,在一些实施方案中,可在测试组用于评估之前对测试组执行块内
混排。在完成训练和评估的所有所请求迭代之后,可将在对应于元素3201的操作中接收的
请求的处理认为是完成?#27169;?#24182;且可将迭代的最后结果提供到请求中指示的目的地(元素
3225)。

对基于决定树的模型的优化

多种机器学习方法例如用于分类问题和回归问题的技术可涉及决定树的使用。图
33示出根据至少一些实施方案的可针对机器学习服务处的预测生成的决定树的实例。包括
多个观察记录(OR)诸如OR3304A、OR 3304B和OR 3304C的训练组3302将用于训练模型以预
测因变量DV的值。训练组3302中的每个OR包含一些数量的自变量(IV)诸如IV1、IV2、IV3…
IVn的值(例如,在OR 3304A中,IV1的值为x、IV2的值为y、IV3的值为k、IV4的值为m并且IVn
的值为q)以及因变量DV的值(在OR 3304A的情况下其值为X)。在本文中,自变量还可被称为
输入变量,并且因变量可被称为输出变量。通常,在至少一些实施方案中,并非所有OR 3304
需要具有所有自变量的值;例如,一些值可能不能从获得观察记录的源获得。在所描绘实例
中,假设还可被称为“标签”或“目标变量”(由于它是模型将预测其值的变量)的因变量具有
两个值X或Y中的一个。任何给定自变量以及因变量可具有任何数量的不同值,并且可以是
任何期望数据类型,诸如数值、分类、布尔、?#22336;?#31561;等。

基于对训练组的子集或所有的观察记录3304的分析,一个或多个决定树3320可例
如由上述机器学习服务的模型生成器部件或模型管理器部件构造以便基于观察记录的至
少一些IV的值对DV的?#21040;?#34892;预测。决定树3320的每个?#19988;?#33410;点诸如根节点3322可指示将对
一个或多个自变量评估的一个或多个条件或谓?#21097;?#24182;且评估谓词的结果可确定接下来朝向
树的叶节点采用的路径,在所述叶节点处针对OR进行DV的预测。例如,在示出的决定树中,
根节点指示自变量IV2的?#21040;?#19982;k进行比?#31232;?#22914;果对于将要进行预测的给定观察记录IV2小
于k,那?#20174;?#37319;用到达中间节点3323的路径,如标记为“y”的边所指示的(对应于回答“IV2<
k”评估时的“是”)。如果在正分析的观察记录中,IV2大于或等于k,那么将采用标记“n”(对
应于“否”)的路径。将在各个?#19988;?#33410;点处采用类似决定直到到达叶节点,在这点处,将基于
沿着路径检查的谓词的组合预测DV的值。因此,在所描绘的树3320中,如果发现以下条件为
真,那么可在叶节点3324处预测DV值为X:(IV2<k)并且(IV1>=p)并且(IV6>=p)并且(IV7
==q)并且(IV4!=z)。将由基于决定树的模型3335对测试数据组3330的所有记录执行类
似遍历,导致DV值的一组预测3340。对于许多训练数据组,一个或多个自变量可能不一定在
决定树中表示,例如,如果自变量IVn相对于预测DV不重要,那么包括在数3320中的节点中
没有一个可包括指代IVn的条件。通常,机器学习服务的模型生成器部件可负责识别使用自
变量的某一子集准确地预测DV值的有效方式,以及以一个或多个决定树的形式编码此类有
效方式。以下论述可有助于预测质量和效率的多种因素。

图33中示出简单二进制分类实例以便简化展示。在各种实施方案中,决定树还可
用于多路分类和/或回归。在一些实施方案中,决定树的给定节点可具有多于两个子节点
(即,朝向叶的多于两个输出路径),也就是说,可在每个节点处评估比图33中示出的简单二
进制测试复杂的多结果条件。如以下更详细描述?#27169;?#27599;个节点可由指示将检查的谓词/条件
的对应描述符、其子节点的数量和身份等表示,使得树整体可表示为节点描述符的集?#31232;?#29983;
成的决定树3320的大小和形状可取决于各种因素,诸如发现的对于预测重要的自变量的数
量、树生成算法分析训练组的观察记录的次序等等。一些模型(诸如随机森林模型和自适应
增强模型)可需要或?#35272;?#20110;许多不同树的总体或集合,例如,使用训练数据组的各自子集获
得的各自树。

用于进行基于决定树的预测的成本(例如,根据使用的资源或需要的时间)可广泛
分类成两类:训练成本和执行/预测成本。执行/预测成本还可在本文中称为运行时间成本。
训练成本指代用于构造树并使用训练数据组训练模型的资源,而执行成本指代当模型对不
用于训练阶段的新数据(或测试数据)进行预测时使用的资源。在至少一些实施方案中,如
下所述,训练成本与对新数据进行的预测的质量之间可能有权衡。通过在训练期间支出更
多资源和/或时间,可能对于至少一些类型的问题,可进行更好(例如,更准确和/或更快)的
预测。例如,不像在一些常规树构造方法中,在一些实施方案中,可按深度优先次序构造决
定树,其中节点的描述符在其创建时立即流传输到盘或某一其他形式的持久性存储装置,
而不是需要树构造过程限制到给定服务器处可用的主存储器的量。这种基于深度优先和基
于持久性存储装置的树构造过程可相对于宽度优先的存储器?#38469;?#26041;法导致多种益处,诸如
对于具有小填充量的观察记录类的更好的预测准确度,更好的处理器高速缓存利用率(例
如,在与MLS服务器处使用的CPU或核相关联的级别2或级别1硬件高速缓存)等等。尽管由于
这种方法(由于树大小在树构造过程期间不是存储器?#38469;?#30340;),可产生相当大的树,但可以
在训练阶段的第二遍期间智能地修剪树,例如,以基于一个或多个运行时间优化目标移除
所述节点的子集。术语“运行时间优化目标”在本文中可用于指代与执行经训练的模型以进
行预测相关联的目标,诸如减少为测试数据组或生产数据组生成预测所花?#35757;?#26102;间,减少
此类预测所消耗的CPU或其他资源的量,等等。(在一些实施方案中,除了或代替此类运行时
间或预测时间目标,MLS的客户端还可或替代地具有与用于训练模型的资源或时间有关的
训练时间目标)。可拟合存储器?#38469;?#20869;的修剪树可随后用于对非训练数据组进行高质量预
测。以下提供关于在不同实施方案中可生成和修剪决定树的方式的?#38468;凇?br />

图34示出根据至少一些实施方案的在机器学习模型的训练阶段的树构造过程期
间按深度优先次序将决定树节点的表示存储在持久性存储装置处的实例。在所描绘实例
中,在一个或多个决定树3433的构造之前,训练数据3432可被读入到训练组存储器缓冲器
3340(例如,在一个或多个MLS服务器处)中。在其他实施方案中,整个训练组不需要被读入
到存储器中,例如,在一个实现中,观察记录的指针可保留在存储器中而不是整个记录中。
在创建数3433的每个节点时,可根据针对所述节点评估的谓词在存储器中分选或重新安排
训练组(例如,观察记录本身或观察记录的指针)。例如,如果树3433的节点N1包括对于自变
量IV1的谓词“IV1<=x”的评估,那么可重新安排训练组记录,使得具有小于等于x的IV1值
的所有记录位于存储器的一个邻接部分P1中,并且在所描绘实施方案中,MLS的树生成器部
件可随后分析所述部分P1的内容以用于构造左子树(节点N2及其子节点)。在至少一些实施
方案中,可在存储器中执行训练组记录的重新安排(即,没有对盘或其他持久性存储装置的
I/O)。在至少一些实施方案中,在达到树的?#31995;图?#21035;时,可必须重新安排训练组的较小子
集,从而潜在地提高硬件高速缓存利用水平。

在所描绘实施方案中,可按深度优先次序构造树3433。尽管图34中示出深度优先
遍历/构造的前序版本,但在一些实施方案中,可采用序中或序后深度优先遍历/构造。节点
的标签“N<#>”指示它们被生成的序列以及对应描述符3430从存储器写入持久性存储装置
的次序,诸如在模型生成器或模型管理器在其处运行的MLS服务器处可访问的各种基于盘
的装置。因此,节点N1先创建,并先写入持久性存储装置,之后是N2、N3...,如箭头3435指示
的。在深度优先序列中创建的第一叶节点是N6,之后是N7、N8、N9、N10和N12。描述符3430(例
如,分别用于节点N1-N12的3430A-3430L)可指示例如将在对应节点处评估的谓词或条件、
子节点的数量和/或身份等等。

除?#31169;?#22312;每个节点处评估的谓词之外,在所描绘实施方案中,还可为树3433的一
些或所有节点生成各自的预测效用度量(PUM)3434,并且将其存储在持久性存储装置中,例
如,PUM 3434A可针对节点N1计算和存储,PUM 3434B针对节点N2等等。一般来说,给定节点
的PUM可指示所述节点相对于可使用所有节点进行的预测的相对贡献或有用性。在不同实
施方案中,例如,基于正在解决的机器学习问题的类型、用于树的构造的特定算法等等,不
同测量可使用为预测效用度量。在一个实现中,例如,Gini杂质值可用作PUM或作为PUM的一
部分,或者可使用基于熵的信息增益测量、或信息增益的某一其他测量。在一些实现中,可
使用若干不同测量的组?#31232;?#22312;至少一些实施方案中,可能必须在树构造期间的任何情况下
计算谓词的预测效用或益处的某一量度,以便将至少一些节点添加到树,并且分配给节点
的PUM可简单地表示这种益处。在一些实现中,针对树的一个或多个节点可不识别PUM值,也
就是说,使PUM值可用于节点的子集可满足树修剪目的。

在至少一些实现中,可能基于节点的PUM创建决定树的节点的部分(或全部)次序,
并且这种排序可用于训练阶段的树修剪过程中,如下所述。在一个实施方案中,代替或除了
生成所有节点的有序列表之外,可创建关于树节点的PUM值的直方图或类似分布指示符和/
或将其写入持久性存储装置,例如,与节点描述符和PUM值一起。直方图可例如比树的节点
和对应的PUM值的详尽列表占用少得多的存储器。

图35示出根据至少一些实施方案的可为决定树的节点生成的预测效用分布信息
的实例。PUM值在PUM直方图3510的X轴上从左向?#20197;?#21152;,并且落在每个PUM值桶内的决定树
节点的数量由直方图的对应条的高度指示。由于生成分布信息,可识别表示相对低?#21040;?#28857;
的桶3520A,指示多少节点具有低PUM值,并且例如可识别指示高?#21040;?#28857;的数量的桶3520B。
在修剪期间,低?#21040;?#28857;可被视为是比高?#21040;?#28857;更好的从树中移除的候选者。在一些实现中,
属于直方图3510的一个或多个桶的至少一些节点的标识符可存储在持久性存储装置中以
辅助修剪阶段。例如,在一个实现中,来自叶节点的两个级内的节点的标识符可存储用于一
个或多个低值桶,并且这?#33267;?#34920;可用于识别修剪候选节点。

在至少一些实施方案中,训练阶段的树构造过程之后可以是修剪过程,其?#22411;?#36807;
鉴于一个或多个运行时间优化目标或准则来消除所选择节点来减小树表示的大小。在一些
实施方案中,可实现与树修剪周期交替的树构造的若干单独周期,使得整个树不需要一定
在修剪其一些节点之前生成(这可有助于减少所生成节点的总数)。在不同实施方案中,可
考虑修剪的多个不同目标。图36示出根据至少一些实施方案的至少部分地基于运行时间存
储器占用目标和累积预测效用的组合修剪决定树的实例。术语“运行时间存储器占用”在本
文中可用于指示在给定服务器或服务器组合处执行模型所需的主存储器的量,例如在模型
的训练阶段完成之后。在所描绘实施方案中可考虑两个冲突运行时间目标之间的权衡:在
模型执行期间存储树所需存储器的量以及预测的准确度或质量。在至少一些实现中,存储
器占用或使用(?#31995;橢到?#22909;)和准确度/质量(较高?#21040;?#22909;)可随保留节点的数量(即,未从使
用上述深度优先流到持久性存储装置技术生成的初始决定树中移除/修剪的节点)增加。运
行时间存储器占用目标可被翻译成“最大节点”值3610,指示可保留的最大数量的节点。修
剪的树的质量或准确度可根据累计保留的预测效用3620表示,例如,其可通过求保留节点
的PUM值的和或者通过将保留节点的PUM值作为输入的某一其他函数来计算。

在不同实施方案中,可使用各种方法针对移除识别节点。例如,在贪婪修剪技术
3650中,可以自上而下方式分析未修剪的树3604,选择通向树中每个?#33267;?#22788;具有最高PUM值
的节点的路径。可跟踪在贪婪自上而下遍历期间遇到的节点的累积PUM值以及遇到的节点
的总数。当遇到的节点的总数等于最大节点值时,可保留迄今为止遇到的节点,并且可丢弃
或移除其他节点。在至少一些实施方案中,树3604的修改或修剪的版本3608可与未修剪版
本分开地存储(例如,在持久性存储装置中),使?#32654;?#22914;如果必要的话可使用不同的修剪方
法来尝试重新修剪。在其他实施方案中,可仅保留修剪的版本3608。在一些实施方案中,代
替使用贪婪自上而下方法,可使用如由箭头3660指示的?#19978;?#33267;上的方法,其中?#30830;?#26512;叶节
点,并且如果节点对模型的质量/准确度的贡献低于阈?#30340;?#20040;移除所述节点,直到满足最大
节点?#38469;?610。在一些实施方案中,当选择将被修剪的节点时,可咨询PUM分布信息(诸如类
似于图35中示出的直方图的直方图)。在多个运行时间目标(其中一些可能彼此冲突)指导
修剪过程的实施方案中,MLS可必须使冲突目标相对于彼此优先化。例如,图36中示出的最
大节点目标可被认为比累积预测效用的目标具有更高的优先级。在至少一些实现中,可使
用随机选择过程来选择至少一些节点以用于修剪,例如,无需严格地使用自上而下或?#19978;?br />至上方法同时仍然坚持运行时间目标和质量目标。

在一些实施方案中,可在模型的训练阶段的树修剪过程期间考虑其他类型的运行
时间目标。图37示出根据至少一些实施方案的至少部分地基于预测时间变化目标修剪决定
树的实例。在一些情况下,取决于训练数据组的自变量的值的分布以及自变量与因变量之
间的关系,诸如未修剪的决定树3704的决定树可以是非常不平衡的。也就是说,根节点与叶
节点之间的一些路径可能比其他路径长得多。例如,可通过遍历八个节点(包括N1和N8)的
决定路径3704A从根节点N1到达树3704的叶节点N8,而可通过仅包括三个节点的决定路径
3704B到达叶节点N17。

在所描绘实施方案中,对给定观察记录的因变量进行预测所花?#35757;?#26102;间(以及消
耗的CPU资源)可至少大致地与决定路径的长度成比例,如图3786中指示的。对于一些对等
待时间敏感的应用,对不同观察记录或测试组进行预测所花?#35757;?#26102;间的变化可被认为是模
型质量的重要指示符,其中较少变化通常优于较多变化。因此,在这种实施方案中,预测时
间的最大变化3710可以是重要的运行时间优化目标,并且可从树3704中移除一些数量的节
点以便减少可能的决定路径中的最大变化。如所示,例如,可从树3704移除节点N6、N7、N8、
N9、N10和N11,使得修改/修剪的树3608中的最大决定路径长度?#24433;?#20010;减少到五个。在至少
一些实施方案中,最小化预测时间的变化的主要目标可与最大化累积保留的预测效用的次
要目标组?#31232;?#20363;如,当将进行修剪的选择同样影响决定路径的长度时,可比较替代修剪目标
节点的PUM值,并且可保留具有较大PUM值的节点。

在至少一些实施方案中,当修剪决定树?#24065;?#21487;考虑业务目标。例如,考虑服务的一
组潜在客户被分类到段S1、S2...Sn中的情?#24120;?#20351;得被分类为属于段S6的客户预期在属于其
他段的客户的服务上花费相?#22791;?#30340;金额。在这种情?#25345;校?#27839;着通向S6客户的分类的决定路
径的节点可在修剪期间优先于沿着通向其他段的决定路径的节点被保留。在各种实施方案
中,可使用存储器占用/?#38469;?#36136;量/准确度目标、绝对执行时间(预测时间)目标、预测时间
变化目标、业务/收入目标和/或其他目标的组合,具有不同目标的应用特定优先级。在至少
一些实施方案中,MLS的编程接口可例如通过针对给定模型或问题的不同类型目标对客户
端的相对重要性进行分级来允许客户端指示上述种类的一个或多个运行时间优化目标。在
一些实施方案中,关于不同问题域的决定树修剪(例如,哪些修剪方法是最有用的)的最佳
实践的信息可由MLS收集在知识库122(图1所示)中并且根据需要应用。

图38示出根据至少一些实施方案的可生成用于训练在机器学习服务处使用决定
树总体的模型的多个作业的实例。在所描绘实施方案中,可从较大训练组3802获得各自的
训练样本3805A、3805B和3805C(例如,使用诸如具有替换的随机采样的各种采样方法中的
任何一种),并且每个这种样本可用于使用上述深度优?#30830;?#27861;创建各自决定树。因此,训练
样本3805A可用于在训练阶段3820的树创建过程3812期间按深度优先次序生成未修剪的决
定树(UDT)3810A并将其存储在持久性存储装置处,训练样本3805B可用于UDT 3810B,并且
可使用训练样本3805C生成UDT 3810C。在一些实施方案中,各自的作业J1、J2和J3可被插入
到MLS作业队列或集?#29616;?#20197;构造UDT 3810A、3810B和3810C。在至少一些实施方案中,例如使
用MLS服务器池的各自服务器或者在相同MLS服务器处使用多个执行线程(或进程),可并行
地执行树创建过程的作业。

在所描绘实施方案中,可根据可适用运行时间优化目标来修剪每个UDT,以便在训
练阶段的修剪过程3814中产生对应的修剪的决定树(PDT)3818。作业J4、J5和J6可被实现以
用于分别修剪UDT3810A-3810C,从而产生PDT 3818A-3818C。最后,在所描绘实施方案中,可
分别调度作业J7、J8和J9以便使用某一指定的测试组(或生产数据组)使用三个PDT 3818A-
3818C来执行模型,导致预测结果3850A-3850C。从不同PDT获得的结果3850可以任何期望方
式组合(例如,通过识别每个测试组观察记录的预测的平均值或中值),以便在正使用的机
器学习算法的预测或测试阶段期间产生聚集的预测结果3860。预测阶段可与测试阶段不
同,例如,因为因变量的值对于预测阶段中的数据组可能是未知?#27169;?#32780;因变量的值对于用于
测试模型的数据组可以是已知的。在一些实施方案中,另外作业J10可调度用于结果的聚
集。注意,作业J1-J10中的任一个可与其他作业并行地执行,只要满足可适用作业?#35272;?#24615;,
例如,作业J4可必须在J1完成之后发起,并且J7可在J4完成之后发起。然而,注意,J7可甚至
在J2完成之前开始,因为J7不取决于J2,因此,在至少一些实施方案中,如果足够的资源可
用,那么预测/测试阶段3830可与训练阶段重叠。对于诸如随机森林的一些基于树总体的算
法,可为给定训练组生成数百个UDT和PDT,并?#20063;?#34892;性的使用可相对于顺序方法大大减少
训练时间和执行时间。在一些实施方案中,不同运行时间优化目标可应用到修剪不同UDT,
而在其他实施方案中,相同组的运行时间优化目标可应用到总体的所有树。在各种实施方
案中,已经满足其?#35272;?#24615;的所示不同任务中的任一个(例如,树生成、树修剪或模型执行)的
作业可在线程级别(例如,不同执行线程可用于同一服务器上的作业)、进程级别(例如,可
针对将在相同服务器或不同服务器上并行地运行的多个作业启动各自进程)或服务器级别
(例如,可在各自MLS服务器处以不同线程/进程执行一组可并发调度的作业中的每个作业)
并行地执行。在一些实施方案中,可使用线程级别、进程级别以及服务器级别并行度的组
合,例如,在将并?#24615;?#34892;的四个作业中,两个可在一个MLS服务器处以各自线程/进程运行,
而两个可在另一MLS服务器处运行。

图39是示出根据至少一些实施方案的可在机器学习服务处执行以按深度优先次
序生成并修剪存储到持久性存储装置的决定树的操作的方面的流程图。如元素3901所示,
可针对将使用训练数据组TDS训练的基于预测树的模型M1识别一组运行时间优化目标并且
在机器学习服务处执行所述运行时间优化目标。在不同实施方案中,可确定和/或优先化各
种目标,包括例如存储器使用或占用目标、诸如CPU的其他资源的利用目标、预测时间目标
(例如,用于模型的预测运行的经过时间)、预测时间变化目标(例如,减少不同观察记录的
模型预测时间之间的差)、预测准确度/质量目标、预算目标(例如,客户端希望在模型执行
上花?#35757;?#24635;金额,其可与模型执行的CPU利用率或其他资源的利用水平成比例)、上述种类
的收入/利润目标等等。在一些实施方案中,可由MLS客户端例如通过一个或多个MLS API以
编程方式提供训练数据组和/或一些或所有优化目标的指示(或不同目标的相对优先级)。
例如,在一个实施方案中,用于创建基于决定树的模型的API可由客户端调用,其中各自请
求参数指示数据组和一个或多个运行时间目标。在一些实施方案中,至少一些目标可以是
定性的而不是以精确的量表示,例如,可能不总是可能指示累积预测效用的精确目标值,而
是尽可能最大化累积预测效用的目标仍然可用于在一些情境下指导修剪。

可使用所有训练数据组的一些所选择子集来发起M1的训练阶段的树构造过程。在
一些实现中,训练数据(或至少指向训练数据的观察记录的指针)可在构造树之前加载到存
储器中,并?#19968;?#20110;在生成节点时在树的节点处评估的谓词重新安排在存储器中。在树构造
过程期间,在所描绘实施方案中,可按深度优先次序生成决定树的节点(元素3904),并且可
按深度优先次序将节点信息诸如测试的谓词以及子节点计数或子节点的指针流传输到持
久性存储装置(例如,基于转盘的存储装置)。在所描绘实施方案中,可存储至少一些节点的
预测效用度量(PUM)值,指示节点对由模型进行的预测的贡献或效用。在不同实现中,若干
类型的统计测量中的任一个可用作PUM值,诸如Gini杂质价值、熵测量、信息增益测量等等。
例如,可在训练阶段的随后树修剪过程中使用PUM值以便确定可在不显著影响模型预测的
质量的情况下将节点从树修剪或移除的次序。在一些实施方案中,可在树构造过程期间生
成直方图或PUM在树的节点之间的分布的类似表示。在其他实施方案中,可在树的单独遍历
中收集分布信息。术语“树构造”和“树创建”在本文中可用作同义词。

在所描绘实施方案中,可例如在自上而下的贪婪方法或?#19978;?#33267;上的方法中分析所
构造的树以便识别鉴于运行时间优化目标和/或节点的PUM值应移除的一些数量的节点(元
素3907)。在一些实施方案中,例如,如果未修剪的树已经满足期望的优化目标,那么不需要
执行树修剪阶段。在至少一个实施方案中,可能是这种情况:例如因为成本效益分析表明移
除是不?#26723;?#20570;?#27169;?#25152;以不修剪给定树的任一个节点。可例如将决定树的修改或修剪的版本
存储(元素3910)在与未修剪的树分开的位置中,以便稍后在模型的测试阶段和/或生产级
别预测运行期间使用。

取决于模型是否是基于总体?#27169;?#22312;一些情况下可能必须构造多个树。如果需要更
多的树(如元素3913中确定的),那么可生成训练数据组的不同样本并且可重复元素3904向
前的构造和修剪操作。尽管并行度未在图39中明确地示出,但在一些实施方案中,如前所
述,可并行地构造和/或修剪多个树。在所描绘实施方案中,在已构造和修剪所有树之后,可
使用修剪的树执行模型以便获得一组或多组预测(元素3916)。在一些实现中,可并行地执
行对应于多个修剪的树的预测运行。在一些实施方案中,可获得可用于确定在预测运行期
间是否实现优化目标的度量。如果在?#23454;?#31243;度上满足所有目标,如元素3919中检测到?#27169;?#37027;
么模型的训练和执行阶段可被认为完成(元素3928)。如果未满足一些目标(诸如期望的准
确度水平)并且如果诸如更多的存储器的另外资源是可用的(如元素3922中检测到的),那
么在一些实施方案中,可使用另外资源重试训练和/或执行阶段(元素3925)。在一些实施方
案中,可重?#21019;?#31867;重试直到满足目标或者没有另外资源可用。在不同实施方案中,本文描述
的用于基于训练时间对运行时间权衡生成和修剪树的技术可用于各种类型的基于树的模
型,包括例如CART(分类和回归树)模型、随机森林模型以及自适应增强模型。在一些实施方
案中,可迭代地执行树生成和树修剪,例如,其中在模型的训练阶段期间,树生成的若干不
同周期和树修剪的若干不同周期彼?#31169;?#26367;。在这种情?#25345;校?#22312;第一树生成周期中,可按深度
优先次序生成并存储一些数量的节点。随后,可暂停树生成,在第一树修剪周期中可针对修
剪检查所创建节点(例如,基于其PUM值和优化目标),并且可基于所述分析移除一些节点。
可在下一个树生成周期中为所得树生成更多节点,之后在下一个树修剪周期期间移除零个
或多个节点,等等。此类迭代生成和修剪可帮助将具有低效用的节点从树消除,时间上早于
其中在修剪任何节点之前生成整个树的方法。

在至少一个实施方案中,机器学习服务的多个不同部件可集体地执行与决定树优
化相关联的操作。可在请求/响应处理机处接收通过一个或多个API提交的对基于树的模型
(例如,基于单个树的模型或使用树总体的模型)的训练或创建的客户端请求,所述请求/响
应处理机可确定请求的性质并且将客户端请求(或客户端请求的内部表示)传递到模型生
成器或模型管理器。在一些实施方案中,各自MLS部件可执行训练阶段的每个过程,例如,一
个或多个树生成器部件可按深度优先次序创建树并且将节点描述符流传输到一个或多个
MLS服务器处的持久性存储装置,而一个或多个树减少器可负责修剪树。在至少一个实施方
案中,MLS的一个或多个训练服务器可用于训练基于树的模型,而一个或多个预测服务器可
用于实际预测。在为不同任务创建各自作业的实施方案中,作业管理器可负责维持出色作
业的集合或队列并负责在资源变得可用并且满足作业?#35272;?#24615;时调度作业。在一些实施方案
中,可由前端请求/响应处理机将响应(例如,基于树的模型的标识符或者预测运行的结果)
提供给客户端。在至少一些实施方案中,这些部件中的一些或全部可包括专门化的、?#35757;?#35856;
的或任务优化的硬件和/或软件。

特征处理权衡

如前所述,在提供商网络处实现的机器学习服务可支持多种多样的特征处理变换
(其可被称为FPT),诸如分位数分仓、一个或多个变量的值的笛卡尔乘积的生成、n-元语法
生成等等。对于具有许多自变量并且将用于训练模型的输入数据组,非常大数量的特征处
理变换可能潜在地可行用于从原始输入数据生成导出或处理的变量,使得处理的变量可随
后用于预测客户端?#34892;?#36259;的一个或多个目标或因变量的值。对于客户端,可能不总是直截
?#35828;?#22320;估计给定FPT相对于使用FPT的结果训练的模型的预测的质量或与实现FPT相关联的
成本的有用性。每个FPT(或相关FPT组)可具有其自己的用于模型生命周期的各个阶段的成
本组,其可以诸如经过时间、资源消耗等等各种单位中的任一个表示。例如,在一些实施方
案中,在确定FPT是否?#26723;?#26102;,可都必须考虑将FPT应用到训练组、使用包括FPT的结果的输
入数据训练模型、将FPT应用到评估或测试数据组以及包括FPT的处理的变量作为用于预
测/评估运行的模型执行的输入的另外或边际成本(例如,存储器、CPU、网络或存储成本)。
在一些实施方案中,MLS可被配?#32654;?#20363;如基于鉴于由客户端指示的目标的自动成本效益分
析向客户端提供关于可能特征处理变换组的推荐。例如,可能在训练时花费更多时间或更
多资源分析FPT,以便在模型的生产运行期间提出更准确和/或更快的预测。至少一些此类
特征处理推荐技术可具有与可针对在一些实施方案中如上所述的配方执行的自动参数调
谐类似的目标。

图40示出根据至少一些实施方案的被配?#32654;?#22522;于对候选特征处理变换的成本和
益处的分析为客户端生成特征处理提议的机器学习服务的实例。如图所示,机器学习服务
的特征处理(FP)管理器4080可包括候选生成器4082和优化器4084。FP管理器4080可接收训
练数据组4004的指示,所述训练数据组包括一组原始或未处理的自变量4006的值以及其值
将由模型预测的一个或多个目标变量4007。模型可使用使用一个或多个FPT从训练数据组
导出的变量来训练。此外,在所描绘实施方案中,FP管理器4080还可确定一个或多个预测质
量度量4012,以及用于预测的一个或多个运行时间目标4016。可在不同实施方案中并且针
对不同类型的模型确定各种质量度量4012,诸如二进制分类问题的ROC(接收器操作特性)
AUC(曲线下区域)测量、回归问题的均方误差度量等等。在一些实施方案中,客户端可指示
用于训练模型的一个或多个?#38469;?014(诸如一个或多个需要的或强制的FPT和/或一个或多
个禁止的FPT),并且FP管理器可尝试满足指定的?#38469;?#30446;标4016可包括用于产生对指定大
小的数据组的预测的经过时间目标、当进行此类预测时不超过的存储器的量的目标、关于
每个预测的最大计费成本的预算目标等等。在一些实施方案中,FP管理器还可提供有一组
训练阶段目标,诸如训练模型所消耗的最大时间量、训练模型不超过的预算、或MLS向客户
端提供特征处理提议的时间或预算限制。

在所描绘实施方案中,候选生成器4082可负责识别初始候选FPT组4052。在一些实
现中,初始候选FPT组可至少在MLS内部表示为可能变换的非循环图,诸如包括FPT1-FPT10
的所示图。非循环图表示可指示例如应执行不同FPT的推荐序列和/或不同FPT之间的?#35272;?br />性。例如,FPT组4052的所描绘表示可指示FPT9取决于FPT7的结果,FPT7取决于FPT3的结果,
等等。在没有指示用于生成特征处理提议的预算限制或时间限制的一些实施方案中,候选
生成器4082可包括大量(例如,几十或几百)个候选FPT。在其他实施方案中,其中诸如时间
限制或资源限制的?#38469;?#20851;于FP提议生成被放置在FP管理器上,候选FPT的初始组4052可包
括可行候选变换的相对小的子集。初始组4052可包括被指定(例如,在?#38469;?014中)为强制
性的任何FPT,并且排除被禁止的任何FPT。

优化器4084可负责生成诸如4062A和4062B的一个或多个FP提议。FP提议通常可通
常为候选组4052的版本,例如基于由优化器执行的成本效益分析,已从中移除或修剪了某
一数量的候选FPT。如果客户端通过?#38469;?014指示了强制性特征处理变换,那?#21019;?#31867;变换可
保留在FP提议中。如以下在各种实施方案中描述?#27169;?#25104;本效益分析可包括多个作业的调度,
例如涉及利用候选FPT的初始组的结果训练和评估模型、利用修改的评估组重新评估模型
以估计各种FPT对预测质量的影响和/或利用经修改的处理变量组重新训练模型以估计各
种FPT对预测运行时间度量的影响的作业。在图40示出的情?#25345;校?#36890;过移除FPT5、FPT8、FPT9
和FPT10从初始FPT候选组4052获得提议4062A,而通过从FPT候选组4052消除FPT4、FPT7、
FPT8、FPT9和FPT10得到提议4062B。在不同实施方案中可使用各种技术来选择在不同提议
中被消除的FPT,诸如随机移除、贪婪算法等等,如以下更详细描述的。从候选组修剪(例如,
移除)FPT的优点之一是客户端可能不必费心在其训练数据组和测试数据组中包括一些自
变量。例如,如果FPT5是候选组4052中应用到给定自变量4006的唯一变换,并且FP管理器确
定不需要FPT5满足客户端的目标,那么客户端不需要收集自变量4006的值用于未来训练
和/或测试/评估数据。由于收集、存储和向MLS提供训练数据可能对客户端获得机器学习问
题的解决方案的总成本具有显著影响,此类训练数据减少优化可能是特别有价值的。

在至少一些实施方案中,一个或多个FP提议4062可以编程方式提供给MLS的客户
端,例如以目录或?#35828;?#30340;形式,客户端可根据所述目录或?#35828;?#25209;准特定提议或多个提议。在
一些情况下,可使用迭代过程来达到最终批准的FP计划,例如,给定迭代包括MLS向客户端
提供提议,之后是来自客户端的提议改变请求。如果客户端不批准在迭代期间生成的任一
提议,那么在一些实施方案中,FP管理器可向客户端传输需求重新考虑请求,实际上请求客
户端优先化/修改至少一些目标或质量度量或放宽一些?#38469;?#23458;户端可通过指示一些或所
有目标和度量的相对优先级来对重新考虑请求作出响应。在FP提议最终被批准之后,MLS可
代表客户端实现所述提议,例如,使用批准的FPT的结果作为训练模型的输入并随后获得关
于指定的非训练数据的预测/评估。基于特征处理成本效益权衡的这种优化可用于各种模
型类型,包括例如分类模型、回归模型、聚类模型、自然语言处理模型等,并且用于不同实施
方案中的各种问题域。

在至少一些实施方案中,客户端可指示使用前述种类的配方语言编写的配方将被
用于生成用于训练其模型的处理过的变量。在这种情?#25345;校琈LS可分析配方中指示的FPT,并
且可在生成将提供给客户端的FP提议时判定配方中的一些(或所有)FPT是否应被替换或消
除。也就是说,如果更好的替代方法似乎可用,那么在此类实施方案中,FP管理器可被配置
为建议或推荐对客户指定的FP配方的修改。在一些实施方案中,一个或多个编程接口可对
客户端可用,以使得其能够提交对FP优化的请求,例如指示其训练数据、目标变量、运行时
间目标、预测质量度量等等。响应于通过这种API接收请求,MLS可利用各种内部API来提供
所请求推荐,例如,可使用?#31995;图禔PI来调度各自的作业以使用上述分块方法读取训练数
据,以便执行特征处理、训练、评估、重新训练和/或重新评估。在至少一个实施方案中,编程
接口(例如,基于web的?#28508;?#26495;)可对客户端可用,以使得其能够查看针对各种模型满足其运
行时间目标的程度。

图41示出根据至少一些实施方案的基于测量的预测速度和预测质量从若?#21830;?#20195;
者选择特征处理组的实例。在所描绘图中,预测速度(在训练之后预期对其进行预测的给定
数据组大小的)沿着X轴线从左到?#20197;?#21152;。每个点4110(例如,十二个点4110A-4110N中的任
一个)表示具有用于训练模型的对应组的FPT的模型的预测运行。代表其训练和执行模型的
客户端指示了目标预测速度目标PSG和目标预测质量目标PQG。在其结果已由FP管理器获得
的FPT的组中,FPT组4110G被选择作为最佳替代,因为它满足客户端的准则中的两者。

在至少一些情?#25345;校?#24182;非所有客户端的目标可同时实现。例如,客户端可期望预测
时间小于X秒,并?#19968;?#26399;望预测质量超过某个测量Q1,使得MLS不一定能够满足两个目标。在
一些此类情况下,可请求客户端优先化目标,使得MLS可尝试优先于其他目标优化一个目
标。在许多实施方案中,至少一些客户端可不必指定质量目标(或者可不指定质量目标,即
使可指定此类目标),并且代替可?#35272;?#20110;MLS来选择应目标定于优化的?#23454;?#39044;测质量准则。
在至少一个实施方案中,MLS可甚至选择和/或优先化应代表给定客户端定目标的运行时间
目标。在一些实施方案中,可允许关于机器学习更有见识的客户端在他们希望时提供关于
FP权衡管理的尽可能多的详细指导,例如在与MLS?#25442;?#26102;使用任选API参数的值。因此,MLS
可能够处理关于管理特征处理成本与益处之间的权衡的各种客户端专业水平。

图42示出根据至少一些实施方案的机器学习服务的客户端与特征处理管理器之
间的示例性?#25442;ァ?#22914;所示,在系统4200中实现的机器学习服务的客户端164可通过编程接口
4262提交模型创建请求4210。模型创建请求4210可指示例如以下元素的某一组合:一个或
多个训练组4220(其包括将预测的目标变量的指示)、一个或多个测试组或评估组4222、一
个或多个客户端?#34892;?#36259;的模型质量度量4224、目标4225(诸如预测运行时间目标和/或训练
目标)以及在一些情况下根据MLS的配方语言规范格式化的一个或多个任选特征处理配方
4226。在至少一个实施方案中,客户端还可任选地指示一个或多个?#38469;?227,诸如必须代表
客户端执行的强制特征处理变换或者不能执行的禁止变换。在一些实施方案中,并非图42
中示出的所?#24615;?#32032;可包括在模型创建请求4210中;例如,如果没有指示特定模型质量度量,
那么FP管理器可基于正被解决的机器学习问题的性质选择用于优化的某些度量。模型创建
请求4210可由MLS的前端请求/响应处理机4280接收,并且请求的内部表示可移交到FP管理
器4080。模型创建请求在本文中还可被称为模型训练请求。

FP管理器4080可生成特征处理变换的候选组,并且随后修剪所述候选组以便基于
质量度量、目标和/或针对模型识别的?#38469;?#35782;别提议。在所描绘实施方案中,可在此过程期
间生成和调度多个不同的作业,包括例如一个或多个特征处理作业4255、一个或多个模型
评估作业4258和/或一个或多个训练或重新训练作业4261。如果模型创建请求包括配方
4226,那么FP管理器可将配方看作其对特征处理选项的探索的起点,而不必限制考虑的变
换组到配方中指示的那些变换。在一些实施方案中,FP管理器可咨询MLS的最佳实践知识库
以便例如基于问题域是将创建或训练的模型的地址识别候选变换。如前所述,一旦识别FPT
(特征处理变换)的候选组,就可在若干优化迭代中的每一个中从所述组移除或修剪变换的
某一子集,并且可使用修剪的FPT组训练和/或评估模型的不同变型。在至少一些实施方案
中,模型变型4268可存储在MLS?#30772;?#20648;存库内。如果客户端请求包括需要MLS提供FP提议的
训练时间目标或期限,那?#21019;?#31867;目标/期限可影响由FP管理器4080使用的特定修剪技术,例
如,贪婪修剪技术,诸如以下示出的可在严格训练时间期限内使用的贪婪修剪技术。由于至
少对于一些问题,可能考虑非常大数量的FPT,MLS可在客户端不指定训练时间目标的情境
下设置其自己的训练时间目标,例如以便保持训练时间资源消耗在合理界限内。在一些实
施方案中,可针对FP提议的生成对客户端收费固定费用,在这种情况下,FP管理器对不同
FPT选项的实验/测试可能受到对应于固定费用的资源使用限制的?#38469;?br />

在所描绘实施方案中,FP管理器4080可最终终止其对替代变换组的分析并且向客
户端164提供一个或多个FP提议4272(例如,通过由请求/响应处理机4280生成的API响应)。
在客户端提供配方4226的情境下,FP提议可指示基于由MLS执行的分析而推荐的对客户端
的配方的一个或多个改变,或者可指示完全不同的配方。在一些实施方案中,FP提议可根据
MLS的配方语言格式化,而在其他实施方案中,可提供所提议特征处理变换的不同表示。客
户端164可批准一个或多个提议,或者可例如通过FP改变请求4278请求对提议的改变。在至
少一些实施方案中,迭代协商可在MLS与客户端之间发生,其中客户端提交对改变的建议,
并且MLS执行另外评估或重新训练操作以尝试改变。在一些实施方案中,在协商结束之前执
行的此类迭代的数量也可至少部分地基于计费,例如,可基于重新测试的每个迭代所消耗
的时间或资源的量对客户端收?#36873;?#26368;终,在所描绘实施方案中,客户端可批准特定FP提议,
并且例如通过MLS API提交模型执行请求4254。生产级模型执行管理器4232可随后实现对
应于所批准FP提议的模型的生产运行4258。客户端可基于在生产运行中实现的结果例如通
过提交另外改变请求4278和/或基于新的训练数据请求重新训练或重新创建模型来请求另
外改变。

在各种实施方案中,可使用多种不同技术来修剪候选FP变换(即,从候选组中移除
变换)。图43示出根据至少一些实施方案的使用随机选择修剪候选特征处理变换的实例。在
这种方法中,初始候选FPT组4302的一个或多个FPT可选择用于随机地移除,并且这种移除
对模型的质量度量和目标的影响可消除。例如,FP突变4320A可由从候选FPT组4302移除
FPT11造成,而FP突变4320B可由FPT6、FPT7和FPT13的移除造成。

取决于候选组的不同FPT之间的逻辑关系或?#35272;?#24615;,选择FPT组中的一个特定节点
作为修剪受害者可能也导致一个或多个其他节点的移除。例如,如果FPT13和FPT7取决于
FPT6(例如使用其输出),那么将FPT6选择作为受害者也可能导致FPT7和FPT13的修剪。移除
受害者FPT的成本和益处的估计可例如通过以下方式确定:使用由受害者产生的特征的虚
拟或统计选择的替换值来重新评估模型以确定对预测质量度量的影响,和/或通过利用较
小组的特征重新训练模型以确定对运行时间性能度量的影响。在所描绘实施方案中,FP管
理器可存储每个FP突变4320的修剪结果,例如作为MLS?#30772;?#20648;存库中的?#30772;貳?#23545;应于突变
4320B的修剪结果4390例如可包括对移除的FPT(FPT6、FPT7和FPT13)的预测质量贡献4333
的估计,以及对移除的FPT对预测运行时间成本的贡献4334的估计。对不同突变的此类估计
可用于生成将由FP管理器提供给客户端的提议。如果不预期不同候选FPT在其成本和质量
贡献方面显著不同,或者如果FP管理器不能预测(例如,基于最佳实践)不同候选者是否可
能具有显著不同的成本或质量贡献,那?#27492;?#26426;修剪方法可能特别有用。

在一些实施方案中,例如由于某一数量的随机修剪迭代或者基于对类似模型的经
验,FP管理器的优化器可能识别预期对模型质量提供显著积极贡献的特定FPT。FP管理器可
随后基于候选FPT图中此类高度有益FPT的位?#32654;?#24320;发提议,例如,包括有益FPT及其邻居的
提议。图44示出根据至少一些实施方案的用于识别推荐的候选特征处理变换组的这种贪婪
技术的实例。

在初始候选FPT组4402的图中,FP管理器已将节点4410(对应于FPT14)识别为具有
对模型质量的最高贡献(或已评估其质量贡献的节点中的至少最高贡献)的特定节点。因
此,节点4410被选择作为用于构造将包括在将提供给客户端的推荐FPT提议中的FPT图的起
始节点。在构建提议的一种方法中,在识别起始FPT节点之后,其前提条件节点(如果有的
话)也可包括在提议中。例如,为了执行由FPT14指示的变换,在所描绘实例中可能需要
FPT10、FPT3、FPT2和FPT1的结果。可随后使用重新评估和重新训练迭代来确定已经选择的
节点的其他邻居节点(诸如节点FPT8、FPT9、FPT4、FPT11、FPT5和FPT12)的贡献和成本,直到
满足期望的质量和/成本目标。所得到的FPT图(其中移除了其他候选FPT)可包括在传输给
客户端的FP提议4432中。

在不同实施方案中,基于对特定运行时间目标的优化生成FP提议的过程可涉及若
干阶段。在一个实施方案中,例如,可首先使用初始识别的整组候选FPT来生成/训练模型。
关于某些候选处理变量(PV)的值的统计可获得并且稍后用于确定PV及其对应FPT对模型预
测质量的具体贡献。图45示出根据至少一些实施方案的特征处理优化技术的第一阶段的实
例,其中使用第一组候选处理变量训练模型并对所述模型进行评估。如图所示,在所描绘实
施方案中,可从未处理的训练组4502获得一组原始处理的变量(PV)4560(即,FPT的结果)。
未处理的训练组4502可包括某一数量的自变量IV1、IV2...以及因变量或目标变量DV。PV训
练组4560可包括某一数量的PV,诸如PV1(从特征处理变换FPT1获得)、PV2(通过FPT2获得)
和PV3(通过FPT3获得)。注意,虽然通常训练组可包括一个或多个未处理的变量以及某一数
量的处理的变量,但为了简化展示,在示例性训练组4560中仅示出三个处理的变量。在所描
绘实施方案中,可为一些或所有PV生成各自的统计组(诸如数值PV的平均值、中值、最小值
和最大值,或非数值PV的模式值),诸如PV1统计、PV2统计和PV3统计。在至少一些实施方案
中,在生成FPT之前,未处理的训练数据的分类变量可转换或?#25104;?#21040;数值或布尔值,并且在
一些情况下,数值可归一化(例如,?#25104;?#21040;?#27573;?1至1内的实数)。

模型4510可在某一训练成本TC下使用原始PV训练组4560训练。TC可以各种单位表
示,诸如在具有存储器大小M1的机器上的CPU-秒或对应的计费金额。在所描绘实施方案中,
可使用从未处理的评估组(或若干此类组)4504导出的PV组4562来评估模型。因此,正如分
别使用变换FPT1、FPT2、FPT3获得PV1、PV2和PV3的训练组值,可通过将相同类型的变换应用
到未处理的评估组4504来获得PV1、PV2和PV3的评估组值。评估训练模型的成本(EC)可至少
在一些情况下小于TC,所述TC为利用所有候选FPT的结果训练模型的成本(例如,因为识别
将用于预测的各种系数可比在测试/评估运行期间简单地应用系数更计算密集)。在不修剪
任一候选FPT的情况下获得的原?#35745;?#20272;结果4536可保存在持久性储存库中(例如,稍后如下
所述地使用以确定不同FPT的各自质量贡献)。类似地,可收集并保存对应于所有候选FPT的
使用的原始预测运行时间度量4537(例如,经过时间、使用的CPU秒、使用的存储器等)(例
如,稍后在确定不同FPT的各自成本贡?#36164;?#20351;用)。

对于至少一些类型的机器学习问题,通常,?#22791;?#22810;的FPT用于训练时,模型的预测
质量可能更高。可随后在如下所述的特征处理技术的稍后阶段中获得对应于不同修剪选择
的模型的预测质量度量的差或增量。图46示出根据至少一些实施方案的特征处理优化技术
的随后阶段的实例,其中使用修改的评估数据组来重新评估模型以确定使用各种处理的变
量对预测质量的影响。在所描绘实例中,获得的用于PV1、PV2和PV3的统计用于修改模型的
各自运行的评估数据组。如所示,在修改的评估组4662A中,原始PV1?#24403;籔V1的平均值(来自
早前获得的PV1统计)替换,而PV2和PV3的原始?#24403;?#20445;留。在修改的评估组4662B中,原始PV2
?#24403;?#26469;自使用原始候选训练组生成的统计的PV2的最小值与最大值之间的?#27573;?#20013;选择的随
机值替换。在修改的评估组4662C中,原始PV3?#24403;?#20174;原始候选训练组获得的PV3统计中的中
值PV3值替换。

随后将每个修改的评估组作为输入提供给使用原始PV训练组4560训练的模型
4510以获得一组各自预测。使用修改的评估组4662A,可获得PV1修剪的评估结果4636A(指
示或近似在PV1未包括在模型4510的训练组中时可能已经实现的结果)。通过计算对应于修
剪PV1的预测质量度量与对应于图45中示出的未修剪的评估组的预测质量度量之间的差,
可获得PV1对模型质量的贡献的测量(在图46中称为FPT1质量增量)。类似地,PV1修剪的评
估结果4636B可用于估计FPT2质量增量(FPT2或PV2对模型预测结果的质量的贡献),并且
PV3修剪的评估结果4636C可用于估计FPT3质量增量。?#28304;?#26041;式,可估计若干不同FPT对模型
的预测的质量的相对贡献,并且此类贡献估计可用于为客户端生成FP提议。使用修改的评
估组估计质量贡献(诸如FPT1质量增量、FPT2质量增量和FPT3质量增量)的成本(例如,根据
资源消耗或时间)可类似于评估成本EC,其可能小于重新训练模型TC并且随后重新评估模
型的成本。

将用于生成修改的PV评估组的特定统计或值可针对不同类型的PV和/或针对不同
类型的模型或问题域而不同。在一些实施方案中,可使用平均值(如在图46中的PV1的情况
下)作为默认替换,而在其他情况下,可分配随机值,或者可基于针对类似类型的问题实现
的早前结果使用中值或模式值。

如以上论述?#27169;?#22270;46中示出的基于替换的技术可以是获得不同PV和FPT的质量贡
献的优化的第二阶段的一部分。为了获得与不同PV或FPT相关联的运行时间成本,可能必须
重新训练一些模型。图47示出根据至少一些实施方案的特征处理优化技术的另一示例性阶
段,其中使用一组修改的处理的变量来重新训练模型以确定使用处理的变量对预测运行时
间成本的影响。在所描绘实例中,可例如通过简单地省略PV2的值从在优化过程的早前阶段
中生成的PV训练组4560获得修剪的PV训练组4760。类似地,可例如通过省略PV2值从原始PV
评估组4562获得修剪的PV评估组。在原始阶段之后丢弃原始PV训练组和/或原始PV评估组
的实施方案中,可必须从未处理的训练组和评估组获得修剪的PV训练组4760和/或修剪的
PV评估组4762。

模型4710可使用修剪的PV训练组4760训练并使用修剪的PV评估组4762评估。FPT2
成本增量(FPT2对预测运行时间成本的贡献的测量)可计算为预测运行时间度量4736(对应
于FPT2或PV2的修剪)与原始运行时间度量4537(其使用利用所有候选FPT训练/评估的模型
获得)之间的差。重新训练模型的成本TC2可类似于利用包括的所有FPT训练模型的成本TC
(图45中示出),而重新评估模型的成本EC2可更小。在训练成本远高于评估成本的一些实施
方案中,FP管理器可尝试比重新训练做更多的重新评估,例如,可针对其质量贡献分析许多
FPT,并且可随后针对其成本贡献分析更小的子集。

图48是示出根据至少一些实施方案的可在基于质量对比运行时间成本权衡推荐
特征处理变换的机器学习服务处执行的操作的方面的流程图。如元素4801所示,MLS的部件
(诸如特征处理管理器)可确定将使用利用指定训练数据组训练的模型预测的一个或多个
目标变量、客户端?#34892;?#36259;的一个或多个预测质量度量以及一个或多个预测运行时间目标。
在一个实施方案中,客户端可指示?#38469;?#35832;如一个或多个强制性特征处理变换或一个或多
个禁止的特征处理变换。在至少一些实施方案中,这些参数中的一些或全部可在例如通过
编程接口提交到MLS的客户端的请求中指示,所述编程接口诸如API(应用编程接口)、基于
web的控制台、独立GUI(图形用户接口)或命令行工具。在一些情况下,客户端可指示例如除
了预测运行的运行时间目标之外的一个或多个训练时间目标。各种预测质量度量的任何组
合可由MLS部件针对不同类型的机器学习问题识别,诸如AUC(曲线下区域)度量、准确度度
量、召回度量、敏感度度量、真阳性率、特异性度量、真阴性率、精度度量、假阳性率、假阴性
率、F1得分、覆盖度量、绝对百分比误差度量或平方误差度量。类似地,可确定各种运行时间
目标的任何组合,诸如模型执行时间目标、存储器使用目标、处理器使用目标、存储装置使
用目标、网络使用目标或预算。在一些实施方案中,可确定训练的对应类型的目标(与训练
后预测相反)。在一些实施方案中,可以绝对方式指定目标(例如,模型执行时间必须小于X
秒),或者根据分布或百分位数指定(例如,模型执行时间的90%必须小于x秒)。在不同实施
方案中,客户端可请求创建、训练或重新训练多种多样的模型,包括例如分类模型(例如二
进制或n路分类模型)、回归模型、自然语言处理(NLP)模型、聚类模型等。

MLS可识别可用于从原始训练数据获得处理的变量或特征的一组候选特征处理变
换(FPT),使得特征可进而用于预测目标变量的值(元素4804)。在至少一些情况下,一个或
多个未处理的自变量也可包括在将用于训练的候选变量组中;也就是说,并非训练组中的
所有变量都需要是FPT的结果。取决于问题或模型的性?#21097;?#21487;选择多种多样FPT候选者中的
任一个,诸如分位数分仓、笛卡尔乘积生成,二元语法生成、n元语法生成、正交稀疏二元生
成、日历相关变换、图像处理函数、音频处理函数、生物信息处理函数或自然语言处理函数。
虽然MLS可通常试图提出大的候选者列表,但在一些实施方案中,可基于一个或多个?#38469;?br />(诸如训练时间或训练资源的显式或隐式目标)限制不同FPT候选者的数量。在一个实施方
案中,FPT候选者中的至少一些可取决于彼此,例如,一个FPT的输出可用作另一个的输入,
并且在一些情况下可生成FPT候选者的一个或多个有向图以表示这种关系。

对于所识别的FPT候选者的至少子集,可确定FPT对模型的预测质量的贡献的各自
估计和/或FPT对影响运行时间目标的度量的影响的各自估计(元素4807)。例如,在一个实
施方案中,可首先使用候选FPT的完整组来训练和评估模型,以获得最佳情况预测质量测量
和对应的运行时间度量。随后,为了获得质量贡献,可使用修改的评估数据组来重新评估模
型,例如,其中给定处理变量的值以类似于图46所示方式的方式被未修改的训练组中的该
处理的变量的平均值(或某一其他统计导出的替换值)替换的评估数据组。为了获得对运行
时间目标的影响,在一些实施方案中,可能必须用修剪的训练数据(即,已经从中移除候选
组的一个或多个处理变量的训练数据)来重新训练模型。在至少一个实施方案中,可为重新
评估和/或重新训练生成各自的作业。

使用质量贡献和成本影响的估计,MLS可例如在不违反任何显式或隐式训练时间
?#38469;?#25110;目标的情况下产生将以编程方式呈?#25351;?#23458;户端的一个或多个特征处理提议(元素
4810)。如果客户端指示批准特定提议FP1(如在元素4813中检测到的),那么可代表客户端
实现所述提议用于随后运行(例如,模型的训练后生产运行)(元素4816)。如果客户端不批
?#21152;蒑LS提出的任何提议(也如在元素4813中检测到的),那么可选择FPT的不同组合用于另
外训练/测试(元素4819),并且对应于元素4807向前的操作可针对新组?#29616;?#22797;,直到接受提
议或者由MLS或客户端实现?#29260;?#20248;化迭代的决定。在一些实施方案中,可向客户端提供利用
FPT的完整(未优化的)候选组的选项,也就是说,MLS可保留使用在修剪之前识别的所有候
选FPT训练的模型变型。

在各种实施方案中,MLS可能必须在由客户端指示的目标中优先化,例如,快速预
测执行时间可能与低存储器使用目标不兼容。在一些此类情况下,MLS可向客户端指示此类
优先级,并获得客户端对所选择目标排序的批准。在至少一些实施方案中,客户端可指示或
建议将使用的FPT的配方,并且MLS可分析可能包括在候选FPT组中的配方中指示的FPT中的
至少一些。在一个实现中,即使客户?#23435;?#22312;模型创建请求中指示配方,MLS可以早前论述的
MLS配方语言格式化的配方的形式提供FP提议。在至少一些实施方案中,提议(或对应于提
议的配方)可作为?#30772;?#23384;储在MLS?#30772;?#20648;存库中。

在FP提议被客户端批准之后,其可用于模型的随后执行(即,使用FP提议产生的处
理的变量可用作用于训练模型并使用所述模型进行预测的输入变量),潜在地用于许多不
同生产模式数据组。给定客户端可向服务提交若干不同模型创建请求、批准每个模型的各
自FP提议并且随后利用批准的模型一会儿。在一些实现中,客户端可希望在各种模型被批
准之后查看关于它们的预测运行时间目标的成功率。图49是根据至少一些实施方案的可使
得客户端能够查看各种机器学习模型运行的状态的编程?#28508;?#26495;接口的实例。在所描绘实例
中,?#28508;?#26495;可并入网页4901内,包括消息区域4904和客户端批准的模型的某一子集或全部
的各自条目。在所描绘实例中,如消息区域4904中所指示?#27169;?#25552;供关于在先前24小时期间代
表客户端运行的模型的信息。在一些实施方案中,客户端可例如通过点击链接4908来改变
由?#28508;?#26495;覆盖的时间段。

针对其显示图49中示出的示例性?#28508;?#26495;的客户端具有在覆盖的24小时时间段中
运行的三个模型:脑瘤检测模型BTM1、海马萎缩检测模型HADM1以及运动皮质损伤检测模型
MCDD1。如?#28508;?#26495;的区域4912中指示?#27169;?#30001;客户?#23435;狟TM1选择的质量度量是ROC AUC,运行时
间性能目标是预测在小于X秒内完成,并且95%的预测在已满足所述目标的最后24小时内
运行。对于HADM1,如区域4914中指示?#27169;?#36136;量度量是假阳性?#21097;?#36816;行时间性能目标是不大于
Y的存储器占用,并且实现的成功率是97%。如区域4916中指示?#27169;?#23545;于MCDD1,预测质量度
量也是假阳性?#21097;?#36816;行时间性能目标是每个预测运行小于Z的成本目标,并且实现的成功率
是92%。图49中提供的信息类型的多个变型可在不同的实施方案中以编程方式指示给客户
端,并且在实践中使用的接口?#38468;?#21487;与此处所示的那些接口?#38468;?#22522;本不同。

对训练线性模型的优化

注意,在对训练线性模型的优化的以下论述的上下文中,术语“特征标识符”可指
代从将用于训练模型的数据组的观察记录导出的性质的唯一标识符。术语“特征组”可指代
一组特征标识符,其中(a)在训练模型时可观察到特征值,以及(b)特征参数是已知的或从
训练数据推断的。术语“特征”可指代由特征标识符索引的观察记录的性质的值(例如,单个
数值、分类或二进制值或此类值的数组)。术语“特征向量”可指代一组(特征标识符,特征
值)对或元组,其可例如存储在键?#21040;?#26500;(例如散?#22411;?或压缩向量中。术语“特征参数”或
?#23433;?#25968;”可指代对应于由特征标识符索引的性质的参数的值。表示权重的实数是可在一些实
施方案中使用的参数的一个实例,但对于一些类型的机器学习技术,可使用更复杂的参数
(例如,包括多个数值或概率分布的参数)。术语?#23433;?#25968;向量”可指代一组(特征标识符,参数)
对或元组,其也可存储在诸如散?#22411;?#30340;键?#21040;?#26500;或压缩向量中。在至少一些实施方案中,特
征向量可被认为是主要用于更新参数向量并随后被丢弃的暂时结构(例如针对在学习迭代
期间检查的给定观察记?#21363;?#24314;的)。相反,在一些实施方案中,参数向量可在模型的训练阶
段的持续时间内保留,但如下所述,参数向量可在训练阶段期间增长和收缩。尽管在一些实
施方案中,键?#21040;?#26500;可用于参数向量和/或特征向量,但在各种实施方案中可采用参数向量
和/或特征向量的其他类型的表示。

线性预测模型,诸如广义线性模型的各种实例,是用于处理许多类型的机器学习
问题的最流行(且经常最有效的)方法之一。图50示出根据至少一些实施方案的用于生成并
使用线性预测模型的示例性过程。如所示,将用于训练线性模型的未处理的或原始训练数
据组5002可包括某一数量的观察记录(OR)5004,诸如OR 5004A、5004B和5004B。每个OR
5004可进而包括某一数量的输入变量(IV)诸如IV1、IV2、IV3...IVn的值,以及至少一个因
变量DV的值。因变量还可被称为“输出”变量。在至少一些实施方案中,在模型训练必须开始
之前并非所有观察记?#32423;?#21487;用,例如,如以下更详细地描述?#27169;?#22312;一些情况下,当观察记录
从一个或多个在线数据源获得时可流传输到机器学习服务。在此类情?#25345;校琈LS可负责迭代
地训练模型,例如,其中每个迭代表示基于直到该点分析的OR提高模型预测的质量的尝试。
基于对各自观察记录组的分析的此类训练迭代在本文中还可被称为“学习迭代”。

在至少一些实施方案中,MLS的模型生成器部件可需要将用于生成特征(可随后用
于训练线性模型)的输入变量满足某些数据类型?#38469;?#20363;如,在所描绘实施方案中,模型生
成器可需要训练数据的分类IV的原始值转换为数值和/或?#36824;?#19968;化(例如通过将数值?#25104;?br />到-1与1之间的实数)。这种类型变换可在初始数据准备阶段5010期间执行,产生一组修改
或准备的观察记录5015。

在所描绘实施方案中,可随后例如使用多个学习迭代5020来迭代地训练线性模
型。最初,在至少一些实现中,可创建空参数向量5025。参数向量5025可用于存储分配给特
征或处理的变量值的集合的参数(例如,表示各自权重的实数),其中使用早前所述类型的
一个或多个特征处理变换(FPT)从观察记录内容导出所述特征。在一些实现中,当对给定观
察记录的因变量?#21040;?#34892;预测时,线性模型可计算其权重包括在参数向量中的特征的加权
和。在至少一些实施方案中,诸如散?#22411;?#30340;键?#21040;?#26500;可用于参数向量5025,其中特征标识符
(由模型生成器分配)作为键,并?#20063;?#25968;作为针对每个键存储的各自值。例如,图50中示出的
参数W1、W2和Wm分别分配给具有特征标识符F1、F2和Fm的特征。

在每个学习迭代5020期间,可由模型生成器(其还可称为模型训练器)检查一个或
多个准备的OR 5015。基于在准备的OR中的输入变量的检查和/或由处于其当前状态下的模
型对准备的OR的因变量的预测的准确度,可针对一组新的一个或多个处理的变量识别各自
参数或权重。在至少一些实现中,如果需要的话,在一个或多个学习迭代中,例如使用随机
梯度下降技术或一些类似的优化方法,可更新先前存储的参数或权重。随着越来越多的观
察记录被检查,越来越多的(特征标识符,参数)键值对可添加到参数向量中。如以下参考图
51描述,参数向量的这种增长,如果不被检查,可能最终导致一种情?#24120;?#20854;中用于模型生成
器的MLS服务器处可用的存储器被耗尽并且存储器不足(out-of-memory)错误可能过早结
束模型的训练阶段。

为了避免此类不合乎期望的情?#24120;?#22312;一些实施方案中可采用用于修剪所选择参数
(即,从参数向量移除所选择特征的条目)的技术。根据这种技术,当满足某些触发条件时
(例如,当参数存储在参数向量中的特征的数量超过阈值时),对模型的预测贡献最小的特
征的一部分可识别为修剪受害者(即,其条目从参数向量中移除或“修剪”的特征)。在一些
实施方案中,可使用用于估计参数的分位数边界值(例如,对模型的预测贡献最小的特征的
20%)的有效存储器内技术,而不需要复制参数或显式分选操作。更一般地,在至少一些实
施方案中,给定特征对模型的预测性能(例如,模型的预测的准确度或质量)的重要性或贡
献可通过对应的参数值与“先验参数值”的偏差来确定。以下描述的用于估计分位数边界值
的有效存储器内技术可表示使用此类偏差来选择修剪受害者的一个特定实例,在以下情境
中相关:标量加权值用作参数值,先验参数值为零,并且相对贡献对应于权重的绝对值(权
重与零的各自“距离”)。对于参数是值的向量并且先验值是零的向量的模型,可使用涉及计
算特定向量参数与零向量的距离的类?#21697;?#27861;。对于一些类型的模型,参数可包括概率分布
而不是标量。在参数包括概率分布的一个实施方案中,参数向量中表示的不同特征的相对
贡献可通过从先验值估计Kullback-Leibler(KL)散度来获得,并且此类散度估计可用于识
别其参数应被修剪的特征。

可将所识别修剪受害者的条目(例如,参数值)从参数向量5025移除,从而减少消
耗的存储器。然而,可甚至在修剪一些参数之后执行另外学习迭代。因此,参数向量大小可
随着考虑更多的观察记录、添加更多的参数并且修剪更多的参数而重复地增长和收缩。注
意,术语“修剪参数”或“修剪特征”在本文中可同义地使用,以指代从参数向量移除包括(特
征标识符,参数)对的特定条目。在至少一些实现中,在一个学习迭代中修剪的特定特征的
参数可甚至稍后被重新添加到参数向量,例如响应于模型生成器(基于另外观察记录)确定
特征对于预测比对其被修剪?#22791;?#26377;用。在一些情况下,重新添加的参数的值可与早前移除
的值不同。

在参数向量可能已在期间增长和收缩多次的某一数量的学习迭代之后,可使用当
前参数向量来执行线性模型。在一些实施方案中,在对生产或测试数据组5050的用于预测
5072的模型执行5040之前,参数向量5025可以是“冻结的”(例如,自特定时间点起参数向量
的不可变表示可存储在MLS?#30772;?#20648;存库中)。在其他实施方案中,即使在模型用于进行生产
或测试运行之后,可使用新的观察记录来执行另外学习迭代5020。在参数向量被冻结以供
生产使用或测试的情?#25345;校?#21478;外学习迭代可在参数向量的非冻结或可修改版本上继续。在
各种实施方案中,在图50中由虚线指示的边界的任一侧上的操作可彼?#31169;?#26367;,例如,在其期
间基于新的观察数据修改参数向量的一个或多个学习迭代之后可以是模型的生产运行,并
且生产运行之后可以是更多的学习迭代,等等。

图51示出根据至少一些实施方案的示例性情?#24120;?#20854;中用于训练模型的机器学习服
务器的存储器容量可变为参数向量大小的?#38469;?#22914;前所述,在各种实施方案中,可在机器学
习服务处支持多种多样的特征处理变换(FPT)用于输入变量,并且至少一些FPT可按照序列
被链接,即,应用到已使用其他FPT生成的特征。支持的特征处理变换函数可包括例如:用于
数值变量的分位数仓函数5154、用于各种类型的变量的笛卡尔乘积函数5150、用于文本的n
元语法函数5152、日历函数、诸如图像处理函数的域特定变换函数5156、音频处理函数、视
频处理函数、生物信息处理函数、除了n元语法之外的自然语言处理函数等。取决于输入变
量5101的数据类型,可向其应用一个或多个FPT,并且可将另外FPT应用到结果。例如,可在
所描绘实施方案中创建包括n元语法、分位数仓和/或域特定变换的笛卡尔乘积的新特征。
可能的特征处理变换和组合的数量5133可能非常大,这可能导致大小无界的参数向量
5144。在一些实现中,所识别的各种特征可?#25104;?#21040;实数的向量,其中向量的维数可至少原则
上是?#25105;?#22823;的。

至少在一些实现中,特定模型的显著部分或全部学习迭代可旨在在诸如服务器
5160的单个MLS服务器?#29616;?#34892;(例如,使用在这种服务器处的一个或多个执行线程)。在一些
此类实现中,可能需要将模型的参数向量装入MLS服务器5160的主存储器5170。如果存储器
内参数向量表示5180增长得太大,那么用于学习的进程或线程可能?#28304;?#20648;器不足错误过早
地退出,并且可能必须重新实现至少一些学习迭代。如存储器需求图5175所示,MLS服务器
存储器需求可以检查的输入变量和/或观察记录的数量以非线性方式增长。注意,需求图
5175不旨在示出针对任何给定机器学习问题的观察的数量与可能的参数向量大小之间的
精确关系;相反,它旨在传达可在此类关系中观察到的一般趋势。

在一些常规机器学习系?#25345;校?#24403;其参数存储在参数向量中的特征的数量达到选择
的最大值时,可简单地终止模型的训练。这意味着在此类方法中,可稍后以其他方式被识别
为对预测质量的重要贡献者的特征可能永远不被考虑用于在参数向量中的表示。在另一种
常见技术中,可使用散列函数来分离地组合不同特征(例如,为?#31169;?#30465;空间,可使用另外将
表示特定特征的散列值的K位的仅仅N位,其中使用模函数选择N位),这还可能导致预测的
质量的?#26723;汀?#22312;一些机器学习系?#25345;校?#21487;使用一?#21482;?#22810;种正则化技术,其中分配给不同特征
的权重或参数可在各种学习迭代中被减少某一因子,并且因此,一些特征可逐渐从参数向
量中消除(其中它们的权重接近零)。然而,当其本身用于?#38469;?#21442;数向量大小时,正则化可导
致模型预测的相对差的质量。正则化还可能需要选择一个或多个超参数(诸如将使用的缩
减因子),这可能不是直截?#35828;?#30340;。注意,即使在实现以下描述的参数修剪技术的实施方案
中,由于各种原因(诸如防止过度拟合或至少有助于参数向量大小减小),可仍然使用正则
化。

在一些实施方案,可利用这种技术:对用于线性模型的参数向量的大小施加限制,
而不牺牲所进行的预测的质量,并?#20063;换?#20110;训练阶段期间如何早地识别特征来限制特征
组。根据此技术,当满足触发条件时,可从参数向量中修剪对应于迄今为止识别的特征的子
集的参数(有效地用默?#29616;?#25110;先验值替换所移除的参数值)。如前指示,此类特征在本文中
可被称为“修剪受害者特征”或更简单地称为“修剪受害者”。在如下所述的一些实现中,用
于识别对模型的预测贡献最小的特征的所选择部分或分位数的有效估计技术可用于识别
修剪受害者。至少在一些实现中,这种技术可不需要明确地对参数进行分选或复制参数。在
已修剪对应于修剪受害者特征的参数之后,可例如在随后学习迭代中添加另外特征的参
数。在一些情况下,如果稍后的观察指示给定特征对于预测可能比在其被修剪时其预期的
更有用,那么可将早前被选择作为修剪受害者的给定特征的参数重新引入参数向量中。

图52示出根据至少一些实施方案的这种技术,其中在训练期间其各自参数值存储
在参数向量中的特征的子集可被选择作为修剪受害者。示出了四个学习迭代5210A、5210B、
5210K和5210L。在每个学习迭代中,可由模型生成器检查包括一个或多个观察记录的各自
观察记录组(ORS)5202(例如,学习迭代5210A中的ORS 5202A、学习迭代5210B中的ORS
5202B等等)以确定是否应将任何新参数添加到参数向量。另外,在至少一些实施方案中,可
例如使用随机梯度技术更新或调整早前生成的参数值。在学习迭代5210之后,参数向量包
括对应于特征标识符5212A的参数5222A。在下一个学习迭代5210B之后,参数向量已经增
长,并且现在包括用于特征标识符5212B的参数5222B(并且学习迭代5210A中的参数组中的
一些或全部可能已经被调整或改变)。

当执行另外的学习迭代时,可将更多的参数添加到参数向量。最终,在某一学习迭
代5210K期间或之后,模型生成器可确定已超过阈值参数向量大小PVS,并且可执行修剪分
析。注意,至少在一些实施方案中,可不在每个学习迭代中或之后执行检测是否已满足用于
修剪的触发条件的操作,因为这样的频繁修剪可能是不必要的。相反,例如,基于自这种检
查上次完成以来已执行的学习迭代的数量,或者基于自这种检查上次执行以来已经经过的
时间,或者基于自上次执行检查以来已检查的观察记录的数量,可周期性地执行此类检查。
在至少一些实施方案中,PVS可至少部分地基于MLS服务器的存储器容量(例如,设置为其一
部分),或者触发条件可基于某一其他服务器资源容量?#38469;?#35832;如CPU利用限制。在一个实施
方案中,代表其训练线性模型的客户端可指示训练(例如,具有不超过X吉?#32440;?#30340;存储器的
服务器将用于训练)和/或训练后执行的一个或多个目标,并且此类目标可能影响PVS的值。
在各种实施方案中,PVS可根据参数向量中包括的参数的数量表示,或者简单地根据参数向
量所消耗的存储器的量来表示。

在修剪分析中,模型生成器可识别其参数将被移除的特征的某一选定数量(或某
一选定部分)。在一个实施方案中,例如,可例如基于分配给参数向量中表示的特征的权重
的绝对值识别10%最低有效特征。在一些实施方案中,如上所述,可假设特征对预测的相对
贡献(其至少部分地使用特征值的加权和来计算)与它们的权重的绝对值成比例。识别10%
最不重要的特征的任务可因?#35828;?#21516;于识别具有最小绝对值的10%的权重。特征的这种部分
的精确识别可能需要分选整个参数向量的权重的绝对值,这可能对大参数向量造成其自己
的资源消耗问题,例如,这种分选操作可能需要大量的存储器、CPU周期和/或持久性存储装
置。因此,在一些实现中,可使用优化来?#19994;?#25152;选择部分的近似边界权重(即,权重Wk,使得
大约10%的特征具有较小的绝对权重,而剩余的大约90%具有较高的绝对权重),而无需分
选权重或复制权重。以下结合图55的论述描述这种优化技术的实例。在估计所选择分位数
的边界(例如,在上述实例中为10%)之后,可容易地识别其绝对?#26723;?#20110;边界的权重,并且可
将此类权重的条目从参数向量移除。注意,尽管权重在本文论述为可存储的参数种类的简
单实例,但当使用更复杂的参数(例如,包括超过仅是单个实数的参数结构)时,可使用类似
技术来确定修剪候选者。也就是说,所描述的修剪技术不限于单个数值量(诸如具有实数值
的权重)被用作参数的实施方案。更复杂的参数可被变换为例如近似对应特征对由模型进
行的预测的相对贡献的数值。如前所述,在各种实施方案中,取决于用于模型的参数的类
型,可使用特定参数值与先验值的偏差的不同测量,以便估计参数的相对贡献。

在特征的某一子集已被识别为修剪候选者并且其参数被移除之后,如图52中标记
为5255的箭头指示?#27169;?#20462;剪的参数向量(包括特征标识符5212K*的经调整的参数5222K*)可
能?#36745;?#36829;反PVS?#38469;?#22312;至少一些实施方案中,可修剪参数向量的足够大的部分,使得可在
一个或多个随后学习迭代(诸如图52中示出的学习迭代5210L)?#24615;?#27425;添加另外参数。因此,
参数向量大小可在通过修剪减小之后再次增长。如果参数向量大小最终再次超过PVS,那么
可能需要另外修剪,并且可在完成另外修剪之后添加更多的参数。对应于任何特征的参数
可在给定的学习迭代中添加到参数向量,包括例如对应于早前被选择作为修剪受害者的特
征的参数。通过不限制在任何学习迭代期间可考虑用于在参数向量中表示的特征组,并且
仅消除在每个修剪阶段处当前被识别为对模型的预测贡献最小的那些参数,图52中示出的
技术可收敛于提供高度准确的预测同时限制训练期间的存储器使用的参数向?#21487;稀?#21478;外,
参数向量大小的减小还可减少在预测运行期间加载和执行模型所花?#35757;?#26102;间,因此,可在
训练阶段和训练后阶段预测运行两者期间获得所述技术的益处。

上述迭代学习的方法(其中参数向量成员可随时间减少和增加)在观察记录可从
各种数据源流传输到MLS的实施方案中可能是特别有用的。在此类情境下,与在任一学习迭
代之前收集整个训练数据组的环境相比,能够重新考虑其参数已早前修剪的特征并且通常
在更多观察记录到达时保持修改参数向?#21487;?#33267;可能更有用。观察记录的特性(例如,各种输
入变量的值的分布)可随时间改变,例如,使得可进行最佳预测的参数向量也将随时间改变
的可能性更大。

图53示出根据至少一些实施方案的系统,其中将用于线性模型的训练阶段的学习
迭代的观察记录可流传输到机器学习服务。如所示,可在MLS处建立数据接收器端点5308
(例如,网络地址或统一资源标识符),以用于从一个或多个流传输数据源(SDS)5302诸如
SDS5302A、SDS 5302B和SDS 5302C接收观察记录。此类数据源可例如包括地理上分布的应
用的web服务器日志、基于传感器的数据收集器等。来?#28304;?#31867;数据源的观察记录(OR)可按任
意次序到达,例如,可先接收来自SDS 5302A的OR1,之后是来自SDS 5302C的OR2、来自SDS
5302B的OR3和OR4等等。

在所描绘实施方案中,在模型生成器处,记录可?#27492;?#20204;到达的次序用于学习迭代。
例如,可在第一组学习迭代5333A期间检查OR1、OR2和OR3,导致生成特定参数向量。学习迭
代组5333A之后可以是修剪迭代5334,其中一些选择的参数基于它们对正训练的模型的预
测的相对贡?#29366;?#21442;数向量移除。修剪迭代5334之后可以是另一个学习迭代组5333B,其中检
查OR4、OR5和OR6,并且将一个或多个新特征(和/或其参数先前被修剪的特征)的参数添加
到参数向量。随时间,参数向量可演变以提供对来自所有流传输数据源5302的数据的准确
预测。在一些实施方案中,修剪迭代5334可以规则的间隔调度,例如每X秒一次,而不管接收
或检查观察记录的速率如何。这种基于调度的修剪可帮助MLS来对观察记录到达速率的大
波动做出响应,例如,以防止由在参数向量大小已经接近其最大阈值的时间到达的观察记
录的突然突发引起的存储器不足错误。

图54是示出根据至少一些实施方案的可在机器学习服务处执行的操作的方面的
流程图,在所述机器学习服务处,响应于检测触发条件,可从参数向量修剪对应于一个或多
个特征的参数以减少训练期间的存储器消耗。如元素5401所示,可在机器学习服务处接收
对用于开发线性预测模型的训练数据组的未处理或原始观察记录的数据源的指示。在至少
一些实施方案中,数据源可由客户端通过诸如API、基于web的控制台、独立GUI或命令行工
具的MLS编程接口来指示。线性预测模型可例如预期至少部分地基于通过前述类型的一个
或多个特征处理变换(FPT)从训练数据导出的特征值的加权和来进行预测。在一些实现中,
用于生成/训练模型的作业对象可响应于客户端对API的调用创建并且放置在诸如图1的队
列142的作业队列中。可例如异步地在MLS服务器池185的所选择训练服务器(或一组训练服
务器)上调度所述作业。

可发起训练模型的过程(例如,当调度排队的作业时)。可初始化空参数向量(元素
5404),并且可确定将在模型的训练阶段期间使用的一个或多个设置,例如,可识别将用于
触发修剪的阈值条件,可识别每次检测到这种阈值条件时将修剪的参数的部分等等。在不
同实现中,阈值可基于各种因素,诸如可包括在参数向量中的参数的最大数量、用于训练模
型的MLS服务器的存储器容量和/或由客户端指示的目标。可从其导出阈值的客户端提供的
目标可包括例如对在模型的训练期间和/或在训练后运行期间可消耗的各种类型的资源的
限制,包括存储器、CPU、网络带宽、盘空间等。在一些实施方案中,客户端可指定训练和/或
预测运行的预算目标,并且预算可在MLS的部件处被转换成对应的资源限制。

在所描绘实施方案中,模型生成器或训练器可随后开始实现一个或多个学习迭
代。可针对下一个学习迭代识别一组一个或多个观察记录(元素5407)。取决于观察记录的
性?#21097;?#21487;能必须执行一些初步数据类型变换和/或归一化操作(元素5410)。例如,一些模型
生成器可能需要将分类输入变量转换为数值或布尔变量,和/或将数值变量值?#25104;?#21040;-1至1
的?#27573;?#20869;的实数。可识别其参数诸如权重将添加到参数向量的一个或多个新特征(元素
5413)。在一些情况下,早前选择作为修剪受害者的特征的新条目可重新插入到参数向量
中。在一些情况下,这种重新添加的条目的参数值可不同于先前修剪的条目的参数值,而在
其他情况下,原始和重新引入的条目的参数值可相同。在一些实现中,诸如散?#22411;?#25110;散列表
的键?#21040;?#26500;可用于存储参数向量的(特征标识符,参数)对,例如其中特征标识符作为键。在
一些实施方案中,一个或多个先前生成的参数值也可例如使用随机梯度下降技术在这个阶
段更新。

如果模型生成器确定已满足用于触发一?#20013;?#21098;的阈值条件(在对应于元素5404的
操作中识别的)(元素5416),那么可将一个或多个特征识别为修剪受害者(元素5419)。在所
描绘实施方案中,对模型的预测贡献最小的特征,例如,借助于具有最小的绝对权重,可被
选择作为修剪受害者。确定或估计不同特征的相对贡献的方式以及识别预期提供最小贡献
的特征的方式可在各种实施方案中不同。在给每个特征分配各自实数作为权重的一些实施
方案中,可使用有效估计技术,其不需要分选或复制权重并且可在参数向?#21487;?#30340;单个存储
器内过程中估计权重之间的分位数边界值。在识别了分位数边界(例如,表示在参数向量中
表示的权重的绝对值的?#27573;?#20013;的所估计百分之10或所估计百分之20的权重)之后,可将具
有?#31995;?#26435;重的特征的条目从参数向量移除。可通过移除对应于修剪受害者的条目来减少由
参数向量消耗的存储器(元素5422)。

如果已经完成学习迭代(如在元素5425中检测到的),那么训练的模型可用于生成
关于生产数据、测试数据和/或关于其他训练后阶段数据组的预测(元素5428)。如果例如已
检查了预期可用的所有观察记录,或者如果由模型基于迄今为止执行的学习迭代可进行的
预测的准确度满足可接受准则,那么学习迭代可被视为完成。如果将执行另外的学习迭代
(也如在元素5425中检测到的),那么可重复对应于元素5407向前的操作,例如,可识别一组
新的一个或多个观察记录、可根据需要变换原始数据、可将新特征的参数添加到参数向量
等等。在一些情况下,可对已经检查的观察记录执行至少一些另外学习迭代。

如前所述,可基于对单独特征关于模型预测的相对贡献或相对重要性的分析从在
参数向量中表示的特征来选择修剪受害者。图55示出根据至少一些实施方案的可用于确定
分配给特征的权重的绝对值的分位数边界估计的单遍技术。可在存储器中检查对应于各自
特征F1、F2...Fm的一组权重W1、W2...Wm,例如,不复制权重?#20063;?#26126;确地分选权重。在所描绘
的实施方案中,将获得边界值的分位数被称为“tau”。因此,例如,如果将识别权重的绝对值
的最低20%与权重的剩余80%之间的边界,那么tau可设置为0.2。边界本身被称为“phi-
tau”。最初,如元素5502所示,可确定tau和另一个参数“eta”(表示将用于确定phi-tau的学
习速率),并且可将phi-tau设置为零。随后,可检查下一个权重Wj,并且可获得其绝对值abs
(Wj)(元素5505)。如果abs(Wj)大于phi-tau,如在元素5508中确定?#27169;?#37027;么可通过加上tau
和eta的乘积(tau*eta)来增大phi-tau。如果abs(Wj)不大于phi-tau,那么可通过减去(1-
tau)*eta来减小phi-tau(元素5511)。如果仍有将检查的更多权重(如在元素5517中检测到
的),那么可重复对应于元素5505向前的操作。否则,在已检查了所有权重之后,分位数边界
phi-tau的估计可完成(元素5520)。在图55中示出的过程结束时的phi-tau的值可随后用于
选择修剪受害者,例如,具有绝对值小于phi-tau的权重的特征可被选择作为受害者,而具
有绝对值不小于phi-tau的权重的特征可保留。在至少一些实现中,可在分位数边界估计过
程期间修改或调整学习速率(eta);即,eta不需要保持恒定。

并发分仓

注意,在分位数分仓的以下论述的上下文中,术语“特征标识符”可指代从将用于
训练模型的数据组的观察记录导出的性质的唯一标识符。术语“特征组”可指代一组特征标
识符,其中(a)在训练模型时可观察到特征值,以及(b)特征参数是已知的或从训练数据推
断的。术语“特征”可指代由特征标识符索引的观察记录的性质的值(例如,单个数值、分类
或二进制值或此类值的数组)。例如,术语“分仓特征”可指代从应用到一组观察记录的一个
或多个输入变量的分位数分仓变换获得的二进制指示符值的数组的特定二进制指示符值
(例如,“0”或“1”)。术语“特征向量”可指代一组(特征标识符,特征值)对或元组,其可例如
存储在键?#21040;?#26500;(例如散?#22411;?或压缩向量中。术语“特征参数”或?#23433;?#25968;”可指代对应于由特
征标识符索引的性质的参数的值。表示权重的实数是可在一些实施方案中使用的参数的一
个实例,但对于一些类型的机器学习技术,可使用更复杂的参数(例如,包括多个数值的参
数)。术语?#23433;?#25968;向量”可指代一组(特征标识符,特征参数)对或元组,其也可存储在诸如散
?#22411;?#30340;键?#21040;?#26500;或压缩向量中。尽管在一些实施方案中,键?#21040;?#26500;可用于参数向量和/或特
征向量,但在各种实施方案中可采用参数向量和/或特征向量的其他类型的表示。

虽?#36824;?#20041;线性模型对于许多类型的机器学习问题是流?#26800;模?#20294;在至少一些情况
下,数据组的输入变量与将预测的目标或输出变量之间的关系可以是非线性的。例如,给定
数值输入变量的观察值的分布可能在相当大的程度上不平衡,使得特定(并且经常小的)子
?#27573;?#21253;含大量观察。此类密集间隔的观察可至少在一些情况下表示强关系,理想地,所述强
关系应在分配给最终用于生成预测的特征的权重或参数中准确地表示。边远子?#27573;?#21487;包含
相对少的观察,但在许多情况下,捕获此类异常值与目标变量的关系对于生成高质量预测
也可能是重要的。在至少一些此类情?#25345;校?#20998;位数分仓变换可用于至少一些输入变量。在这
种变换中,对于给定的训练观察记录组,原始或未处理的输入变量的值可每个?#25104;?#21040;所选
择数量的分位数仓中的一个,使得仓中的每一个在填充量方面至少近?#39057;?#20110;其他仓。可随
后生成一组二进制指示符变量(可设置为“0”或“1”的变量),其中每个这种二进制指示符变
量表示从原始输入变量导出的各自“分仓特征”。对于给定的观察记录,指示符变量中的一
个(对应于原始变量的值?#25104;?#21040;的特定仓的一个)被设置为“1?#20445;?#24182;且剩余指示符变量被设
置为“0”。因为不同的仓在填充量方面大致相等,这意味着将针对未处理的变量的值的高填
充子?#27573;?#29983;成更多的?#37073;?#24182;且将针对稀疏填充的子?#27573;?#29983;成更少的仓。因此,由于使用分位
数分?#37073;?#25429;获原始输入变量与目标变量之间的非线性关系的概率可能增加。在图56中示出
并且以下更详细地描述分位数分仓变换的实例。

分位数分仓的一个挑战是,可能?#25442;?#30452;截?#35828;?#22320;提前选择仓计数(即,给定输入变
量的原始值应?#25104;?#21040;的仓的数量),所述仓计数将最终导致来自正在训练或生成的模型的
最准确?#26131;?#19968;般预测。考虑模型生成器对于给定输入变量具有10的仓计数或1000的仓计数
的选择的示例性情境。对于10的仓计数,大约10%的观察记录将?#25104;?#21040;10个仓中的每一个,
而对于1000的仓计数,仅大约0.1%的观察记录将?#25104;?#21040;每个仓。在确定哪个仓计数是优越
选择的一种方法中,模型的两个版本可能必须被单独地完全训练并且随后被评估。模型的
第一版本M1可利用从10仓变换获得的特征(以及其他特征,如果任何特征由模型生成器识
别)来训练,并?#19994;?#20108;版本M2可使用从1000仓变换获得的特征(以及其他功能)来训练。M1对
测试数据的预测可与M2对相同测试数据的预测进行比?#24076;?#20197;确定哪种方法更好。由于多种
原因,不同的仓计数用于训练模型的各自版本的这种方法可能不是最?#35757;摹?#31532;一,即使对于
单个输入变量,利用各自组的分仓特征训练多个模型也可能是昂贵的。当对于相同模型必
须考虑几个不同可分仓变量时,通常情况下,可能尝试的组合的数量可能变得非常大。第
二,在一些情况下,可能不可能用任何单个仓计数设置捕获微妙的非线性关系(即使对于一
个输入变量),例如,对于相同变量使用若干不同仓计数获得的特征可能对于一些预测有
用,这取决于非线性关系的性质。因此,在一些情况下,对于至少一些变量,任何单个仓计数
可能不一定产生与使用多个仓计数可产生的预测一样准确的预测。

在一些实施方案中,机器学习服务可实现并发分仓技术,其中在模型的单个训练
阶段或训练会话期间可将具有各自仓计数的若干不同特征变换应用到给定输入变量。使用
这种方法,可将初始权重(或更复杂的参数)分配给从多个仓计数导出的所有分仓特征。可
生成大量的分仓特征,其中对应的参数或权重存储在参数向量中。例如,基于对另外观察记
录的检查、一些观察记录的重新检查和/或连续学习迭代期间的训练阶段预测的结果,可稍
后移除对应于分仓特征的至少一些参数。在一些实施方案中,可使用所选择优化技术(诸如
L1或L2正则化)来调整初始权重或参数,并且可从参数向量消除其绝对权重?#21040;?#33267;阈值以
下的特征。在一些实施方案中,上述(例如,结合图51-图55的描述)的有效修剪技术还可或
替代地应用以减少分仓特征的参数所消耗的资源。使用并发分?#31181;?#21518;是参数修剪,在一些
实施方案中,可非常有效地获得允许模型关于上述种类的非线性关?#21040;?#34892;准确的训练后阶
段预测的参数向量,例如,而?#25442;?#25307;致从头开始重复训练模型的成本。

图56示出根据至少一些实施方案的使用分位数分仓(quantile binning)变换来
捕获机器学习模型的原始输入变量与预测目标变量之间的非线性关系的实例。如所示,从
将用于在机器学习服务处生成模型的数据源获得的观察记录中包括的训练数据变量5690
可包括多个数值输入变量(NIV),诸如NIV1和NIV2。分布图DG1和DG2分别示出了一组观察记
录的NIV1和NIV2的值的统计分布。NIV1的值位于NIV1-最小至NIV1-最大的?#27573;?#20869;,其中最
高的观察密度在n2与n3之间的子?#27573;?#20013;。NIV2的值位于NIV2-最小至NIV2-最大的?#27573;?#20869;,
其中峰密度在p1与p2之间。

在所描绘实例中,NIV1的值已?#25104;?#21040;标记为NIV1-仓1至NIV1-仓4的4个仓。仓的名
称对应于图56中的对应分仓特征的特征标识符。也就是说,具有4的仓计数的分位数分仓变
换已被用于生成从单个变量NIV1导出的四个分仓特征5610A,其中一个指示符变量对应于
每个仓。观察记录OR1中NIV1的值落在仓NIV1-仓3中;因此,对于OR1,NIV1-仓3的指示符变
量已被设置为1,并且剩余的NIV1相关的指示符变量NIV1-仓1、NIV1-仓2和NIV1-仓4已被设
置为零。在观察记录OR2的情况下,NIV1的值落在N1V1-仓2内,并且对应的指示符变量已被
设置为1,其中剩余的设置为零。NIV2的值已通过具有3的仓计数的分位数分仓变换被?#25104;?br />到三个仓NIV2-仓1至NIV2-仓3。在OR1和OR2中,NIV1的值落在NIV2-仓2内。因此,对于OR1和
OR2,指示符变量NIV2-仓2已被设置为1,并且剩余的NIV2相关的指示符变量已被设置为0。
在所描绘实施方案中,给定变量的分仓特征或二进制指示符变量的数量对应于仓计数。图
56中示出的示例性变换在本文中可被称为单变量非并发分仓变换。可将变换指定为单变
量,因为仅使用一个变量的值来导出给定分仓特征,并且非并形是因为仅使用单个仓计数
来对变量中的每一个进行分仓。

除了由分位数分仓变换产生的分仓特征之外,可对图56中描绘的实施方案中的训
练数据的其他原始输入变量执行其他特征变换。可以为训练数据生成包括用于分仓特征
(诸如NIV1-仓1和NIV1-仓2)和非分仓特征(诸如NF1)的组合的参数的参数向量5625。在一
些实现中,参数可包括权重,诸如每个特征的各自实数。在一些实施方案中,例如,当迭代地
使用上述种类的修剪技术时,参数向量可增长和收缩。在至少一些实现中,随着更多的观察
记录被检查或者先前检查的观察记录被重新分析,仓边界也可移位。在某一点,模型的训练
阶段可被视为完成(或至少足够完成以用于对某一非训练数据组的预测),并?#20063;?#25968;向量
5625的当前版本可在执行模型5640期间使用以生成对测试或生产数据组5650的预测5672。

在图56示出的示例性情?#25345;校?#21333;个仓计数(四)用于对NIV1?#21040;?#34892;分?#37073;?#24182;?#19994;?#20010;
仓计数(三)用于对NIV2进行分仓。如上所述,如果使用此类单仓计数,那么生成的分仓特征
可能不一定导致最高质量的预测。这可能是这种情况,例如,因为在训练/学习过程开始时
为给定原始输入变量选择的特定仓计数可能不能表示原始输入变量值与目标变量之间的
非线性关系以及关系可使用不同的仓计数来表示。在至少一些情况下,可在一定程度上任
意地选择仓计数,而没有任何可量化的理由。针对每个可分仓输入变量使用若干不同仓计
数完全训练模型,并且随后比较结果以便为每个这种变量选择最佳仓计数可能是昂贵且耗
时的过程。因此,在一些实施方案中,机器学习服务可针对训练组的至少一个原始输入变量
使用若干不同仓计数来并发地实现分位数分仓。

图57示出根据至少一些实施方案的可在机器学习服务处模型的训练阶段期间生
成的并发分仓计划的实例。在所描绘实施方案中,所述组训练数据变量5790包括已被选择
作为并发分位数分仓的候选者的数值输入变量NIV1、NIV2和NIV3。对于每个变量,可在模型
的训练阶段期间生成和实?#25351;?#33258;的并发分仓计划(CBP)。例如,根据CBP1,可在训练阶?#25991;?br />将三个分位数分仓变换QBT1-1、QBT1-2和QBT1-3应用到NIV1的值,其中各自的仓计数为10、
100和1000。由于实现CBP1,可产生总共1110个分仓特征5730A:来自QBT1-1的10个特征(标
记为NIV1-1-1至NIV1-1-10),来自QBT1-2的100个特征(NIV1-2-1至NIV1-2-100)以及来自
QBT1-3的1000个特征(NIV1-3-1至NIV1-3-1000)。。可将初始权重(或将用于表示各自特征
对模型的预测的相对贡献的其他类型的参数)分配给分仓特征5730A中的每一个。类似地,
根据并发分仓计划CBP2,可在同一训练阶?#25991;?#23558;四个分位数分仓变换并发地应用到NIV2,
其中仓计数分别为20、40、80和160,从而产生300个分仓特征5730B。根据并发分仓计划
CBP3,可将三个分位数分仓变换应用于NIV3,其中仓计数分别为5、25和625,从而产生655个
分仓特征5730C。可将各自的初始权重/参数分配给所有分仓特征。

在不同实施方案中,模型生成器或机器学习服务的另一部件可基于各种因素中的
任一个选择不同的仓计数(例如,在NIV1的情况下为10、100、1000,或者在NIV2的情况下为
20、40、80、160)来用于给定变量的并发分仓。在一些实施方案中,例如,可获得可用的观察
记录的小样本,并且可确定样本中的数值输入变量(诸如NIV1、NIV2或NIV3)的值的分布。随
后可使用分布来选择不同的仓计数。数值变量的值的?#27573;?#21644;粒度也可影响仓计数的选择:
例如,如果特定数值变量仅取1与1000之间的整数值,那么所述变量的最大仓数可限制为
1000。在其他实施方案中,可咨询机器学习服务的知识库(例如,图1中示出的KB 122)以确
定针对其正生成模型的特定问题域的最佳并发分仓相关实践。在一个实施方案中,N个仓计
数的默认组(例如,10、100、1000,其中N=3)可用于被选为候选者的所有变量。

注意,在至少一些实施方案中,虽然可在模型的单个训练阶段或训练会话期间实
?#25351;?#23450;组的CBP(例如,图57中示出的实例中的CBP1、CBP2和CBP3)的所有分位数分仓变换,
但变换中涉及的计算不需要在硬件级别处同时或并行地执行。例如,在一个实现中,对于给
定组的观察记录,通常可使用模型生成器的至少一个执行线程来产生诸如QBT1的给定分位
数分仓变换的指示符变量的值。因此,为了实现CBP1、CBP2和CBP3的10个变换(QBT1-1、
QBT1-2、...QBT3-3),可能需要十个执行线程。然而,这并不意味着必须使用10个处理器或
核,而是例如单个4核MLS服务器可用于所有10个分仓变换,其中必要计算的不同子集在模
型的训练阶段期间的任何给定时间点处并行或顺序地运行。因此,在所描绘实施方案中,使
用术语“并发”来描述分位数分仓变换组是指在训练阶段的上下文内的并发计算,并?#20063;?#38656;
要硬件级别的并发。当然,在一些情况下,可用的核或CPU的数量可足以在训练阶段期间并
行地执行不同CBP所需的所有计算。

在许多情况下,用于分仓变换的候选变量的数量可能相当大,并且因此由于实现
并发分仓计划而产生的分仓特征的数量也可能变得非常大。如前所述,随着参数向量中表
示的特征的数量增加,在生成或训练模型的MLS服务器处所需的存储器也增加。为了限制消
耗的存储器的量,可在所描绘实施方案中执行一个或多个权重调整优化5710。此类优化可
包括例如正则化技术,其中在连续学习迭代内减少至少一些分仓特征(和/或一些非分仓特
征)的权重,因为模型生成器能够更多地?#31169;?#21508;种特征对预测准确度的相对贡献。由于正则
化,与一些特征相关联的权重可变得足够小,使得在至少一个实施方案中至少对应于此类
特征的参数可从参数向量移除或修剪。注意,在至少一些实施方案中,正则化还可帮助减少
过度拟合;也就是说,参数向量大小的减少可能不是使用正则化的唯一(或甚至主要)原因。
在一些实施方案中,响应于触发条件,可估计分配给特征的不同权重的分位数边界(例如,
使用类似于图55所示技术的技术),并且可从模型的参数向量移除落在权重的绝对值的范
围的最低X%中的所选择权重组。在一些实施方案中,可使用正则化和基于分位数边界的修
剪以便在训练期间从参数向量中消除参数。在其他实施方案中,可使用除了正则化和基于
分位数边界的修剪之外的优化。

分配给根据CBP1-CBP3获得的不同分仓特征的初始权重可根据图57中描绘的实施
方案中的一个或多个所选择优化策略来调整。如果给定分仓特征的调整的权重降至拒绝阈
值以下,那么所述特征的条目可从参数向量中移除,并且可不用于训练后阶段预测(除非其
稍后在更多学习迭代完成时再?#25105;?#20837;)。在所示实例中,对应于对其应用了并发分仓变换的
输入变量中的每一个,由于子集的调整的权重高于拒绝阈值,仅将所述子集用于训练后阶
段的预测。例如,从1110个NIV1相关的分仓特征中,仅使用NIV1-1-3和NIV1-2-5。在300个
NIV2相关的分仓特征中,使用NIV2-2-1至NIV2-2-40,并且在655个NIV3相关的分仓特征中,
NIV3-3-1至NIV3-3-10和NIV3-3-50至NIV3-3-53用于训练后预测。剩余分仓特征的参数可
从参数向量移除。尽管在图57中仅示出了由于实现并发分仓计划CBP1-CBP3而产生的分仓
特征,但在训练阶段期间,也可将非分仓特征的参数添加到参数向量以及从参数向量中移
除。

在图57示出的实例中,已经保留了对应于单个输入变量(NIV1)的不同分位数分仓
变换的两个分仓特征()(NIV1-1-3和NIV1-2-5)以用于训练后阶段预测。这可指示两个不
同仓计数(NIV1-1-3的10和NIV1-2-5的100)可每个捕获NIV1与其?#21040;?#34987;预测的目标变量之
间的非线性关系的不同方面。由于使用类似于图57所示技术的并发分仓技术,比起对于对
其执行分位数分仓的每个变量使用单个仓计数的情况,在许多情况下训练模型的预测准确
度可能更高,并且在许多情况下所需整体训练时间可能更低。

在图57中,即使使用具有各自仓计数的多个分仓变换,每个分仓变换本身也应用
到单个变量。在一些实施方案中,多于一个输入变量的值可一起使用以便将给定观察记录
?#25104;?#21040;单个仓。此类仓在本文中可被称为多变量?#37073;?#24182;且对应特征变换在本文中可被称为
多变量分位数分仓变换。对于将被分仓在一起的每组输入变量,可将仓计数的不同组合分
配给每个输入变量以便在模型的训练阶段期间并发地产生多变量分仓特征。图58示出根据
至少一些实施方案的可在机器学习服务处实现的并发多变量分位数分仓变换的实例。在所
描绘实施方案中,从多个训练数据变量5890中,将三个数值输入变量NIV1、NIV2和NIV3识别
为将分组在一起用于并发多变量分仓的候选者。可针对利用各自的仓计数组合对三个变量
的组合的组合决定生成各自的决定树5810A和5810B。

决定树5810A分别表示变量(NIV1、NIV2、NIV3)的仓计数组合(c1、c2、c3)。给定观
察记录,可基于三个变量的值来导航决定树,其中每个级别包括决定节点,在决定节点处检
查变量中的特定一个以决定接下来应遍历哪个节点。树的叶节点可对应于从所有分组的变
量的组?#31995;?#20986;的仓。例如,树5810A的级别L1可包括c1个决定节点,每个表示NIV1的值的一
个分位数子集。对于级别L1处的每个节点,可在级别L2处生成用于NIV2的值的c2个决定节
点,每个表示基于NIV1的分仓和基于NIV2的分仓的组?#31232;?#31867;似地,对于级别L2处的每个节
点,可生成c3个叶节点,每个表示多变量仓和对应的分仓特征。因此,在树5810的情况下,可
利用对应的二进制指示符变量来生成总共(c1*c2*c3)个仓。在图58中,树5810A的叶节点被
标记为仓123-1-1至仓123-1-m,其中m是c1、c2和c3的乘积。(在所示的?#32622;?#21517;约定“仓<
string1>-<string2>-<string3>”中,string1表示分组在一起用于分仓的不同输入变量,
string2是特定决定树的标识符,并且string3是仓在叶节点的集?#29616;?#30340;位置的指示符。因
此,仓123-k-q将表示用于对变量NIV1、NIV2和NIV3进行分仓的第k个树的第q个叶节点。基
于任何给定观察记录中的NIV1、NIV2和NIV3的值,所述观察记录可?#25104;?#21040;叶节点中的特定
一个。所述叶节点的二进制指示符变量可针对观察记录被设置为1,而其他指示符变量可都
被设置为零。

正如在一些实施方案中可使用不同仓计数并发执?#26800;?#21464;量分?#37073;?#22810;变量分仓也可
用给定变量组的仓计数的不同组合并发执行。例如,使用仓计数(c4、c5、c6)的不同组合,可
针对(NIV1、NIV2、NIV3)组合并发生成第二决定树5810B。再次,叶节点处的仓/特征的数量
等于仓计数的乘积:因此,在图58中,树5810B的叶节点被标记为仓123-2-1至仓123-2-n,其
中n是(c4*c5*c6)。在各种实施方案中可使用用于各自多变量并发分仓变换的任何期望数
量的决定树。对于至少一些训练数据组,使用多个变量用于如图58所示的分组的分位数分
仓可允许捕获比使用单变量分仓可能的更多种类的非线性关系。在各种实施方案中,限制
参数向量大小的类似种类的方法可与如以上参考单变量分仓论述的多变量并发分位数分
仓一起使用。例如,在至少一些实施方案中,可采用正则化和/或涉及对分配给分仓特征的
权重的分位数边界估计的技术。

在至少一些实施方案中,可在模型的给定训练阶?#25991;?#20351;用多变量并发分仓变换以
及单变量并发分仓变换。图57中示出类型的单变量并发分仓可被认为是更通用多变量分仓
技术的一个变型,其中简单决定树仅包括叶节点(加上表示分仓决定过程的开始的根节
点)。一般来说,从任何给定训练数据组的输入变量中,可选择某一数量的变量组用于并发
分仓。一些组可仅包括一个变量,而其他组可包括多个变量。

图59示出根据至少一些实施方案的可用于表示机器学习服务处的并发分仓操作
的配方的实例。如前所述,例如,参考图11-图17,机器学习服务可支持配方语言,其中可在
用户友好句法中指示多种多样的特征变换操作,并且此类配方可根据需要重新用于不同的
数据组。对应于并发分位数分仓变换的配方,诸如图57中所示的单变量并发分仓以及图58
中所示的多变量并发分?#37073;?#21487;在图59所描绘的实施方案中生成并存储在MLS储存库内。

配方5902A的输出部分对应于图58的并发分仓变换,其中针对每个变换指示输入
变量的名称和仓计数。因此,针对NIV1执行具有10、100和1000的仓计数的并发单变量分位
数分仓变换,针对NIV2执行具有20、40、80和160的仓计数,并且针对NIV3执行5、25和625的
仓计数。

配方5902B的输出部分指示将对指定变量组执行的并发多变量分位数分仓变换
(其中令牌“MV_quantile_bin”中的“MV”代表“多个变量”)。第一这种变换将一起应用到
NIV1和NIV2,其中NIV1值?#25104;?#21040;10个?#37073;?#24182;且NIV2值也?#25104;?#21040;10个仓(如由“10X10”指示),
从而为组合创建100个仓。将针对NIV1和NIV2并发执?#26800;?#20108;多变量分仓变换,其中针对NIV1
的仓计数为100,并且针对NIV2的仓计数为100,导致总共10000个仓。将针对NIV1和NIV3一
起执?#26800;?#19977;多变量分仓变换,其中各自仓计数针对NIV1为100并且针对NIV3为20。在一些实
施方案中,还可使用MV_quantile_bin令牌来指示单变量分位数分仓变换,指定仅具有一个
变量的组。在至少一些实现中,配方5902A中示出的“quantile_bin”令牌可用于单变量分仓
变换和多变量分仓变换两者,并且与令牌相关联的参数可用于确定将执?#26800;?#21464;量分?#21482;?#26159;
多变量分仓。

在一些实施方案中,类似于5902A或5902B的配方可由模型生成器产生,并且存储
在MLS?#30772;?#20648;存库中,用于可能在类似类型的机器学习问题?#29616;?#26032;使用。在一些实施方案
中,机器学习服务的客户端可明确地请求并发分位数分?#37073;?#24182;且可提供指定此类变换的属
性或性质的配方(例如,将并发分仓的一组一个或多个变量、针对每个组的并发分仓变换的
数量、仓计数等)。

在至少一些实施方案中,可响应于来自客户端的编程请求,例如通过API或基于
web的控制台,在MLS处发起生成或训练模型的过程。图60示出根据至少一些实施方案的系
统的实例,其中客户端可利用机器学习服务的编程接口来指示它们关于并发分位数分仓的
使用的偏好。如所示,在系统6000中,客户端164可通过编程接口6062提交模型创建或训练
请求6010。客户端请求可指示数据源6020,所述数据源6020的观察记录将用于训练模型以
预测请求中指示的一个或多个目标变量6022的值。请求可包括“并发分仓”参数6024,如果
并发分位数分仓的使用对于客户端是可接受?#27169;?#37027;么所述参数可设置为“真”。不想让并发
分位数分仓被使用的客户端可在此类实施方案中将这种参数设置为“假”。在至少一个实施
方案中,用于并发分仓的默认设置可以是“真?#20445;?#20351;得即使客户?#23435;?#25351;示偏好,MLS也可针对
被识别为合适候选者的所选择输入变量实现并发分位数分仓。在一个实施方案中,代替或
者除了设置并发分仓参数的值之外,客户端可指示或包括在其模型创建请求6010中包括并
发分仓变换的配方。

客户端请求6010可由机器学习服务的请求/响应处理机6042接收,并且对应内部
请求可传输到模型生成器6080。模型生成器在本文中还可被称为模型训练器、特征处理管
理器或特征变换管理器。模型生成器6080可识别将对其执行并发分位数分仓的观察记录的
一个或多个候选变量。在一些实施方案中,模型生成器6080可咨询MLS最佳实践知识库122
以确定将用于并发分仓的属性:例如,如果/应如何对多个变量进行分组以用于多变量分位
数分?#37073;?#24212;使用的仓计数,等等。早前针对相同问题域或类似类型的机器学习问题识别的最
佳实践可帮助指导对并发分?#36136;?#24615;的选择。在一些实施方案中,模型生成器6080可能够识
别早前生成的配方(例如,在知识库或MLS?#30772;?#20648;存库120中),所述配方包括成功地用于与
其创建由客户端请求的模型类似的模型的并发分位数分仓变换。可使用此类预先存在的配
方来选择将响应于请求6010应用的并发分仓变换。在至少一个实施方案中,可生成一组观
察记录的k维树(k-d树)表示,例如,其中k维表示所选择的一组变量。在此类实施方案中,将
应用到所选择的一组变量中的一个或多个的并发分仓变换的属性可至少部分地基于对这
种k-d树的检查。

在图60描绘的实施方案中,可生成并调度包括并发分位数分仓的使用的一个或多
个训练作业6068。取决于包括在数据源6020的未处理的观察记录中的原始数据的种类,训
练作业6068可包括将原始输入变量转换为数值以可随后用于分仓的预处理任务6070。此类
预处理转换可例如包括将一个或多个所选择分类变量?#25104;?#21040;实数,和/或域特定的变换(例
如,将原始音频数据、图形数据或视频数据?#25104;?#25104;适于分仓的实数的变换)。在一些情况下,
可使用迭代学习过程来训练模型,所述过程具有扩展模型的参数向量(例如,在更多的学习
迭代完成时通过为更多分仓特征以及未分仓特征添加参数)和收缩参数向量(例如,使用先
前描述的修剪技术)的交替阶段。取决于为并发分仓选择的属性以及为训练数据选择的并
发分仓变换的数量,参数向量扩展6072可导致所需存储器的量的快速增长,并且因此在参
数向量收缩6072期间可能需要积极的修剪方法。可相应地调整用于修剪的优化技术(诸如
正则化)的属性,例如,使得被识别为对模型预测不太重要的特征的权重减少得更快。在采
用早前描述的分位数边界估计技术的一些实施方案中,可增加在任何特定迭代期间消除或
修剪的参数的部分以实?#25351;?#31215;极的参数向量大小减小,可修改用于修剪的触发条件,使得
更频繁地执行修剪等等。注意,尽管在许多情境下,可将参数从参数向量移除,但至少在一
些实施方案中,有时可能是在训练阶段期间不从参数向量消除参数的情况。因此,使用本文
描述种类的并发分位数分仓变换不需要修剪参数。

在所选择并发分仓变换已应用并且模型的训练阶段完成之后,模型的表示可存储
在?#30772;?#20648;存库120中,并且训练模型的标识符6082可通过编程接口6062提供给客户端。在一
些情况下,执行的并发分位数分仓变换的指示(诸如配方)也可提供给客户端164。客户端可
最终提交模型执行请求6054,并且模型的训练后阶段生产运行6058可由模型执行管理器
6032调度。

图61是示出根据至少一些实施方案的可在实现并发分位数分仓变换的机器学习
服务处执行的操作的方面的流程图。如元素6101所示,可例如通过编程接口提交的客户端
请求,在提供商网络的机器学习服务处接收将从其获得未处理的观察记录以生成模型的数
据源的指示。在至少一些实施方案中,机器学习服务可确定将生成线性模型,所述线性模型
的预测将基于分配给从观察记录的变量的原始?#26723;?#20986;的特征的实值权重(和/或更复杂参
数的线性组合)。

机器学习服务的部件(诸如模型生成器)可将一个或多个未处理的变量识别为并
发分位数分仓变换的候选者(元素6104)。在不同实施方案中,可基于多个不同因素中的任
一个识别候选者,诸如对观察记录样本中的变量的原始值的分布的分析,用于执行并发分
仓的默认策略等等。在至少一些情况下,可针对多变量并发分仓变换识别一组或多组候选
者。在一些情况下,观察记录的一个或多个变量的原始值可在预处理步骤中?#25104;?#21040;实数。例
如,包括音频、视频或图?#25991;?#23481;的变量可使用域特定?#25104;?#31639;法?#25104;?#21040;实数,或者一些类型的
分类变量或文本令牌可?#25104;?#21040;实数。

在所描绘实施方案中,对应于将对其执行并发分仓变换的每个单独变量或变量
组,可生成并发分仓计划(元素6107)。此类计划的属性或性质可包括例如将在单个训练阶
段期间实现的不同分位数分仓变换的数量以及为每个这种变换选择的仓计数。对于多变量
分仓变换,计划属性中可包括将检查变量值的序列(例如,将在用于分仓的决定树(类似于
图58中示出的树)的连续级别处检查哪个变量)。在一些实施方案中,模型生成器可利用最
佳实践的知识库来帮助生成并发分仓计划,例如通过查找在过去成功地用于与正生成的模
型相同的问题域(或类似问题域)的配方。

除了并发分?#31181;?#22806;,在一些情况下,可识别各种其他类型的特征变换以用于训练
模型。在所描绘实施方案中,至少部分地由于实现并发分仓计划而获得的特征的初始权重
可存储在参数向量中(元素6110)。可随后例如使用L1或L2正则化或其他优化技术来调整权
重(元素6113)。在一些实施方案中,可基于调整的权重移除至少一些参数向量条目(元素
6116)。例如,可移除其权重降至拒绝阈值以下的条目。在一些实施方案中,类似于图52和图
54的上下文中论述的技术的有效分位数边界估计技术可应用到特征权重的绝对值,并且可
移除其权重落在最低X%中的参数向量条目。在一些实施方案中,可使用迭代方法,其中参
数向量大小可随着识别更多的并发分位数分仓变换而增长,并且随着修剪参数中的一些而
收缩。在训练阶段完成之后,可使用训练的模型来生成关于生产数据和/或测试数据的预测
(元素6119)。也就是说,可使用分配给保留的特征的参数或权重(例如,一些数量的分仓特
征和/或未修剪的一些数量的非分仓特征)来获得预测。

并发分位数分仓可用于多种多样的监督式学习问题,包括在不同实施方案中可使
用各种类型的广义线性模型来解决的问题。在各种实施方案中,类似于上述那些变换的并
发分位数分仓变换还可用于非监督式学习,例如,除了或替代用于监督式学习。在一个实施
方案中,例如,无标记的数据组的变量中的至少一些可并发分仓作为聚类技术的一部分。

用于探索评估结果的?#25442;?#24335;图形界面

如上所述,在不同实施方案中,可使用机器学习服务来训练、评估并随后部署多种
多样的模型以用于生产预测,包括例如分类模型、回归模型等。对于MLS的一些非专家用户,
解释模型执行结果可能不总是直截?#35828;鋇模?#29305;别是结果简单地以文本格式呈现,例如作为
一个或多个数?#24403;?#30340;情况。具体地,使用模型输出的文本版本,一些用户可能相对难以理解
不同质量相关度量(诸如准确度、假阳性率、假阴性?#23454;?之间的关系,以及改变各?#32440;?#37322;相
关设置(诸如分类模型情况下的截止值或分类之间的边界)可能如何影响使用模型做出的
最终业务决定。为了帮助桥接一方面MLS资源的后端计算和推断能力与MLS的用户解释模型
结果并在可能冲突的质量目标之间做出最佳可能权衡的能力之间可能存在的差距,在至少
一些实施方案中,MLS可提供对?#25442;?#24335;图形界面的支持。可例如通过网站或网页(例如,基于
web的MLS控制台的页面)的集合或者通过独立图形用户界面(GUI)工具来实现的这?#32440;换?br />式图形界面可使得MLS的用户能够浏览或探索各种模型执行的结果的可视化(诸如各种训
练后阶段评估运行或评估后生产运行)。在各种实施方案中,界面可允许用户动态地改变一
个或多个解释相关设置、?#31169;?#21508;种质量度量及其相互关系,并且在各种目标之间优先化。

在至少一些实施方案中,界面可包括多个控制元件(例如,滑块、旋钮等),所述控
制元件可由MLS客户端使用来改变一个或多个预测相关设置的值,并且实时观察此类变化
的后果。在一些实现中,可使用连续变化控制元件,诸如滑块,其模拟基础变量或设置的平
滑变化,其中在其他实现中,可使用离散变化控制元件,诸如旋钮,允许选择小组值中的一
个。例如,对于二进制分类模型,客户端可能改变截止值(用于将观察记录放置在一个类或
另一类中的输出变量的边界值),并且动态地观察这种变化将如何影响给定评估运行的假
阳性、假阴性等的数量。在一些实施方案中,界面可允许客户端“反向工程”某些类型的预测
相关选择的影响:例如,客户端可使用滑块控件来指示预测质量结果度量的期望的改变(例
如,二进制分类模型的特定评估运行的假阳性率),并且实时地查看可用于获得结果度量的
期望值的截止值。还可向客户端呈现不同预测质量度量与阈值之间的关系的视觉证据,例
如,当客户端改变给定评估运行的敏感度级别时,可示出所述改变对诸如精度或特异性的
其他度量的影响。使用实?#25351;髦指?#21464;的“what-if”探索的此类界面,MLS的用户可变得更容
易选择设置,诸如分类截止值、在模型的随后运行中模型的预测应被限制到的变量值的范
围等,以便满足用户的特定业务目标(例如,将假阳性保持为低的或将准确度保持为高的)。
在给定的?#25442;?#20250;话期间,用户可以改变多个不同设置或度量并观察所得趋势,而不影响评
估运行的已保存结果中的任一个。在一些实施方案中,用户可通过?#25442;?#24335;界面提交请求以
保存将用于模型的随后运行的一个或多个预测相关设置的各自目标值。

在各种实施方案中,各种可能设置变化的影响的动态显示可通过MLS的后端部件
(例如,在其处获得和存储模型执行结果并且在其处快速量化变化的影响的各种MLS服务
器)与前端或客户端侧装置(例如,在膝上型计算机、台式机、智能电话等处执行的web浏览
器或GUI)之间的有效通信变得可能,在所述前端或客户端侧装置处显示执行结果并且首先
捕获客户端与界面的各种控制元件的?#25442;ァ?#22312;一些实施方案中,在客户端通过界面改变设
置时,改变的指示可快速传输到MLS的后端服务器。后端服务器可计算数据组上的改变的结
果以快速显示,并且将更新显示所必要的数据传输回到前端装置。当诸如滑块的连续变化
控件由客户端使用来从一个值过渡到另一个值时,在一些实现中,前端装置与后端服务器
之间的多个此类?#25442;?#21487;在短时间内发生(例如,可每秒计算和显示几次更新)以便模拟对显
示的连续改变。在至少一些实施方案中,计算客户端指示的改变的至少一些影响所需要的
逻辑可被并入到?#25442;?#24335;界面本身中,或者用于图形显示的客户端侧装置的其他子部件。

图62示出根据至少一些实施方案的示例性系统环?#24120;?#20854;中机器学习服务实现?#25442;?br />式图形界面,使得客户端能够探索各种预测质量度量目标之间的权衡并且修改可用于解释
模型执行结果的设置。在系统6200中,可例如在由MLS的客户端提交的训练请求或模型生成
请求中识别将用于模型的一个或多个训练数据组6202。模型生成器6252可使用训练数据组
6202来训练模型6204以便基于各种输入变量的值(包括例如将早前描述种类的特征变换应
用到原始输入数据的结果)预测观察记录的一个或多个输出变量的值。

在已在足够程度上训练模型6204之后,在所描绘实施方案中,可使用对于其输出
变量的值是已知的观察记录(其不用于训练模型)来执行一个或多个评估运行例如以便确
定模型的预测对在训练期间未检查的观察有多好。在系统6200中,评估数据组6212可包括
此类观察记录。可由模型执行器6254A(例如,在图1中示出的服务器池185的MLS服务器中的
一个处运行的进程)向训练模型6204提供评估数据组6212作为输入。在至少一些实施方案
中,可调度各自的作业(类似于图4中示出的作业)以用于训练模型并用于评估模型。

在所描绘实施方案中,评估的至少一些结果可被封装以便显示给代表其进行评估
的客户端或用户。例如,可针对?#25442;?#24335;图形界面6260(例如,web浏览器或可能已经安装在客
户端计算装置上的定制GUI工具)格式化和传输一组评估运行结果数据6222。结果数据组
6222可包括例如以下的某一组合:评估运行的一个或多个输出变量的统计分布6232,预测
解释阈值(PIT)6234的一个或多个当前选择的或MLS提议的值(例如二进制分类的截止值),
和/或与评估运行有关的一个或多个质量度量6236的值(例如,准确度、假阳性?#23454;?。在一
些实施方案中,例如取决于正使用的图形界面的类型,关于将如何显示结果数据的指令或
指导(例如,网页布局?#38468;?也可从后端MLS服务器传输到将在其处生成数据的图?#38382;?#22270;的
装置。?#25442;?#24335;图形界面6260可包括各种控件,允许客户端在给定?#25442;?#20250;话期间查看评估的
结果、对诸如分类截止等的各种预测设置进行实验并且观察与对此类设置进行改变相关联
的权衡。图63-图69中示出?#25442;?#24335;图形显示器的部件以及可在不同实施方案中使用的各种
控件的实例。

向其显示评估结果数据的客户端可使用控件中的一个或多个来指示一个或多个
设置的期望值或目标值。目标值的选择可涉及在给定会话期间的若干客户?#31169;换?#36845;代
6241,其中例如客户端可进行一次改变、观察所述改变的影响、撤销所述改变、随后进行另
一改变并查看其影响等等。最终,在至少一些情况下,客户端可选择特定设置,诸如预测解
释阈值(PIT)6242的目标值。在至少一些情境下,所选择目标值可不同于MLS最初可提议的
PIT值6234,尽管客户端在某些情况下可能决定不改变所提议PIT值。在至少一个实现中,客
户端选择的PIT值6242可存储在MLS的储存库中,例如图1的?#30772;?#20648;存库120。保存的PIT值
6242可用于生成训练模型6204的一个或多个随后运行的结果,例如,可使用模型执行器
6254A关于评估后或生产数据组6214执行的运行。注意,在至少一些实施方案中,相同模型
执行器6254A(例如,相同的后端MLS服务器)可用于训练模型的评估运行和评估后运行。

图63示出根据至少一些实施方案的可通过?#25442;?#24335;图形界面提供的二进制分类模
型的评估运行的结果的示例性视图。在所描绘实施方案中,结果可显示在形成用于与机器
学习服务?#25442;?#30340;基于浏览器的控制台的一部分的网页6300中。在其他实施方案中,可使用
不需要使用web浏览器的独立GUI(例如,在诸如膝上型计算机、台式机、平板机或智能电话
的客户计算装置处执行的瘦客户端程序或胖客户端程序)来提供具有?#25442;?#24335;控件的类似视
图。

网页6300的消息区域6302指示所显示数据对应于模型(“M-1231”)的特定评估运
行,其中特定数据组“EDS1”用作模型的输入。在所描绘实例中,M-1231是二进制分类模型,
即,其目标是将评估数据组EDS1的观察记录分类为两个类(诸如简单标记为“0”和“1”的类)
中的一个的模型。消息区域还包括与图G1以及滑块控件S1的使用有关的说明性文本。

图G1示出了标记为“得分”的输出变量的分布:即,X轴表示得分的值,而Y轴指示评
估数据组EDS1的观察记录的数量。基于得分值和被称为“截止”的分类边界,将观察记录中
的每一个放置在两个类“0”和“1”中的一个中。在所描绘情?#25345;校?#20363;如,如果得分值是0和1范
围内的实数,并且截止值设置为0.5,那么具有0.49的得分的EDS的观察记录将放置在“0”类
中,而具有0.51的得分的观察记录将放置在“1”类中。二进制分类的截止?#24403;?#31034;预测解释阈
值(PIT)的一个实例;其他预测解释阈值可用于各种类型的机器学习问题。例如,在一些类
型的回归问题中,表示可接受均方误差?#27573;?例如,X与Y之间的均方误差值)内的预测的输
出变量的子?#27573;?#30340;边界可充当预测解释阈值。对于n路分类,用于决定特定观察记录将放置
在N个类中的哪一个(或者观察记录是否应被认为未分类)的一个或多个输出变量的边界值
可表示预测解释阈值。

在所示实例中,EDS中的每个观察记录可包括标签“0”或“1?#20445;?#25351;示关于观察记录的
“地面真值”。这些标签用于划分绘图G1的观察记录,例如,使用曲线“标记为“0”的记录”指
示标签为“0”的记录,而使用曲线“标记“1”的记录”指示剩余记录。在两组中的每一个中,假
设0.5的截止值(如页面6300的元素6350中指示的),一些观察记录放置在正确的类中,而其
他观察记录放置在不正确的类中。如果对于给定观察记录地面真值为“0?#20445;?#24182;?#19994;?#20998;小于截
止值,那么产生称为“真阴性”的正确分类结果,也就是说,标签的正确值为“0”并且使用截
止值选择的类与正确值匹配。如果地面真值为“1”并?#19994;梅指?#20110;截止值,那么产生称为“真
阳性”的正确分类。如果地面真值为“0”并?#19994;梅指?#20110;截止值,那么产生称为“假阳性”的不
正确分类。最后,如果地面真值为“1”并?#19994;?#20998;低于截止值,那么观察记录放置“0”类中,并
且产生称为“假阴性”的不正确分类。对于二进制分类问题中的给定观察记录可能的四种类
型的决定(真阳性、真阴性、假阳性和假阴性)在本文中可被称为各自的“预测解释决定”。当
其他类型的机器学习模型时,可做出其他类型的预测解释决定。

在图G1中,由曲线ABCEA界定的区域表示真阴性,并且由曲线CFGD界定的区域表示
真阳性。表示“0”和“1”标签的曲线之间的交叉区域表示错误的分类决定。假阳性由当前截
止值6320的?#20918;?#30340;交叉区域HCD表示,而假阴性由当前截止值6320的左边的交叉区域CHE表
示。图G1下方的条B1中也示出四种类型的决定的相对数量?#36203;?#38452;性6331、真阳性6334、假阴
性6332和假阳性6333。在至少一些实施方案中,可在网页6300中显示对应于四种类型的预
测解释决定的评估数据组中的观察记录的百分比和/或实际计数。例如,在图63中,EDS1的
4502个或45%的观察记录对应于真阴性、698或7%是假阴性、1103或11%是假阳性以及
EDS1的剩余3698个记录或37%是真阳性。

在所描绘实施方案中,除了使用诸如G1的图和诸如B1的条来显示评估运行的结果
之外,网页6300还可以表格形式指示至少一些度量。例如,网页的区域6351可指示EDS1的观
察记录的总数、截止值、放置在“1”类(假阳性和真阳性的和)以及放置在“0”类(真阴性和假
阴性的和)中的记录的数量/百分比、针对其做出正确分类决定(真阴性和真阳性的和)的记
录的数量/百分比以及针对其做出不正确决定(假阳性和假阴性的和)的记录的数量/百分
比。在一些实施方案中可显示其他度量。

在网页6300中,响应于用户?#25442;ィ?#21487;动态地重绘或更新多个图形和/或文本元素。
因此,例如,被授予?#23454;?#26435;限的用户可使用鼠标(或者在触摸屏接口的情况下,铁笔或手指)
来操纵滑块控件S1。S1可向左移动(如箭头6310指示)以减小截止值,或者向右移动(如箭头
6311指示)以增大截止值。当截止值改变时,落入四个决定组中的一些或全部的观察记录的
数量可改变(如图64a和图64b中示出并且以下更详细论述的),并且此类变化在网页6300中
可实时地更新。另外,在截止值改变时,区域6351中示出的度量的值也可动态地更新。此类
动态更新可向用户提供改变截止值对用户?#34892;?#36259;的度量的影响的容易理解的视图。在一些
实施方案中,用户可能够改变其?#24403;?#21160;态地显示?#36879;?#26032;的度量组,例如其值由由于点击链
接6354而显示的默认或“高级”度量显示的度量。在一些实现中,可使用诸如颜色编码、变化
厚度的线、变化字体等的其他视觉提示来在图G1、条B1、区域6351等的各部分之间进行区
分。

在至少一些实施方案中,机器学习服务可将当前与给定模型相关联的截止值(或
其他预测解释阈值)保存在储存库中。在一个实施方案中,截止的初始提议值可由MLS本身
选择,并且此值(例如,在图63所示的示例性情?#25345;?#30340;0.5)可存储为默?#29616;怠?#25480;权用户可使
用诸如网页6300的界面来探索改变截止的影响,并且随后决定应将截止的新值用于模型的
一个或多个随后运行(例如,另外评估运行或评估后生产运行)。可指示MLS使用网页6300的
按钮控件组6352的“保存新截止”按钮来保存截止的新值以用于未来运行。如以下更详细论
述?#27169;?#22312;一些实施方案中,用户可能够例如使用“编辑类标签”按钮控件来将分类标签(诸如
“0”和“1”)改变为更有意义的?#22336;?#20018;。可使用“重置截止”按钮控件来将截止重置为其默认
值。在至少一些实施方案中,对正显示的评估结果不满意的用户可例如使用按钮控件组
6352中示出的按钮控件“重新评估模型”或“重新训练模型”来通过网页6300提交重新评估
模型或重新训练模型的请求。一些请求可能需要MLS后端与客户端的另外?#25442;?#20197;确定另外
参数(例如,可指定新的评估数据组用于重新评估)。在所描绘实施方案中,响应于客户端点
击按钮6352中的一个,可显示不同的网页以使得能够指示另外参数。在各种实施方案中,可
实现除了图63中示出的那些控件之外的其他类型的控件以实?#25351;?#31181;模型类型的类似类型
的功能。在一些实施方案中,可实?#33267;?#32493;变化控制元件以使得客户端能够?#20132;?#22320;改变诸如
截止值的设置,而在其他实施方案中,可使用允许用户从几个离散预定义值选择的离散变
化控制元件。

图64a和64b集体示出根据至少一些实施方案的由客户端通过对?#25442;?#24335;图形界面
的特定控制指示的预测解释阈值的变化对一组模型质量度量的影响。图64a示出了二进制
分类模型的评估运行的结果,其中截止值设置为值C1。利用这个截止值,如图G2和条B2指示
?#27169;?#23545;示例性评估数据组的4600个观察记录(总数的46%)做出真阴性决定,而对3400个观
察记录做出真阳性决定。700个决定是假阴性,并且1300个是假阳性。

取决于应用,客户端可向与模型有关的各种质量度量分配不同的优先级或不同的
重要性级别。例如,如果假阳性分类的?#22909;?#19994;务后果比假阴性的?#22909;?#19994;务后果高得多,那么
客户可决定应在一个方向上改变模型的解释阈值,使得通常可能将出?#25351;?#23569;的假阳性决
定。考虑这种情?#24120;?#20854;中使用二进制分类模型来确定在线业务的特定客户是否已尝试欺诈
交易(例如通过使用他人的信用卡)。如果观察记录被分类为“1?#20445;?#37027;么可联系并告知对应的
客户怀疑他们的交?#36164;?#27450;诈交易。这意味着,如果做出假阳性决定,那么客户端可能被错误
地指控欺诈行为。在这种情境下,电子商务运营商可决定:如果在假阴性与假阳性之间做出
权衡,那么与假阳性相比,他们将更?#19981;?#20551;阴性。在假阴性的现实世界后果高得多的情境
中,例如在肿瘤检测应用(其中可能肿瘤的治疗可能被拒绝给其观察被错误地分类为假阴
性的患者)中,相反的权衡可能是优选的。

对于在图64a的示例性情?#25345;?#35299;决的特定机器学习问题,客户端已确定假阳性的
比率太高,并因此已经决定使用滑块S1将截止值从C1增加到C2,如箭头6434指示的。图64b
中示出增加的影响。当滑块向右移动时,可实时地改变将受到改变的截止值影响的图形G2
的若干子区域的视觉特性(例如,阴影、颜色等)。例如,假阳性的数量按预期减少,从1300
(图64a中)降至500(图64b中)。虽然真阴性的数量保持不变,为4600,但假阴性的数量大幅
增加,从700增加到1800。真阳性的数量也在一定程度上减少,从3400到3100。在各种实施方
案中,改变截止值的影响的动态可视化可帮助MLS客户端做出比仅提供各度量的文本表示
的情况下可能做出的决定更明智的决定。另外,仅提供文本表示可能使得更难以针对截止
值或其他类似预测解释阈值决定特定目标,因为在仅文本的情?#25345;?#21487;能更难以理解各种度
量围绕阈值的特定值的变化率。例如,截止值的小变化可能对得分值的一些子?#27573;?#20013;的假
阳性率或假阴性?#31034;?#26377;比其他值大得多的影响,并且在没有动态更新的图(诸如图64a和
64b中示出的那些图)的情况下,此类高阶效应可能难以理解。

如图63中指示?#27169;?#22312;各种实施方案中,可以表格形式(如在区域6351中)或者使用
图形元件来示出多个不同预测质量度量。图65示出根据至少一些实施方案的与其各自控件
可包括在?#25442;?#24335;图形界面中的机器学习模型的评估运行有关的高级度量的实例。图63中显
示的多数内容与图63的网页6300的内容相同。图63和图65之间的主要差异在于,由于用户
点击网页6300的链接6354,现在正显示另外度量(超出区域6351中所示的那些度量)。在所
描绘实例中,示出了用于预测质量度量敏感度(滑块6554A)、特异性(滑块6554B)、精度(滑
块6554C)和F1得分(滑块6554D)的各?#36816;交?#22359;控件6554。在至少一些实施方案中,客户端
可能够决定他们希望查看和/或修改哪些度量,作为显示默认或核心度量组的区域6351的
一部分,或者在高级度量区域中。在各种实施方案中,可用于显示和/或操纵的度量可取决
于模型的类型变化,并且可尤其包括:准确度度量、召回度量、敏感度度量、真阳性率、特异
性度量、真阴性率、精度度量、假阳性率、假阴性率、F1得分、覆盖度量、绝对百分比误差度
量、平方误差度量或AUC(曲线下区域)度量。在一些实施方案中,客户端可能够使用界面来
在核心度量组与高级度量组之间移动度量,和/或定义将包括在一个或两个组中的另外度
量。

在图65示出的实施方案中,滑块6554A-6554D和滑块S1的组合可由客户端使用来
可视地探索不同度量之间的关系。例如,使用滑块S1改变截止值可导致对滑块6554A-6554D
的位置的动态更新(以及对条B1和区域6351的更新),在视觉上指示截止值如何影响敏感
度、特异性、精度和F1得分。改变滑块6554A-6554D中的任何一个的位置可导致对S1、条B1和
剩余滑块6554的对应实?#22791;?#21464;。在一些实施方案中,客户端可能够例如通过选择将用于不
同度量的特定类型的控件(滑块、旋钮等)来改变在?#25442;?#24335;界面中显示的各个区域的布?#37073;?br />哪些度量可使用图形控件直?#26377;?#25913;并且哪些度量将以文本格式显示。

图66示出根据至少一些实施方案的可用于修改分类标签并查看基于输出变量值
选择的观察记录的?#38468;?#30340;?#25442;?#24335;图形界面的元件的实例。在所描绘实施方案中,MLS(或代
表其训练和评估模型的客户端)可能已初始地为观察记录将放置在其中的类选择默认名称
“0”和“1”。稍后,客户端可决定更为用户友好的名称应该用于分类。因此,在所描绘实施方
案中,可点击“编辑类标签”按钮,并且可显示更小的弹出窗口6605。在窗口6605中,用户可
输入标签的新名称,诸如指示模型基于关于购物者将进行购买(“1”类)或?#25442;?#36141;买(“0”类)
的可能性的预测分类购物者的?#23433;换?#36141;买”(替换标签“0”)和“愿意购买”(替换标签“1”)。

在各种实施方案中,可向MLS的?#25442;?#24335;图形界面的用户提供多个其他控件。在一些
实施方案中,例如,客户端可能希望检查观察记录的?#38468;冢?#23545;于所述观察记录,由模型计算
特定得分。在图66示出的实施方案中,用户可在图G1中的各个点处(例如,在点6604处,对应
于大约0.23的得分)鼠标点击,并且界面可通过显示具有接近由在点处点击指示的得分值
的得分值的观察记录列表6603来响应。在其他实现中,可使用其他类型的接口,诸如指尖或
铁?#30465;?#24403;客户端在点6604处点击时,在所描绘实例中,可示出具有对应链接的三个观察记录
OR231142、OR4498和OR3124的列表6603。如果并?#19994;?#23458;户端点击列表的观察记录的标识符
中的一个时,所述观察记录的各种变量的值可显示在另一窗口或面板中,诸如所描绘实例
中的OR内容面板6642。观察记录OR4498的输入变量IV1、IV2...IVn的值可示出为点击图66
中示出的实例中的列表6603的对应链接的结果。

在图63-图66中,示出了与二进制分类模型的评估有关的显示视图和?#25442;ァ?#22312;至少
一些实施方案中,可支持允许MLS客户端探索并与其他类型的模型的评估结果?#25442;?#30340;类似
显示。图67示出根据至少一些实施方案的可通过?#25442;?#24335;图形界面提供的多路分类模型的评
估运行的结果的示例性视图。如所示,网页6700包括指示所显示数据对应于模型(“M-
1615”)的特定评估运行的消息区域6702,其中特定数据组“EDS3”用作模型的输入。示出了
评估运行的4路分类的增强混淆矩阵6770。对于四个类“类1”至“类4?#20445;?#23454;际或真实填充量
(和对应的实际百分比)在标记为6772的列中示出。这四个类在本文可集体称为“非默认
类”。

在所描绘实施方案中,模型“M-1615”基于至少两个因素将观察记录分类成五个类
(四个非默认类“类1”至“类4?#24065;?#21450;标记为“无”的默认类):(a)任何给定观察记?#38469;?#20110;四个
非默认类中的任一个的预测概?#21097;?#20197;及(b)用于将记录放置到非默认类而不是默认类中的
最小预测概率阈值(MPPT)。对于评估数据组EDS3的每个观察记录,可计算记?#38469;?#20110;每个非
默认类的的各自概率。如果四个预测概率中的任何一个超过MPPT,那么记录可放置到对应
类别中。例如,考虑这种情?#24120;?#20854;中MPPT被设置为25%,并且模型预测给定记录OR1属于四个
非默认类的概率是67%(“类1”)、35%(“类2”)、2%(“类3”)和6%(“类4”)。在这种情况下,
OR1将放置在“类1”中,因为67%超过了MPPT值25%。如果例如使用滑块6750将MPPT改变为
70%,那么OR1将相反放置在“无”类中,因为67%小于70%,并且用户将能够地查看矩阵
6770中动态更新的改变。在至少一些实施方案中,默认或提议的MPPT值可由MLS设置为(1/
(非默认类的数量))(例如,对于四个非默认类,模型将提议1/4或25%作为MPPT)。因此,
MPPT可被认为是多路分类模型的预测解释阈值(PIT)的实例。

在4×5预测百分比矩阵6775中示出了放置在五个分类中的每一个中的每个类的
观察的百分比。在所描绘实例中,如列6772中指示?#27169;?#22312;10000个总观察中,2600个观察记录
实际上在“类1”中,而模型预测总共3176个观察记?#38469;?#20110;“类1”如在区域6780中指示的。在
实际属于“类1”的2600个观察中,95%被正确地预测为属于“类1?#20445;?%被不正确地预测为属
于“类2?#20445;?%属于“类3?#20445;?%属于“类4?#20445;?#24182;且0%属于“无?#20445;?#22312;MPPT的当前值的情况下。在各
种实施方案中,除了图67中示出的矩阵元素之外,可使用与图63中示出的技术类似的技术
指示其他度量(诸如预测的整体准确度),例如,可提供与多路分类有关的一组核心度量或
用于查看高级度量的链接。在一些实施方案中,用户可能够为不同类指定各自的MPPT,并且
可能够动态地查看那些变化的影响。在至少一个实施方案中,矩阵元素可以是颜色编码?#27169;?br />例如,随着百分比更接近100%,对应元素的颜色或背景可设置为更接近深绿色,并且随着
百分比更接近0%,对应元素的颜色或背景可设置为更接近亮红色。

在一些实施方案中,MLS可提供?#25442;?#24335;图形显示器,以使得用户能够精确地定义或
选择将如何定义回归模型的预测误差,和/或探索针对所选择误差容限阈值的预测误差的
分布。图68示出根据至少一些实施方案的可通过?#25442;?#24335;图形界面提供的回归模型的评估运
行的结果的示例性视图。如所示,网页6800包括指示所显示数据对应于模型(“M-0087”)的
特定评估运行的消息区域6802,其中特定数据组“EDS7”用作模型的输入。在页面6800的右
侧,为客户端提供了若干不同选项来选择最?#34892;?#36259;的误差定义,并且提供区域6812中的滑
块S1以指示将用于在图6800中显示误差分布的误差容限阈值。当前已经选择输出变量的预
测值与真值之间的差的绝对值作为误差定义(如区域6804中的所选择单选按钮控件指示
的)。滑块S1当前定位成指示具有不大于60(鉴于区域6804的当前误差定义的最大可能误差
为600)的值的误差是可容忍的。在图6820中,示出了针对真值的不同?#27573;?#30340;可接受预测
(即,当前由滑块S1指示的容限极限内的预测)和超容限预测的分布。当滑块S1向左或向右
移动时,可接受预测6868与超容限预测6867之间的边界可改变。如果客户端希望使用不同
的误差定义,那么若干选择是可用的。例如,通过选择区域6806中的单选按钮而不是区域
6804中的按钮,客户端可将误差定义为真值与预测值之间的(非绝对)算术差,指示预测误
差的方向对客户端很重要。使用区域6808中的单选按钮,误差的方向及其相对于真值的值
都可包括在误差定义中。一些用户可希望指示他们自己的误差定义,这可通过选择区域
6810中的单选按钮并点击所提供链接来完成。当客户端改变误差的定义时,在至少一些实
施方案中,区域6812的错误容限滑块标度中的最大误差也可相应改变。使用图68中示出种
类的?#25442;?#24335;控件,MLS客户端可能够针对其特定回归问题选择最?#23454;?#30340;误差定义,并?#19968;?br />(基于它们的误差容限水平)确定预测最大和最小误差量的输出值的?#27573;А?#22312;一些实施方案
中,还可或替代地显示回归模型的其他类型的?#25442;?#24335;可视化。。

图69是示出根据至少一些实施方案的可在实现使得客户端能?#25442;?#20110;探索评估结
果修改预测解释设置的?#25442;?#24335;图形界面的机器学习服务处执行的操作的方面的流程图。如
元素6901所示,例如响应于通过编程接口从客户?#31169;?#25910;的请求,可在机器学习服务处训练
特定模型M1。模型可针对给定观察记录组的每个观察记录计算一个或多个输出变量的值,
诸如OV1。如元素6904所示,可进行评估运行ER1以获得给定评估数据组的每个记录的各自
OV1值。

可生成表示评估运行ER1的结果的至少所选择子集的数据组DS1,用于通过?#25442;?#24335;
图形显示器显示(元素6907)。针对其获得DS1的?#25442;?#24335;显示器可包括各种控制元件,诸如连
续变化滑块元件和/或离散变化元件,所述元件可用于改变一个或多个预测相关设置,诸如
分类截止值和/或各种其他类型的预测解释阈值。对应于ER1的多个不同数据元素中的任一
个可被包括在数据组DS1中用于显示,诸如OV1或其他输出或输入变量的统计分布、一个或
多个预测质量度量(诸如(在二进制分类模型评估的情况下)真阳性、假阳性、真阴性和假阴
性的数量和/或百分比)以及预测解释阈值的至少一个提议的或默?#29616;怠?#22312;所描绘的实施方
案中,数据组DS1可传输到将在其上显示图形界面的装置(例如,具有web浏览器或安装的独
立GUI工具的客户端拥有的计算装置)(元素6910)。

基于用户对图形界面的一个或多个?#25442;?#24335;控件的操纵,可确定特定预测解释阈值
(PIT1)的目标值,诸如二进制分类的截止值(元素6913)。在一些实施方案中,可在正显示图
形的计算装置处检测控件的操纵(例如,可使用鼠标、铁笔或指尖来执行),并且可例如使用
类似于早前描述的那些API的一个或多个API的调用将所述操纵传送回到MLS的一个或多个
其他部件(诸如后端服务器)。在其他实施方案中,控件的操纵的指示不需要传输到后端MLS
服务器;相反,更新显示所需的一些或全部计算可在显示图形界面的装置?#29616;?#34892;。可计算由
控件的操纵引起的对DS1的一个或多个其他元素的改变(元素6916),并?#19994;?#29992;户移动控制
元件时,可实时地发起对显示的对应改变。在一个实现中,可在执行诸如滑块的图形控制元
件的位置的改变?#22791;?#36394;它们,并且可尽可能快地将各种度量的对应的更新值传输到显示装
置,以给予用户对图形控制元件的操纵的瞬时或接近瞬时响应的印象。在所描绘实施方案
中,如果并?#19994;?#29992;户指示将保存PIT1的特定目标值,例如用于在模型的随后运行期间使用,
那么可将目标值存储在MLS储存库中(元素6919)。在一些实施方案中,可针对模型、用户、评
估数据组和/或使用案例的不同组合保存不同的PIT1值,例如,可使用元组(模型ID,评估数
据组ID,用户/客户端ID,使用案例ID)的某一组合索引包含所选择PIT值的储存库记录。

可使用所保存PIT1值来生成一个或多个评估后模型执行的结果,并且将所述结果
提供给?#34892;?#36259;的客户端(元素6922)。在一些实施方案中,所保存PIT1值可用于其他评估以
及或者代替用于评估后运行。在一个实施方案中,也可通过?#25442;?#24335;图形界面的元件接收训
练模型的初始请求(或重新训练/重新评估模型的请求)。在一些实施方案中,图形界面还可
显示与模型评估和/或代表客户端执行的其他活动有关的警报或信息消息,诸如在给定评
估运行期间检测到的异常或不寻常结果的列表。在一个实施方案中,例如,MLS可检查评估
数据组的输入变量的统计分布与训练数据组中的相同变量的统计分布多么地不同,并且如
果发现分布为基本上不同则显示警报。在至少一些实施方案中,若干不同评估运行的结果
可显示在界面的单个视图中(例如,通过模拟其中在不同“深度”处示出不同评估运行的结
果的3维显示器或者通过根据不同评估运行计算平均结果)。

在至少一些实施方案中,代替或除了图63-图68中示出的网?#25345;?#31867;之外,诸如命令
行工具或应用编程接口(API)的其他类型的?#25442;?#24335;接口可用于实现类似目标。因此,例如,
MLS客户端可通过命令行工具或API调用提交一个或多个请求,以接收各种类型的模型的评
估运行的预测结果的分布的指示,包括分类和/或回归模型。客户端可与接口?#25442;?例如,提
交新命令或调用不同的API)以指示对预测解释阈值的改变,并且可相应(例如,以文本格
式)显示对各种度量的对应改变。类似地,客户端可使用API或命令行来指示特定解释阈值
将被保存以供在模型的随后运行中使用。在一些实施方案中,可使用文本符号提供图63-图
68中示出的至少一些图形显示的近似,例如,可使用ASCII?#22336;?#30340;组合显示图的相对?#33268;?#29256;
本。在一些实施方案中,可使用基于语音和/或姿势的MLS接口。

检测复本观察记录

对于若干类型的机器学习问题,如前所述,观察记录的集合可?#33267;?#25104;若干类型的
数据组用于模型开发和使用的各自阶段。例如,一些观察可包括在用于生成模型的训练数
据组中,并且其他观察可包括在将用于确定模型的预测的质量的一个或多个测试或评估数
据组中。(对于关于复本检测的以下论述,术语“测试数据组”和“评估数据组”在本文中可同
义使用;类似地,确定模型的预测的质量或准确度的过程可被称为模型的“评估”或“测
试”)。在训练模型之后使用测试数据组的主要目标之一是确定训练模型能够如何良好地推
广到训练数据之外:也就是说,训练模型可如何准确地预测不包括在训练数据组中的“新”
观察的输出变量值。如果测试数据组碰巧包括也在训练数据组中的许多观察,那么使用测
试数据组进行的预测的准确度似乎可能很高,这主要是由于训练数据组与测试数据组之间
的观察记录的重复,而不是因为模型的优越泛化能力。

在本文描述种类的大规模机器学习服务(MLS)处,这些数据组中的每一个可能潜
在地包括数百万个观察记录,并且有时可能是这种情况:至少一些观察记录可能从训练数
据组“泄漏”到对应测试数据组,例如,由于在训练数据组和测试数据组之间?#33267;?#25968;据时的
误差,或者由于无意使用类似或重叠数据文件用于训练阶段和测试阶段。当模型的训练阶
段和评估阶段在时间上分开(例如,按小时、天或周算)和/或在不同组的MLS服务器?#29616;?#34892;
时,这种数据泄漏的概率甚至可能更大,如给定训练数据组的大小和MLS的分布和并行架构
可是这种情况。为了避免MLS客户通过无意地使用重叠或相同的数据组来训练和评估而浪
费大量时间和/或金钱的情?#24120;?#22312;至少一些实施方案中,MLS可对观察记录的有效检测提供
支持,所述观察记录是(或至少可能是)跨数据组的复本。在没有这种支持的情况下,客户可
等待直到测试或评估运行结束、检查运行的结果,并且随后才能够做出关于测试数据是否
包括训练数据观察记录的主观判断(例如,如果结果看起来意外地准确)。使用如下所述的
复本检测能力,在给定数据组DS1(诸如模型的测试数据组)的处理期间,可相对早地告知
MLS客户DS1是否有高概率包含也在第二数据组DS2(诸如模型的训练数据组)中的记录,并
且可因此能够避免浪费资源。在至少一个实现中,可针对至少一些数据组默认地执行这种
复本检测,而不需要显式客户端请求。

图70示出根据至少一些实施方案的可利用机器学习数据组的空间有效表示来确
定机器学习服务处一个数据组是否可能包括另一数据组的复本观察记录的示例性复本检
测器。在所描绘实施方案中,可在MLS处识别将用于训练特定机器学习模型7020的训练数据
组7002,例如由于客户端调用MLS的编程接口,诸如早前描述的“createModel”接口。稍后,
代表其训练模型的客户端可能希望具有使用测试数据组7004评估的模型7020的质量,或者
MLS本身可识别将用于评估的测试数据组7004。数据组7002和7004中的每一个可包括某一
数量的观察记录(OR),诸如训练数据组7002的OR Tr-0、Tr-1和Tr-2,以及测试数据组7004
的OR Te-0和Te-1。任一数据组的OR中的单独一个可包括某一数量的输入变量(IV)诸如
IV1、IV2等等以及一个或多个输出变量OV的各自值。在至少一些实施方案中,并非任一数据
组的所有OR可能必须包含所有IV的值,例如,一些输入变量的值可能在一些观察记录中遗
漏。在至少一些情况下,在使用训练数据组7002训练模型7020时,可能不一定已识别测试数
据组7004。

在所描绘实施方案中,可构造可用于复本检测的训练数据组的至少一个空间有效
的替代表示7030,诸如布隆过滤器。在一些实施方案中,可构造其他类型的替代表示,诸如
跳过列表或商过滤器。为?#26031;?#36896;给定空间有效表示7030,在一些实施方案中可使用复本的
对应定义7035,诸如指示当将OR指定为另一个的复本时是否将考虑观察记录的所有变量或
者将是否考虑变量的某一子集的定义。图72中提供并且以下更详细地论述可适用于给定数
据组的不同复本定义7035的实例。在一些实施方案中,可与模型的训练并行地生成和存储
替代表示,使?#32654;?#22914;,对于(a)训练模型和(b)创建和存储替代表示7030可能仅需要单遍通
过训练数据组7002。在一些实现中,替代表示可比训练数据组本身所占据的存储装置或存
储器少得多(例如,小数量级)。

在所描绘实施方案中,MLS的概率复本检测器7036可使用替代表示7030来进行关
于测试数据组7004的给定OR Te-k的以下确定中的一个:(a)Te-k不是训练数据组的任一OR
的复本或(b)Te-k具有作为训练数据组的OR的复本的非零概率。也就是说,虽然概率复本检
测器7036可能不能提供关于复本的存在的100%确定性,但检测器可能够以100%确定性确
定给定测试数据组OR不是复本。在一些实施方案中,概率复本检测器7036可能够估计或计
算与将给定OR标记为复本相关联的置信水平或确定性水平。

复本检测器7036可检查测试数据组7004的某一数量的OR,并?#19968;?#24471;所检查OR的一
个或多个复本度量7040。取决于已被识别为可能或可能复本的OR的数量或分数,在一些实
施方案中,复本度量可本身在本质上是概率性的。例如,它可表示语句“X%的测试组观察记
录具有大于或等于Y%的为复本的各自概率”的逻辑等效物。在至少一个实施方案中,可向
客户端提供关于一个或多个观察记录是否为复本的置信水平的指示。当然,如果没有发现
所检查测试组OR具有为复本的非零概?#21097;?#37027;么度量7040可以100%确定性指示所检查测试
数据是无复本的。当获得复本度量时,在一些实施方案中,复本检测器7036还可考虑与正使
用的特定替代表示相关联的假阳性复本检测的预期比率。例如,如果用作替代表示7030的
布隆过滤器具有8%的预期假阳性?#21097;?#24182;且检测到的复本的分数也是8%(或更小),那么复
本度量可简单地指示所识别可能复本的数量在可接受?#27573;?#20869;。在至少一些实施方案中,可
基于诸如训练数据组的大小、替代表示的复本预测的期望假阳性?#23454;?#31561;的因素选择在生成
替代表示中使用的各种参素(例如,用于布隆过滤器的位的数量和/或用于生成布隆过滤器
的散列函数的数量和类型)。

在至少一些实施方案中,如果复本度量7040满足阈值标准,例如,如果多于k%的
测试数据具有为复本的非零概?#21097;?#37027;么可由MLS实现一个或多个复本响应7045。在不同实施
方案中可进行多个不同响应动作中的任一个,例如,可向客户端发送指示复本的可能性的
警告消息,可能复本可从测试数据组7004中移除或删除,涉及使用测试数据的机器学习作
业可能?#36745;?#20572;、取消或?#29260;?#31561;等。在至少一些实施方案中,由MLS采取的响应动作可取决于
复本度量7040。例如,如果发现测试数据组的大部分是无复本?#27169;?#37027;么可向客户端传输指示
潜在复本的(小)部分的警告消息,而如果发现大部分测试数据组为潜在复本,那么模型
7020的评估可?#36745;?#20572;或停止,直到客户?#31169;?#20915;?#23435;?#39064;。在一些实施方案中,可使用测试数据
组7004与模型7020的评估并行地执行复本分析,使得可能仅需要单遍通过测试数据组。在
一个实施方案中,客户端可指示(例如,通过MLS的编程接口)将由MLS使用以确定是否满足
需要响应动作的阈值准则的一个或多个参数(或其他形式的指导)。例如,客户端可指示,如
果测试数据组的随机选择的观察记录是复本的概?#39135;?#36807;P1,那?#20174;?#37319;取特定响应动作。MLS
可随后将这?#25351;?#32423;指导转换成将用于测试数据组的特定数?#28857;?#20540;(例如,仅当可用的Y个测
试数据组记录中的至少X个已被识别为复本时才采取响应动作)。在此类情?#25345;校?#23458;户?#31169;?br />不一定必须知?#36182;图断附冢?#35832;如测试数据组记录的总数或将触发响应的复本的实际数量。
在一些实施方案中,客户端可以编程方式指定将针对一个或多个复本度量阈值实现的响应
和/或阈值本身的?#22270;断附凇?br />

在至少一个实施方案中,复本检测器7036可在发起响应7045的生成之前不等待处
理整个测试数据组7004,例如,如果从具有一百万个OR的测试数据组检查的前100个观察记
录中多于80个具有为复本的非零概?#21097;?#37027;么可生成响应而不必等待检查剩余的OR。如以下
所述,在一些实施方案中,图72中示出的技术可用于识别给定数据组内(例如,在训练数据
组本身内、在测试数据组本身内,或在将划分为训练数据组和测试数据组的?#33267;?#21069;数据组
内)的可能复本,或者跨任何期望对的数据组识别可能复本。因此,在此类实施方案中,技术
的使用可不仅限于检查测试数据组是否可包含训练数据观察记录的复本。注意,在一个实
施方案中,至少对于一些数据组,用于复本检测的替代表示不需要一定使用比数据组的原
始表示少的存储装置(或更少的存储器)。

图71a和图71b集体示出根据至少一些实施方案的用于机器学习服务处的复本观
察记录的概率检测的布隆过滤器的使用的实例。在所描绘情?#25345;校?#21253;括16位(位0至位15)的
布隆过滤器7104示出为从包括OR 7110A和7110B的训练数据组构造。在所描绘实施方案中,
为?#26031;?#36896;布隆过滤器,给定OR 7110可提供作为对一组散列函数H0、H1和H2中的每一个的输
入。随后可例如使用模函数将每个散列函数的输出?#25104;?#21040;过滤器7104的16位中的一个,并
且那个位可被设置为1。例如,关于OR 7110A,使用散列函数H0将布隆过滤器的位2设置为1,
使用散列函数H1将位6设置为1,并且使用散列函数H2将位9设置为1。关于OR 7110B,位4、位
9(已设置为1)和位13被设置为1。如在OR 7110A和7110B?#21152;成?#21040;的位9的情况下,在布隆过
滤器内的给定位置处存在1可由针对不同OR生成的散列值(或者甚至由使用不同散列函数
针对相同OR生成的散列值)造成。这样,在过滤器的任何给定位位置组处1的存在可能不唯
一地或必然地暗示在用于构造过滤器的数据组中存在对应OR。布隆过滤器7104的大小可远
小于用于构建过滤器的数据组,例如,512位的过滤器可用作?#21018;鬃纸?#25968;据的替代表示。

如图71b中指示?#27169;?#30456;同的散列函数可应用到测试数据组OR7150(例如,7150A和
7150B)以便检测关于训练数据组的可能复本。如果特定测试数据组OR 7150?#25104;?#21040;包含至
少一个零的一组位,那么复本检测器可确定地确定OR不是复本。因此,OR 7150A?#25104;?#21040;位3、
位6和位10(分别使用散列函数H0、H1和H2),在过滤器已使用整个训练数据组完全填充之
后,其中的两个(位3和位10)碰巧在布隆过滤器7104中包含零。因此,在复本检测分析的结
果7190中,OR 7150被指示为不是复本。相比之下,OR 7150B?#25104;?#21040;位4、位9和位13,所有这
些都碰巧在完全填充的布隆过滤器中包含1。因此,在结果7190中,OR 7150可被指示为可能
的复本,具有FP1的某一基础假阳性率。假阳性率FP1可以是布隆过滤器的大小(使用的位
数,在这种情况下为16)、所使用的散列函数的数量和/或类型和/或用于构建过滤器的观察
记录的数量的函数。在一些实施方案中,可通过布隆过滤器生成过程的可调参数7144来选
择过滤器大小以及所使用散列函数的数量和类型。例如,可基于训练数据组的观察记录的
估计或预期数量、观察记录的估计或预期大小等等来选择不同的参数值。其他类似参数可
支配从诸如商过滤器或跳过列表的数据组的其他类型的替代表示所预期的假阳性率。注
意,示出的布隆过滤器7104的大小(16位)不旨在表示优选或所需的大小;可使用任何期望
数量的位,并且在不同实施方案中可采用任何期望数量的任何优选类型的散列函数。例如,
一些实现可使用MurmurHash函数,而其他实现可使用Jenkins散列函数、Fowler-Noll-Vo散
列函数、CityHash函数或者此类散列函数的任何期望的组?#31232;?br />

在一些实施方案中,可基于诸如以下因素在MLS处选择诸如过滤器的大小和/或所
使用的散列函数的数量和类型的参数:训练数据组的估计或实际大小、期望的假阳性率、不
同散列函数的计算需求、不同散列函数的随机化能力等等。在不同OR可占用不同空间量的
至少一个实施方案中,MLS可通过检查前几个记录并且将训练数据组文件的文件大小除以
前几个记录的平均大小来估计训练数据组中的观察记录的数量。此方法可使得MLS能够例
如在模型也被训练时在单遍通过训练数据组时生成布隆过滤器7104,替代需要一遍来确定
OR的精确数量并随后需要另一遍来构造过滤器。

在至少一些实施方案中,可使用用于复本检测的不同数学技术来实现关于复本的
不同不确定性水平。例如,在一个实施方案中,可使用密码强度散列函数来生成每个测试数
据组OR的签名,并且可使用对测试数据使用相同散列函数生成的签名来以非常高准确率检
测复本。当然,与可用于生成布隆过滤器的?#20808;?#25955;列函数相比,使用密码散列函数可能在计
算方面是昂贵?#27169;?#24182;且使用密码散列实现的空间效率可能不如使用布隆过滤器可实现的那
?#21019;蟆?#36890;常,MLS可能够利用与所选择复本检测技术相关联的资源使用或成本来权衡复本检
测的准确度,例如,随着准确度提高,技术的资源需求通常也可上升。注意,至少在一些实施
方案中和/或对于一些数据组大小,可选择确定性复本检测技术而不是概率技术,例如,针
对可能复本测试的测试数据OR可与训练数据组的原始OR而不是使用空间有效表示进行比
?#31232;?br />

在生成数据组的替代表示之前,诸如图71a和图71b中示出的布隆过滤器,在一些
实施方案中,MLS可确定将应用的复本定义,即,在声明O1为不同OR O2的可能或实际复本
时,应?#26412;?#30830;地考虑ORO1的什?#35789;?#24615;。图72示出根据至少一些实施方案的可在机器学习服
务的复本检测器处使用的替代复本定义的实例。在所描绘实施方案中,示出了三个示例性
复本定义DD1、DD2和DD3。根据DD1,?#26412;?#23450;给定OR是否是另一个的复本时,将考虑包括在训
练数据组7210的任何OR中的所有输入变量和输出变量。根据DD2,将考虑所有输入变量,但
没有输出变量。根据DD3,只有输入变量的严格子集(例如,所示情?#25345;?#30340;IV1和IV3)需要匹
配以使OR被认为是复本。在一些实施方案中,例如基于它们的机器学习问题的语义和/或基
于它们对不同变量的相对重要性的理解,可由MLS客户端选择复本的这些和其他定义。例
如,考虑包括在训练数据组7210中的输入变量中的一个IV-k稀疏地填充的情?#24120;?#20351;得大部
分OR甚至不包含变量IV-k的值。在这种情?#25345;校?#23458;户端可能希望将IV-k从用于确定复本的
变量组中排除。在另一情?#25345;校?#23458;户端可能不希望在考虑复本时包括输出变量,因为模型的
预测完全基于输入变量。

在所描绘实施方案中,可基于所选择复本定义来创建训练组的不同替代表示。对
于观察记录包括输入变量IV1、IV2、IV3和IV4以及输出变量OV的训练数据组7210,如果使用
定义DD1,那么可使用所有五个变量(例如,作为对一组散列函数的组合输入)。如果使用
DD2,那么可使用IV1、IV2、IV3和IV4来生成替代表示,并且可排除OV。如果使用DD3,那么仅
IV1和IV3可用于交替表示。在一些实施方案中,MLS可决定并发使用多个复本定义,例如,可
根据所使用的每个定义创建训练数据组7210的各自替代表示,并且可获得对应于每个定义
的复本度量。

可基于所使用的定义和替代表示生成复本分析结果7260A、7260B和/或7260C。测
试数据组7220的OR 7251碰巧在所有五个变量中匹配OR 7201。因此,所有三个结果7260A、
7260B和7260C可将OR 7250A识别为具有某一非零概率的可能复本。OR 7252在所有输入变
量中而不在输出变量中匹配OR 7201。因此,如果使用DD2或DD3,那么可将OR 7250B分类为
可能复本,但如果使用DD1,那么?#25442;?#23558;其分类为可能复本。最后,具有与训练组的OR 7202
相同的IV1和IV3的?#26723;?#22312;所有其他变量中不同的OR 7253仅当使用DD3时可被分类为可能
复本,并且如果使用其他定义中的任一个时可被声明为非复本。

如前所述,在一些实施方案中,MLS可包括多个不同的服务器,在所述服务器上可
并行地调度机器学习作业。图73示出根据至少一些实施方案的机器学习服务处的大数据组
的复本检测的并行方法的实例。在所描绘实施方案中,训练数据组7302可?#25442;?#20998;为四个分
区P0、P1、P2和P3,并且可对应于每个分区生成和调度各自的布隆过滤器创建(BFC)作业。可
分别针对分区P0至P3调度BFC作业J0至J3。在各种实施方案中,作业J0至J3也可用于其他任
务,诸如训练模型,并?#20063;?#24517;限于创建布隆过滤器或其他替换表示。在至少一些实施方案
中,布隆过滤器或其他替换表示的创建可被认为是特征处理变换的一个实例,并且可使用
与前述配方语言类似的配方语言来请求表示的生成。在所描绘示例性情?#25345;校?#27599;个BFC作业
可产生分区级布隆过滤器,诸如BF0、BF1、BF2或BF3。可随后例如使用简单的布尔“或”运算
来逻辑地组合或聚集分区级过滤器以便产生完整的布隆过滤器BF-all。

在所描绘实施方案中,BF-all随后可用于并行化复本检测,例如通过针对训练数
据组7310的各自分区P0-测试、P1-测试和P2-测试调度三个复本检查作业J4、J5和J6。在一
些实施方案中,不同的MLS服务器(诸如S0至S7)可用于作业J0-J6中的至少一些。在图73示
出的实例中,其中四个作业被调度用于布隆过滤器生成,并且三个作业被调度用于复本检
查,在一些情况下,布隆过滤器生成操作的并行度(例如,被调度的不同作业的数量和/或使
用的不同服务器的数量)可不同于复本检查阶段的并行度。类似的并行化方法可与其他类
型的复本检测算法一起使用,例如,对于不一定采用布隆过滤器的技术。

在迄今为止论述的大多数示例性复本检测情?#25345;校?#24050;经考虑了两个数据组:第一
数据组(诸如训练组),其中诸如布隆过滤器的替代表示首先被完全填充;针对复本检查其
的第二数据组(诸如测试数据组)。在一些实施方案中,类?#21697;?#27861;可用于检查给定数据组内
的复本。图74示出根据至少一些实施方案的给定机器学习数据组内的概率复本检测的实
例。如所示,在处理或分析数据组7410(其可以例如是训练数据组、测试数据组或将从?#26800;?br />出训练数据组和测试数据组的组合数据组)的特定过程期间,可逐渐填充数据组的空间有
效表示7430。在例如按箭头7420指示的次序已经处理数据组7410的K个记录之后,构造中的
替代表示7430可包含对应于K个处理的记录7422的条目。

当遇到数据组的第(K+1)个观察记录时,概率复本检测器7035可使用替代表示
7430来确定记录是否表示相同数据组7410的已经处理的观察记录的复本。可使用前述种类
的技术将新遇到的OR分类为可能复本或确认的非复本。在一些实施方案中,复本检测器可
跟踪被分类为具有为复本的非零概率的OR,并且可包括提供给代表其处理数据组7210的客
户端的数据组内复本检测结果7444中的列表。在其他实施方案中,复本检测器可采取其他
动作,诸如简单地通知客户端关于可能的复本的数量,或者复本检测器可发起从数据组
7210移除可能的复本。

图75是示出根据至少一些实施方案的可在实现观察记录的复本检测的机器学习
服务处执行的操作的方面的流程图。如元素7501所示,MLS可根据某一选择的复本定义确定
第一或目标观察记录组(例如,测试数据组)将针对关于第二或源观察记录组(例如,对应的
训练数据组)被检查复本。在一些实施方案中,默?#32454;?#26412;定义可能需要MLS在识别可能的复
本时考虑源组的观察记录的所有输入和输出变量的值。在一些实施方案中,可使用其他复
本定义,其?#26800;?#30830;定复本时将排除一个或多个输出变量和/或一个或多个输入变量。在一些
实施方案中,MLS的客户端可例如使用由MLS实现的编程接口来指示他们是否想对指定的数
据组执行复本检测或将使用特定复本定义。

在所描绘实施方案中,如果识别了各种级别的复本,那么MLS还可确定将采取的各
自响应动作(元素7504)。此类动作的实例可包括向客户端传送警告或警报消息,所述消息
简单地指示潜在复本记录(即,为复本的概率为非零的目标数据组的那些观察记录)的数量
或分数,提供疑似复本的列表,或者提供对与记录指定为复本相关联的确定性水平或置信
水平的估计。在一个实现中,可提供与疑似为复本的单独观察记录相关联的各自置信水平。
在一些实施方案中,响应动作可包括从目标数据组中移除可能复本,和/或提供移除复本对
相关联模型的预测误差的影响的统计估计。在至少一个实施方案中,响应于对数据组内的
潜在或可能复本的识别,MLS可暂停、?#29260;?#25110;取消涉及数据组的使用或以其他方式与数据组
相关联的机器学习作业。在一些实施方案中,可针对各自的复本水平选择不同的响应,例
如,如果复本的分数被估计为不在5%与10%之间,那么可生成警告,而如果复本集体小于
目标数据组的2%,那么可简单地丢弃复本。在一些实施方案中,MLS客户端可指定它们想对
可能复本的不同程度采取的动作类型。

如元素7507指示?#27169;?#19968;个或多个MLS部件可例如与其他操作并行地生成可用于概
率复本检测的源组的替代表示,所述其他操作涉及诸如模型的训练的源组的遍历(元素
7507)。在各种实施方案中,可使用布隆过滤器、商过滤器、跳过列表、源记录的密码签名的
列表或某一其他空间有效结构作为替代表示。为了生成替代表示,在至少一个实施方案中,
MLS可首先重新格式化源数据组的观察记录中的至少一些,例如,在将观察记录馈送到用于
生成布隆过滤器的散列函数之前,可针对一致性检查所述组变量?#25351;?#31526;,可从文本变量中
移除后空白和前空白,可以统一方式格式化数值变量,等等。

在一些实施方案中,可任选地将替代表示存储在MLS?#30772;?#20648;存库(诸如图1中示出
的储存库120)中(元素7510),例如,作为与在通过源数据组的相同过程期间训练的模型相
关联的添加?#30772;貳?#22312;给定模型可在其训练之后使用?#24863;?#26102;、几周或几个月的一些实施方案
中,替代表示可在选择持续时间内保留在储存库中。在至少一个实施方案中,MLS可跟踪替
代表示上次用于复本检测的时间,并且如果在某个阈值时间间隔内未使用所述替代表示,
那么所述替代表示可丢弃。

使用替代表示,MLS的复本检测器可确定目标数据组是否完全无复本,或者目标数
据组的至少一些记录是否具有为复本的非零概率(元素7513)。可生成复本度量,指示例如
疑似复本的数量或分数以及相关联的非零概率。复本度量可考虑与替代表示相关联的基线
假阳性复本预测率。例如,对于布隆过滤器,假阳性率可取决于布隆过滤器的大小(位数)、
所使用的散列函数的数量和/或类型和/或用于填充过滤器的观察记录的数量。在一个实施
方案中,例如,复本度量可至少部分地基于Num_Probable_Duplicates_Found(被识别为可
能复本的观察记录的数量)和Num_Expected_False_Positives(预期被错误地分类为复本
的观察记录的数量)之间的差。在至少一些实施方案中,可使用如图73所示的多个MLS作业
以并行或分布式方式执行替代表示的生成、针对潜在复本检查测试数据组或这两个任务。
如果复本度量超过阈值,那么在所描绘实施方案中,可执行对应的响应动作(例如,在对应
于元素7504的操作中识别的动作中的一个或多个)(元素7516)。

注意,在各种实施方案中,除了图9a、图9b、图10a、图10b、图17、图25、图32、图39、
图48、图54、图55、图61、图69和图75的流程图中示出的操作之外的操作可用于实现上述机
器学习服务的至少一些技术。示出的一些操作可在一些实施方案中不实现、可按不同次序
实现或者并行地而不是顺序地实现。例如,关于图9b,在一些实施方案中,可在确定工作负
载策略之后执行关于客户端的资源配额是否已用尽的检查,而不是在确定策略之前执行。

使用案例

上述用于提供网络可访问、可缩放机器学习服务的技术对于多种多样的应用可能
是有益?#27169;?#25152;述机器学习服务面向在机器学习工具和方法中具有广泛的专业水平的用户。
几乎每个商业组织或政府实体现今能够收集关于其操作的各个方面的数据,并且可通过这
种服务来促进所收集的数据的不同组分与组织的目标之间的有意义统计和/或因果关系的
发现。MLS的用户可不必关心供应机器学习工作流的各种任务所需的特定资源的?#38468;冢?#35832;如
数据?#25442;?#36755;入过滤、将?#25442;?#30340;数据变换成可馈入模型的格式、复本观察的检测或模型执
行。可将通过多年的经验开发的关于不同数据?#25442;?#26041;法、变换类型、变换的参数设置以及模
型的最佳实践并入到MLS的编程接口(诸如易于学习且易于使用的API)中,例如,以用户甚
至不需要指定的默认设置的形式。MLS的用户可提交对于各种机器学习任务或操作的请求,
其中一些可取决于其他任务的完成,而不必手动地管理调度或监视任务的进程(其中一些
可能需要?#24863;?#26102;或几天,这取决于任务的性质或涉及的数据组的大小)。在一些实施方案
中,可向用户提供模型评估和其他执行的?#25442;?#24335;图形显示,使得用户能够做出关于解释相
关设置(诸如分类截止值)的明智决定。在一些实施方案中,可默认地执行测试数据组或评
估数据组与对应训练数据之间的潜在复本的检测,使得MLS的客户端能够避免在基于不可
能提供对模型的泛化能力的洞察的数据的评估上浪费资源。

对应于多种类型的实体(诸如模型、数据源或配方)的机器学习对象的逻辑集中式
储存库可使得多个用户或协作者能够在各种数据组上共享和重用特征处理配方。专家用户
或模型开发人员可通过注册第三方或定制库和函数来添加MLS的核心功能。MLS可支持需要
增强安全性的某些类型的操作的隔离执行。MLS可用于并且可并入针对覆盖监督式和非监
督式学习的各种问题域优化的技术,所述问题域诸如欺诈检测、金融资产价格预测、保险分
析、天气预测、地球物理分析、图像/视频处理、音频处理、自然语言处理、医学和生物信息学
等等。诸如修剪深度优先决定树、通过有效地修剪特征权重来限制线性模型的大小或者执
行并发的分位数分仓的特定优化技术可在一些情况下默认地实现,而MLS客户端甚至不知
道使用技术。对于其他类型的优化,诸如训练时间资源使用与预测时间资源使用之间的优
化,客户端可与机器学习服务?#25442;?#20197;决定相互可接受的特征处理提议。

说明性计算机系统

在至少一些实施方案中,实现机器学习服务的一个或多个部件(包括控?#30772;?#38754;部
件,诸如API请求处理机、输入记录处理机、配方验证器和配方运行时间管理器、特征处理管
理器、计划生成器、作业调度器、?#30772;?#20648;存库等,以及数据平面部件,诸如用于模型生成/训
练、实现决定树优化、模型修剪和/或基于类别的采样、生成和/或图形地显示评估结果等等
的MLS服务器)的服务器可包括通用计算机系统,所述通用计算机系统包括或被配?#32654;?#35775;问
一个或多个计算机可访?#24335;?#36136;。图76示出此类通用计算装置9000。在示出的实施方案中,计
算装置9000包括通过输入/输出(I/O)接口9030耦接到系统存储器9020(其可包括?#19988;资?#24615;
存储器模块和?#36164;?#24615;存储器模块两者)的一个或多个处理器9010。计算装置9000还包括耦
接到I/O接口9030的网络接口9040。

在各种实施方案中,计算装置9000可以是包括一个处理器9010的单处理器系统,
或包括若干处理器9010(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器
9010可以是能够执行指令的任何合适处理器。例如,在各种实施方案中,处理器9010可以是
实?#25351;?#31181;指令集架构(ISA)中任一种架构的通用或?#24230;?#24335;处理器,所述架构诸如x86、
PowerPC、SPARC、或MIPS ISA或任何其他合适ISA。在多处理器系?#25345;校?#27599;一个处理器9010通
常可以但不一定实现相同的ISA。在一些实现中,代替或者除了常规处理器之外,可使用图
形处理单元(GPU)。

系统存储器9020可被配?#32654;创?#20648;可由处理器9010访问的指令和数据。在至少一些
实施方案中,系统存储器9020可包括?#36164;?#24615;部分和?#19988;资?#24615;部?#33267;?#32773;;在其他实施方案中,
可仅使用?#36164;?#24615;存储器。在各种实施方案中,系统存储器9020的?#36164;?#24615;部分可使用任何合
适的存储器技术来实现,所述存储器技术诸如静态随机存取存储器(SRAM)、同步动态RAM或
任何其他类型的存储器。对于系统存储器的?#19988;资?#24615;部分(例如其可包括一个或多个
NVDIMM),在一些实施方案中可使用基于闪存的存储器装置,包括NAND闪存装置。在至少一
些实施方案中,系统存储器的?#19988;资?#24615;部分可包括电源,诸如超级电容器或其他电力存储
装置(例如,电池)。在各种实施方案中,基于忆阻器的电阻性随机存取存储器(ReRAM)、三维
NAND技术、铁电RAM、磁阻RAM(MRAM)或者各种类型的相变存储器(PCM)中的任一种可至少用
于系统存储器的?#19988;资?#24615;部分。在示出的实施方案中,实现一个或多个期望功能的程序指
令和数据(诸如上文所述的那些方法、技术以及数据)显示成作为代码9025和数据9026存储
在系统存储器9020内。

在一个实施方案中,I/O接口9030可被配?#32654;?#21327;调处理器9010、系统存储器9020以
及装置中的任何外围装置之间的I/O流量,所述外围装置包括网络接口9040或其他外围接
口,诸如各种类型持久性和/或?#36164;?#24615;存储装置。在一些实施方案中,I/O接口9030可执行任
何必需协议、时序或其他数据变换以将来自一个部件(例如,系统存储器9020)的数据信号
转换成适合于由另一个部件(例如,处理器9010)使用的格式。在一些实施方案中,I/O接口
9030可包括对于通过各种类型的外围总线附接的装置的支持,所述外围总线诸如外围部件
互连(PCI)总线标准或通用串行总线(USB)标准的变型,例如。在一些实施方案中,I/O接口
9030的功能可分到两个或更多个单独的部件中,诸如北桥和南桥,例如。另外,在一些实施
方案中,I/O接口9030的一些或所有功能,诸如到系统存储器9020的接口,可直接并入处理
器9010中。

网络接口9040可被配?#32654;?#20801;许数据在计算装置9000与附接到一个或多个网络
9050的其他装置9060(例如像如图1至图75中所示出的其他计算机系统或装置)之间进行交
换。在各种实施方案中,网络接口9040可支持通过任何合适有线或无线通用数据网络(例如
像以太网网络类型)进?#22411;?#20449;。另外,网络接口9040可支持通过电信/电话网络(诸如模拟语
音网络或数字光纤通信网络)、通过存储区域网络(诸如光纤通道SAN)或通过任何其他合适
类型的网络和/或协议进?#22411;?#20449;。

在一些实施方案中,系统存储器9020可以是计算机可访?#24335;?#36136;的一个实施方案,
所述计算机可访?#24335;櫓时?#37197;?#32654;创?#20648;如上文针对图1至图75所述的用于实现对应方法和设
备的实施方案的程序指令和数据。然而,在其他实施方案中,可在不同类型的计算机可访问
介质上接收、发送或存储程序指令和/或数据。一般来说,计算机可访?#24335;?#36136;可包括非暂时
存储介质或存储器介?#21097;?#35832;如磁性或光学介?#21097;?#20363;如通过I/O接口9030耦接到计算装置9000
的?#25490;?#25110;DVD/CD。非暂时计算机可访问存储介质还可包括可作为系统存储器9020或另一类
型存储器而被包括在计算装置9000的一些实施方案中的任?#25105;资?#24615;或?#19988;资?#24615;介?#21097;?#35832;如
RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等。另外,计算机可访?#24335;?#36136;可包括传输
介质或信号,诸如通过通信介质(网络和/或无线链接)传送的电信号、电磁信号或数?#20013;?br />号,诸如可通过网络接口9040来实现。多个计算装置中的部分或全部(诸如图76中所示出的
那些)可用于实?#25351;?#31181;实施方案中的所描述功能;例如,在各种不同的装置和服务器上运行
的软件部件可协作来提供功能性。在一些实施方案中,所描述功能性的部分可使用存储装
置、网络装置或专用计算机系统来实现,除了或者代替使用通用计算机系统来实现。如本文
所使用的术语“计算装置”是指至少所有这些类型的装置,并?#20063;?#38480;于这些类型的装置。

本公开的实施方案可以鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配?#32654;矗?br />

通过在提供商网络的网络可访问机器学习服务处实现的一组编程接口中的特定
编程接口从客户?#31169;?#25910;执行与实体类型的实例相关联的特定操作的第一请求,其中所述实
体类型包括以下各项中的一个或多个:(a)将用于机器学习模型的数据源,(b)将从特定数
据源计算的一组统计,(c)将对指定数据组执行的一组特征处理变换操作,(d)采用所选择
算法的机器学习模型,(e)与机器学习模型相关联的别名,或者(f)特定机器学习模型的结
果;

将对应于所述第一请求的作业对象插入所述机器学习服务的作业队列中;

向所述客户端提供所述第一请求已被接受用于执行的指示;

根据针对所述第一请求识别的第一工作负载分布策略确定将用于执行所述特定
操作的第一组提供商网络资源;

在所述第一请求中指示的所述特定操作的完成之前从所述客户?#31169;?#25910;执行取决
于所述特定操作的结果的第二操作的第二请求;

将对应于所述第二请求的第二作业对象插入所述作业队列中,其中所述第二作业
对象包括所述第二操作对所述特定操作的结果的?#35272;?#24615;的指示;

在发起所述第二操作的执行之前,向所述客户端提供所述第二请求已被接受用于
执行的第二指示;以及

响应于确定所述特定操作已成功完成,在第二组提供商网络资源上调度所述第二
操作。

2.如条款1所述的系统,其中所述特定操作包括以下各项中的一个或多个:(a)创
建所述实例,(b)用于获得所述实例的一个或多个属性的各自值的读取操作,(c)修改所述
实例的属性,(d)删除所述实例,(e)搜索操作,或者(f)执行操作。

3.如条款1-2中任一项所述的系统,其中所述特定操作包括分配可由所述机器学
习服务的指定组用户使用的别名以执行特定机器学习模型,其中所述别名包括所述特定机
器学习模型的指针,其中所述指定组用户中的至少一些用户不?#36745;?#35768;修改所述指针。

4.如条款1-3中任一项所述的系统,其中所述组编程接口包括代表性状态传送应
用编程接口。

5.如条款1-4中任一项所述的系统,其中所述特定操作包括创建特定数据源,其中
所述一个或多个计算装置进一步被配?#32654;矗?br />

生成关于所述特定数据源的数据记录的一个或多个变量的一组特定统计,而不从
所述客户?#31169;?#25910;对所述组特定统计的请求;以及

向所述客户端提供所述组特定统计的指示。

6.一种方法,其包括:

通过一个或多个计算装置执行:

通过在机器学习服务处实现的一组编程接口中的特定编程接口从客户?#31169;?#25910;执
行与实体类型的实例相关联的特定操作的第一请求,其中所述实体类型包括以下各项中的
一个或多个:(a)将用于生成机器学习模型的数据源,(b)将对指定数据组执行的一组特征
处理变换操作,(c)采用所选择算法的机器学习模型,或者(d)与机器学习模型相关联的别
名;

将对应于所述第一请求的作业插入所述机器学习服务的作业队列中;

在所述第一请求中指示的所述特定操作的完成之前从所述客户?#31169;?#25910;执行取决
于所述特定操作的结果的第二操作的第二请求;

将对应于所述第二请求的第二作业对象插入所述作业队列中,其中所述第二作业
对象包括所述第二操作对所述特定操作的结果的?#35272;?#24615;的指示;以及

响应于确定所述特定操作已成功完成,调度所述第二操作。

7.如条款6所述的方法,其中所述特定操作包括以下各项中的一个或多个:(a)创
建所述实例,(b)用于获得所述实例的一个或多个属性的各自值的读取操作,(c)修改所述
实例的属性,(d)删除所述实例,(e)搜索操作,或者(f)执行操作。

8.如条款6-7中任一项所述的方法,其中所述特定操作包括分配可由所述机器学
习服务的指定组用户使用的别名以执行特定机器学习模型,其中所述别名包括所述特定机
器学习模型的指针,其中所述指定组用户中的至少一些用户不?#36745;?#35768;修改所述指针。

9.如条款6-8中任一项所述的方法,其中所述特定操作包括创建特定数据源,其还
包括通过所述一个或多个计算装置执行:

生成关于所述特定数据源的数据记录的一个或多个变量的一组特定统计,而不从
所述客户?#31169;?#25910;对所述组特定统计的请求;以及

向所述客户端提供所述组特定统计的指示。

10.如条款9所述的方法,其还包括通过所述一个或多个计算装置执行:

选择将用于生成所述组特定统计的所述特定数据源的所述数据记录的子集。

11.如条款6-9中任一项所述的方法,其还包括通过所述一个或多个计算装置执
行:

针对所述第一请求识别工作负载分布策略,其中所述识别包括以下各项中的一个
或多个:(a)确定处理所述特定操作的数据组的遍数,(b)确定用于处理所述特定操作的数
据组的并行化水平,(c)确定将用于终止所述特定操作的收敛准则,(d)确定在所述特定操
作期间产生的中间数据的目标耐久性水平,或者(e)确定用于实现所述特定操作的资源容
量限制。

12.如条款11所述的方法,其还包括通过所述一个或多个计算装置执行:

选择一组特定提供商网络资源以实现所述第一工作负载策略。

13.如条款6-9或11中任一项所述的方法,其还包括通过所述一个或多个计算装置
执行:

响应于确定执行所述特定操作包括执行由所述提供商网络外部的实体开发的模
块,识别从中选择将用于所述特定操作的至少一个资源的特定安全容器。

14.如条款6-9、11或13中任一项所述的方法,其还包括通过所述一个或多个计算
装置执行:

向所述客户端提供用于在所述提供商网络外部的平台处执行的特定机器学习模
型的可执行版本。

15.如条款6-9、11或13-14中任一项所述的方法,其还包括通过所述一个或多个计
算装置执行:

在调度所述特定操作之前验证所述客户端的资源配额还未耗尽。

16.一种存储程序指令的非暂时计算机可访问存储介?#21097;?#25152;述程序指令当在一个
或多个处理器?#29616;?#34892;时:

通过在提供商网络的网络可访问机器学习服务处实现的一组编程接口中的特定
编程接口从客户?#31169;?#25910;执行与实体类型的实例相关联的特定操作的第一请求,其中所述实
体类型包括以下各项中的一个或多个:(a)将用于生成机器学习模型的数据源,(b)将从特
定数据源计算的一组统计,(c)采用所选择算法的机器学习模型,或者(d)与机器学习模型
相关联的别名;

将对应于所述第一请求的作业插入所述机器学习服务的作业队列中;

在所述第一请求中指示的所述特定操作的完成之前从所述客户?#31169;?#25910;执行取决
于所述特定操作的结果的第二操作的第二请求;以及

将对应于所述第二请求的第二作业对象插入所述作业队列中,其中所述第二作业
对象包括所述第二操作对所述特定操作的结果的?#35272;?#24615;的指示。

17.如条款16所述的非暂时计算机可访问存储介?#21097;?#20854;中所述特定操作包括分配
可由所述机器学习服务的指定组用户使用的别名以执行特定机器学习模型,其中所述别名
包括所述特定机器学习模型的指针,其中所述指定组用户中的至少一些用户不?#36745;?#35768;修改
所述指针。

18.如条款16-17中任一项所述的非暂时计算机可访问存储介?#21097;?#20854;中所述特定操
作包括创建特定数据源,其中所述指令当在所述一个或多个处理器处执行时:

生成关于所述特定数据源的数据记录的一个或多个变量的一组特定统计,而不从
所述客户?#31169;?#25910;对所述组特定统计的请求;以及

向所述客户端提供所述组特定统计的指示。

19.如条款18中所述的非暂时计算机可访问存储介?#21097;?#20854;中一个或多个变量包括
多个变量,并且其中所述指令当在所述一个或多个处理器?#29616;?#34892;时:

至少部分地基于对所述多个变量的相关性分析,识别将优先于第二组变量用作对
机器学习模型的输入的第一组候选变量;以及

向所述客户端提供所述第一组变量的指示。

20.如条款16-18中任一项所述的非暂时计算机可访问存储介?#21097;?#20854;中所述特定操
作包括在线模式下的特定机器学习模型的实例化,其中所述指令当在所述一个或多个处理
器?#29616;?#34892;时:

至少部分地基于由所述客户端指示的预期工作负载水平选择将用于在线模式下
的所述特定机器学习模型的一组提供商网络资源。

21.如条款16-18或20中任一项所述的非暂时计算机可访问存储介?#21097;?#20854;中所述指
令当在所述一个或多个处理器?#29616;?#34892;时:

从所述服务的所述客户?#31169;?#25910;将用于解密特定数据源的一个或多个数据记录以
执行所述特定操作的凭证。

22.如条款16-18或20-21中任一项所述的非暂时计算机可访问存储介?#21097;?#20854;中所
述指令当在所述一个或多个处理器?#29616;?#34892;时:

通过所述组编程接口中的幂等编程接口从所述客户?#31169;?#25910;执?#26800;?#19977;操作的第三
请求;

基于以下各项中的一个或多个:(a)所述第三请求中指示的实例标识符,(b)所述
客户端的标识符,或者(c)所述第三请求的输入参数的表示,确定所述第三请求是否为早前
提交的请求的复本;以及

响应于确定所述第三请求为早前提交的请求的复本,向所述客户端提供所述第三
请求的成功的指示,而不将对应于所述第三请求的另外作业对象插入所述作业队列中。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配?#32654;矗?br />

在提供商网络的网络可访问机器学习服务处接收包括以下各项中的一个或多个
的配方的文本表示:(a)指示一组或多组变量的组定义部分,其中所述一组或多组中的单独
组包括至少一个常见变换操作将应用到的多个变量,(b)定义一个或多个中间变量的分配
部分,(c)指示对存储在储存库中的一个或多个机器学习?#30772;?#30340;各自引用的?#35272;?#24615;部分,或
者(d)指示将应用到所述组定义部分、所述分配部分或所述?#35272;?#24615;部分中指示的至少一个
实体的一个或多个变换操作的输出部分;

根据(a)由所述机器学习服务定义的一组句法规则和(b)由所述机器学习服务支
持的变换操作类型的一组库函数定义验证所述配方的所述文本表示;

生成所述配方的可执行表示;

将所述可执行表示存储在所述储存库中;

确定所述配方将应用到特定数据组;

验证所述特定数据组满足所述配方的运行时间接受准则;以及

使用一个或多个所选择提供商网络资源将所述一个或多个变换操作中的特定变
换操作应用到所述特定数据组。

2.如条款1所述的系统,其中所述一个或多个计算装置进一步被配?#32654;矗?br />

接收将所述配方应用到不同数据组的请求;

验证所述不同数据组满足所述配方的所述运行时间接受准则;以及

将所述特定变换操作应用到所述不同数据组。

3.如条款1-2中任一项所述的系统,其中所述一个或多个计算装置进一步被配置
来:

通过编程接口向所述客户端提供适用于多个机器学习问题域中的单独机器学习
问题域的各自的一组一个或多个配方的指示。

4.如条款1-3中任一项所述的系统,其中所述本文表示包括将使用所述特定变换
操作的结果执行的特定机器学习模型的指示。

5.如条款1-4中任一项所述的系统,其中所述一个或多个计算装置进一步被配置
来:

响应于将针对所述配方执行自动参数调谐的指示,确定适用于所述一个或多个变
换操作中的不同变换操作的多个参数值选项;

使用所述多个参数值选项中的单独参数值选项,由所述机器学习服务生成所述不
同变换操作的各自结果;以及

基于对所述各自结果的分析,由所述机器学习服务提供所述多个参数值选项中的
满足参数接受准则的至少一个候选参数值的指示。

6.一种方法,其包括:

通过一个或多个计算装置执行:

在网络可访问机器学习服务处接收包括以下各项中的一个或多个的配方的第一
表示:(a)指示一组或多组变量的组定义部分,其中所述一组或多组中的单独组包括至少一
个常见变换操作将应用到的多个数据组变量,以及(b)指示将应用到以下各项中的一个或
多个中指示的至少一个实体的一个或多个变换操作的输出部分:(i)所述组定义部分或
(ii)输入数据组;

根据由所述机器学习服务支持的变换操作类型的至少一组库函数定义验证所述
配方的所述第一表示;

生成所述配方的可执行表示;

确定所述配方将应用到特定数据组;

验证所述特定数据组满足运行时间接受准则;以及

使用一个或多个所选择提供商网络资源将所述一个或多个变换操作中的特定变
换操作应用到所述特定数据组。

7.如条款6所述的方法,其中所述第一表示是文本表示或二进制表示。

8.如条款6-7中任一项所述的方法,其中所述第一表示由所述机器学习服务的客
户端使用从所述机器学习服务获得的工具生成。

9.如条款6-8中任一项所述的方法,其中所述特定数据组的输入数据记录的至少
一个变量的数据类型包括以下各项中的一个或多个:(a)文本,(b)数值数据类型,(c)布尔,
(d)二进制数据类型,(d)分类数据类型,(e)图像处理数据类型,(f)音频处理数据类型,(g)
生物信息学数据类型,或者(h)结构化数据类型。

10.如条款9所述的方法,其中所述数据类型包括特定结构化数据类型,其还包括
通过所述一个或多个计算装置执行:

至少部分地基于所述特定结构化数据类型选择将用于所述特定变换操作的特定
库函数。

11.如条款6-9中任一项所述的方法,其中所述第一表示包括根据以下各项中的一
个或多个定义中间变量的分配部分:(a)输入数据组变量,或者(b)在所述组定义部分中定
义的实体,其中所述中间变量在所述输出部分中被引用。

12.如条款6-9或11中任一项所述的方法,其中所述第一表示包括指示对存储在所
述机器学习服务的储存库中的特定?#30772;?#30340;引用的?#35272;?#24615;部分,其中所述特定变换操作消耗
所述特定?#30772;?#30340;输出作为输入。

13.如条款12所述的方法,其中所述特定?#30772;?#21253;括以下各项中的一个或多个:(a)
机器学习模型,(b)不同配方,(c)统计组,或者(d)包括对机器学习模型的引用的别名。

14.如条款6-9或11-12中任一项所述的方法,其中所述特定变换操作利用用户定
义的函数,其还包括通过所述一个或多个计算装置执行:

在所述接收所述第一表示之前,在所述机器学习服务处从客户?#31169;?#25910;实现所述用
户定义的函数的模块的指示,其中所述模块是文本格式或二进制格式。

15.如条款6-9、11-12或14中任一项所述的方法,其还包括通过所述一个或多个计
算装置执行:

根据由所述机器学习服务定义的一组句法规则验证所述第一表示。

16.如条款6-9、11-12或14-15中任一项所述的方法,其还包括通过所述一个或多
个计算装置执行:

接收将所述配方应用到不同数据组的请求;

验证所述不同数据组满足所述配方的所述运行时间接受准则;以及

将所述特定变换操作应用到所述不同数据组。

17.如条款6-9、11-12或14-16中任一项所述的方法,其还包括通过所述一个或多
个计算装置执行:

通过编程接口向客户端提供适用于多个机器学习问题域中的单独机器学习问题
域的各自的一组一个或多个配方的指示。

18.如条款6-9、11-12或14-17中任一项所述的方法,其中所述第一表示包括将使
用所述特定变换操作的结果执行的特定机器学习模型的指示。

19.如条款6-9、11-12或14-18中任一项所述的方法,其还包括通过所述一个或多
个计算装置执行:

响应于将针对所述配方执行自动参数调谐的指示,由所述机器学习服务确定适用
于所述一个或多个变换操作中的不同变换操作的多个参数值选项;

使用所述多个参数值选项中的单独参数值选项,由所述机器学习服务来生成所述
不同变换操作的各自结果。

20.如条款19所述的方法,其还包括通过所述一个或多个计算装置执行:

至少部分地基于对应于所述特定参数值的特定结果组,由所述机器学习服务选择
所述多个参数值选项中的特定参数值作为可接受值。

21.如条款19-20中任一项所述的方法,其还包括通过所述一个或多个计算装置执
行:

基于对所述各自结果的分析,由所述机器学习服务向客户端指示所述多个参数值
选项的至少子集作为候选值;以及

在所述机器学习服务处从所述客户?#31169;?#25910;将用于所述不同变换操作的所述子集
的特定参数值的指示。

22.如条款19-21中任一项所述的方法,其中所述多个参数值选项包括以下各项中
的一个或多个:(a)将从语言处理数据组导出的n元语法的各自长度,(b)特定变量的各自分
位数仓边界,(c)图像处理参数值,(d)数据组将分类到的集群的数量,(e)集群边界阈值的
值,或者(f)文本文档的向量表示的维度值。

23.一种存储程序指令的非暂时计算机可访问存储介?#21097;?#25152;述程序指令当在一个
或多个处理器?#29616;?#34892;时:

在机器学习服务处确定包括以下各项中的一个或多个的配方的第一表示:(a)指
示一组或多组变量的组定义部分,其中所述一组或多组中的单独组包括至少一个常见变换
操作将应用到的多个数据组变量,或者(b)指示将应用到以下各项中的一个或多个中指示
的至少一个实体的一个或多个变换操作的输出部分:(i)所述组定义部分或(ii)所述配方
的输入数据组;

根据由所述机器学习服务支持的变换操作类型的至少一组库函数定义验证所述
配方的所述第一表示;

生成所述配方的可执行表示;以及

响应于确定所述配方将应用到特定数据组,使用一个或多个所选择提供商网络资
源来对所述特定数据组实现所述一个或多个变换操作中的特定变换操作。

24.如条款23所述的非暂时计算机可访问存储介?#21097;?#20854;中所述第一表示包括根据
以下各项中的一个或多个定义中间变量的分配部分:(a)输入数据组变量,或者(b)在所述
组定义部分中定义的实体,其中所述中间变量在所述输出部分中被引用。

25.如条款23-24中任一项所述的非暂时计算机可访问存储介?#21097;?#20854;中所述第一表
示包括指示对存储在所述机器学习服务的储存库中的特定?#30772;?#30340;引用的?#35272;?#24615;部分,其中
所述特定变换操作消耗所述特定?#30772;?#30340;输出作为输入。

26.如条款23-25中任一项所述的非暂时计算机可访问存储介?#21097;?#20854;中所述特定制
品包括以下各项中的一个或多个:(a)机器学习模型,(b)不同配方,(c)别名,或者(d)一组
统计。

27.如条款23-26中任一项所述的非暂时计算机可访问存储介?#21097;?#20854;中所述组库函
数定义包括以下各项中的一个或多个:(a)分位数仓函数,(b)笛卡尔乘积函数,(c)二元语
法函数,(d)n元语法函数,(e)正交稀疏二元语法函数,(f)日历函数,(g)图像处理函数,(h)
音频处理函数,(i)生物信息学处理函数,或者(j)自然语言处理函数。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配?#32654;矗?br />

通过提供商网络的机器学习服务的编程接口接收从一个或多个文件源提取特定
数据组的观察记录的请求,其中所述特定数据组的大小超过所述机器学习服务的第一服务
器处的可用于所述特定数据组的第一存储器部分的大小;

将所述特定数据组?#25104;?#21040;多个邻接块,包括其大小不超过所述第一存储器部分的
特定邻接块;

至少部分地基于所述请求中指示的过滤描述符生成过滤计划以便对所述多个邻
接块执行一系列块级过滤操作,其中所述系列过滤操作中的单独过滤操作的操作类型包括
以下各项中的一个或多个:(a)采样,(b)混排,(c)?#33267;眩?#25110;者(d)划分用于并行计算,并且其
中所述过滤计划包括第一块级过滤操作之后是第二块级过滤操作;

为了实现所述第一块级过滤操作,执行指向存储所述多个邻接块中的至少子集的
一个或多个持久性存储装置的至少一组读取,其中在所述组读取之后,所述第一存储器部
分至少包括所述特定邻接块;

在不从所述一个或多个持久性存储装置重新读取的情况下并且在不复制所述特
定邻接块的情况下,对所述第一块级过滤操作的存储器内结果组实现所述第二块级过滤操
作;以及

从所述系列块级过滤操作的输出提取多个观察记录。

2.如条款1所述的系统,其中所述一个或多个计算装置进一步被配?#32654;矗?br />

对在所述特定邻接块内识别的一组观察记录实现块内过滤操作。

3.如条款1-2中任一项所述的系统,其中所述一个或多个计算装置进一步被配置
来:

根据所述请求中指示的一个或多个解压参数解压所述特定邻接块的内容。

4.如条款1-3中任一项所述的系统,其中所述一个或多个计算装置进一步被配置
来:

根据所述请求中指示的一个或多个解密参数解密所述特定邻接块的内容。

5.如条款1-4中任一项所述的系统,其中所述一个或多个计算装置进一步被配置
来:

提供从所述系列获得的多个观察记录作为用于执行以下各项中的一个或多个的
输入:(a)特征处理配方或(b)机器学习模型。

6.一种方法,其包括:

在一个或多个计算装置?#29616;?#34892;:

在机器学习服务处接收从一个或多个数据源提取特定数据组的观察记录的请求;

将所述特定数据组?#25104;?#21040;包括特定块的多个块;

生成过滤计划以便对所述多个块执行一系列块级过滤操作,其中所述系列过滤操
作中的单独过滤操作的操作类型包括以下各项中的一个或多个:(a)采样,(b)混排,(c)分
裂,或者(d)划分用于并行计算,并且其中所述过滤计划包括第一块级过滤操作之后是第二
块级过滤操作;

为了实现所述第一块级过滤操作,发起指向存储所述多个块中的至少子集的一个
或多个持久性存储装置的一组数据传送,其中在所述组数据传送之后,所述第一存储器部
分至少包括所述特定块;

对所述第一块级过滤操作的存储器内结果组实现所述第二块级过滤操作;以及

从所述系列块级过滤操作的输出提取多个观察记录。

7.如条款6所述的方法,其中所述一个或多个数据源包括包含特定存储对象的一
个或多个存储对象,其中所述将所述特定数据组?#25104;?#21040;所述多个块中包括:至少部分地基
于块大小参数确定所述特定存储对象内的候选偏移为所述特定块的候选结束边界,其还包
括通过所述一个或多个计算装置执行:

选择表示所述特定存储对象内的特定观察记录的结束边界的特定定界符作为所
述特定块的结束边界,其中所述特定定界符位于与所述候选偏移不同的偏移处。

8.如条款7所述的方法,其中所述选择所述特定定界符作为所述结束边界包括:

在按增加偏移的次序对所述特定存储对象的顺序读取中识别具有高于所述候选
偏移的偏移的所述第一定界符作为所述特定块的所述结束边界。

9.如条款6-7中任一项所述的方法,其中所述一个或多个数据源包括以下各项中
的一个或多个:(a)单主机文件系统,(b)分布式文件系统,(c)可通过web服务接口从网络可
访问存储服务访问的存储对象,(d)表示区块级装置接口的存储卷,或者(e)数据库。

10.如条款6-7或9中任一项所述的方法,其中根据所述机器学习服务的应用编程
接口格式化所述请求。

11.如条款6-7或9-10中任一项所述的方法,其还包括通过所述一个或多个计算装
置执行:

根据所述请求中指示的一个或多个解压参数解压所述特定块的内容。

12.如条款6-7或9-11中任一项所述的方法,其还包括通过所述一个或多个计算装
置执行:

根据所述请求中指示的一个或多个解密参数解密所述特定块的内容。

13.如条款6-7或9-12中任一项所述的方法,其中所述多个观察记录包括具有第一
记录长度的第一观察记录,以及具有不同记录长度的第二观察记录。

14.如条款6-7或9-13中任一项所述的方法,其还包括通过所述一个或多个计算装
置执行:

对在所述特定块内识别的一组观察记录实现块内过滤操作。

15.如条款6-7或9-14中任一项所述的方法,其还包括通过所述一个或多个计算装
置执行:

将表示所述第一块级过滤操作的第一作业对象插入将在所述机器学习服务处调
度的作业集?#29616;校?#20197;及