掌桥专利:专业的专利平台
掌桥专利
首页

针对机器人流程自动化的人工智能/机器学习模型漂移检测和校正

文献发布时间:2023-06-19 19:30:30


针对机器人流程自动化的人工智能/机器学习模型漂移检测和校正

相关申请的交叉引用

本申请要求于2020年7月21日提交的美国非临时专利申请号16/934,369的权利。该较早提交的申请的主题以整体内容通过引用并入于此。

技术领域

本发明总体上涉及机器人流程自动化(RPA),并且更具体地说涉及用于RPA的人工智能(AI)/机器学习(ML)模型漂移检测和校正。

背景技术

可以部署经过训练的AI/ML模型来为诸如图像识别和文档处理等各种任务提供概率解决方案。然而,由AI/ML模型做出的预测可能随时间改变或漂移。在RPA的上下文中,其中软件机器人可以利用AI/ML模型在有或没有用户知识的情况下或者可能根本没有任何用户参与的情况下执行任务,AI/ML模型漂移可能尤其成问题。因此,用于检测和/或校正AI/ML模型漂移的改进技术可能是有益的。

发明内容

本发明的某些实施例可以提供对现有技术中尚未被当前RPA技术完全标识、理解或解决的问题和需要的解决方案。例如,本发明的一些实施例涉及针对RPA的AI/ML模型漂移检测和校正。

在一个实施例中,用于执行针对RPA的AI/ML模型漂移检测和校正的计算机程序被体现在非暂态计算机可读介质上。计算机程序被配置为使至少一个处理器:分析与针对AI/ML模型有关的输入数据的信息以确定是否已发生数据漂移、分析与来自AI/ML模型的执行的结果有关的信息以确定是否已发生模型漂移、或两者。基于对信息的分析,在发现改变条件时、在满足或超过改变阈值时、或两者,计算机程序还被配置为使至少一个处理器重新训练AI/ML模型。

在另一实施例中,一种用于执行针对RPA的AI/ML模型漂移检测和校正的计算机实现的方法包括:分析与AI/ML模型的输入数据有关的信息以确定数据漂移是否已发生、分析与AI/ML模型的执行结果有关的信息以确定模型漂移是否已发生、或两者。基于对信息的分析,在发现改变条件时、在满足或超过改变阈值时、或两者,该方法包括重新训练AI/ML模型,验证经重新训练的AI/ML模型是否满足一个或多个性能阈值,以及当经重新训练的AI/ML模型满足一个或多个性能阈值时,部署重新训练的AI/ML模型。

在又一实施例中,一种用于执行针对RPA的AI/ML模型漂移检测和校正的计算机实现的方法包括分析包括由AI/ML模型做出的预测的一个或多个统计分布的信息。该信息与用以确定数据漂移已经是否发生的针对AI/ML模型的输入数据、与用以确定模型漂移是否发生的来自AI/ML模型的执行的结果、或两者有关。该方法还包括将一个或多个统计分布映射到由多个RPA机器人采取的相应的动作。基于对信息的分析,在至少一段时间发现改变条件、在至少一段时间满足或超过改变阈值、或两者时,该方法还包括重新训练AI/ML模型。在相应RPA机器人的RPA工作流的相应活动中采取该动作。

附图说明

为了容易理解本发明的某些实施例的优点,将通过参考在附图中示出的具体实施例来呈现以上简要描述的本发明的更具体的描述。应当理解,这些附图仅描述了本发明的典型实施例,因此不应认为是对其范围的限制,本发明将通过使用附图以附加的特征和细节进行描述和解释,其中:

图1是示出根据本发明实施例的机器人流程自动化(RPA)系统的架构图。

图2是示出根据本发明实施例的部署的RPA系统的架构图。

图3是示出根据本发明实施例的设计器、活动和驱动器之间的关系的架构图。

图4是示出根据本发明实施例的RPA系统的架构图。

图5是示出根据本发明实施例的被配置为执行针对RPA的AI/ML模型漂移检测和校正的计算系统的架构图。

图6是示出根据本发明实施例的被配置为执行针对RPA的AI/ML模型漂移检测和校正的系统的架构图。

图7A和图7B是示出根据本发明实施例的执行针对RPA的AI/ML模型漂移检测和校正的过程的流程图。

除非另有说明,在所有附图中相似的附图标记始终表示对应的特征。

具体实施方式

一些实施例涉及用于RPA的AI/ML模型漂移检测和校正。一些实施例存储关键性能指标(KPI),诸如AI/ML模型做出了多少预测以及实际使用了多少、预测的一个或多个统计分布等。当满足或超过改变阈值时,可以生成警告或重新训练触发器。例如,改变阈值可以是与历史性能的偏差至少一定的量、潜在地至少一定的时间段。然后可以潜在地使用由一个或多个用户和/或机器人提供的(更新的)新数据来训练AI/ML模型,并且可以部署AI/ML模型的新版本或全新模型,其提供更好的预测并解决漂移问题。

AI/ML模型漂移可能由于数据漂移、模型漂移或两者而发生。数据漂移是在针对AI/ML模型的输入数据的特性随时间从用于训练AI/ML模型的数据改变时。这可能导致由AI/ML模型做出的预测较不准确。模型漂移是输入到AI/ML模型和从AI/ML模型输出的数据之间的关系中的潜在问题随时间的变化。这些形式的漂移中的一种或两种的发生可能导致AI/ML模型性能受损,或者甚至使AI/ML模型对于其被训练以解决的问题不准确。数据漂移和模型漂移在本文统称为“概念漂移”。

在一些实施例中,统计分布被映射到(多个)RPA机器人在其(多个)工作流中采取的动作。在某些实施例中,统计分布可以与业务结果相匹配。例如,考虑1至5的标度用于特定业务结果并且结果通常落在1至5标度上的一个标准分布(例如,2至4)内的情况。如果1和5开始变得更普遍(例如,发生得比一个标准偏差更频繁),则可以自动触发异常。人工审阅者可查看AI/ML模型性能特性,以确定AI/ML模型如何漂移。可以执行人工确认以改进模型,从而改进业务结果。漂移的根本原因可以是数据漂移或模型漂移。在一些实施例中可以呈现向用户显示针对每个业务结果的这些统计分布的仪表板。

在RPA的上下文中,检测漂移可能特别重要。例如,当RPA机器人正在调用AI/ML模型来进行预测时,目前没有现有的方法来检查这些场景中的模型质量而无需人工监督。RPA机器人是AI/ML模型的消费者,并且它们可以自主地工作。用户可能缺乏对机器人基于这些AI/ML模型预测采取什么动作的控制,并且这种RPA机器人的自主性可能导致不期望的或甚至危险的结果(例如,在关键任务系统的情况下)。

一些实施例采用一种或多种算法来测量数据漂移和模型漂移。例如,可以使用用于降低数据集的维数的技术(例如,主成分分析(PCA))、密度估计(即,评估高维空间中的密度的连续性质)、其组合等。然而,应注意,可使用任何合适的(多个)技术来测量漂移而不偏离本发明的范围。

在某些实施例中,由自动化平台提供并实施如何检测和处理AI/ML模型漂移的框架。例如,如果AI/ML模型被部署到生产中,则该模型可以具有与自动化平台中的其他部署的AI/ML模型共同的输入模式。在一些实施例中,实施模式定义的程度可以取决于AI/ML模型本身和AI/ML模型流水线。输入模式描述AI/ML模型接受什么作为输入。在一些实施例中,这可以是具有预定义列和特定数据类型的逗号分隔值(CSV)文件。这可以实施某些字段要求和/或值。

例如,如果电子邮件正文作为输入以串行化的JavaScript对象符号(JSON)被传递到AI/ML模型,则电子邮件正文可被视为输入。然而,具有数字数据的CSV文件可能不被接受,因为AI/ML模型可能不知道如何解释数据。因此,该模式可以帮助防止不期望的或未许可的数据格式被馈送到AI/ML模型中。

当运行所部署的AI/ML模型并执行分析时,可以随时间建立输入数据和AI/ML模型预测的表示。例如,可以测量原始数据集和新数据集的一维分布之间的距离以用于协变量漂移。在一些实施例中,分析包括确定统计矩是否改变。在某些实施例中,统计矩包括均值、方差、偏度、峰度、协方差、或其组合。而且,可以检查两个模型的剩余漂移(residualdrift)之间的距离。例如,如果AI/ML模型的两个变体(例如,模型的新版本和模型的先前版本)在不同的数据集或数据集的不同部分上被训练,则模型的分布之间的距离可以被用来尝试确定在一个模型中为什么发生漂移,而在另一个模型中可能不发生漂移(或至少更少)。

再次考虑上述示例,其中AI/ML模型预测输入数据落在1至5范围内的五个类中的一类。AI/ML模型已部署6个月,95%的预测为第2类、第3类或第4类。然而,AI/ML模型然后开始做出更多的第1类和第5类的预测。然后可以确定输入数据的特性(例如,分布)是否改变,这导致预测中的改变,或者AI/ML模型预测中的改变是否在输入数据没有显著改变的情况下发生。

在一些实施例中,RPA工作流中的活动可以检测漂移是否正在发生(并且在一些情况下,是什么类型)。例如,在RPA设计器应用中可以获得允许开发者考虑数据或模型漂移的活动集合。这些活动可以基于一定百分比的漂移发生、超过标准偏差、不常见的预测变得明显更常见等来配置。

当确定发生漂移时,可以生成触发器。例如,触发器可以使由AI/ML模型做出的预测和/或输入数据被发送和存储以供人工审阅者分析。动作中心队列可以允许人工来验证并自动重新训练该模型的新版本。然后,人工审阅者可审阅AI/ML模型基于输入数据预测的内容,并确定模型的准确性是否存在问题。当经重新训练的AI/ML模型满足某些阈值(例如,置信度阈值、某种形式的随机采样、其他试探法等)时,可以将其自动部署在现有AI/ML模型旁边,可以并排(side-by-side)测量模型的漂移,以查看AI/ML模型的新版本是否对实际数据表现得更好。如果该模型低于该阈值,则可以进行人工审阅以确定为什么不满足该阈值,并且可以尝试训练AI/ML模型以使其满足或超过该阈值。

在一些实施例中,当训练AI/ML模型时,将训练数据的一部分分开以用于稍后的测试。可以使用度量的集合来创建一个高级度量以评估该模型。一个例子是用于文档理解模型的F1分数。这是精度和召回的派生,并且两者之间存在折衷。可以执行交叉验证以分离出另一段数据,将其混合,并且使用混合的数据来测试模型。然而,如果被分离出的数据段不代表现实世界数据,则模型可能与训练数据过度拟合,并且对于现实世界应用不能很好地起作用。

在一些实施例中,该过程可以是自动的。例如,如果F1分数超过90%,则可以部署AI/ML模型的新版本。然后可以检查该新版本的漂移和/或由人工确认。

某些实施例可用于机器人流程自动化(RPA)。图1是示出根据本发明实施例的RPA系统100的架构图。RPA系统100包括允许开发者设计和实现工作流的设计器110。设计器110可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务、以及业务IT过程的解决方案。设计器110可以促进自动化项目的开发,自动化项目是业务过程的图形表示。简单地说,设计器110便于工作流和机器人的开发和部署。

自动化项目通过给予开发者对执行次序的控制以及在工作流(在此定义为“活动”)中开发的定制步骤集之间的关系来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是UiPath Studio

一些类型的工作流可以包括但不限于序列、流程图、FSM和/或全局异常处理程序。序列可以特别适合于线性过程,使得能够在不混乱工作流的情况下从一个活动流向另一个活动。流程图可以特别适用于更复杂的业务逻辑,使得能够通过多个分支逻辑运营商以更多样的方式集成决策和连接活动。FSM尤其适用于大型工作流。FSM可在其执行中使用有限数目的状态,其由条件(即,转变)或活动触发。全局异常处理程序尤其适合于在遇到执行错误时确定工作流行为和调试过程。

一旦在设计器110中开发了工作流,就由指挥器120协调业务流程的执行,指挥器120协调执行在设计器110中开发的工作流的一个或多个机器人130。指挥器120的实施例的一个商业示例是UiPath Orchestrator

指挥器120可以管理机器人130的队伍,从集中点连接和执行机器人130。可被管理的机器人130的类型包括但不限于有人值守机器人132、无人值守机器人134、开发机器人(类似于无人值守机器人134,但用于开发和测试目的)和非生产机器人(类似于有人值守机器人132,但用于开发和测试目的)。有人值守机器人132由用户事件触发,并在同一计算系统上与人工一起操作。有人值守机器人132可以与指挥器120一起用于集中过程部署和记录介质。有人值守机器人132可以帮助人工用户完成各种任务,并且可以由用户事件触发。在一些实施例中,过程不能从这种类型的机器人上的指挥器120开始和/或它们不能在锁定的屏幕下运行。在某些实施例中,有人值守机器人132只能从机器人托盘或从命令提示启动。在一些实施例中,有人值守机器人132应当在人工监督下运行。

无人值守机器人134在虚拟环境中无人值守地运行并且可以使许多过程自动化。无人值守机器人134可以负责针对工作队列的远程执行、监视、调度和提供支持。在一些实施例中,可以在设计器110中运行所有机器人类型的调试。有人值守和无人值守机器人都可以使各种系统和应用自动化,包括但不限于大型机、web应用、VM、企业应用(例如,由

指挥器120可以具有各种能力,包括但不限于供应、部署、版本控制、配置、排队、监视、记录和/或提供互连性。供应可以包括创建和维护机器人130和指挥器120(例如,web应用)之间的连接。部署可以包括确保将包版本正确递送到所分配的机器人130以供执行。在一些实施例中,版本控制可以包括一些过程或配置的唯一实例的管理。配置可以包括机器人环境和过程配置的维护和交付。排队可以包括提供对队列和队列项的管理。监视可以包括跟踪机器人标识数据并维护用户权限。记录可以包括将日志存储和索引到数据库(例如,SQL数据库)和/或另一存储机制(例如,

机器人130是运行设计器110中构建的工作流的执行代理。(多个)机器人130的一些实施例的一个商业示例是UiPath Robots

在一些实施例中,机器人130可以以用户模式安装。对于这种机器人130,这意味着它们具有与安装了给定机器人130的用户相同的权限。该特征还可用于高密度(HD)机器人,其确保每个机器在其最大潜力下的完全利用。在一些实施例中,可以在HD环境中配置任何类型的机器人130。

在一些实施例中,机器人130被分成几个部件,每个部件专用于特定的自动化任务。在一些实施例中,机器人部件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监视

在一些实施例中,用户模式机器人服务管理和监视

执行器可以在

如上所述使机器人130的组件分离有助于开发者、支持用户和计算系统更容易地运行、标识和跟踪每个组件正在执行什么。可以用这种方式为每个组件配置特殊行为,例如为执行器和服务建立不同的防火墙规则。在一些实施例中,执行器可以总是知道每个监视器的DPI设置。结果,可以在任何DPI处执行工作流,而不管在其上创建工作流的计算系统的配置如何。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。对于不知道DPI或有意标记为不知道的应用,在一些实施例中可以禁用DPI。

图2是示出根据本发明实施例的所部署的RPA系统200的架构图。在一些实施例中,RPA系统200可以是图1的RPA系统100的或可以是图1的RPA系统100的一部分。应当注意,客户端侧、服务器侧或两者可以包括任何期望数量的计算系统,而不脱离本发明的范围。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可以不在计算系统210上运行。执行器212正在运行进程。如图2所示,数个业务项目可以同时运行。在该实施例中,代理214(例如,

在一些实施例中,机器人表示机器名和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行的多个交互会话的计算系统(例如,

代理214还负责发送机器人的状态(例如,周期性地发送指示机器人仍在工作的“心跳”消息)并下载要执行的包的所需版本。在一些实施例中,代理214和指挥器230之间的通信总是由代理214发起。在通知场景中,代理214可以打开WebSocket通道,稍后由指挥器230使用该WebSocket通道来向机器人发送命令(例如,开始、停止等)。

在服务器侧,包括表示层(web应用232、开放数据协议(OData)代表状态传输(REST)应用编程接口(API)端点234、以及通知和监视236)、服务层(API实现/业务逻辑238)、以及持久层(数据库服务器240和索引器服务器250)。指挥器230包括web应用232、OData REST API端点234、通知和监视236、以及API实现/业务逻辑238。在一些实施例中,用户在指挥器230的接口中(例如,经由浏览器220)执行的大多数动作是通过调用各种API来执行的。在不脱离本发明的范围的情况下,这样的动作可以包括但不限于在机器人上启动作业、在队列中添加/移除数据、调度作业以无人值守地运行等。Web应用232是服务器平台的可视层。在该实施例中,web应用232使用超文本标记语言(HTML)和JavaScript(JS)。然而,可以使用任何期望的标记语言、脚本语言或任何任何期望的标记语言、脚本语言或任何其它格式。在该实施例中,用户经由浏览器220与来自web应用232的网页交互,以便执行各种动作来控制指挥器230。例如,用户可以创建机器人组、将包分配给机器人、分析每机器人和/或每过程的日志、启动和停止机器人等。

除了web应用232之外,指挥器230还包括暴露OData REST API端点234的服务层。然而,可以包括其他端点而不偏离本发明的范围。REST API由web应用232和代理214两者使用。代理214在该实施例中是客户端计算机上的一个或多个机器人的管理程序。

本实施例中的REST API包括配置、记录、监视和排队功能。在一些实施例中,配置端点可用于定义和配置应用用户、许可、机器人、资产、发布、和环境。记录REST端点可用于记录不同的信息,例如错误、由机器人发送的显式消息、以及其它环境特定信息。部署REST端点可由机器人用来查询如果在指挥230中使用开始作业命令则应执行的包版本。对REST端点进行排队可负责队列和队列项管理,诸如将数据添加到队列、从队列获得事务、设置事务的状态等。

监视REST端点可以监视web应用232和代理214。通知和监视API 236可以是REST端点,其用于注册代理214、向代理214递送配置设置、以及用于从服务器和代理214发送/接收通知。在一些实施例中,通知和监视API 236还可以使用WebSocket通信。

在该实施例中,持久层包括一对服务器——数据库服务器240(例如SQL服务器)和索引器服务器250。在该实施例中,数据库服务器240存储机器人的配置、机器人组、相关联的过程、用户、角色、时间表等。在一些实施例中,通过web应用232来管理该信息。数据库服务器240可以管理队列和队列项。在一些实施例中,数据库服务器240可以存储由机器人记录的消息(除了索引器服务器250之外或代替索引器服务器250)。

在一些实施例中可选的索引器服务器250存储并索引由机器人记录的信息。在某些实施例中,可以通过配置设置来禁用索引器服务器250。在一些实施例中,索引器服务器250使用

图3是示出根据本发明实施例的设计器310、活动320、330和驱动器340之间的关系300的架构图。如上所述,开发者使用设计器310来开发由机器人执行的工作流。工作流可以包括用户定义的活动320和UI自动化活动330。一些实施例能够标识图像中的非文本视觉部分,在此称为计算机视觉(CV)。与此类部分有关的一些CV活动可包括但不限于点击、键入、获取文本、悬停、元素存在、刷新范围、高亮等。在一些实施例中,点击例如使用CV、光学字符识别(OCR)、模糊文本匹配和多锚来标识元素,并点击它。键入可以使用上述和元素中的类型来标识元素。GET文本可以标识特定文本的位置并使用OCR对其进行扫描。悬停可以标识元素并悬停在其上。元素存在可以使用上述技术来检查屏幕上是否存在元素。在一些实施例中,在设计器310中可以实现成百上千个活动。然而,在不脱离本发明的范围的情况下,可以使用任何数量和/或类型的活动。

UI自动化活动330是以低级代码编写的特殊的低级活动(例如,CV活动)的子集,便于与屏幕交互。UI自动化活动330通过允许机器人与所需软件交互的驱动器340来促进这些交互。例如,驱动器340可包括OS驱动器342、浏览器驱动器344、VM驱动器346、企业应用驱动器348等。

驱动器340可以在低层与OS交互、查找挂钩、监视键等。它们可以促进与

图4是示出根据本发明实施例的RPA系统400的架构图。在一些实施例中,RPA系统400可以是图1和/或图2的RPA系统100和/或200或包括图1和/或图2的RPA系统100和/或200。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的web应用与指挥器计算系统420通信。指挥器计算系统420又能够与数据库服务器430和可选的索引器服务器440通信。

关于图1和图3,应当注意,虽然在这些实施例中使用了web应用,但是可以使用任何合适的客户端/服务器软件而不脱离本发明的范围。例如,该指挥器可以运行与客户端计算系统上的非基于web的客户端软件应用通信的服务器侧应用。

图5是示出根据本发明实施例的被配置执行针对RPA的AI/ML模型漂移检测和校正的计算系统500的架构图。在一些实施例中,计算系统500可以是在此描绘和/或描述的一个或多个计算系统。计算系统500包括总线505或用于传送信息的其它通信机制,以及耦合到总线505用于处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例和/或其任何组合。(多个)处理器510还可以具有多个处理核,并且至少一些核可以被配置为执行特定功能。在一些实施例中可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一个可以是包括模拟生物神经元的处理元件的神经形态电路。在一些实施例中,神经形态电路可以不需要冯诺依曼计算架构的典型组件。

计算系统500还包括用于存储将由(多个)处理器510执行的信息和指令的存储器515。存储器515可由随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、高速缓冲存储器,例如磁盘或光盘的静态存储装置或任何其它类型的非暂态计算机可读介质或其组合的任何组合组成。非暂态计算机可读介质可以是可由(多个)处理器510访问的任何可用介质,并且可以包括易失性介质、非易失性介质或两者。介质也可以是可移动的、不可移动的或两者。

另外,计算系统500包括诸如收发器的通信设备520,以经由无线和/或有线连接提供对通信网络的访问。在一些实施例中,通信设备520可以被配置为使用频分多址(FDMA)、单载波FDMA(SC-FDMA)、时分多址(TDMA)、码分多址(CDMA)、正交频分复用(OFDM)、正交频分多址(OFDMA)、全球移动通信系统(GSM)、通用分组无线电服务(GPRS)、通用移动电信系统(UMTS)、cdma2000、宽带CDMA(W-CDMA)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、高速分组接入(HSPA)、长期演进(LTE)、LTE高级(LTE-A)、802.11x、Wi-Fi、Zigbee、超宽带(UWB)、802.16x、802.15、家庭节点B(HnB)、蓝牙、射频标识(RFID)、红外数据关联(IrDA)、近场通信(NFC)、第五代、新无线电(NR)和/或任何其它当前存在的或将来实现的通信标准和/或协议,而不脱离本发明的范围。在一些实施例中,通信设备520可以包括一个或多个天线,这些天线是单个的、阵列的、相控的、切换的、波束成形的、波束控制的、它们的组合、和/或任何其他天线配置,而不偏离本发明的范围。

(多个)处理器510还经由总线505耦合到显示器525,例如等离子体显示器、液晶显示器(LCD)、发光二极管(LED)显示器、场发射显示器(FED)、有机发光二极管(OLED)显示器、柔性OLED显示器、柔性衬底显示器、投影显示器、4K显示器、高清晰度显示器、

键盘530和诸如计算机鼠标、触摸板等光标控制设备535还耦合到总线505,以使用户能够与计算系统500接口。然而,在某些实施例中,可以不存在物理键盘和鼠标,并且用户可以仅通过显示器525和/或触摸板(未示出)与设备交互。输入设备的任何类型和组合可以用作设计选择的问题。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与其通信的另一计算系统远程地与计算系统500交互,或者计算系统500可以自主地操作。

存储器515存储在由(多个)处理器510执行时提供功能的软件模块。这些模块包括用于计算系统500的操作系统540。这些模块还包括AI/ML模型漂移检测和校正模块545,其被配置为执行本文描述的全部或部分过程或其派生。计算系统500可包括一个或多个包括附加功能的附加功能模块550。

本领域的技术人员将理解,“系统”可被实现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、量子计算系统或任何其它合适的计算设备或设备的组合,而不脱离本发明的范围。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的本地化和分布式形式实现,包括云计算系统。

应当注意,在本说明书中描述的一些系统特征已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以实现为包括定制的超大规模集成(VLSI)电路或门阵列的硬件电路,诸如逻辑芯片、晶体管或其它分立元件的现成半指挥器。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等的可编程硬件设备中实现。

模块还可以至少部分地以由各种类型的处理器执行的软件来实现。可执行代码的标识单元可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程或函数。然而,所标识的模块的可执行程序不必物理地位于一起,而是可以包括存储在不同位置中的完全不同的指令,完全不同的指令在逻辑地结合在一起时包括模块并实现模块的目的。此外,可以将模块存储在计算机可读介质上,计算机可读介质可以是例如硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他这种非暂态计算机可读介质,而不脱离本发明的范围。

实际上,可执行代码模块可以是单条指令或多条指令,并且甚至可以分布在几个不同的代码段上、不同的程序之间、以及跨越几个存储设备。类似地,操作数据可以在本文中在模块内被标识和示出,并且可以以任何合适的形式被具体化并被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为电信号存在于系统或网络上。

在一些实施例中,获得关于AI/ML模型性能的信息。该信息可以从针对该用户或计算系统定制的本地AI/ML模型的单个计算系统中获得,也可以从旨在更广泛应用的AI/ML模型的多个(multiple)或多个(many)计算系统中获得(例如,提供组级别、公司级别、全球级别等的解决方案),从AI/ML模型本身获得,从监控AI/ML模型的应用或其他流程获得,从它们的任意组合获得等。该信息可以帮助确定AI/ML模型随时间执行得有多好。例如,该信息可以包括但不限于做出了什么预测(例如,来自AI/ML模型的输出)、AI/ML模型做出了多少预测以及实际使用了多少、预测的一个或多个统计分布(例如,正态分布、二项分布或任何其他统计分布)、被提供给AI/ML模型的输入数据、其任何组合等。在一些实施例中,统计分布被映射到RPA机器人在其工作流中所采取的动作(例如,映射到活动)。

在收集了该信息之后,分析该信息以确定是否发生了数据漂移、模型漂移或两者。当发现改变条件(例如,预测或输入数据落在历史范围之外)和/或满足或超过改变阈值(例如,模型统计性能偏离历史性能至少一定量)时,生成警报或重新训练触发器。在一些实施例中,在AI/ML模型性能被认为已经漂移之前,改变条件或改变阈值必须满足至少一定的时间段或实例数。在某些实施例中,可以针对协变量漂移测量原始数据集与新数据集的一维分布之间的距离。而且,如果AI/ML模型的版本已经存在,则可以检查剩余漂移之间的距离。

然后可以使用所收集的信息和/或其它信息来重新训练AI/ML模型,以试图改进AI/ML模型的性能。在一些实施例中,当经重新训练的AI/ML模型满足某些阈值时,它可以自动地与现有AI/ML模型一起部署,可以并排测量模型的漂移,以查看AI/ML模型的新版本是否对实际数据表现得更好。在某些实施例中,不部署AI/ML模型的新版本,除非其满足这些阈值。

在一些实施例中,使用金丝雀测试(canary testing)。例如,AI/ML模型的新版本可以由可能不知道AI/ML模型改变的相对少量的用户(例如,按地理或一些其他过滤器每次10%的用户)使用。如果AI/ML模型的新版本没有与先前版本一样好地执行,则可以回滚新版本并且可以执行重新训练。

在某些实施例中,可以使用冠军(champion)/挑战者(challenger)技术,其中输入数据被发送到AI/ML模型的新版本和AI/ML模型的先前版本,但是仅使用一组输出。这可有助于分析AI/ML模型的新版本和AI/ML模型的先前版本如何基于某种基本事实在类似对类似的基础上执行。该技术可以帮助确定哪个AI/ML模型版本是正确的或更接近于更经常是正确的。而且,该技术可以提供有助于故障排除的信息,关于为什么AI/ML模型的先前版本表现出某些行为。

在一些实施例中,自动化平台提供并实施通用框架,该框架涉及将哪些信息馈送到由RPA机器人从工作流程活动调用和/或由RPA机器人在工作流程活动内执行的AI/ML模型。该框架可以帮助确保在RPA平台中使用的AI/ML模型消耗预期数据。该框架还可以帮助确保AI/ML模型以适当的格式接收输入以实施某些字段要求和/或值。

图6是示出根据本发明实施例的被配置执行针对RPA的AI/ML模型漂移检测和校正的系统600的架构图。系统600包括用户计算系统,诸如台式计算机602、603、平板604和智能电话606。然而,可以使用任何期望的计算系统而不偏离本发明的范围,包括但不限于智能手表、膝上型计算机、物联网(IoT)设备、车辆计算系统等。此外,虽然在图6中示出了三个用户计算系统,但是可以使用任何合适数量的计算系统而不偏离本发明的范围。例如,在一些实施例中,可以使用数十、数百、数千或数百万个计算系统。

每个计算系统602、604、606具有在其上运行的RPA机器人610,RPA机器人610调用和/或执行ML模型(例如,服务器630的AI/ML模型632中的一个模型、计算系统602、604、606上的本地ML模型、以及位于任何其他位置的ML模型等)。在一些实施例中,RPA机器人610可以是经由RPA设计器应用生成的机器人。在该实施例中,RPA机器人610向AI/ML模型632发送请求和可能的输入数据。然而,在一些实施例中,除了来自RPA机器人610的输入数据之外或代替来自RPA机器人610的输入数据,AI/ML模型632可以从一个或多个其他源(例如,数据库640、另一计算系统等)获得输入数据。

RPA机器人610经由网络620(例如,局域网(LAN)、移动通信网络、卫星通信网络、互联网、其任何组合等)向服务器630的AI/ML模型632发送AI/ML模型请求并从其接收AI/ML模型执行结果。服务器630收集关于针对AI/ML模型632的模型漂移的信息并将其存储在数据库640中。该信息可以涉及数据漂移、模型漂移或两者。

当发现AI/ML模型632中的一个AI/ML模型的改变条件被发现(例如,预测或输入数据落在历史范围之外)和/或满足或超过改变阈值(例如,模型统计性能偏离历史性能至少一定量)时,在一些实施例中,服务器630向在审阅者计算系统650上运行的应用652发送警报或重新训练触发器(例如,作为用于审阅和标记的队列的一部分)。在一些实施例中,应用652可以使审阅者能够查看与AI/ML模型漂移有关的信息并且校正结果(例如,针对模型漂移)和/或识别输入数据的性质已经改变(例如,数据漂移)。在一些实施例中,应用652可以使“拥有”生产中的ML模型的ML操作员能够看到二维图中的模型漂移。例如,可以使用PCA执行降维以可视地显示某些异常。当这些异常中的一个出现时,也可以创建某些警报来标记。

在一些实施例中,在应用652中可以有更多层抽象,其中数据以业务用户可以理解数据含义的方式呈现给业务用户(例如,示出业务用户如何改变对企业数据的分析的2-D图)。针对技术上更有优势的ML操作员,这可以作为视图的补充或替代来呈现。例如,词云状机制可用于显示以较大字体更频繁出现的结果,并使人工更容易看到哪些结果最流行。

在某些实施例中,可以突出显示显著的变化。例如,业务用户可能能够看到用于批准贷款的AI/ML模型已经从每天批准的5个贷款跳到每天批准的20个贷款。然后,如果问题是持久的,则业务用户可以定义规则以试图在他们的末端修复模型行为,直到重新训练发生。业务用户还可以确定是否存在不是由于AI/ML模型的性能而引起的异常(例如,贷款申请的数量已经增加,更多合格的申请人正在申请等)。人工也可以使用应用652确定导致偏差但未被自动漂移检测机制检测到的自身变化。在一些实施例中可以存在两层——一层用于技术熟练的用户,另一层用于业务用户。

在某些实施例中,包括计算系统650和应用652的多个或许多计算系统和审阅应用可用于共同审阅和校正结果。在一些实施例中,从公共队列中提取这些结果。然后可以将这些校正提供回服务器630并存储在数据库640中,用于重新训练漂移AI/ML模型632。然而,在某些实施例中,服务器630可以自动检测由于输入数据的变化和/或AI/ML模型预测的变化而引起的AI/ML模型漂移正在发生。

在AI/ML数据和/或模型漂移被服务器630检测到之后(并且在一些实施例中在人工校正之后),漂移AI/ML模型632被重新训练。在一些实施例中,重新训练由服务器630执行。然而,在某些实施例中,除了服务器630之外或代替服务器630,可以由一个或多个其他服务器来执行重新训练。然后可以使用所收集的信息和/或其他信息来重新训练漂移AI/ML模型632,以试图改进AI/ML模型性能。

在AI/ML模型632的新版本被适当地训练之后(例如,当经重新训练的AI/ML模型632满足某些阈值时),服务器630可以将AI/ML模型632的新版本保存在数据库640中,潜在地替换AI/ML模型的先前版本。然而,在某些实施例中,可以存储AI/ML模型632的多个版本。服务器630然后部署经重新训练的AI/ML模型632以由RPA机器人610调用。然而,在一些实施例中,经重新训练的AI/ML模型632与AI/ML模型632的一个或多个先前版本一起部署。然后并排测量每个版本的AI/ML模型632的漂移,以查看AI/ML模型632的新版本是否对实际数据表现更好。如果确定这是随时间变化的情况,则AI/ML模型632的新版本可以替换先前版本的AI/ML模型632。然而,如果不是,则可以丢弃AI/ML模型的新版本,或者可以执行进一步的重新训练。

图7A和图7B是示出根据本发明实施例的执行针对RPA的AI/ML模型漂移检测和校正的过程700的流程图。在705处,该过程从RPA机器人接收用于执行AI/ML模型的请求和针对AI/ML模型的输入信息。在710处执行输入信息是否符合针对AI/ML模型的框架的验证。当在715处输入信息不符合框架时,在720处向RPA机器人提供指示输入信息不符合框架的错误。在725处,当在715处输入信息符合框架时,使用输入信息执行AI/ML模型,并且将AI/ML模型的执行结果返回给RPA机器人。在一些实施例中,针对多个AI/ML模型实施该框架。

在730处,分析与针对AI/ML模型的输入数据有关的信息以确定是否发生了数据漂移、与AI/ML模型的执行结果有关的信息以确定是否发生了模型漂移、或两者。在一些实施例中,该分析包括测量原始数据集和新数据集的一维分布之间的一个或多个距离以用于协变量漂移。在某些实施例中,该分析包括确定统计矩是否改变。在一些实施例中,统计矩包括均值、方差、偏度、峰度、协方差或其组合。在某些实施例中,该信息包括AI/ML模型做出什么预测、AI/ML模型做出多少预测以及多少预测由RPA机器人使用、由AI/ML模型做出的预测的一个或多个统计分布、提供给AI/ML模型的输入数据、或其组合。在一些实施例中,跨多个相应的RPA机器人所执行的多个RPA过程来执行对信息的分析(例如,经由联合学习)。

在一些实施例中,该信息包括由AI/ML模型做出的预测的一个或多个统计分布。在这样的实施例中,在735处,可以将一个或多个统计分布映射到由多个RPA机器人采取的相应的动作。在一些实施例中,在相应的RPA机器人的RPA工作流的相应的活动中采取动作。

在740处,对信息执行降维技术以生成信息的二维表示,并显示信息的二维表示。在745处,基于对信息的分析来执行对是否发现改变条件、满足或超过改变阈值、或两者的验证。在一些实施例中,验证包括验证改变条件、改变阈值、或两者已满足或超过至少预定时间段。

如果在750处基于对信息的分析发现改变条件、满足或超过改变阈值、或两者,则在755处重新训练AI/ML模型。然后,在760处,验证经重新训练的AI/ML模型是否满足一个或多个性能阈值。如果在765处不满足一个或多个性能阈值,则在755处,过程返回到重新训练AI/ML模型。然而,如果在765处,经重新训练的AI/ML模型满足一个或多个性能阈值,则在770处,部署经重新训练的AI/ML模型。在一些实施例中,部署AI/ML模型可以包括改变一个或多个RPA机器人的一个或多个活动以调用新的AI/ML模型,利用经重新训练的AI/ML模型替换AI/ML模型的先前版本。在某些实施例中,使用金丝雀测试技术或冠军/挑战者测试技术来部署AI/ML模型。

在775处,使用实际数据测量经重新训练的AI/ML模型和AI/ML模型的先前版本的模型漂移。在780处在基于测量的模型漂移经重新训练的AI/ML模型对实际数据不比先前版本的AI/ML模型表现更好时,在785处丢弃经重新训练的AI/ML模型和/或过程返回到步骤755以进一步重新训练。然而,当在780处基于所测量的模型漂移,与先前版本的AI/ML模型相比,经重新训练的AI/ML模型在实际数据上表现得更好时,在790处除了AI/ML模型的先前版本之外或者代替AI/ML模型的先前版本而使用经重新训练的AI/ML模型。在795,基于输入数据和/或用例,选择并调用经重新训练的AI/ML模型或AI/ML模型的先前版本。在一些实施例中,以分层方式进行选择。

在一些实施例中,可以对每个过程或每组过程执行模型漂移检测。例如,最好将AI/ML模型的特定版本用于特定类型的处理。可以观察到,当AI/ML模型基于具有特定特性的输入数据被训练时,AI/ML模型对于另一类型的输入数据变得不太准确。例如,考虑使用欧洲日期格式(例如,2019年11月17日(17November 2019)或17/11/2019)训练的用于处理发票的AI/ML模型的情况。如果在训练期间使用了更多美国日期格式的发票(例如,2019年11月17日(November 17,2019)或11/17/2019),则AI/ML模型可能对于欧洲日期格式的发票开始失败。

因此,在一些实施例中,可以训练AI/ML模型的不同版本以适应不同的情况,并且可以使用漂移检测来选择对于给定数据工作最佳的AI/ML模型版本。在某些实施例中,AI/ML模型版本可以基于RPA工作流等级的漂移检测以分层方式而被应用。可以开发逻辑以基于输入的类型确定使用哪个AI/ML模型版本,或者可以以分层方式尝试多个AI/ML模型,并且如果满足某些标准则可以选择结果。这也可以提供在多个AI/ML模型版本中漂移如何发生的洞察。这可以帮助确定AI/ML模型对于一种使用情况是否是坏的,而对于其它情况不是坏的。在某些实施例中,可以构建AI/ML模型链过程,其中确定性逻辑管理分层结构中使用的AI/ML模型版本。在一些实施例中,另一AI/ML模型可以确定使用哪个AI/ML模型版本。在某些实施例中,可以使用联合学习,其中多个计算系统协作地学习共享的预测模型,同时将训练数据保持在本地设备上。这可能特别有利于确保遵守RPA管理要求(例如,欧盟通用数据保护条例(GDPR)、美国健康保险流通与责任法案(HIPAA)、第三方服务条款等)。

根据本发明的实施例,在图7A和图7B中执行的处理步骤可以由计算机程序执行,该计算机程序编码用于(多个)处理器的指令以执行在图7A和图7B中描述的处理的至少一部分。该计算机程序可以包含在非暂态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其它这种介质或介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)以实现图7A和图7B中描述的处理步骤的全部或部分的编码指令,其也可以存储在计算机可读介质上。

计算机程序可以用硬件、软件或混合实现来实现。计算机程序可以由彼此可操作地通信的模块组成,这些模块被设计成将信息或指令传递到显示器。计算机程序可以被配置为在通用计算机、ASIC、或任何其他合适的设备上操作。

容易理解的是,本发明的各个实施例的部件,如在本文的附图中一般地描述和示出的,可以以各种各样的不同配置来布置和设计。因此,附图中所示的本发明实施例的详细描述并不旨在限制所要求保护的本发明的范围,而仅仅是本发明的所选实施例的代表。

贯穿本说明书描述的本发明的特征、结构或特性可以以任何合适的方式组合在一个或多个实施例中。例如,在整个说明书中对“某些实施例”、“一些实施例”或类似语言的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书的短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言的出现不一定都指相同的实施例组,并且所描述的特征、结构或特性可以以任何合适的方式组合在一个或多个实施例中。

应当注意,在整个说明书中对特征、优点或类似语言的引用并不意味着可以用本发明实现的所有特征和优点应当是或处于本发明的任何单个实施例中。相反,提及特征和优点的语言应理解为意指结合实施例描述的特定特征、优点或特性包括在本发明的至少一个实施例中。因此,在整个说明书中对特征和优点以及类似语言的讨论可以但不一定涉及相同的实施例。

此外,本发明的所述特征、优点和特性可以以任何合适的方式组合在一个或多个实施例中。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定特征或优点的情况下实践本发明。在其它情况下,在某些实施例中可认识到可能不存在于本发明的所有实施例中的额外特征和优点。

本领域的普通技术人员将容易理解,如上所述的本发明可以用不同顺序的步骤和/或用与所公开的配置不同的配置中的硬件元件来实现。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域技术人员显而易见的是,在保持在本发明的精神和范围内的同时,某些修改、变化和替代构造将是显而易见的。因此,为了确定本发明的界限和范围,应参考所附权利要求。

技术分类

06120115936003