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

用于托管、监控和重训练机器学习模型的机器人流程自动化架构和流程的制作方法

2022-07-27 22:54:05 来源:中国专利 TAG:

用于托管、监控和重训练机器学习模型的机器人流程自动化架构和流程
1.相关申请的交叉引用
2.本技术要求于2021年1月8日提交的美国专利申请no.17/144467的优先权,美国专利申请no.17/144467要求于2021年1月7日提交的美国专利申请no.17/143392的优先权,并且是美国专利申请no.17/143392的继续申请,美国专利申请no.17/143392要求于2020年11月25日提交的印度专利申请no.202011051237和于2020年11月25日提交的印度专利申请no.202011051236的优先权。这些早些时候提交的申请的主题在此全文引入作为参考。
技术领域
3.本发明总体上涉及用于机器人流程自动化(robotic process automation,rpa)的人工智能(ai),更具体地,涉及用于托管、监控和重训练(retrain)机器学习(ml)模型的rpa架构和流程。


背景技术:

4.为了自动化难以定义、可变性高且需要概率方法的步骤,ml在rpa中可能是有益的。然而,rpa中的ml目前缺乏切实可行的操作化工具。更具体地,ml应当无缝地插入到业务流程中,以提供高速的ml。
5.存在三个显著的障碍阻碍了rpa和ml在一起无缝地工作:操作、技术和流程。从操作角度来看,机器人操作中心(robotic operations center,roc)和数据科学团队通常作为具有不同技能集、关注点和业务优先级的筒仓而独立地存在。从技术角度来看,rpa开发者使用rpa平台来构建、部署和管理机器人执行的自动化。与此同时,数据科学家使用专用的ml建模工具。目前,发布作为应用编程接口(api)的ml模型是通过经由诸如和之类的平台来完成的。ml模型是通过http暴露的。然而,需要用户编写代码来消费该api。
6.这些工具、流水线和技术目前是脱节的,并且rpa和ml作为单独的流程被管理。当试图合并ml模型时,roc不知道模型是否正产生正确的输出或者模型是否已被更新。此外,数据科学团队不知道模型是否被正确使用以及模型有多有用。例如,数据科学家目前没有直接的机制将模式定义(schema definition)传递给rpa开发者用于包括在工作流程中。也不知道用于rpa开发者部署ml模型的端点是否将改变,也不知道ml模型正用于什么其他任务。此外,数据科学家不知道是什么导致模型中断(例如,数据科学家可能不知道端点是否可达),也不知道如果输入数据改变,如何使模型重训练和更新工作流程。这造成了rpa与ml之间的根本脱节。相应地,一种用于集成rpa和ml以及ml模型管理的改进方法可以是有益的。


技术实现要素:

7.本发明的某些实施例可以为现有技术中尚未被当前的rpa技术完全标识、理解或
解决的问题和需求提供解决方案。例如,本发明的一些实施例涉及用于托管、监控和重训练ml模型的rpa架构和流程。
8.在一个实施例中,一种系统包括被配置为调用一个或多个ml模型的一个或多个rpa机器人。该系统还包括ai中心,ai中心被配置为存储一个或多个ml模型,并且在一个或多个ml机器人中的相应ml机器人调用时执行一个或多个ml模型。ai中心还被配置为存储用于ml模型的多个数据集。每个数据集包括按照逻辑或物理分组的相似类型的数据。ai中心还被配置为当训练条件被满足时或者当重训练被手动地请求时,使用在用于一个或多个ml模型中的ml模型的训练配置中指定的多个数据集的子集来重训练该ml模型,并且部署经重训练的ml模型,以由一个或多个rpa机器人调用。
9.在另一实施例中,一种非瞬态计算机可读介质存储计算机程序。该计算机程序被配置为使至少一个处理器存储多个ml模型和用于ml模型的多个数据集。每个数据集包括按照逻辑或物理分组的相似类型的数据。该计算机程序还被配置为使至少一个处理器:当训练条件被满足时或者当重训练被手动地请求时,使用在用于多个ml模型中的ml模型的训练配置中指定的多个数据集的子集重训练该ml模型。该计算机程序还被配置为使得至少一个处理器:通过使经重训练的ml模型可被一个或多个rpa机器人调用,来部署经重训练的ml模型。
10.在又一实施例中,一种ai中心包括:训练集群,被配置为运行一个或多个重训练流水线;以及核心微服务集群,被配置为针对一个或多个ml模型执行创建/读取/更新/删除(crud)操作,并且使训练集群的重训练流水线发起对一个或多个ml模型的重训练。ai中心还包括ml服务集群,该ml服务集群被配置为执行一个或多个ml模型,并且向调用rpa机器人提供执行的结果。
11.在又一实施例中,一种系统包括ai中心,该ai中心被配置为将ml模型存储在容器中,并且在rpa机器人调用时执行存储的ml模型。包括ml模型的容器的内容被加密或被混淆,ml模型被加密,或者两者兼有。
12.在另一实施例中,一种ai中心包括存储计算机程序指令的存储器和被配置为执行计算机程序指令的至少一个处理器。计算机程序指令被配置为使至少一个处理器存储用于多个ml模型的多个数据集。每个数据集包括按照逻辑或物理分组的相似类型的数据。该计算机程序指令还被配置为使至少一个处理器:当训练条件被满足时或者在手动请求时,使用在用于多个ml模型中的ml模型的训练配置中指定的多个数据集的子集来重训练该ml模型。该计算机程序指令还被配置为使至少一个处理器:接收用于被重训练的ml模型的一个或多个性能度量,并且在重训练期间为一个或多个性能度量生成一个或多个得分。当一个或多个得分提高时,计算机程序指令被配置为使得至少一个处理器:部署经重训练的ml模型来代替ml模型的先前版本,或者部署ml模型的经重训练版本,使用ml模型的经重训练版本和ml模型的先前版本两者,并且选择具有最高置信度的结果。
13.在又一实施例中,一种计算机实现的方法包括由ai中心将ml模型存储在容器中。该计算机实现的方法还包括由ai中心在rpa机器人调用时执行所存储的ml模型。包括ml模型的容器的内容被加密或混淆,ml模型被加密,或者两者兼有。
附图说明
14.为了容易理解本发明的某些实施例的优点,将通过参考附图中示出的具体实施例来呈现上面简要描述的本发明的更具体的描述。虽然应当理解,这些附图仅描绘了本发明的典型实施例,因此不应被认为是对其范围的限制,但是将通过使用附图以附加的特征和细节来描述和解释本发明,其中:
15.图1是示出根据本发明实施例的rpa系统的架构图。
16.图2是示出根据本发明实施例的部署的rpa系统的架构图。
17.图3是示出根据本发明实施例的设计器、活动与驱动器之间的关系的架构图。
18.图4是示出根据本发明实施例的rpa系统的架构图。
19.图5是示出根据本发明实施例的计算系统的架构图,该计算系统被配置为托管、监控和重训练ml模型,或者作为这样做的系统的一部分来操作。
20.图6a和图6b是示出根据本发明实施例的用于托管、监控和重训练ml模型的rpa架构的架构图。
21.图7是示出根据本发明实施例的被配置为执行托管、监控和重训练ml模型的系统的架构图。
22.图8示出了根据本发明实施例的低代码ml模型流水线创建界面。
23.图9是示出根据本发明实施例的用于托管、监控和重训练ml模型的流程的流程图。
24.除非另有说明,否则在所有附图中,相似的附图标记始终表示对应的特征。
具体实施方式
25.一些实施例涉及用于托管、监控和重训练ml模型的rpa架构和流程。重训练是ml模型生命周期的重要部分。重训练可以取决于ml模型的类型(例如,其算法的架构)和用来训练ml模型的数据。一些实施例采用安全租户级别存储层,其中租户可以包括他们想要训练的数据,并且rpa机器人可以与该存储层交互。数据可以随时间收集(例如,从用户计算系统、服务器、移动设备、其组合等),并且rpa机器人可以将该数据提供给存储层。
26.在一些实施例中,用以重训练ml模型的逻辑基于ml模型的行为。ml模型对数据具有不同的敏感性,其中用于训练/重训练的数据可能在不同程度上改变ml模型的行为。此外,从一个ml模型到另一ml模型的重训练可能需要不同的数据量。一些ml模型可以使用几个样本或数据点来重训练,而其他ml模型可能需要数百、数千、数万或更多的样本或数据点来有效地训练/重训练。此外,ml模型可能需要不同类型的训练数据,诸如数字或文本数据、文档、截图、图像等。
27.在一些实施例中,存在数据推送活动,如果该活动被包括在rpa机器人的工作流程中,则允许rpa机器人自动知道存储装置在哪里并上传数据。附加地或替代地,rpa机器人可以遍历本地数据和/或存储在远程数据库(db)中的数据,然后将该数据发送到存储层。然而,在一些实施例中,人们可以使用应用(例如,桌面应用、网络浏览器、移动电话应用等)并且从那里上传数据。在存储层中随时间收集的数据可以允许对不同类型的数据(例如,数据集)进行分组。相似类型的数据可以按逻辑或物理分组。在一些实施例中,用户可以选择他们想要训练的ml模型,选择他们想要用来训练ml模型的(多个)数据集,以及选择他们想要重训练发生的时间(例如,基于请求或周期性地)。
28.在一些实施例中,数据集可以被呈现为用于ml模型访问数据集中的数据的指针。ml模型可以基于上次训练ml模型时不可用的较新数据、较旧数据和较新数据的组合、完整数据集等进行重训练。随着新数据的获得,ml模型可以随时间变得更加准确。
29.在一些实施例中,用户可以选择他们想要使用的(多个)性能度量,并且系统基于所选择的(多个)性能度量为被重训练的ml模型生成一个或多个得分。如果(多个)得分提高,则在用户期望的情况下,经重训练的ml模型可以被自动用来代替先前版本。否则,用户可以被通知并且决定是否期望部署重训练的版本。在一些实施例中,可以随时间跟踪得分的变化,尤其是准确性的提高和降低。然后,用户或系统可以尝试确定是什么正在导致负漂移。
30.在一些实施例中,可以自动调整所使用的数据量。例如,可以提供训练界面,该训练界面允许用户调整数据点的数目、收集数据的频率、所收集的数据量、用于重训练的触发和/或任何其他合适的训练参数,而不脱离本发明的范围。
31.一些实施例的架构可以帮助减轻或防止知识产权(ip)窃取。例如,一些托管的ml模型可以不是由客户提供的,并且可以是提供托管架构的公司专有的。仅通过描述,这些ml模型可以对用户的rpa机器人可用且可调用,并且ml模型本身可以不被提供给用户或调用rpa机器人。相反,可以仅提供ml模型执行的结果。
32.一些实施例可以减轻或防止客户站点上的ip窃取。例如,包括ml模型的dockertm容器的内容可以被加密或混淆,和/或ml模型本身可以被加密。这可以允许rpa服务提供商将ml操作平台部署到客户站点,同时降低其自己的专有ml模型(如果包括的话)被复制或逆向工程的风险。
33.在一些实施例中,可以提供用于rpa的低代码ml模型部署和训练系统。ml包可以以一次点击来部署而无需用户进行编码。例如,用户可以从ml模型的目录中进行选择,并且将所选择的ml模型部署到目标计算环境上(例如,单节点kubernetes设施、多节点设施等)。在某些实施例中,用户可以通过单击按钮来训练ml模型。这种实施例可以能不需要用户具有技术知识,并且他们可以将该功能插入到rpa工作流程中而无需手动编程。
34.在一些实施例中,用户可以将多个ml模型链接在一起。这可以基于某些逻辑或配置。ml模型的网络可以在界面中对用户可用,该界面潜在地具有系统已经确定可能是最相关的所提出的ml模型。例如,如果用户正寻求为点击按钮的活动添加ml模型,则可以提出图形元素识别ml模型。然后,用户可以选择ml模型,并且根据需要将它们链接起来,以获得所需结果。
35.ai/ml模型的链接可以发生在客户端侧、在服务器侧、或者两者兼有。对于客户端侧链接,rpa开发者可以手动开发rpa工作流程中的链接逻辑。例如,rpa开发者可以包括调用一个ai/模型的活动,按照将结果馈送给另一ai/ml模型的顺序,将模型执行结果馈送给另一活动,等等。
36.在服务器侧,可以为图(graph)提供可相互连接的ai/ml模型,或者可以创建可将多个ai/ml模型连接在一起的工作流程。例如,用户可以在图中查看ai/ml模型,并且根据他或她的需要将ai/ml模型链接在一起。对于客户端侧和服务器侧的链接,用户可以创建串行ai/ml模型连接、并行连接或其组合。
37.在一些实施例中,ml操作平台的功能可以被包括在一个计算系统(例如,单个服务
器)上。例如,该计算系统可以位于客户端站点上,而不是由rpa服务提供商远程托管。这种计算系统可以提供“类云(cloud-like)”功能,即它可以本地提供可另外在托管的云系统上提供的功能。这种实施例对于计算系统出于监管或安全原因应当脱离电网的实体隔离场景可能特别有用,例如对于某些医疗应用、金融服务应用等。在这种场景下,某些特权用户和/或其他计算系统可以访问提供ml操作平台的计算系统。
38.在一些实施例中,可以提供具有标记工具的应用,其中用户可以标注/标记用于训练/重训练的数据。然后可以将标记后的数据推送到数据集以进行训练/重训练。还可以在用户可以验证数据的情况下提供验证能力。
39.图1是示出根据本发明实施例的rpa系统100的架构图。rpa系统100包括设计器110,设计器110允许开发者设计和实现工作流程。设计器110可以提供针对应用集成以及自动化第三方应用、管理信息技术(it)任务和业务it流程的解决方案。设计器110可以促进自动化项目的开发,自动化项目是业务流程的图表示。简而言之,设计器110促进工作流程和机器人的开发和部署。
40.自动化项目通过让开发者控制执行次序和工作流程中开发的自定义的一组步骤之间的关系(在本文定义为“活动”),实现了基于规则的流程的自动化。设计器110的实施例的商业示例是uipath studiotm。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流程可以被嵌套或嵌入。
41.一些类型的工作流程可以包括但不限于序列、流程图、有限状态机(fsm)和/或全局异常处理程序。序列可以特别适合于线性流程,使流程能够从一个活动流向另一活动,而不会打乱工作流程。流程图可以特别适合于更复杂的业务逻辑,通过多个分支逻辑运算符,以更多样的方式实现决策的集成和活动的连接。fsm可以特别适合于大型工作流程。fsm在其执行中可以使用有限数目的状态,这些状态是由条件(即,转换)或活动触发的。全局异常处理程序可以特别适合于在遇到执行错误时确定工作流程行为并且用于调试流程。
42.一旦在设计器110中开发了工作流程,业务流程的执行就由指挥器120来协调,指挥器120协调一个或多个机器人130来执行在设计器110中开发的工作流程。指挥器120的实施例的一个商业示例是uipath orchestratortm。指挥器120促进管理对环境中的资源的创建、监控和部署。指挥器120可以充当与第三方解决方案和应用的集成点。
43.指挥器120可以通过从集中点连接和执行机器人130来管理一队机器人130。可被管理的机器人130的类型包括但不限于有人值守机器人132、无人值守机器人134、开发机器人(类似于无人值守机器人134,但是用于开发和测试目的)和非生产机器人(类似于有人值守机器人132,但是用于开发和测试目的)。有人值守机器人132由用户事件触发,并且在相同计算系统上与人类一起操作。有人值守机器人132可以与指挥器120一起用于集中式流程部署和日志记录介质。有人值守机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,流程不能从这种类型的机器人上的指挥器120启动,和/或它们不能在锁定屏幕下运行。在某些实施例中,有人值守机器人132只能从机器人托盘(robot tray)或者根据命令提示符启动。在一些实施例中,有人值守机器人132应当在人类监督下运行。
44.无人值守机器人134无人值守地在虚拟环境中运行,并且可以自动化许多流程。无人值守机器人134可以负责远程执行、监控、调度以及为工作队列提供支持。在一些实施例
中,对于所有机器人类型的调试可以在设计器110中运行。有人值守和无人值守机器人都可以自动化各种系统和应用,包括但不限于大型机、网络应用、vm、容器、企业应用(例如,由等生产的应用)和计算系统应用(例如,台式电脑和膝上型电脑应用、移动设备应用、可穿戴计算机应用等)。
45.指挥器120可以具有各种能力,包括但不限于调配、部署、配置、排队、监控、日志记录和/或提供互连性。调配可以包括创建和维护机器人130与指挥器120之间的连接(例如,web应用)。部署可以包括确保将包版本正确交付给所指派的机器人130以供执行。配置可以包括维护和交付机器人环境和流程配置。排队可以包括提供队列和队列项的管理。监控可以包括跟踪机器人表示数据和维护用户许可。日志记录可以包括将日志存储和索引到数据库(例如,sql数据库)和/或另一存储机制(例如,它提供了存储和快速查询大型数据集的能力)。指挥器120可以通过充当第三方解决方案和/或应用的集中式通信点来提供互连性。
46.机器人130是运行在设计器110中构建的工作流程的执行代理。(多个)机器人130的一些实施例的一个商业示例是uipath robotstm。在一些实施例中,机器人130默认安装microsoft服务控制管理器(scm)管理的服务。结果,这种机器人130可以在本地系统帐户下打开交互式会话,并且具有服务的权限。
47.在一些实施例中,可以以用户模式安装机器人130。对于这种机器人130,这意味着它们具有与安装了给定机器人130的用户相同的权限。该特征也可以适用于高密度(hd)机器人,这确保每个机器按其最大潜力进行充分利用。在一些实施例中,任何类型的机器人130可以被配置在hd环境中。
48.在一些实施例中,机器人130被划分成几个组件,每个组件专用于特定自动化任务。在一些实施例中,机器人组件包括但不限于scm管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。scm管理的机器人服务管理和监控会话,并且充当指挥器120与执行主机(即机器人130在其上被执行的计算系统)之间的代理。这些服务被信任并且管理机器人130的凭证。控制台应用由本地系统下的scm启动。
49.在一些实施例中,用户模式机器人服务管理和监控会话,并且充当指挥器120与执行主机之间的代理。用户模式机器人服务可以被信任并且管理机器人130的凭证。如果没有安装scm管理的机器人服务,则应用可以被自动启动。
50.执行器可以在会话下运行给定作业(即,它们可以执行工作流程)。执行器可以知道每显示器每英寸点数(dpi)设置。代理可以是在系统托盘窗口中显示可用作业的presentation foundation(wpf)应用。代理可以是服务的客户端。代理可以请求启动或停止作业并更改设置。命令行是服务的客户端。命令行是可以请求启动作业和等待其输出的控制台应用。
51.如上所述地划分机器人130的组件帮助开发者、支持用户,并且使计算系统更容易地运行、标识和跟踪每个组件正在执行什么。可以通过这种方式为每个组件配置特殊行为,诸如为执行器和服务建立不同的防火墙规则。在一些实施例中,执行器可以总是知道每个
显示器的dpi设置。结果,工作流程可以按任何dpi执行,而不管在其上创建它们的计算系统的配置如何。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。在一些实施例中,对于不知道dpi或故意标记为不知道dpi的应用,可以禁用dpi。
52.图2是示出根据本发明实施例的所部署的rpa系统200的架构图。在一些实施例中,rpa系统200可以是图1的rpa系统100,或者可以是其一部分。应当注意,在不脱离本发明的范围的情况下,客户端侧、服务器侧或两者可以包括任何期望数目的计算系统。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可以不在计算系统210上运行。执行器212正在运行流程。几个业务项目可以同时运行,如图2所示。在该实施例中,代理214(例如,服务)是所有执行器212的单一联系点。在该实施例中,所有消息被记录到指挥器230中,指挥器230经由数据库服务器240、索引器服务器250或两者进一步处理它们。如上关于图1所述,执行器212可以是机器人组件。
53.在一些实施例中,机器人表示机器名称和用户名之间的关联。机器人可以同时管理多个执行器。在支持多个交互式会话同时运行的计算系统(例如,服务器2012)上,多个机器人可以同时运行,每个机器人使用唯一的用户名在单独的会话中运行。这在上面被称为hd机器人。
54.代理214还负责发送机器人的状态(例如,周期性地发送指示机器人仍在运行的“心跳”消息)以及下载要执行的包的所需版本。在一些实施例中,代理214与指挥器230之间的通信总是由代理214发起。在通知场景中,代理214可以打开网络套接字信道,网络套接字信道稍后由指挥器230用来向机器人发送命令(例如,启动、停止等)。
55.在服务器侧,包括表示层(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。例如,用户可以创建机器人组、向机器人指派包、分析每个机器人和/或每个流程的日志、启动和停止机器人等。
56.除了web应用232之外,指挥器230还包括暴露odata rest api端点234的服务层。然而,在不脱离本发明的范围的情况下,可以包括其他端点。web应用232和代理214都消费rest api。在该实施例中,代理214是客户端计算机上的一个或多个机器人的监督者。
57.该实施例中的rest api涵盖配置、日志记录、监控和排队功能。在一些实施例中,配置端点可以用于定义和配置应用用户、许可、机器人、资产、发布和环境。日志记录rest端点可以用于记录不同的信息,诸如错误、由机器人发送的显式消息以及其他环境特定信息。如果在指挥器230中使用了启动作业命令,则机器人可以使用部署rest端点来查询应当执
行的包版本。排队rest端点可以负责队列和队列项的管理,诸如向队列添加数据、从队列中获得事务、设置事务的状态等。
58.监控rest端点可以监控web应用232和代理214。通知和监控api 236可以是用于注册代理214、向代理214交付配置设置以及从服务器和代理214发送/接收通知的rest端点。在一些实施例中,通知和监控api 236也可以使用网络套接字通信。
59.在该实施例中,持久层包括一对服务器——数据库服务器240(例如,sql服务器)和索引器服务器250。该实施例中的数据库服务器240存储机器人、机器人组、相关联的流程、用户、角色、调度等的配置。在一些实施例中,通过web应用232来管理该信息。数据库服务器240可以管理队列和队列项。在一些实施例中,数据库服务器240可以存储由机器人记录的消息(除了索引器服务器250之外或代替索引器服务器250)。
60.在一些实施例中可选的索引器服务器250存储和索引由机器人记录的信息。在某些实施例中,可以通过配置设置禁用索引器服务器250。在一些实施例中,索引器服务器250使用使用是开源项目全文搜索引擎。由机器人记录的消息(例如,使用如日志消息或写入行之类的活动)可以被通过(多个)日志记录rest端点发送到索引器服务器250,在索引器服务器250它们被索引以供将来使用。
61.图3是示出根据本发明实施例的设计器310、活动320、330、驱动器340与ai/ml模型350之间的关系300的架构图。如上所述,开发者使用设计器310来开发由机器人执行的工作流程。工作流程可以包括用户定义的活动320和ui自动化活动330。在一些实施例中,用户定义的活动320和/或ui自动化活动330可以调用一个或多个ai/ml模型350,ai/ml模型350可以位于机器人正在其上操作的计算系统的本地和/或其远程。一些实施例能够标识图像中的非文本可视分量,这在本文中称为计算机视觉(cv)。与这种分量相关的一些cv活动可以包括但不限于点击、键入、获取文本、悬停、元素存在、刷新范围、高亮等。在一些实施例中,点击使用例如cv、光学字符识别(ocr)、模糊文本匹配和多锚点来识别元素,并且点击它。键入可以使用如上所述的项来识别元素并且将该元素键入。获取文本可以标识特定文本的位置并且使用ocr进行扫描。悬停可以标识元素并且在其上方悬停。元素存在可以使用上述技术检查屏幕上是否存在元素。在一些实施例中,有数百乃至数千个活动可以在设计器310中被实现。然而,在不脱离本发明的范围的情况下,任何数目和/或类型的活动可以是可用的。
62.ui自动化活动330是用较低级别代码编写的、并且促进与屏幕的交互的特殊的较低级别活动的子集(例如,cv活动)。ui自动化活动330经由允许机器人与期望的软件进行交互的驱动器340和/或ai/ml模型来促进这些交互。例如,驱动器340可以包括os驱动器342、浏览器驱动器344、vm驱动器346、企业应用驱动器348等。ui自动化活动330可以使用一个或多个ai/ml模型350,以便确定执行与计算系统的交互。在一些实施例中,ai/ml模型350可以扩充驱动器340或者完全替换它们。实际上,在某些实施例中,不包括驱动器340。
63.驱动器340可以通过寻找钩子、监控密钥等在低级别与os交互。它们可以促进与等的集成。例如,“点击”活动经由驱动器340在这些不同的应用中执行相同的角色。
64.图4是示出根据本发明实施例的rpa系统400的架构图。在一些实施例中,rpa系统400可以是或包括图1和/或2的rpa系统100和/或200。rpa系统400包括运行机器人的多个客
户端计算系统410。计算系统410能够经由运行在其上的web应用与指挥器计算系统420通信。指挥器计算系统420又能够与数据库服务器430和可选的索引器服务器440通信。
65.关于图1和图3,应当注意,虽然在这些实施例中使用了web应用,但是在不脱离本发明的范围的情况下,可以使用任何合适的客户端/服务器软件。例如,指挥器可以运行服务器侧应用,服务侧应用与客户端计算系统上的、非基于web的客户端软件应用通信。
66.图5是示出根据本发明实施例的计算系统500的架构图,计算系统500被配置为托管、监控和重训练ai/ml模型,或者作为这样做的系统的一部分来操作。在一些实施例中,计算系统500可以是本文描述和/或描绘的一个或多个计算系统。计算系统500包括或用于传送信息的总线505其他通信机制,以及耦合到总线505的用于处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、其多个实例和/或其任意组合。(多个)处理器510也可以具有多个处理核,并且至少一些核可以被配置为执行特定功能。在一些实施例中可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一个处理器可以是包括模拟生物神经元的处理元件的神经形态电路。在一些实施例中,神经形态电路可能不要求冯
·
诺依曼计算架构的典型组件。
67.计算系统500还包括用于存储信息和要由(多个)处理器510执行的指令的存储器515。存储器515可以由随机存取存储器(ram)、只读存储器(rom)、闪存、高速缓存、静态存储装置(诸如磁盘或光盘)的任意组合组成,或者是任何其他类型的非暂时性计算机可读介质或其组合。非瞬态计算机可读介质可以是可由(多个)处理器510访问的任何可用介质,并且可以包括易失性介质、非易失性介质、或者易失性介质和非易失性介质两者。介质也可以是可移动的,不可移动的,或者两者兼有。
68.此外,计算系统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)、第五代(5g)、新无线电(nr)、其任意组合、和/或任何其他当前存在的或未来实现的通信标准和/或协议,而不脱离本发明的范围。在一些实施例中,通信设备520可以包括一个或多个天线,这些天线是单个的、阵列的、相控的、开关的、波束成形的、波束控制的、它们的组合、和/或任何其他天线配置,而不脱离本发明的范围。
69.(多个)处理器510还经由总线505耦合到显示器525,诸如等离子显示器、液晶显示器(lcd)、发光二极管(led)显示器、场发射显示器(fed)、有机发光二极管(oled)显示器、柔性oled显示器、柔性基板显示器、投影显示器、4k显示器、高清晰度显示器、显示器、共面转换(ips)显示器或用于向用户显示信息的任何其他合适的显示器。显示器525可以被配置为使用电阻、电容、表面声波(saw)电容、红外、光学成像、色散信号技术、声脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3d)触摸显示器、多输入触摸显示器、多触摸显示器等。在不脱离本发明的范围的情况下,可以使用任何合适的显示设备和触觉i/o。
70.键盘530和光标控制设备535(诸如计算机鼠标、触摸板等)进一步耦合到总线505,以使用户能够与计算系统交互。然而,在某些实施例中,可以不存在物理的键盘和鼠标,并且用户可以仅通过显示器525和/或触摸板(未示出)与设备交互。任何类型和组合的输入设备都可以用作设计选择。在某些实施例中,不存在物理的输入设备和/或显示器。例如,用户可以经由与其通信的另一计算系统与计算系统500远程交互,或者计算系统500可以自主操作。
71.存储器515存储当由(多个)处理器510执行时提供功能的软件模块。这些模块包括用于计算系统500的操作系统540。这些模块还包括ai/ml模型托管、监控和重训练模块545,模块545被配置为执行本文描述的全部或部分流程或其派生物。计算系统500可以包括一个或多个含有附加功能的附加功能模块550。
72.本领域技术人员将理解,在不脱离本发明的范围的情况下,“系统”可以体现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(pda)、蜂窝电话、平板计算设备、量子计算系统、或者任何其他合适的计算设备或设备组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例的一个示例。事实上,本文公开的方法、系统和装置可以以符合计算技术的本地化和分布式的形式实现,包括云计算系统。计算系统可以是局域网(lan)、移动通信网络、卫星通信网络、互联网、公有云或私有云、混合云、服务器群、它们的任意组合等的一部分,或者可由它们访问。在不脱离本发明范围的情况下,可以使用任何本地化或分布式的架构。
73.应当注意,本说明书中描述的一些系统特征已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,包括定制的超大规模集成(vlsi)电路或门阵列、现成的半导体(诸如逻辑芯片、晶体管或其他分立元件)。模块也可以在可编程硬件设备中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
74.模块也可以至少部分地在软件中实现,以供各种类型的处理器执行。所标识的可执行代码的单元可以例如包括计算机指令的一个或多个物理或逻辑块,这些物理或逻辑块可以例如被组织为对象、流程或函数。然而,所标识的模块的可执行文件不需要在物理上位于一起,而是可以包括被存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时,构成该模块并实现该模块的所述目的。此外,在不脱离本发明的范围的情况下,模块可以被存储在计算机可读介质上,计算机可读介质可以是例如硬盘驱动器、闪存设备、ram、磁带和/或用于存储数据的任何其他此类非暂时性计算机可读介质。
75.实际上,可执行代码模块可以是单个指令或许多指令,并且甚至可以分布在几个不同的代码段上、在不同的程序之间以及跨几个存储设备。类似地,在文本中操作数据可以在模块内被标识出并被示出,并且可以以任何合适的形式被体现并且被组织在任何合适类型的数据结构中。操作数据可以作为单个数据集被收集,或者可以分布在包括不同的存储设备的不同的位置,并且可以至少部分地仅作为系统或网络上的电子信号而存在。
76.图6a和图6b是示出根据本发明实施例的用于托管、监控和重训练ml模型的rpa架构600的架构图。架构600包括ai中心客户端层650、ai中心服务层660和ai中心存储层670。在该实施例中,ai中心服务层660中的服务组件被托管在kubernetes(k8s)集群内。然而,在一些实施例中,可以使用单个k8s集群,而不脱离本发明的范围。
77.在该实施例中的客户端层650中,云rpa 610是提供软件即服务(saas)的云平台(例如,公有云、私有云、混合云等),在saas中可以注册用户(诸如ai中心用户604)并且可以邀请组织中的其他用户来使用各种服务。管理员602可以具有为组织中的用户启用ai中心的能力。管理员602还能够将许可证分配给该帐户下的租户/组。在一些实施例中,云rpa 610与ai中心之间的典型交互将是启用/禁用ai中心和向租户分配许可证,许可证可以用于部署ml技能。由ai中心服务层660供应的使用统计611也可由管理员602经由云rpa610访问。
78.用户604(例如,ml工程师、流程工程师或数据科学家)构建预配置的ml模型作为ai应用614的一部分。在一些实施例中,ai应用614是提供ui的web应用,用户可以在该ui中创建和管理ml模型的生命周期。rpa开发者606用rpa设计器616(例如,uipath studiotm)开发工作流程,然后使用它们来创建rpa机器人618。rpa设计器616和rpa机器人618与指挥器612通信,以取回配置和令牌来访问ai中心服务层660的ai中心服务。在一些实施例中,只有经认证和经授权的客户端才能够从指挥器612获得数据。在客户端被授权的情况下,可以提供令牌,使得在令牌有效时能够访问服务层660。
79.rpa机器人618可以从它们正在其上操作的计算系统和/或它们能够访问的任何其他数据源或存储装置获得数据。该数据可以由rpa机器人618分别通过api网关(gw)632、642被发送到核心微服务或ml技能。例如,ml技能646、647、648可以是消费者就绪的ml包的实时部署。在一些实施例中,机器人618的作用是从不同位置获取不同类型的数据(例如,来自blob(binary large object,二进制大对象)/文件存储装置和/或数据流的数据)并且将其馈送给ml技能,以及获取ml技能646、647、648的输出并且将其推送到期望的存储装置和/或流。在一些实施例中,rpa机器人618还可以将数据上传到数据集。
80.rpa开发者606使用rpa设计器616构建rpa工作流程,并且用户604构建ml模型并将它们上传到指挥器612或ai应用614。经由api网关632发生ml技能(以及相应ml模型)的调配、创建/读取/更新/删除(crud)和列出,api网关632从核心服务接收ml模型的元数据。机器人618还消费为其操作执行模型的ml技能(例如,ml技能646、647、648)。
81.关于与api网关632的通信,云rpa 610发送租户调配(tp,tenant povisioning)信息。该实施例中的tp信息是关于租户的元数据。租户是客户的逻辑单元,其将拥有与该客户相关联的ml模型和数据。该元数据可以包含对指挥器租户的引用、如名称和位置之类的一些基本细节等。
82.ai应用614为核心实体(ce)执行crud。该实施例中的核心实体是存储在数据库中的、与其他实体(例如,ml包(mlp)、ml技能(mls)、租户、项目、审计日志、数据集(ds)等)有关系的元数据表。指挥器612或ai应用614列出ml技能(ls),并且(多个)rpa机器人618列出ml技能。指挥器612和/或ai应用614可以列出ml技能,以向负责对ml技能进行crud操作的管理员示出细节,而rpa机器人618可以示出只读的ml技能列表,使得rpa开发者可以选择ml技能并且将其用于rpa工作流程。(多个)rpa机器人还经由ml服务集群640的api网关642接收来自ml技能646、647、648的预测。
83.在该实施例中,服务层694的服务包括三个k8s集群——训练集群620、核心微服务集群630和ml服务集群640。在该实施例中,核心微服务集群包括可以使用数据库633的api网关632。类似地,ml服务集群640包括可以使用数据库643的api网关642。数据库633、643存储可以用于验证输入请求的相应api网关632、642的配置和规则。api网关632、642是位于服
务/技能前面以防止未授权的使用、滥用、窃取、拒绝服务攻击等的服务。网关632、642验证请求,并且还可以应用更多安全策略来保卫它们后面的资源。网关632、642然后将来自驻留在网关632、642后面的服务的有效请求的信息传递回去。
84.ai训练器634是一种经由训练集群620的重训练流水线622、624、626促进对ml模型进行重训练的服务。重训练流水线622、624、626是在训练集群620中为不同租户运行的训练作业。ai训练器634基于用户在ai应用614中创建重训练流水线622、624、626时指定了什么,来指示训练集群620创建具有必要计算资源(例如,cpu资源设置、gpu资源设置、ram分配等)的训练作业。一旦给定的训练作业完成,生成的人工痕迹(artifact)可以被放入存储装置(例如,blob存储装置672)中,并且资源可以被释放。
85.ai助手635提供内部实用服务的集合,诸如异步操作、状态机管理、存储抽象和访问等。ai包管理器636提供将由指挥器612和/或ai应用614调用的ml包和项目crud以及相关的rest api。ai部署器637构建具有必要的依赖关系的ml模型的映像(例如,dockertm映像),推送到容器注册表674,并且与ml服务集群640的kubernetes api交互,以将容器部署为ml技能646、647、648中的ml技能。如上所述,在一些实施例中,dockertm可以用于打包ml模型映像。
86.核心微服务集群630包括消息中介638,消息中介638是用以提供基于发布/订阅模型的消息传递功能从而支持长时间运行和异步任务的多租户服务器。blob存储装置672提供多租户存储装置来存储ml模型和其他相关文件。容器注册表674提供多租户私有容器注册表来存储客户端上传的ml模型的docker映像。sql服务器676存储ml技能、ml包、数据集等的元数据。事件/日志存储装置678存储在k8s集群620、630、640中运行的应用/pod的日志和度量。虽然k8s集群620、630、640与事件/日志存储装置678之间存在连接,但是它们没有在图6b中示出。
87.服务网格控制器644(例如,istiotm)为ml技能646、647、648提供服务网格功能,诸如流量路由规则、监控等。由服务网格控制器644来控制什么可以进出ml技能646、647、648。服务网格控制器644推动用于ml技能的联网和监控策略。例如,服务网格控制器644可以控制请求可能来自的互联网协议(ip)地址、阻止病毒、阻止客户下载专有代码、和/或访问某些端口等。api网关642验证对于ml技能646、647、648的客户端请求。
88.一旦ml模型被验证和部署,并且作为ml技能646、647、648对rpa机器人618可用,则当rpa机器人618在其操作期间到达使用ml模型的活动时,rpa机器人618将请求和相关联的数据发送到ml服务集群640的api网关642。然而,应当注意,在一些实施例中,用于执行ml模型的数据可以由不同于rpa机器人618的来源补充,或者完全来自不同的来源。
89.给定rpa机器人618的ml操作的数据经由服务网格控制器644被路由到(多个)适当的ml技能646、647、648。来自ml技能646、647、648的输出然后通过api网关642被发送回适当的rpa机器人618。机器人然后使用该数据来执行它的ml活动。应当注意,对于某些ml活动,机器人618可以多次向ml技能646、647、648发送数据和/或从其接收数据。
90.然而,一旦已经部署了ml技能646、647、648,就期望进一步管理ml技能646、647、648。在一些实施例中,重训练可以取决于ml模型的类型和将用来训练ml模型的数据。一些实施例采用ai中心存储层670,在ai中心存储层670中租户可以包括他们想要用来训练的数据,并且rpa机器人618可以与ai中心存储层670交互。可以随时间来收集数据,并且rpa机器
人618可以将该数据提供给ai中心存储层670。在一些实施例中,训练数据被存储在blob存储装置672中。
91.例如,rpa机器人618可以经由rpa工作流程中的活动继续将数据推送到ai中心存储层670,该活动允许相应的rpa机器人618自动地知道ai中心存储层670在哪里并上传数据。附加地或替代地,rpa机器人618可以遍历本地数据和/或被存储在ai中心存储层670之外的远程数据库中的数据,然后将该数据发送到ai中心存储层670。该数据可以用于重训练与ml技能646、647、648相关联的ml模型。例如,可以监控ml技能646、647、648的ml模型的性能。如果ml技能646、647、648的ml模型的性能低于某个阈值(例如,取决于应用,60%、80%、95%、99%等的置信度),则ai训练器634可以使用存储在ai中心存储层670中的数据来发起对该ml模型的重训练。附加地或替代地,在接收到用于训练相应ml模型的一定量的数据之后,在经过一定量的时间之后,等等,ml技能646、647、648的ml模型可以被重训练。
92.ai中心存储层670中的随时间收集的数据可以允许将不同类型的数据分组为数据集。相似类型的数据可以按逻辑或物理分组。在一些实施例中,用户可以经由ai应用614选择他们想要训练哪个ml模型(如果他们具有适当的访问权限的话)、选择和管理他们想要在其上训练相应的ml模型的(多个)数据集、选择他们想要重训练何时发生(例如,基于请求或周期性地)、创建/监控重训练流水线等。
93.在一些实施例中,数据集可以被呈现为用于ml模型访问数据集中的数据的指针。ml技能646、647、648的ml模型可以基于上次训练相应ml模型时不可用的较新数据、较旧数据和较新数据的组合、完整数据集等来重训练。随着新数据的获得,ml模型可能随时间而变得更加准确。
94.在一些实施例中,用户可以选择或定义他们想要使用的(多个)性能度量,并且重训练流水线622、624、626基于所选择的(多个)性能度量为被重训练的ml模型生成一个或多个得分。训练集群620提供抽象层,该抽象层允许管理用于重训练的资源(例如,cpu、gpu、ram等)。应当注意,在一些实施例中,可以使用多个k8s集群、多个存储层或两者,而不脱离本发明的范围。如果(多个)得分提高,则可以在用户期望的情况下自动使用经重训练的ml模型来代替先前版本。否则,可以通知用户并决定是否期望部署经重训练的版本。在一些实施例中,可以随时间来跟踪得分的变化,突出准确性的提高和降低。用户或训练集群620然后可以尝试确定是什么正在导致负漂移。
95.在一些实施例中,可以自动调整所使用的数据量。例如,可以提供训练界面作为指挥器612或ai应用614的一部分,其允许用户调整数据点的数目、收集数据的频率、收集的数据量、用于重训练的触发和/或任何其他合适的训练参数,而不脱离本发明的范围。
96.图6a和图6b的架构可以有助于减轻或防止ip窃取。例如,在一些实施例中,托管ml技能646、647、648的至少一些ml模型或其他可用的托管ml模型可以不由客户提供,并且可以是提供架构600的公司专有的。仅通过描述,这些ml模型可以对rpa机器人618可用且可调用,并且专有的ml模型本身可以不被提供给用户或调用rpa机器人618。相反,可以仅提供ml模型执行的结果。
97.在一些实施例中,可以提供用于rpa的低代码ml模型部署和训练系统。用户604和/或rpa开发者606可以以一次点击来部署ml包而不进行编码。例如,用户可以从ml模型的目录中进行选择,并且将所选择的ml模型部署到目标计算环境(例如,单节点k8s设施、多节点
k8s设施等)。在某些实施例中,用户可以通过单击按钮来训练ml技能646、647、648的ml模型。例如,参见图8的低代码ml模型流水线创建界面800。这种实施例可以不要求用户604和/或rpa开发者606具有技术知识,并且他们可以触发训练/重训练而无需手动编程。然而,如果ml模型包属于客户,并且不是rpa提供商(诸如)提供的现成ml模型,则这可能不完全正确。为了构建可训练的ml模型包,除了将对ml模型包进行预测所做的之外,生产他们自己定制的ml模型的客户可能还要进行一些编码。
98.在一些实施例中,rpa开发者606可以将多个ml模型链接在一起。这可以基于某些逻辑或配置。ml模型的网络可以在界面(例如,rpa设计器应用606)中对用户可用,该界面潜在地具有系统已经确定可能最相关的ml模型。例如,如果rpa开发者606正在寻求为使用设计器应用616点击按钮的活动添加ml模型,可以由例如核心微服务集群630提出则图元素识别ml模型。然后,rpa开发者606可以选择ml模型,并且适当地将ml模型链接起来,以实现期望的结果。
99.图7是示出了根据本发明实施例的被配置为执行托管、监控和重训练ml模型的系统700的架构图。系统700包括用户计算系统,诸如台式计算机702、平板电脑704和智能电话706。然而,在不脱离本发明范围的情况下,可以使用任何期望的计算系统,包括但不限于智能手表、膝上型计算机等。此外,虽然图7中示出了三个用户计算系统,但是在不脱离本发明的范围的情况下,可以使用任何合适数目的计算系统。例如,在一些实施例中,可以使用几十个、几百个、几千个或几百万个计算系统。
100.每个计算系统702、704、706具有rpa机器人710,rpa机器人710收集数据以发送到数据库(未示出)和/或在执行某些任务时执行(多个)ai/ml模型(例如,ai/ml模型732中的一个或者多个ai/ml模型,不管是链接的还是未链接的)。例如,一个或多个rpa机器人710可以使用被训练成使用cv来识别用户正在相应的计算系统上做什么的ai/ml模型。计算系统702、704、706经由网络720(例如,局域网(lan)、移动通信网络、卫星通信网络、互联网、其任意组合等)向服务器730发送信息。在一些实施例中,服务器730可以是公有云架构、私有云架构、混合云架构等的一部分。在某些实施例中,服务器730可以在单个计算系统730上托管多个基于软件的服务器。在一些实施例中,服务器730可以经由一个或多个虚拟机(vm)被实现。在某些实施例中,服务器730可以是不具有互联网连接性的“实体隔离”(air-gapped)服务器。在一些实施例中,服务器730可以是提供ai中心功能的一个机器或机器集群。在该实施例中,服务器730包括由一个或多个rpa机器人710调用的ai/ml模型732,以提供辅助相应的调用rpa机器人完成自动化的信息。在一些实施例中,由rpa机器人710调用的ai/ml模型732可以具有执行各种功能(诸如统计建模(例如,隐马尔可夫模型(hmm)))的多个层,并且利用深度学习技术(例如,长短期记忆(lstm)深度学习、先前隐藏状态的编码等)来标识用户交互的序列。
101.一旦被部署,就可能期望对ai/ml模型732进行重训练。然而,在一些实施例中,ml模型或ml技能的部署可以不是训练的先决条件。事实上,一些ml模型需要在被部署之前被训练。在一些实施例中,重训练可以取决于ml模型的类型和将用来训练ml模型的数据。一些实施例采用安全租户级别存储层(例如,作为数据库740的一部分),在安全租户级别存储层中租户可以包括他们想要训练的数据,并且一个或多个rpa机器人710可以与该存储层交互。可以随时间来收集数据,并且一个或多个rpa机器人710可以将该数据提供给数据库
740。
102.例如,一个或多个rpa机器人732可以经由rpa工作流程中的活动继续向数据库740推送数据,该活动允许相应的rpa机器人710自动知道数据库740在哪里并上传数据。附加地或替代地,rpa机器人710可以遍历本地数据和/或存储在另一远程数据库中的数据,然后将该数据发送到数据库740。该数据可以用于重训练ai/ml模型732。例如,服务器730可以监控ai/ml模型732的性能。如果ai/ml模型732的性能低于某个阈值(例如,取决于应用,60%、80%、95%、99%等的置信度),则服务器730可以使用存储在数据库740中的数据发起对该ai/ml模型732的重训练。附加地或替代地,在接收到用于训练该相应的ai/ml模型的一定量的数据之后,在经过一定量的时间之后,等等,ai/ml模型732可以被重训练。
103.数据库740中随时间收集的数据可以允许将不同类型的数据分组为数据集。相似类型的数据可以按逻辑或物理分组。在一些实施例中,用户可以选择他们想要训练ai/ml模型732的哪个ai/ml模型(如果他们具有适当的访问权限的话)、选择他们想要在用来训练相应的ai/ml模型的(多个)数据集、以及选择他们想要重训练何时发生(例如,基于请求或周期性地)。
104.在一些实施例中,数据集可以被呈现为用于ai/ml模型732访问数据集中的数据的指针。ai/ml模型732可以基于上次训练相应ai/ml模型时不可用的较新数据、较旧数据和较新数据的组合、完整数据集等来重训练。随着新数据的获得,ai/ml模型732可以随时间而变得更加准确。
105.在一些实施例中,用户可以选择他们想要使用的(多个)性能度量,并且服务器730基于所选择的(多个)性能度量为被重训练的ai/ml模型生成一个或多个得分。应当注意,在一些实施例中,可以使用多个服务器、多个数据库或两者,而不脱离本发明的范围。如果(多个)得分提高,则经重训练的ai/ml模型可以由服务器730部署以用于自动代替先前版本。替代地,计算系统750的用户可以被通知并且决定是否期望部署重训练版本。在一些实施例中,可以随时间来跟踪得分的变化,突出准确性的提高和降低。计算系统750或服务器730的用户然后可以尝试确定是什么正在导致负漂移。
106.在一些实施例中,可以自动调整所使用的数据量。例如,可以提供训练界面752,训练界面752允许计算系统750的用户调整数据点的数目、收集数据的频率、收集的数据量、用于重训练的触发和/或任何其他合适的训练参数,而不脱离本发明的范围。
107.系统700的架构可以帮助减轻或防止ip窃取。例如,用户计算系统702、704、706的公司可以不提供至少一些托管的ai/ml模型732。仅通过描述,这种ai/ml模型可以对rpa机器人710可用且可调用,并且专有的ai/ml模型本身可以不提供给用户或调用rpa机器人710。相反,仅提供ai/ml模型执行的结果。
108.ai层
109.在一些实施例中,可以使用多个ai层。每个ai层都是在数据上运行的算法(或模型),并且ai模型本身可以是在训练数据中训练的、经训练的人工“神经元”的深度学习神经网络(dlnn)。层可以串联运行、并联运行或其组合运行。
110.ai层可以包括但不限于序列抽象层、集群检测层、可视分量检测层、文本识别层(例如,ocr)、音频到文本翻译层或其任意组合。然而,在不脱离本发明范围的情况下,可以使用任何期望数目和类型的层。使用多个层可以允许系统开发屏幕中正在发生的事情的全
局画面。例如,一个ai层可以执行ocr,另一ai层可以检测按钮,另一ai层可以比较序列,等等。模式可以由一个ai层单独确定,也可以由多个ai层共同确定。
111.图8示出了根据本发明实施例的低代码ml模型流水线创建界面800。界面800允许用户创建新ml流水线运行而不进行编程。例如,用户可以指定流水线类型(例如,训练、评估或完整(训练 评估))、ml包、ml包主要版本和次要版本、输入数据集和评估数据集。在一些实施例中,训练流水线将包和数据集作为输入并产生新的包版本,评估流水线将包版本和数据集作为输入并产生度量和日志的集合,并且完整流水线运行处理功能、训练流水线以及紧接着的评估流水线。ml分包的主要版本是由rpa提供商提供的版本或由客户上传的版本,而ml包的次要版本是在使用流水线训练主要/次要版本时生成的版本。在一些实施例中,每次训练流水线运行产生ml包的次要版本。用户还可以添加环境变量、选择是否启用gpu训练、以及选择ml流水线应当在何时运行(例如,现在、基于时间、递归等等)。环境变量可以包括模型特定配置,可以可选地除了数据之外提供模型特定配置,例如,诸如可以被ml模型算法用来调谐训练作业的超参数(例如,估计器的数目、时期(epoch)的数目等)。
112.图9是示出了根据本发明实施例的用于托管、监控和重训练ml模型的流程900的流程图。该流程在910处开始,存储ml模型和用于ml模型的数据集。在一些实施例中,每个数据集包括按照逻辑或物理分组的相似类型的数据。在某些实施例中,数据集由rpa机器人提供,该rpa机器人遍历本地数据、存储在远程数据库中的数据、或遍历本地数据和存储在远程数据库中的数据这两者,并且将数据发送到ai中心的存储装置用于重训练。然后在920处,执行由rpa机器人调用的存储的ml模型。在一些实施例中,调用rpa机器人的rpa工作流程包括数据推送活动,该数据推送活动包括用于相应rpa机器人上传用于重训练数据的存储位置。在某些实施例中,ai中心或rpa机器人的活动被配置为调整用于重训练的数据点的数目、收集重训练数据的频率、收集的重训练数据的量、用于重训练的一个或多个触发或其组合。在一些实施例中,rpa机器人被许可调用模型并接收ml模型的执行的结果,但是不被许可自己访问一个或多个ml模型。在某些实施例中,ml模型被存储在容器中,并且包括ml模型的容器的内容被加密或被混淆,ml模型被加密,或者两者兼有。
113.在930处,如果接收到重训练请求或满足重训练条件,则在940处,使用在针对ml模型的训练配置中指定的多个数据集的子集来重训练ml模型。在一些实施例中,在重训练期间,多个数据集被呈现为指向ml模型的指针,并且被重训练的ml模型经由相应的指针访问多个数据集的子集以进行重训练。在950处,接收用于被重训练的ml模型的一个或多个性能度量,在重训练期间为一个或多个性能度量生成一个或多个得分,并且随时间来跟踪一个或多个得分的变化。然后在960处,部署经重训练的ml模型,并且流程返回到步骤920。在一些实施例中,当一个或多个得分提高时,ai中心可以被配置为部署经重训练的ml模型来代替ml模型的先前版本。在某些实施例中,当一个或多个得分提高时,ai中心被配置为部署ml模型的经重训练版本,使用ml模型的经重训练版本和ml模型的先前版本两者,并且选择具有最高置信度的结果。在一些实施例中,流程900可以由以下各项来执行:被配置为运行一个或多个重训练流水线的训练集群、被配置为对于ml模型执行crud操作并且使得训练集群的重训练流水线发起对ml模型的重训练的核心微服务集群、以及被配置为执行ml模型并且向调用rpa机器人提供执行的结果的ml服务集群。
114.在一些实施例中,使用用于rpa的低代码ml模型部署和训练应用,其中低代码ml模
型部署和训练应用被配置为以一次点击来部署ml分组而无需用户进行编码。在某些实施例中,低代码ml模型部署和训练应用被配置为促进从ml模型的目录中进行选择,并且将所选择的ml模型部署到ai中心作为目标计算环境。在一些实施例中,低代码ml模型部署和训练应用被配置为显示可彼此连接的ml模型的图。在某些实施例中,图中的ml模型可串联连接,可并联连接,或者两者兼有。
115.根据本发明的实施例,图9中执行的流程步骤可以由计算机程序执行,该计算机程序编码用于使(多个)处理器执行图9中描述的(多个)流程的至少一部分的指令。计算机程序可以体现在非瞬态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、ram、磁带、和/或用于存储数据的任何其他这种介质或介质组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)来实现图9中描述的全部或部分流程步骤的编码指令,这些指令也可以被存储在计算机可读介质上。
116.计算机程序可以用硬件、软件或混合实现来实现。计算机程序可以由彼此有效通信并且被设计成传递信息或指令以进行显示的模块组成。计算机程序可以被配置为在通用计算机、asic或任何其他合适的设备上操作。
117.容易理解,本发明的各种实施例的组件(如本文的附图中总体上描述和示出的)可以以各种各样不同的配置被布置和设计。因此,本发明实施例的详细描述(如附图中所示)不旨在限制所要求保护的本发明的范围,而仅仅是本发明的选定实施例的代表。
118.贯穿本说明书描述的本发明的特征、结构或特性可以以任何合适的方式组合在一个或多个实施例中。例如,贯穿本说明书对“某些实施例”、“一些实施例”或类似语言的引用意味着结合该实施例描述的特定的特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言的出现不一定都指同一组实施例,并且所描述的特征、结构或特性可以以任何合适的方式组合在一个或多个实施例中。
119.应当注意,贯穿本说明书对特征、优点或类似语言的引用并不意味着可用本发明实现的所有特征和优点应当是本发明的任何单个实施例,或者在本发明的任何单个实施例中。相反,涉及特征和优点的语言被理解为意味着结合实施例描述的特定的特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的对特征和优点的讨论以及类似语言可以但不一定是指相同的实施例。
120.此外,所描述的本发明的特征、优点和特性可以以任何合适的方式结合在一个或多个实施例中。相关领域的技术人员将认识到,本发明可以在没有特定实施例的一个或多个特定特征或优点的情况下实践。在其他情况下,在某些实施例中可以认识到可能不存在于本发明的所有实施例中的附加特征和优点。
121.本领域普通技术人员将容易理解,可以用不同次序的步骤和/或用与所公开的配置不同的硬件元件来实践上述本发明。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域技术人员来说显而易见的是,在保持在本发明的精神和范围内的同时,某些修改、变化和替代构造将是显而易见的。因此,为了确定本发明的边界和界限,应当参考所附权利要求。
再多了解一些

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

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

相关文献