首页> 中国专利> 更新或重新训练并更新动态人工智能/机器学习模型

更新或重新训练并更新动态人工智能/机器学习模型

摘要

公开了更新或重新训练并更新动态人工智能/机器学习模型。生产操作可能不需要停止进行AI/ML模型更新或重新训练并更新。用于AI/ML模型的更新步骤和/或再训练步骤可以被包括为数字进程的一部分。AI/ML模型更新可以从内部逻辑(例如,从对条件的评估、通过对AI/ML模型的该表达式调用等)、外部请求(例如,从有限状态机(FSM)中的外部触发器,例如文件改变、数据库数据、服务调用等)、或者这两者来请求。可以提供AI/ML模型更新或重新训练并更新的自动化,其中软件在AI/ML模型变得可用之后(并且可能紧接在之后)用重新训练和/或更新的AI/ML模型重新加载/重新初始化/重新实例化。

著录项

  • 公开/公告号CN113011828A

    专利类型发明专利

  • 公开/公告日2021-06-22

    原文格式PDF

  • 申请/专利权人 尤帕斯公司;

    申请/专利号CN202010897123.5

  • 发明设计人 A·R·奥罗斯;

    申请日2020-08-31

  • 分类号G06Q10/10(20120101);G06F30/27(20200101);G06K9/62(20060101);G06F8/65(20180101);B25J9/16(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人黄倩

  • 地址 美国纽约州

  • 入库时间 2023-06-19 11:32:36

说明书

技术领域

本发明总体上涉及人工智能(AI),并且具体地,涉及在数字进程运行时动态更新或重新训练并更新AI/机器学习(ML)模型。

背景技术

AI/ML模型目前被部署为在各种类型的计算系统上执行的数字进程的一部分。这些AI/ML模型可以执行分类、提供预测、执行数据分析等。由于域或业务规则更改,或者出于其他原因,AI/ML模型可能需要更新,或重新训练并更新,以提供更好的输出(例如,预测、分类等)。

目前,AI/ML模型更新过程需要系统停机时间和计划维护时间。这可能会影响员工的生产力、创收、服务的可用性等。因此,更新AI/ML模型以及重新训练并更新AI/ML模型的改进方法可能是有益的。

发明内容

本发明的某些实施例可以提供本领域中尚未被当前AI技术完全识别、理解或解决的问题和需求的解决方案。例如,本发明的一些实施例涉及在数字进程运行时动态更新或重新训练并更新AI/ML模型。

在实施方式中,一种计算机实现的方法包括通过在计算系统上执行的数字进程来监听对AI/ML模型的更新请求。当接收到更新请求以更新AI/ML模型时,计算机实现的方法包括通过在计算系统上执行的数字进程重新初始化或重新实例化数字进程以调用AI/ML模型的更新版本,并监听另一更新请求。AI/ML模型的更新发生在数字进程的运行期间。

在另一实施方式中,包括数字进程的计算机程序体现在非暂态计算机可读介质上。该程序被配置为使至少一个处理器监听AI/ML模型的重新训练请求或更新请求。当接收到重新训练请求以重新训练AI/ML模型时,程序被配置为使至少一个处理器发起AI/ML模型的重新训练。当接收到更新请求以更新AI/ML模型时,程序被配置为使至少一个处理器重新初始化或重新实例化数字进程以调用AI/ML模型的更新版本并监听另一重新训练请求或更新请求。AI/ML模型的重新训练或更新发生在数字进程的运行期间。

在又一实施方式中,一种计算系统包括:存储器,该存储器存储包括数字进程的计算机程序指令;以及至少一个处理器,被配置为执行计算机程序指令。该指令被配置为使所述至少一个处理器监听AI/ML模型的重新训练请求。当接收到重新训练请求以重新训练AI/ML模型时,该指令被配置为使至少一个处理器启动AI/ML模型的重新训练。AI/ML模型的重新训练发生在数字进程的运行期间。

在又一实施方式中,一种用于动态更新或重新训练并更新AI/ML模型的计算机实现的方法包括通过在计算系统上执行的RPA数字进程监听对AI/ML模型的更新请求。当接收到更新请求以更新AI/ML模型时,计算机实现的方法包括通过在计算系统上执行的RPA数字进程,重新初始化或重新实例化RPA数字进程以调用AI/ML模型的更新版本,并监听另一更新请求。AI/ML模型的更新发生在RPA数字进程的运行期间。RPA数字进程包括RPA工作流,AI/ML模型由RPA工作流的活动调用。

附图说明

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

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

图2是示出根据本发明的实施方式的已部署的RPA系统的体系结构图。

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

图4是示出根据本发明的实施方式的RPA系统的体系结构图。

图5是示出根据本发明的实施方式的被配置为在运行时动态更新或重新训练并更新AI/ML模型的计算系统的体系结构图。

图6是根据本发明的实施方式的被配置为在运行时动态更新或重新训练并更新AI/ML模型的有限状态机(FSM)的流程图的屏幕截图。

图7A示出了根据本发明的实施方式的图6的FSM的初始化状态的屏幕截图。

图7B示出了根据本发明的实施方式的图7A的初始化状态的参数的屏幕截图。

图8是示出根据本发明的实施方式的包括客户反馈的文本文件的屏幕截图。

图9是示出根据本发明的实施方式的图6的FSM的项目处理状态的RPA工作流序列的屏幕截图。

图10是示出根据本发明的实施方式的由图9的RPA工作流序列调用的AI/ML模型的属性的屏幕截图。

图11示出了根据本发明的实施方式的显示在重新训练期间的进度和在重新训练期间的FSM执行状态的屏幕截图。

图12是根据本发明的实施方式的显示AI/ML模型更新期间FSM执行状态的屏幕截图。

图13是示出根据本发明的实施方式的用于更新AI/ML模型的序列的屏幕截图。

图14是示出根据本发明的实施方式的被配置为重新训练AI/ML模型的系统的体系结构图。

图15是示出根据本发明的实施方式的在运行时用于AI/ML模型动态重新训练并更新的数字进程的体系结构图。

图16是示出根据本发明的实施方式的在运行时用于AI/ML模型动态更新的数字进程的体系结构图。

图17是示出根据本发明的实施方式的在数字进程运行期间用于AI/ML模型动态更新或动态重新训练并更新的过程的流程图。

除非另有指示,在整个附图中,类似的附图标记一致地表示相应的特征。

具体实施方式

一些实施例涉及在数字进程运行时(即,当软件正在执行时或持久化时)动态更新或重新训练并更新AI/ML模型。因此,不需要停止生产操作以进行AI/ML模型更新或重新训练并更新。在一些实施例中,用于AI/ML模型的更新步骤和/或重新训练步骤可以被包括为数字进程的一部分。在一些实施例中,AI/ML模型更新可以被从内部逻辑(例如,从条件的评估、通过对AI/ML模型的该表达式调用等)、外部请求(例如,从有限状态机(FSM)中的外部触发器,诸如文件改变、数据库数据、服务调用等)或者两者请求。如本文所使用的,数字进程包括所有类型的软件实现的工作流(例如,机器人流程自动化(RPA)、业务流程管理(BPM)软件流程图、顺序流、FSM等),应用程序、解决方案、系统服务、功能、方法、脚本等。数字进程的操作状态包括但不限于设计时间(例如,停止、配置、重新设计等),运行时间(例如,执行、持久化等)等。

从功能的角度来看,应用程序通常意味着一些很细的东西,并且服务于特定的角色。系统解决方案可以是服务于特定主题的更大解决方案的一部分(例如,用户管理功能可以具有密码重置、个人休假请求、医疗请求、员工入职等)。应用程序通常意味着前端或用户界面(UI),而系统服务通常在后台运行。应用程序的集合可以被分组为解决方案,而服务的集合可以被分组为系统服务。

为了获得最大的效率和投资回报(ROI),可能希望系统和解决方案在尽可能少的停机时间下运行。目前,在数字进程中,AI/ML模型更新或重新训练并更新需要维护停机时间,这使得流程不可用。动态更新或重新训练并更新由数字进程在运行时调用的AI/ML模型的能力提供了各种优势。例如,采用这些能力的软件可能没有或几乎没有因更新或重新训练以及更新AI/ML模型而导致的停机时间。可以提供AI/ML模型更新或重新训练并更新的自动化,其中软件在AI/ML模型变得可用之后(并且可能紧接在之后)用重新训练和/或更新的AI/ML模型重新加载/重新初始化/重新实例化。

如本文所使用的,“重新加载”是这样一种操作,通过该操作,通过其包含层从AI/ML模型数据存储(例如,文件、存储器等)中取出AI/ML模型数据(例如,在RPA情况下的活动)。“重新初始化”指的是一般进程中的状态/阶段,其中一些/所有组件的状态被重置为初始/已知/所需的值。“重新实例化”指的是在面向对象编程中创建一个对象,这里的对象在这种情况下是在运行时应用程序、进程、函数等内部的AI/ML模型。

一些实施例可以使AI/ML模型重新训练/更新过程自动化,使得它不需要由用户执行。例如,当自上次训练操作以来已经经过预定量的时间、接收到预定量的数据量、其组合等时,AI/ML模型可以被自动地重新训练。当重新训练的AI/ML模型的性能满足期望(例如,实现90%的精度)、超过当前执行版本的性能、或者两者兼而有之时,可以在没有用户交互的情况下自动部署(即,更新)重新训练的AI/ML模型。

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

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

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

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

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

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

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

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

在一些实施例中,机器人130可以以用户模式安装。对于这样的机器人130,这意味着它们具有与已在其下安装给定机器人130的用户相同的权利。高密度(HD)机器人也可以使用这一特性,它确保了每台机器最大潜力的充分利用。在一些实施例中,任何类型的机器人130可以被配置在HD环境中。

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

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

执行器可以在

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

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

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

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

在服务器侧,包括表示层(web应用232、开放数据协议(OData)代表状态传输(REST)应用编程接口(API)端点234、以及通知和监测236)、服务层(API实现/业务逻辑238)以及持久层(数据库服务器240和索引器服务器250)。指挥器230包括web应用232、ODataREST API端点234、通知和监测236以及API实现/业务逻辑238。在一些实施例中,用户在指挥器220的界面中执行的大多数动作(例如,经由浏览器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)、模糊文本匹配和多锚点来识别元素,并单击它。类型可以使用上面的内容和元素中的类型来标识元素。获取文本可以识别特定文本的位置,并使用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。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的web应用程序与指挥器计算系统420通信。指挥器计算系统420又能够与数据库服务器430和可选索引器服务器440通信。

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

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

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

此外,计算系统500包括通信设备520,例如收发机,以经由无线和/或有线连接提供对通信网络的访问。在一些实施方式中,在不偏离本发明的范围的情况下,通信设备520可以被配置为使用频分多址(FDMA)、单载波FDMA(SC-FDMA)、时分多址(TDMA)、码分多址(CDMA)、正交频分复用(OFDM)、正交频分多址(OFDMA)、全球移动通信系统、通用分组无线业务(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)、第五代(5G)、新无线电(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、磁带和/或用于存储数据的任何其它此类非暂态计算机可读介质。

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

在RPA的上下文中,AI/ML模型可以作为例如可以使用拖放功能集成到RPA工作流中的活动的一部分而可用。该活动可以包括所需类型的一个或多个输入参数,并且可以返回所需类型的一个或多个输出。AI/ML模型可以直接嵌入到活动中,也可以从外部源加载/执行或调用/执行。例如,可以从永久存储器中的本地或远程文件、从服务、从本地或远程数据库、从流、从非永久存储器(例如,RAM、处理器高速缓存等)等加载/执行或调用/执行AI/ML模型。例如,如果用ML.NET训练AI/ML模型,则可以在运行时从外部.zip文件加载AI/ML模型,并且可以随后初始化/实例化AI/ML模型。

在AI/ML模型不存储在本地计算系统上的实现中,在不偏离本发明的范围的情况下,AI/ML模型可以存储在可由计算系统访问的现场服务器(在一些实施例中其本身可以是服务器)、不同站点处的远程服务器(例如,服务器群)、云存储解决方案等上并由其提供或执行。AI/ML模型可以从文件、数据库(例如,经由SQL)、服务、通用资源定位器(URL)、文件传输协议(FTP)、流或经由任何其它合适的机制来执行。实际上,在不偏离本发明的范围的情况下,能够由本地计算系统加载/执行或调用/执行AI/ML模型的任何体系结构/配置。这也可以是非RPA实施例的情况。

RPA实现

作为一个非限制性示例,考虑作为服务运行的RPA工作流,它监测从客户收到的评论的情绪,其中工作流被实现为FSM。工作流可以监测文件夹中的新文件,这些新文件包括客户评论,并指示评论中的情绪是积极的还是消极的。图6是根据本发明的实施方式的被配置为在运行时动态更新或重新训练并更新AI/ML模型的FSM 600的流程图的屏幕截图。FSM600显示在UiPath Studio

初始化状态610从外部文件加载AI/ML模型,并将其保持在存储器中的变量中,当相关联的AI/ML活动调用AI/ML模型时,该变量可被FSM访问。图7A和图7B中示出了初始化状态610的序列和到监听状态620的转换的进一步细节。在710处,初始化状态610的状态被分配给“init”。该实施方式中的初始化状态610是FSM 600的逻辑中的区域,其中AI/ML模型、变量和数据被加载/初始化/实例化。然后在720处输出文本,通知用户AI/ML模型正在被加载。在730处创建变量AI_Model_InMemo作为新的存储器流。这个变量将把AI/ML模型存储在RAM中,供FSM 600使用。然而,如上所述,在不偏离本发明的范围的情况下,可以从任何存储位置加载和/或调用AI/ML模型。

然后在740处调用从本地磁盘加载AI/ML模型并将其复制到RAM中的方法。还参见图7B的相关属性742。在750处,将fileStream分配给AI/ML模型,并且在760处fileStream执行复制操作。还参见图7B的相关属性752。初始化状态610的变量790示于图7B中。

fileStream变量保存表示从数据存储加载的AI/ML模型的数据。在本地磁盘的情况下,当活动实例化时,活动从这个变量加载AI/ML模型(在活动对象实例化/创建处,在代码的初始化部分,从外部变量加载AI/ML模型,并将其分配到实际用于处理输入的内部变量中,在本例中,该变量是文本参数)。

在AI/ML模型被复制到RAM中之后,在770处处理fileStream,并且在780处为FSM600分配“监听”状态。在一些实施例中,这可以包括基于触发器(例如,HTTP端点)进行实例化。这经由初始化就绪转换622将FSM 600转换到监听状态620。

在监听状态620中,FRM 600监听请求(例如,来自电子邮件、来自服务、来自聊天机器人、周期性地检查文件夹中是否存在文件等)。在图6的示例中,监听状态620监听处理存储在文件夹中的信息技术(IT)服务票证文本文件的请求。参见图8的IT ServiceDesk票证800。图8中的文本是客户对IT服务桌(service desk)执行的服务做出响应的反馈,AI/ML模型将对其进行情感分析。

当接收到新的处理请求632时,在630处,FSM 600转换到项目处理状态。图9中示出了项目处理状态630序列910。序列910包括写入线活动912,该写入线活动912通知用户机器人当前正在处理项目的。“循环遍历(for each)”活动920使得机器人能够逐步遍历数组、列表、数据表或其它类型的集合,使得机器人能够遍历数据并单独地处理每条信息。在该示例中,“循环遍历”活动920的条件922针对选定文件夹中的每个文件。

“循环遍历”活动920的主体930包括其它嵌套活动。读取文本文件活动932读取“循环遍历”活动920正在文件夹中遍历的当前文件的文本。该文本被包括为情感分析AI/ML模型活动934的输入。写入线活动936写入来自情感分析AI/ML模型活动934的输出以供用户查看,并且移动文件活动938将“循环遍历”活动920已经完成分析的当前文件移动到不同的文件夹中。

由情感分析AI/ML模型活动934调用的AI/ML模型的属性1000如图1000所示。更具体地,提供显示名称1010,AI/ML模型是来自源文件1020还是流1030;设置1040,指示要分析的内容是文本;以及要输出的结果1050。属性1000可以由用户根据实现的要求定制或改变。

当项目处理状态630在634处完成时,FSM 600返回到监听状态620。FSM 600继续处理处于监听状态620和项目处理状态630的请求,直到接收到重新训练请求642或新AI/ML模型通知652。当接收到重新训练请求642时(例如,当用户或软件应用请求重新训练时,当接收到用于重新训练的新数据集时,在接收到用于重新训练的一定量的数据之后,在自初始训练或最后一次重新训练以来已经经过一定量的时间之后等),FSM 600通过进入重新训练初始化状态640使AI/ML模型被重新训练。这可以在执行FSM 600的计算系统上本地完成、由运行FSM 600的计算系统外部的其它计算系统执行、或其组合。例如,如果运行FSM 600的计算系统是个人计算机并且AI/ML模型是复杂的,在为训练AI/ML模型而优化的强大服务器上重新训练AI/ML模型可能是有益的(例如,采用多个CPU和GPU,使用多个服务器执行分布式训练,其中服务器分割处理任务,等等)。例如,参见图14的系统1400。

在该示例中,AI/ML模型的重新训练在本地发生,并且可以显示向用户示出重新训练期间的进度的窗口。例如,参见图11的重新训练窗口1100,其中重新训练已经以95%的置信区间完成。还可以示出与FSM 600的操作有关的状态消息。参见图11的状态消息1110。然后,FSM 600恢复工作644并返回到监听状态620。这允许FSM 600在AI/ML模型被重新训练时继续处理请求。

当接收到新的AI/ML模型或当前AI/ML模型的重新训练版本可用的通知652时,FSM600进入更新状态650。图12中AI/ML模型更新期间FSM执行状态1200。在更新状态650中,将AI/ML模型文件改变为新的AI/ML模型文件。这实质上用更新的AI/ML模型取代了生产AI/ML模型。然后,FSM 600进入转换654,以用新的AI/ML模型重新初始化,并且FSM 600返回到初始化状态610,其中新的AI/ML模型被初始化。

图13是示出根据本发明的实施方式的用于更新AI/ML模型的序列1300的屏幕截图。写入线活动1310通知用户AI/ML模型正在被更新。重新训练检查活动1320检查AI/ML模型的重新训练当前是否正在发生。如果是,则序列1300延迟AI/ML模型更新直到完成重新训练。文件移动活动1330将新的AI/ML模型移动到它将被存储的位置,并且状态分配活动1340将FSM 600的状态分配给初始化状态610。FSM 600现在可以用更新的和/或重新训练的AI/ML模型来初始化。

AI/ML模型更新或重新训练并更新体系结构

如上所述,在一些实施例中,AI/ML模型的重新训练可以从执行数字进程的计算系统远程发生。图14是示出根据本发明的实施方式的被配置为重新训练AI/ML模型的系统1400的体系结构图。系统1400包括用户计算系统,诸如台式计算机1402、平板1404和智能电话1406。然而,在不偏离本发明范围的情况下,可以使用任何期望的计算系统,包括但不限于智能手表、膝上型计算机、物联网(IoT)设备、车辆计算系统等。

每个计算系统1402,1404,1406具有在其上运行的数字进程1410,其调用和/或执行AI/ML模型。数字进程1410可以是经由RPA设计器应用程序生成的机器人,是操作系统的一部分,是个人计算机(PC)或智能电话的可下载应用程序,或者是任何其它软件和/或硬件而不偏离本发明的范围。实际上,在一些实施例中,数字进程1410中的一个或多个的逻辑部分地或完全地经由物理硬件来实现。

数字进程1410经由网络1420(例如,局域网(LAN)、移动通信网络、卫星通信网络、互联网、其任意组合等)向服务器1430发送AI/ML模型更新请求或重新训练并更新请求。在一些实施例中,服务器1430可以运行指挥器应用程序,并且可以周期性地发送数据作为心跳消息的一部分。在某些实施例中,一旦已经收集了预定量的重新训练数据、在已经经过预定时间段之后、或者在这两者之后,可以将请求发送到服务器1430。服务器1430将各种版本的AI/ML模型存储在数据库1440中。

当由人类用户(例如,RPA工程师或数据科学家)指示时,当已经收集预定量的重新训练数据时、当自上次重新训练以来已经经过预定量的时间时、当接收到重新训练请求时等,服务器1430通过多个AI层1432运行重新训练数据。AI层1432处理数据并生成AI/ML模型的重新训练版本。AI层1432可执行统计建模(例如,隐马尔可夫模型)并利用深度学习技术(例如,长短期记忆(LSTM)深度学习、先前隐藏状态的编码等)。

在某些实施例中,数据科学家可以发起和/或监测AI/ML模型的重新训练。例如,数据科学家可以用附加数据补充重新训练数据集,如果重新训练的AI/ML模型未能实现期望的置信区间,则使用不同的或补充的训练数据再次重新训练AI/ML模型等。当AI/ML模型就绪并被批准时,数据科学家可以生成更新通知,并将其发送到用户计算系统1402,1404和1406。可选地,服务器1430可以生成通知。

在一些实施例中,可以使用多个AI层1432。每个AI层1432是在重新训练数据上运行的算法(或模型),AI/ML模型本身可以是在训练数据中训练的经训练的人工“神经元”的深度学习神经网络(DLNN)。层可以串联或并联运行。

AI层1432可以包括但不限于序列提取层、聚类检测层、视觉分量检测层、文本识别层(例如,OCR)、音频到文本翻译层、一种或多种类型的层的多个实例、或其任意组合。在不偏离本发明的范围的情况下,可以使用任何所需数量和类型的层。使用多层可以允许系统开发屏幕或进程中正在发生的事情的全局图片。例如,一个AI层可以执行OCR,另一个AI层可以检测按钮等。模式可以由AI层单独地或者由多个AI层共同地确定。

AI/ML模型更新或重新训练并更新过程

图15是示出根据本发明的实施方式的在运行时用于AI/ML模型动态重新训练并更新的数字进程1500的体系结构图。在所描绘的实施方式中,数字进程1500是FSM。然而,在不偏离本发明的范围的情况下,这里的概念可以体现在任何合适的数字进程中。数字进程1500以初始化/实例化状态1510开始,该初始化/实例化状态1510使得AI/ML模型可由进程调用。初始化/实例化状态1510包括AI/ML模型实例化/初始化组件1512,以及数字进程1500的其它属性和组件的实例化或初始化的组件1514。

在初始化完成之后,数字进程1500转换到工作/处理状态1520。在工作/处理状态1520中,数字进程1500监听工作请求1530以及AI/ML模型重新训练或更新请求1540,并经由工作/请求处理组件1522执行请求处理。工作请求1530和AI/ML模型重新训练或更新请求1540可以是内部的(即,来自执行数字进程1500的计算系统)或外部的(即,来自另一计算系统)。

当接收到工作请求1530时,将AI/ML模型的信息作为输入提供给AI/ML模型组件1524,AI/ML模型组件1524处理输入信息并将输出提供给工作/请求处理组件1522。然后,工作/请求处理组件1522向与工作请求1530(例如,另一软件应用)相关联的请求者提供具有与AI/ML模型组件1524的执行结果相关联的信息的答复。

当工作/请求处理组件1522接收到AI/ML模型重新训练请求1540时,将其发送到更新AI/ML模型状态1550的AI/ML模型重新训练组件1552。从AI/ML模型存储器1560(例如,数据库)读取用于重新训练AI/ML模型的新数据1662,并且将重新训练的(新的)AI/ML模型1564写入AI/ML模型存储器1560。然后,重新加载/重新初始化/重新实例化组件1554用重新训练的(新的)AI/ML模型1564重新加载/重新初始化/重新实例化数字进程1500,并且数字进程1500然后使用重新训练的(新的)AI/ML模型1564返回到工作/处理状态1520。

图16是示出根据本发明的实施方式的在运行时用于AI/ML模型动态更新的数字进程1600的体系结构图。在所描绘的实施方式中,数字进程1600是FSM。然而,在不偏离本发明的范围的情况下,这里的概念可以体现在任何合适的数字进程中。

与数字进程1500一样,数字进程1600包括具有组件1612,1614的初始化/实例化1610、具有工作/请求处理组件1622和AI/ML模型组件1524的工作/处理状态1520、以及工作请求1630,其中组件1612,1614分别用于实例化或初始化一个或多个AI/ML模型和数字进程1600的其它属性和组件。然而,在这个实施方式中,数字进程1600不涉及AI/ML模型的重新训练。因此,数字进程1600接收AI/ML模型更新请求1640。

当工作/请求处理组件1622接收到AI/ML模型更新请求1640时,AI/ML模型更新请求1640被发送到更新AI/ML模型状态1650的重新加载/重新初始化/重新实例化组件1652,然后用来自AI/ML模型存储1660的新的(或以其他方式更新的)AI/ML模型1662重新加载/重新初始化/重新实例化数字进程1500。数字进程1600然后使用新的AI/ML模型1662返回到工作/处理状态1620。

图17是示出根据本发明的实施方式的在数字进程运行期间用于AI/ML模型动态更新或动态重新训练并更新的过程1700的流程图。该过程开始于在1710处监听对执行请求的请求、重新训练请求或对AI/ML模型的更新请求。如果在1720处接收到重新训练请求或在1730处满足另一重新训练条件,则在1740处发起AI/ML模型的重新训练。数字进程实现过程1700可以在发生重新训练的同时使用当前版本的AI/ML模型继续执行。

在一些实施例中,数字进程是RPA工作流、BPM流程图、顺序流或FSM。在某些实施例中,FSM可以是RPA工作流的一部分。在某些实施例中,AI/ML模型由RPA工作流的活动调用。在一些实施例中,AI/ML模型直接嵌入到RPA工作流的活动中。

其它重新训练条件可提供自动重新训练AI/ML模型的机制。这些条件可以包括正在接收的预定量的训练数据、自上次重新训练以来经过的预定量的时间、它们的组合等等。在不偏离本发明的范围的情况下,可以使用用于自动重新训练的任何重新训练条件。

当在1750处接收到更新请求时,在1760处更新AI/ML模型并且重新初始化或重新实例化数字进程。在一些实施例中,这可以涉及将重新训练的AI/ML模型的性能与性能阈值进行比较、与AI/ML模型的先前版本的性能进行比较、或者与两者进行比较,并且仅在新版本满足性能标准的情况下更新AI/ML模型。在某些实施例中,如果不满足这些标准,则不发送更新请求。

如果在1770处接收到执行AI/ML模型的请求,则在1780处执行AI/ML模型。如果不满足步骤1720,1730,1750或1770中的任何一个,则过程返回到1710处监听AI/ML模型的重新训练请求或更新请求。过程1700可以继续执行,直到实现过程1700的数字进程停止。

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

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

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

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

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

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

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号