一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

机器学习重新训练的制作方法

2022-02-22 18:17:00 来源:中国专利 TAG:

机器学习重新训练


背景技术:

1.机器学习模型是现实世界过程的数学表示。机器学习模型通常使用数学函数在目标过程的历史使用数据上来训练。模型可以使用诸如监督式学习、半监督式学习、无监督式学习和增强学习的不同类型的机器学习算法来训练。在监督式学习中,数学函数(例如,线性回归、逻辑回归、随机森林、决策树、k最近邻等)从数据中的生成结果的模式中学习,以便在历史使用数据与结果之间关联关系。在无监督式学习中,数学函数(例如,k均值聚类分析等)从没有输出标签或分类的数据中的模式中学习。半监督式学习使用可能不具有结果的历史使用数据来学习。增强学习使用通过试错的过去经验来执行目标问题的最佳解决方案。
2.模型通常用于从学习模式中做出预测。当模型做出准确预测时,模型是有用的。模型的准确性基于用于训练模型的训练数据集。训练数据集应当最接近地反映可以在现实世界过程中使用的数据的类型并且具有与在现实世界过程中所使用的数据类似的分布。然而,有时,训练数据集可以不同于在现实世界过程中使用的数据,其可以不利地影响由机器学习模型做出的预测的准确性。


技术实现要素:

3.本发明内容被提供从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列构思。本发明内容既不旨在标识要求保护的主题的关键特征或必要特征,其也不旨在用于限制所要求保护的主题的范围。
4.机器学习模型的行为和用于训练该模型的数据集被监控,以确定机器学习模型是否需要重新训练。由机器学习模型做出的预测的准确性可以随时间下降。模型产生准确结果的下降从在机器学习模型的操作期间生成的性能度量而确定。性能度量捕获模型的成功使用和模型的失败,以识别输入特征。精度度量被计算,其基于由模型做出的预测被使用的次数。精度度量标识何时模型不表示目标应用的输入特征,由此指示模型应当利用更相关的训练数据来重新训练。覆盖率度量被计算,其基于模型不能做出针对目标应用的输入特征的预测的次数,由此指示模型应当利用更相关的训练数据来重新训练。
5.随时间对训练数据集的改变可以贡献于用于训练模型的数据的陈旧度。在这种情况下,训练数据集被监控,以确定何时已经对训练数据集做出显著改变。训练数据集被监控以追踪在模型被训练之后对训练数据做出的改变的量和性质。改变度量被生成,以确定训练数据是否已经被显著地更改,从而指示对模型的下降的可能因素。
6.这些和其他特征和优点将从阅读以下详细描述并且审阅相关联的附图明显。应当理解,前述一般描述和以下详细描述两者仅是说明性的并且不限制于如要求保护的各方面。
附图说明
7.图1图示具有机器学习模型重新训练子系统的示例性系统。
8.图2是图示应用到代码完成系统的重新训练检测技术的示例性应用的示意图。
9.图3是图示确定何时机器学习模型应当被重新训练的示例性方法的流程图。
10.图4是图示将代码改动(“churn”)确定为指示重新训练机器学习模型的度量的示例性方法的流程图。
11.图5是图示示例性操作环境的框图。
具体实施方式
12.概述
13.所公开的主题实时地标识何时机器学习模型应当被重新训练。机器学习模型的训练通常是要求相当大量的时间和计算资源的复杂任务,从而使频繁地重新训练模型变得不切实际。当模型未做出准确的预测或者不能做出针对某些输入的预测时,模型可能需要被重新训练。这可以归因于已经在陈旧数据上训练的模型未反映目标推理系统的特性。
14.为了检测机器学习模型的陈旧度,本文所公开的技术生成用于确定机器学习模型的有效性的在线度量。精度度量被生成,以检测模型的预测的准确性。覆盖率度量被生成,以检测何时机器学习模型未能做出预测。数据源度量被生成,以检测何时已经对训练数据集做出显著改变。当这些度量中的任一个度量落入预配置的阈值以下时,生成推荐机器学习模型应当被重新训练的指示符。
15.本公开使用示例性代码完成推理系统来呈现以图示所采用的技术。然而,应当指出,本文描述的技术不限于代码完成系统。代码完成是当用户正在源代码编辑器中键入时,预测代码段的剩余部分的自动化过程。代码完成通过当其在多个字符已经被键入之后正确地预测用户预期输入的程序元素的名称时生成完成代码段的候选来加速代码开发时间。代码完成系统可以利用预测完成代码段的最可能的候选的机器学习模型。
16.然而,当机器学习模型未能做出准确预测时,模型需要被重新训练。模型的失败可以归因于训练数据集的陈旧度。这通过监控模型的性能并且通过监控在模型已经被训练之后对训练数据集做出的改变来识别。
17.注意力现在转到对用于确定何时重新训练机器学习模型的系统、设备、组件和方法的进一步讨论。
18.机器学习重新训练系统
19.图1图示本发明的各个方面可以被实践于其中的示例性系统100的框图。如图1中所示出的,系统100包括在推理系统中利用机器学习模型104的一个或多个应用102。机器学习模型104由机器学习训练组件106使用来自一个或多个源108的训练数据集来训练。应用102可以生成被输入到机器学习模型104中的特征向量112。特征向量112包含表示正在被研究的观察的特性的特征。转而,机器学习模型104生成针对每个特征114的概率,其用于预测特征与结果相关联的可能性。机器学习模型104可以基于任何类型的统计方法,诸如但不限于马尔科夫模型、神经网络、分类器、决策树、随机森林、回归模型、基于聚类的模型等。
20.应用102可以被通信地耦合到代理110。代理110可以是软件程序,诸如应用的附加、扩展、插件或组件。代理110监控在应用102与机器学习模型104之间的通信。代理110生成来自这些通信的计数,其由监控组件116使用,以生成性能数据118。性能数据118反映模型104的性能并且用于确定机器学习模型104是否需要被重新训练。
21.监控组件116还监控自从模型上次被训练之后对训练数据集108做出的改变。这些数据源120用于确定训练数据的陈旧度,其是模型需要被重新训练的指示符。
22.监控组件116输出重新训练指示符122,其当被设置时指示机器学习模型104需要被重新训练。重新训练指示符122基于性能数据118和数据源改变120来设置。在机器学习训练组件106接收重新训练指示符122时,机器学习训练组件106重新训练模型。机器学习训练组件106使用来自一个或多个源108的附加训练数据或新训练数据来重新训练模型。更新的模型被生成并且被使用在目标推理系统中。
23.应当指出,图1示出本发明的各个方面可以被实践于其中的环境的一个方面中的系统的组件。然而,可能不需要图1中示出的组件的精确配置来实践图1中示出的配置中的各个方面和变型,并且组件的类型可以在不偏离本发明的精神或范围的情况下做出。
24.代码完成系统
25.注意力现在转到利用本文所描述的技术的示例性代码完成系统的讨论。代码完成是当用户正在源代码编辑器或编辑工具中键入时预测代码段的剩余部分的自动化过程。代码完成通过当其在多个字符已经被键入之后正确地预测用户预期输入的程序元素的名称时,生成完成代码段的候选来加速代码开发时间。代码完成系统可以利用预测完成代码段的最可能的候选或推荐的机器学习模型。
26.转到图2,示出了示例性代码完成系统200。代码完成系统200可以包括源代码编辑器202、完成组件204、机器学习模型206和模型训练子系统208。
27.源代码编辑器202可以包括与用户交互的用户界面210和与模型训练子系统208交互的代理212。在一个或多个方面中,代码完成可以是集成到源代码编辑器和/或集成开发环境(ide)中的功能或特征。代码完成可以被具化为可以是源代码编辑器和/或ide的附件、插件、扩展和/或组件的工具或特征。
28.用户界面210包括用于写入和编辑源代码程序214的特征或功能集。用户界面210可以利用弹出窗口216来呈现针对完成的可能的推荐或候选的列表,由此允许开发者浏览候选并且从列表中选择一个。
29.在编辑过程中的某个点处,用户界面210将检测到用户已经输入了特定输入或标记字符,其将发起代码完成过程。在一个方面中,在对象名称之后的句点“.”用于发起针对完成方法调用的方法名称的代码完成。完成组件204接收针对完成方法调用的候选的请求218。完成组件204基于方法调用的上下文利用针对推荐220的机器学习模型206以完成方法调用。
30.推荐220以其中具有最高概率的方法名称被首先列出的排名顺序被列出。排名顺序增加推荐相关性。推荐220被返回到用户界面210,其转而将推荐220提供给用户。
31.如图2中所示出的,用户在源代码编辑器202中键入标记字符222,从而指示方法名称预期在对象名称之后。在该示例中,标记字符222是句点“.”,其在对象名称dir之后。请求218被生成并且被发送到完成组件204,其返回多个推荐220,该多个推荐220被显示在用户界面210中的弹出窗口216中。推荐包括“exists”、“attributes”、“create”、“createsubdirectory”、“creationtime”、“creationtimeutc”和“delete”。
32.模型训练子系统208包括监控组件224、机器学习训练组件228和从其获得训练数据集的源代码仓库230。机器学习训练组件228初始地训练机器学习模型并且当由监控组件
224指令时重新训练模型。
33.源代码仓库230是被实现为文件归档以及存储大量制品(诸如,源代码文件)的可选web托管设施的源控制系统或版本控制系统的部分。程序员(即,开发者、用户、终端用户等)通常利用共享的源代码仓库来存储可以在不同程序员之间共享的源代码和其他编程制品。编程制品是从编程活动产生的文件,诸如源代码、程序配置数据、文档等。源控制系统或版本控制系统存储诸如源代码文件的制品的每个版本,并且追踪不同版本之间的改变或差异。由源控制系统管理的仓库可以被分布为使得仓库的每个用户具有仓库的工作副本。源控制系统协同对仓库的内容做出的改变到不同用户的分布。
34.在一个方面中,版本控制系统被实现为各个程序员可通过网络上的在线交易访问的云或web服务。在线交易或交易是在两个联网机器之间执行的单独的不可分的操作。程序员可以检验制品,诸如源代码文件,并且在其本地机器中编辑文件的副本。当用户完成编辑源代码文件时,用户执行提交,该提交将源代码文件的修改版本登记回到共享的源代码仓库中。
35.源代码仓库230可以是可私有地访问的或可公共地访问的。存在各种类型的版本控制系统,诸如但不限于git,并且然后平台托管版本控制系统,诸如bitbucket、cloudforge、projectlocker、github、sourceforge、launchpad、azure devops。
36.在一个方面中,git或github被用作示例性源代码仓库。在该方面中,提交是对文件或文件集的改变并且具有与其相关联的唯一标识符。提交包含提交消息,该提交消息包括对该一个文件或多个文件做出的改变。diff是两个提交或保存的改变之间的差异。diff描述自从上次提交之后从文件添加或移除的改变。提交和diff用于确定自从机器学习模型上次被训练之后对源代码仓库做出的改变。
37.机器学习训练组件228在源代码仓库230中的常用源代码程序中所找到的使用模式上训练机器学习模型。从其中方法调用被使用在程序中的上下文的特性检测使用模式。这些特性从表示程序的句法结构和语义模型表示的数据结构中提取。机器学习模型针对每个类被生成并且包含方法调用的排序序列,其具有表示从特定方法调用序列到连续方法调用的转变的可能性的概率。在一个方面中,机器学习模型是n阶马尔科夫链模型,其用于基于相同文档中的相同类的先前方法调用和在其中进行当前方法调用的上下文来预测什么方法将被使用在当前调用中。
38.监控组件224监控由预期应用对模型的使用和对训练数据集做出的改变,以便确定模型是否需要被重新训练。耦合到源代码编辑器202的代理212监控对完成组件204做出的请求218和从完成组件204返回的推荐220,以生成表示机器学习模型的性能的性能数据232。监控组件224生成性能度量238并且当性能度量中的至少一个性能度量落入阈值以下时设置重新训练指示符226。
39.监控组件224从源代码仓库230获得代码改变数据234以便确定仓库230的代码改动240。代码改动是指示源代码仓库中的源代码改变的速率的测量。监控组件224确定代码改动是否超过阈值并且当这种情况发生时,监控组件224设置重新训练指示符226。当重新训练指示符226被设置时,机器学习训练组件228从源代码仓库230获得新的和/或额外的数据以重新训练模型。更新的模型然后由完成组件204利用。
40.方法
41.注意力现在转到利用本文所公开的系统和设备的各种示例性方法的描述。针对这些方面的操作可以参考各种示例性方法来进一步描述。可以认识到,代表性方法不必然必须按照所呈现的顺序或按照任何特定顺序来执行,除非另行指示。此外,关于方法所描述的各种活动可以以顺序或并行方式或顺序和并行操作的任何组合来执行。在一个或多个方面中,该方法图示针对本文公开的系统和设备的操作。
42.参考图2和图3,示出了用于检测机器学习模型的陈旧度的示例性方法300。最初,机器学习模型206由机器学习训练组件228使用来自一个或多个源代码仓库230的、以相同编程语言编写的、源代码程序来训练。这些源代码程序被用作训练数据集。来自初始训练数据集的数据被记录,以便检测在模型被训练之后对初始训练数据做出的改变。该记录的数据可以包括与初始训练数据相关联的提交、训练数据集中的每个文件的源代码的行数和/或训练数据集中的类的数目。这些记录的特征在稍后时间点处被使用,以确定训练数据集的代码改动。(共同地,框302)。
43.针对性能度量238的阈值从在阈值训练时段期间,监控在源代码编辑器202与机器学习模型206之间的交互来计算。源代码编辑器202请求来自机器学习模型206的推荐220,以完成代码段。耦合到源代码编辑器202的代理212监控在源代码编辑器202与机器学习模型206之间的通信。代理212可以追踪源代码编辑器202请求来自完成组件204的推荐220的次数、从完成组件204返回的推荐220的数目以及在阈值训练时段内由源代码编辑器202所利用的推荐220的数目。监控组件224使用来自阈值训练时段的计数,以生成针对每个性能度量的阈值,从该度量中模型的性能被分析(共同地,框304)。
44.在一个方面中,阈值训练时段可以由三十天组成。在该阈值训练时段期间,代理212可以计算计数,其包括应用对完成组件204做出的请求218的总数目、从完成组件204返回的推荐的总数目、由应用使用的推荐的数目,其中被接受的推荐在被返回到应用的前1、3或5个推荐之内。(共同地,框304)。
45.计数被发送到监控组件224,其计算阈值。存在针对精度和覆盖率度量的阈值。存在基于被接受的推荐的排名的多个精度度量。在一个方面中,度量和阈值可以被计算如下:
[0046][0047][0048][0049][0050]
精度(前1)阈值=μ[精度(前1)]

2*σ[精度(前1)],
[0051]
精度(前3)阈值=μ[精度(前3)]

2*σ[精度(前3)],
[0052]
精度(前5)阈值=μ[精度(top 5)]

2*σ[精度(前5)],
[0053]
覆盖率阈值=μ[覆盖率]

2*σ[覆盖率]。
[0054]
在一个方面中,由模型计算的概率用于将推荐按照从具有最高概率的推荐到具有最低概率的推荐的降序来排名。具有最高概率的推荐被认为是前1推荐,具有三个最高概率的推荐被认为是前3推荐,并且具有五个最高概率的推荐被认为是前5推荐。
[0055]
精度(前1)度量表示由应用使用的前1推荐的数目与由机器学习模型做出的推荐的总数目的比率。精度(前3)度量表示由应用使用的前3推荐的数目与由机器学习模型做出的推荐的总数目的比率。精度(前5)度量表示由应用使用的前5推荐的数目与由机器学习模型做出的推荐的总数目的比率。
[0056]
精度(前1)阈值被计算为在阈值训练时段内精度(前1)度量的均值μ小于精度(前1)度量的标准差σ的二倍。精度(前3)阈值被计算为在阈值训练时段内精度(前3)度量的均值μ小于精度(前3)度量的标准差σ的二倍。类似地,精度(前5)阈值被计算为在阈值训练时段内精度(前5)度量的均值μ小于精度(前5)度量的标准差σ的二倍。覆盖率阈值类似地被计算为在阈值训练时段内覆盖率度量的均值μ小于覆盖率度量的标准差σ的二倍。(共同地,框304)。
[0057]
一旦阈值被建立,代理212就在目标时间段期间监控在源代码编辑器202与完成组件204之间的通信。目标时间段可以是预定时间长度或被限定为源代码编辑器202运行确定次数的持续时间。在该目标时间段期间,代理212提供计数,诸如应以请求来自完成组件204的推荐的次数、模型将至少一个推荐返回到应用的次数、由应用选择的前1推荐次数、由应用选择的前3推荐次数以及由应用选择的前5推荐次数。(共同地,框306)。
[0058]
监控组件224接收计数并且从这些计数中计算精度和覆盖率度量(1)至(4)。监控组件224还确定度量中的任何一个度量是否落入其相应阈值以下。当度量在其相关联的阈值以下时,监控组件224设置重新训练指示符(共同地,框306)。
[0059]
附加地,监控组件224监控训练数据集的代码改动(框308)。转到图4,示出了用于计算训练数据集的代码改动,以便确定用于训练模型的数据的陈旧度的三个示例性方法。
[0060]
在第一方面中,代码改动被确定为自从模型的上次训练之后对训练数据集做出的改变的量的函数。代码改动可以被计算为在源代码仓库中已经改变的源代码的行数与源代码仓库中的源代码的总行数的比率。针对git型源代码仓库,可以执行对自从模型先前被训练之后对源代码仓库做出的提交的搜索。在模型上次被训练时存在的提交被保存,使得差异可以被确定。diff命令可以用于确定在最近的提交与在模型上次被训练时所保存的提交之间的差异。改变的行数可以从diff获得,其然后用于确定代码改动率。(共同地,框402)。
[0061]
备选地,代码改动可以基于对从用于训练模型的源代码程序中所提取的特征做出的改变来计算。在图2中示出的代码完成示例的情况下,模型在表示方法调用的上下文的特征上被训练。方法调用的上下文可以包括以下一个或多个:程序中的方法调用的空间位置;方法调用是否在条件语句内部(例如,if-then-else程序语句);类的名称;调用的方法或属性的名称;对应于调用的方法的类的名称;包含方法调用的函数;方法的类型;以及在方法与重载、静态、虚拟、定义、抽象和/或密封关键字相关联的情况下的指示。(共同地,框404)。
[0062]
在该示例中,与diff相关联的源代码文本被分析,以确定对用于训练模型的特征做出的改变的性质。启发法可以用于分析改变并且将权重应用到某些改变。例如,来自先前训练数据的类可以被追踪并且用于确定自从模型上次被训练之后是否存在对源代码仓库
的当前版本中的方法、属性或类的任何名称改变。名称改变的量可以与阈值进行比较。当名称改变的量超过阈值时,模型将被重新训练。(共同地,框404)。
[0063]
备选地,代码改动可以通过使用源代码的抽象语法树(ast)表示的比较来确定。ast是源代码的语法表示。抽象语法树是根n叉树,其中非叶子节点对应于指定结构信息的上下文无关语法中的非终端。叶子节点对应于表示程序文本的语法令牌。
[0064]
来自上次训练数据集的ast被记录。自从训练阶段之后,所执行的每个提交被分析并且相关源代码被解析或编译成ast。从上次训练数据集记录的ast与从最近发出的提交所创建的ast进行比较,以确定这两个ast之间的差异,诸如,是否存在对用于训练模型的特征(例如,方法、属性、类、类型)的名称做出的任何显著改变(例如,改变/添加/删除)的话。另外,这两个ast之间的diff或差异可以指示对程序中做出的方法调用的序列做出的改变。这些改变的量然后用于确定代码改动。当这些改变的量超过阈值时,模型然后被重新训练。
[0065]
(共同地,框406)。
[0066]
现在转回到图2和图3,当精度度量或覆盖率度量落入相应阈值以下或代码改动超过对应阈值时,监控组件224设置重新训练指示符226(框310)。针对代码改动,阈值可以是改动的5%的增加。然而,阈值可以基于模型的性能的改进或下降来更改(框310)。监控组件224继续监控模型的性能和训练数据集的代码改动(框312-否)。当重新训练指示符226被设置(框312-是)时,利用最近改变的训练数据集、附加数据或新训练数据集来重新训练模型(框314)。新训练数据集的基线特征被存储,以促进针对代码改动的连续监控(框314),并且重新训练的模型被部署到目标推理系统中(框316)。
[0067]
示例性操作环境
[0068]
现在注意力转到示例性操作环境的讨论。图5图示示例性操作环境500,其中第一计算设备502被用于重新训练机器学习模型,并且第二计算设备504在目标推理系统中使用机器学习模型。然而,应当指出,本文公开的方面不受限于任何特定配置的设备。计算设备502可以在它的过程中利用机器学习模型并且计算设备504也可以生成并且测试机器学习模型。计算设备502可以被配置为作为针对其他代码完成系统的服务重新训练机器学习模型的云服务。操作环境不限于任何特定配置。
[0069]
计算设备502、504可以是任何类型的电子设备,诸如但不限于,移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手持计算机、服务器、服务器阵列或服务器农场、网页服务器、网络服务器、刀片服务器、互联网服务器、工作站、微型计算机、大型计算机、超级计算机、物联网(iot)、网络设备、web设备、分布式计算系统、多处理器系统或其组合。操作环境500可以被配置在网络环境、分布式环境、多处理器环境或能够访问远程或本地存储设备的独立计算设备中。
[0070]
计算设备502、504可以包括一个或多个处理器508、530、一个或多个通信接口510、532、一个或多个存储设备512、534、一个或多个输入/输出设备514、536以及至少一个存储器或存储器设备516、540。处理器508、530可以是任何商业上可用的或定制处理器并且可以包括双重微处理器和多处理器架构。通信接口510、532促进在计算设备502、504与其他设备之间的有线或无线通信。存储设备512、534可以是不包含传播信号(诸如,通过载波发送的经调制的数据信号)的计算机可读介质。存储设备512、534的示例包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多用盘(dvd)或其他光学存储、磁带盒、磁带、
磁盘存储,其全部不包含传播信号(诸如,通过载波发送的经调制的数据信号)。在计算设备502、504中可以存在多个存储设备512、534。输入/输出设备514、536可以包括键盘、鼠标、笔、语音输入设备、触摸输入设备、显示器、扬声器、打印机等以及其任何组合。
[0071]
存储器516、540可以是可以存储可执行流程、应用和数据的任何非暂态计算机可读存储介质。计算机可读存储介质不涉及传播信号(诸如,通过载波发送的经调制的数据信号)。它可以是任何类型的非暂态存储器设备(例如,随机存取存储器、只读存储器等)、磁性存储、易失性存储、非易失性存储、光学存储、dvd、cd、软盘驱动器等,其不涉及传播信号(诸如,通过载波发送的经调制的数据信号)。存储器516、540还可以包括一个或多个外部存储设备或远程定位的存储设备,其不涉及传播信号(诸如,通过载波发送的经调制的数据信号)。
[0072]
存储器540可以包含指令、组件和数据。组件是执行特定功能并且以其他方式被已知为模块、程序和/或应用的软件程序。存储器540可以包括操作系统542、一个或多个应用544、代理546、机器学习模型548以及其他应用和数据550。存储器516可以包括操作系统518、监控组件520、机器学习训练组件522、训练数据集源524以及其他应用和数据526。
[0073]
计算设备502、504可以经由网络506通信地耦合。网络506可以被配置为自组织网、内部网、外部网、虚拟专网(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网、公共交换电话网(pstn)的部分、普通老式电话服务(pots)网络、无线网络、网络、或任何其他类型的网络或网络的组合。
[0074]
网络506可以采用各种有线和/或无线通信协议和/或技术。可以由网络采用的各代不同的通信协议和/或技术可以包括但不限于全球移动通信系统(gsm)、通用分组无线业务(gprs)、增强数据gsm环境(edge)、码分多址(cdma)、宽带码分多址(wcdma)、码分多址2000(cdma-2000)、高速下行链路分组接入(hsdpa)、长期演进(lte)、通用移动通信系统(umts)、演进数据最优化(ev-do)、微波存取全球互通(wimax)、时分多址(tdma)、正交频分复用(ofdm)、超宽带(uwb)、无线应用协议(wap)、用户数据报(udp)、传输控制协议/互联网协议(tcp/ip)、开放系统互连(osi)模型协议的任何部分、会话发起协议/实时传输协议(sip/rtp)、短消息服务(sms)、多媒体消息传送服务(mms)或任何其他通信协议和/或技术。
[0075]
结论
[0076]
公开了一种系统,其具有:一个或多个处理器;至少一个存储器设备,其通信地耦合到一个或多个处理器;以及一个或多个程序,被存储在存储器设备中。一个或多个程序包括指令:监控随目标应用的机器学习模型的操作;生成第一度量,该成第一度量反映给定输入特征时机器学习模型做出预测的能力;生成第二度量,该第二度量反映由机器学习模型做出的预测的使用率;以及当第一度量或第二度量落入阈值以下时,利用新训练数据集来重新训练机器学习模型。
[0077]
第一度量表示由目标应用选择的预测的数目与由机器学习模型做出的预测的总数目的比率。第一度量表示由目标应用选择的最高排名的预测次数与由机器学习模型做出的预测的总数目的比率。第二度量表示由机器学习模型做出的预测的数目与由机器学习模型做出的预测的总数目的比率。
[0078]
一个或多个程序还包括指令:基于在第一时间段内做出的多个第一度量来生成针对第一度量的第一阈值,其中第一阈值在多个第一度量的均值的标准差的二倍之内。附加
的指令基于在第二时间段内做出的多个第二度量来生成针对第二度量的第二阈值,其中第二阈值在多个第二度量的均值的标准差的二倍之内。另外的指令:监控在机器学习模型上次被训练之后,对用于训练机器学习模型的训练数据集做出的改变;以及当对训练数据集做出的改变已经增加超过阈值时,利用更新的训练数据集来重新训练机器学习模型。
[0079]
一个或多个程序还包括指令:监控自从模型上次被训练之后,用于训练机器学习模型的训练数据集的代码改动;以及当代码改动超过阈值时,重新训练机器学习模型。附加的指令执行以下动作:将代码改动测量为:训练数据集中所改变的源代码的行数与训练数据集中的源代码的行数的比率。另外的指令执行以下动作:基于自从上次训练之后,对从上次训练数据集中所提取的特征做出的改变的量来测量代码改动。一个或多个程序还包括进行以下操作的指令:使用自从上次训练之后做出的改变的抽象语法树表示来检测对从上次训练数据集中提取的特征做出的改变的量。
[0080]
公开了一种方法,其包括:由过具有至少一个处理器和存储器的计算设备,追踪随目标应用的机器学习模型的操作;追踪自从机器学习模型上次被训练之后,对用于训练机器学习模型的训练数据集做出的改变;以及当机器学习模型的操作低于第一阈值时,或者当自从机器学习模型上次被训练之后已经对训练数据集做出的显著改变量超过第二阈值时,利用更新的训练数据集来重新训练机器学习模型,其中机器学习模型的操作基于由机器学习模型做出的预测的准确性和机器学习模型做出预测的能力。
[0081]
该方法还包括:基于由机器学习模型做出的预测的量与由机器学习模型做出的预测的总量的比率来计算精度度量,该预测由目标应用使用。该方法还包括:基于由机器学习模型做出的预测的总数目与针对预测做出的请求的总数目的比率来计算覆盖率方法。该方法执行包括以下的附加动作:将代码改动计算为对训练数据集做出的改变的测量,代码改动基于:训练数据集中所改变的源代码的行数与训练数据集中的源代码的总行数的比率;以及将代码改动计算为对训练数据集做出的改变的测量,代码改动基于对从训练数据集中提取的特征的名称改变,特征包括:从训练数据集提取的方法、类和/或属性。
[0082]
公开了一种设备,其包括耦合到至少一个存储器设备的至少一个处理器。至少一个处理器被配置为:基于初始训练数据集来训练机器学习模型;在推理系统中利用机器学习模型;监控在机器学习模型上次被训练之后,对初始训练数据集的代码改动;并且在代码改动超过阈值时,利用第二训练数据集来重新训练机器学习模型。附加地,至少一个处理器还被配置为:将第一训练数据集的代码改动确定为自从机器学习模型上次被训练之后源代码行数改变的函数。另外,至少一个处理器还被配置为:将初始训练数据集的代码改动确定为对从训练数据集中所提取的特征的名称改变的函数。另外附加地,至少一个处理器还被配置为:将初始训练数据集的代码改动确定为对从初始训练数据集中的源代码的句法表现中所检测的改变的函数。
[0083]
尽管以特定于结构特征和/或方法动作的语言描述了主题,但是应理解随附权利要求中限定的主题不必然限于以上描述的特定特征或动作。相反,以上描述的特定特征或动作被公开为实现权利要求的示例形式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献