CN115686600A - 软件交付给物理隔离机器人流程自动化(rpa)主机的优化 - Google Patents
软件交付给物理隔离机器人流程自动化(rpa)主机的优化 Download PDFInfo
- Publication number
- CN115686600A CN115686600A CN202210011201.6A CN202210011201A CN115686600A CN 115686600 A CN115686600 A CN 115686600A CN 202210011201 A CN202210011201 A CN 202210011201A CN 115686600 A CN115686600 A CN 115686600A
- Authority
- CN
- China
- Prior art keywords
- rpa
- software module
- version
- machine learning
- execute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
- G06F9/44542—Retargetable
- G06F9/44547—Fat binaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
提供了将软件交付给物理隔离的机器人流程自动化(RPA)主机的优化。一些实施例解决了将RPA软件供应到物理隔离的主机的独特挑战,特别是供应大量的RPA机器学习组件和训练语料库,以及供应到具有不同的硬件和/或软件规范的多个物理隔离的主机。为了降低与数据流量和操纵相关联的成本,一些实施例将多个RPA组件和/或训练语料库捆绑在一起,形成包括去重的软件库集合的聚合包。然后,个体的RPA组件被自动地根据所述聚合包重构并且被分发到物理隔离的主机。
Description
背景技术
本发明涉及机器人流程自动化(RPA),具体涉及将相对较大的数据对象交付给物理隔离(airgapped)的RPA主机。
RPA是新兴的信息技术领域,目的在于通过使重复的计算任务自动化来提高生产力,从而解放人类操作者来执行智力上更复杂和/或创造性的活动。除了其他之外,以自动化为目标的显要的任务包括从文档中提取结构化数据,生成发票和其他业务文档,以及与用户界面进行交互,例如填写表单。
RPA开发的一个特定领域包括训练和部署人工智能(AI)系统,该AI系统被配置为使各种任务自动化。RPA中所使用的示例性AI系统包括被训练用以自动处理图像的人工神经网络,例如自动从扫描文档(诸如发票和简历)中提取结构化数据。除了其他之外,其他示例包括被配置用于自然语言处理任务的神经网络,例如自动翻译、文本文档的自动分类以及情绪检测。
AI系统的性能在很大程度上取决于训练数据的特异性和质量。换句话说,AI系统可能需要针对每个任务进行专门的训练,优选地使用特定于相应RPA客户的数据。根据任务,成功的训练可能还需要相对较大量的训练数据,大约数以千计到数以百万计的大量样本。鉴于这些特定要求,针对RPA客户训练、配置和部署基于AI的系统可能需要跨通信网络传输大量数据。
虽然在快速互联网时代,大量数据操作通常不被视为问题,但是在物理隔离的主机(即出于计算机安全和/或保密原因,相对隔离地操作的计算机系统)的情况下,大量数据操作可能是不切实际的。物理隔离通常是指配置和操作通信网络的方式,其中至少网络节点子集在物理上或在逻辑上与其余网络断开连接。除了其他之外,示例性物理隔离的计算主机可以在银行业、关键基础设施操作和军事中被找到。
因此,将大量数据型RPA软件(诸如基于AI的组件和训练语料库)交付给物理隔离的主机,可能会带来特定的和实质性的技术挑战。为了扩大RPA技术的范围,有兴趣促进这些操作。
发明内容
根据一个方面,机器人流程自动化(RPA)方法包括采用计算机系统的至少一个硬件处理器接收数据包和解包脚本,数据包组合实现机器学习模型的RPA软件模块的至少两个不同的版本。数据包对去重的多个RPA机器学习库进行编码,其中RPA软件模块的第一版本包括多个RPA机器学习库的第一子集,其中RPA软件模块的第二版本包括多个RPA机器学习库的第二子集,并且其中第一子集和第二子集至少共享多个RPA机器学习库中的选定的库。方法还包括:作为响应,采用至少一个硬件处理器来根据解包脚本对数据包进行解包,以至少产生RPA软件模块的第一版本,并且将RPA软件模块的第一版本传输到物理隔离的RPA主机系统,该物理隔离的RPA主机系统被配置为执行机器学习模型。
根据另一个方面,计算机系统包括至少一个硬件处理器,该至少一个硬件处理器被配置为接收数据包和解包脚本,数据包组合实现机器学习模型的RPA软件模块的至少两个不同的版本。数据包对去重的多个RPA机器学习库进行编码,其中RPA软件模块的第一版本包括多个RPA机器学习库的第一子集,其中RPA软件模块的第二版本包括多个RPA机器学习库的第二子集,并且其中第一子集和第二子集至少共享多个RPA机器学习库中的选定的库。至少一个硬件处理器还被配置为:作为响应,根据拆包脚本对数据包进行拆包,以至少产生RPA软件模块的第一版本,并且将RPA软件模块的第一版本传输到物理隔离的RPA主机系统,该物理隔离的RPA主机系统被配置为执行机器学习模型。
根据另一个方面,非瞬态计算机可读介质存储指令,这些指令在被计算机系统的至少一个硬件处理器执行时,使计算机系统接收数据包和解包脚本,数据包组合实现机器学习模型的RPA软件模块的至少两个不同的版本。数据包对去重的多个RPA机器学习库进行编码,其中RPA软件模块的第一版本包括多个RPA机器学习库的第一子集,其中RPA软件模块的第二版本包括多个RPA机器学习库的第二子集,以及其中第一子集和第二子集至少共享多个RPA机器学习库中的选定的库。指令还使计算机系统:作为响应,根据解包脚本对数据包进行解包,以至少产生RPA软件模块的第一版本,并且将RPA软件模块的第一版本传输到物理隔离的RPA主机系统,该物理隔离的RPA主机系统被配置为执行机器学习模型。
附图说明
在阅读下面的详细描述和参照图时,本发明的上述方面和优点将变得更好理解,在图中:
图1示出了根据本发明的一些实施例的示例性机器人流程自动化(RPA)环境。
图2图示了根据本发明的一些实施例的RPA机器人和编排器的示例性组件和操作。
图3示出了根据本发明的一些实施例的包括物理隔离的主机的各种RPA主机系统。
图4示出了根据本发明的一些实施例的在RPA主机上执行的示例性RPA组件。
图5图示了根据本发明的一些实施例的机器学习(ML)包的示例性组件。
图6图示了根据本发明的一些实施例的物理隔离的RPA主机系统与供应服务器之间的示例性交换。
图7示出了根据本发明的一些实施例的将多个示例性ML包打包成聚合ML包以及从对应的聚合包中解包个体的ML包。
图8图示了根据本发明的一些实施例的在供应服务器上执行的打包器组件。
图9示出了根据本发明的一些实施例的由供应服务器执行的示例性步骤序列。
图10示出了根据本发明的一些实施例的在中间主机上执行的示例性解包器组件。
图11示出了根据本发明的一些实施例的由中间主机执行的示例性步骤序列。
图12示出了被编程以执行本文中所描述的一些方法的计算装置的示例性硬件配置。
具体实施方式
在下面的描述中,应当理解,所有列举的结构之间的连接都可以是直接操作连接或通过中间结构的间接操作连接。一组元素包括一个或多个元素。对元素的任何引用都应当被理解为指至少一个元素。多个元素包括至少两个元素。“或”的任何用法都意味着非排他性的或。除非另有要求,否则任何描述的方法步骤都不一定要按特定的所示顺序执行。从第二元素导出的第一元素(例如,数据)包含与第二元素相等的第一元素以及通过处理第二元素和可选地处理其他数据而生成的第一元素。根据参数做出确定或决定包含根据参数和可选地根据其他数据做出确定或决定。除非另有说明,否则一些数量/数据的指示符可以是数量/数据本身或与数量/数据本身不同的指示符。计算机程序是执行任务的处理器一系列指令。本发明的一些实施例中所描述的计算机程序可以是其他计算机程序的独立软件实体或子实体(例如子例程、库)。在本文中使用术语“数据库”来表示任何有组织的、可搜索的数据集合。计算机可读介质包含非瞬态介质(诸如磁性、光学和半导体存储介质(例如,硬盘驱动器、光盘、闪存、DRAM))以及通信链路(诸如导电电缆和光纤链路)。根据一些实施例,除了其他之外,本发明提供了计算机系统,包括硬件(例如一个或多个处理器),被编程以执行本文中所描述的方法,以及计算机可读介质编码指令以执行本文中所描述的方法。
下面的描述以示例的方式,但不一定以限制的方式说明本发明的实施例。
图1示出了根据本发明的一些实施例的示例性机器人流程自动化(RPA)环境10。环境10包括相互协作以实现特定任务的自动化的各种软件组件。在示例性RPA场景中,公司的员工使用业务应用(例如文字处理器、电子表格编辑器、浏览器、电子邮件应用)来执行重复任务,例如向各种客户端开具发票。为了实际执行相应任务,员工执行一系列的操作/动作,在这里被视为流程。形成发票开具流程的部分的示例性操作可以包括打开Microsoft电子表格,查找客户端的公司细节,将相应的细节复制到发票模板中,填写指示采购项的发票字段,切换到电子邮件应用,为相应的客户端编写电子邮件消息,将新创建的发票附加到相应的电子邮件消息以及点击“发送”按钮。RPA环境10的各种元素都可以通过模仿相应的人类操作者在执行相应任务的过程中所执行的一组操作,来使相应的流程自动化。
模仿人的操作者/动作在这里被理解为包含再现人类操作者在计算机上执行相应的操作/动作时发生的一系列计算事件以及再现人类操作者在计算机上执行相应的操作的结果。例如,模仿点击图形用户界面的按钮的动作可以包括使操作系统将鼠标指针移动到相应的按钮并且生成鼠标点击事件,或者可以可替代地包括将相应的GUI按钮本身切换到点击状态。
除了其他之外,通常以此类自动化为目标的流程包括付款处理、开具发票、与业务客户端进行通信(例如,分发通讯和/或产品提供)、内部通信(例如备忘录、会议和/或任务的调度)、审计和工资单处理。在一些实施例中,专用的RPA设计应用34(图2)使人类开发人员能够设计软件机器人来实现使目标流程有效自动化的工作流程。工作流程通常包括一系列自定义自动化步骤,在这里被认为是活动。每个活动可以包括机器人执行的动作,诸如点击按钮、读取文件、写入电子表格单元格等。活动可以被嵌套和/或嵌入。在一些实施例中,RPA设计应用34展示用户界面和一组工具,这些工具让开发人员控制工作流程的活动的执行顺序和它们之间的关系。RPA设计应用34的实施例的一个商业示例是UiPath StudioXTM。
一些类型的工作流程可以包括但不限于序列、流程图、有限状态机(FSM)和/或全局异常处理程序。序列可以特别适合于线性流程,使得能够从一个活动流到另一个活动,而不会使工作流程混乱。流程图可以特别适合于更复杂的业务逻辑,使得能够通过多个分支逻辑操作符以更多样化的方式实现决策的集成和活动的连接。FSM可以特别适合于大型工作流程。FSM在其执行中可以使用有限数量的状态,这些状态由条件(即转换)或活动触发。全局异常处理程序可以特别适合于在遇到执行错误时确定工作流程行为和调试流程。
一些工作流程活动可以被配置为由人工智能代理(例如被预先训练以执行相应的任务的神经网络)执行。在一个示例中,工作流程包括针对发票的自动处理的一系列步骤。然而,当相应的发票作为图像(实际纸质文档的扫描或照片)可用时,对应的工作流程的一些活动可以包括从发票图像中自动地提取结构化数据,诸如发票编号、增值税(VAT)金额、总支付金额和客户端名称。被配置为执行此类活动的RPA机器人可以包括经过训练的机器学习模型,诸如在发票样本语料库上训练的一组神经网络。这种机器学习模型还将在下面进行详细描述。
一旦工作流程被开发出来,它便可以以计算机可读形式被编码为一组RPA脚本40(图2)。可以根据本领域中已知的任何数据规范来制定RPA脚本40,例如以可扩展标记语言(XML)、Javascript Object Notation(JSON)或编程语言(诸如C#、Visual Basic、Java等)的版本。可替代地,RPA脚本40可以以RPA特定的字节码版本被制定,或甚至被制定为用诸如英语、西班牙语、日语等自然语言制定的一系列指令。在一些实施例中,脚本40被预编译成一组本机处理器指令(例如,机器代码)。
本领域技术人员将认识到,RPA设计应用30可以包括可以在不同的物理机上执行的多个组件/模块。在说明本发明的云计算实施例的一个这种示例中,RPA设计应用30可以在客户端-服务器配置中执行,其中应用30的一个组件可以向客户端计算机的用户展示机器人设计界面,并且在服务器计算机上执行的、应用30的另一个组件可以组装机器人工作流程并且制定/输出RPA脚本40。例如,开发人员可以经由在客户端计算机上执行的web浏览器访问机器人设计界面,同时处理在客户端计算机接收到的用户输入的软件实际上在服务器计算机上执行。
一旦被制定,脚本40便可以由一组机器人12a-c(图1)执行,这些机器人还可以被编排器14控制和协调。机器人12a-c和编排器14每个可以包括多个计算机程序,这些计算机程序可以在同一物理机上执行或可以不在同一物理机上执行。机器人12a-c和编排器14的示例性商业实施例分别包括UiPath RobotsTM和UiPath OrchestratorTM。机器人12a-c的类型包括但不限于有人值守机器人、无人值守机器人、开发机器人(类似于无人值守机器人,但是用于开发和测试目的)以及非生产机器人(类似于有人值守机器人,但是用于开发和测试目的)。
有人值守机器人由用户事件和/或命令触发,并且在同一计算系统上与人类操作者一起操作。在一些实施例中,例如,有人值守机器人只能从机器人托盘或从命令提示符开始,因此不能够由编排器14控制并且不能够在锁定屏幕下运行。无人值守机器人可以在远程虚拟环境中无人值守地运行,并且可以负责远程执行、监控、调度和为工作队列提供支持。
编排器14可以具有各种能力,包括但不限于为机器人12a-c供应(provision)、部署、配置、排队、监控、记录和/或提供互连性。供应可以包括创建并维护机器人12a-c与编排器14之间的连接。部署可以包括确保软件(例如,RPA脚本40)正确交付给机器人12a-c用于执行。配置可以包括维护和交付机器人环境和工作流程配置。排队可以包括提供工作队列和队列项的管理。监控可以包括保持跟踪机器人状态和维护用户权限。记录可以包括将日志存储和索引到数据库和/或另一个存储机制(例如SQL、ElasticSearchTM、RedisTM)。编排器14还可以充当第三方解决方案和/或应用的集中通信点。
图2示出了根据本发明的一些实施例的机器人12和编排器14的示例性组件。示例性RPA机器人是使用微软公司的WindowsTM工作流程基础应用编程接口来构建的。机器人12可以包括一组执行器22和RPA代理24。机器人执行器22被配置为接收指示模仿人类操作者执行业务流程的动作的一系列活动的RPA脚本40,操作者并且实际上在相应的客户端机器上执行相应的一系列活动。在一些实施例中,(多个)机器人执行器22包括解释器(例如,即时解释器或编译器),被配置为将RPA脚本40翻译成运行时包,该运行时包包括用于执行相应脚本中所描述的操作的处理器指令。因此,执行脚本40可以包括(多个)执行器22,该执行器翻译RPA脚本40并且指示相应的主机机器的处理器将结果运行时包加载到存储器中,并且将运行时包投入执行。
RPA代理24可以管理(多个)机器人执行器22的操作。例如,RPA代理24可以根据人类操作者的输入和/或根据调度选择任务/脚本,以由(多个)机器人执行器22执行。代理24可以启动和停止工作,并且配置(多个)执行器22的各种操作参数。当机器人12包括多个执行器22时,代理24可以协调其活动和/或流程间通信。RPA代理24还可以管理RPA机器人12和编排器14和/或其他实体之间的通信。
在WindowsTM环境中执行的一些实施例中,机器人12默认安装MicrosoftWindowsTM服务控制管理器(SCM)管理的服务。因此,此类机器人可以在本地系统账户下打开交互式WindowsTM会话,并且具有WindowsTM服务的处理器特权。例如,控制台应用可以由SCM管理的机器人启动。在一些实施例中,可以以处理器特权的用户级别(用户模式,第3环)安装机器人12。此类机器人与已经安装了相应的机器人的用户具有相同的权限。例如,这种机器人可以启动相应用户能够启动的任何应用。在支持同时运行的多个交互式会话的计算系统(例如WindowsTM服务器2012)上,多个机器人可以同时运行,每个机器人在单独的WindowsTM会话中都使用不同的用户名。
在一些实施例中,机器人12和编排器14可以在客户端-服务器配置中执行。应当注意,客户端侧、服务器侧或两者都可以包括任何所需数目的计算系统(例如物理或虚拟机),而不偏离本发明的范围。在这种配置中,包括(多个)执行器22和RPA代理24的机器人12可以在客户端侧执行。机器人12可以同时运行数个工作/工作流程。RPA代理24(例如,WindowsTM服务)可以充当执行器22的单个客户端侧接触点。代理24还可以管理机器人12与编排器14之间的通信。在一些实施例中,通信由代理24发起,这可以打开到编排器14的WebSocket信道。代理24随后可以使用信道将关于每个执行器22的状态的通知发送给编排器14,例如作为心跳信号。反过来,编排器14可以使用信道将确认、工作请求和其他数据(诸如RPA脚本40)发送给机器人12。
编排器14可以在服务器侧执行,可能分布在多个物理和/或虚拟机上。在一个这样的实施例中,编排器14可以包括编排器用户界面(UI)17(可以是web应用)和一组服务模块19。服务模块19还可以包括一组开放数据协议(OData)代表性状态传输(REST)应用编程接口(API)端点和一组服务API/业务逻辑。用户可以经由编排器UI 17与编排器14进行交互(例如,通过在浏览器上打开专用的编排器界面),以指示编排器14执行各种动作,例如,这些动作可以包括在机器人12上启动工作、创建机器人组/池、将工作流程分配给机器人、将数据添加到队列/从队列中移除数据、调度工作以运行无人值守、分析每个机器人或工作流程的日志,等等。编排器UI 17可以使用超文本标记语言(HTML)、JavaScript(JS)或本领域中已知的任何其他数据格式。
编排器14可以通过选择性地调用服务API/业务逻辑来执行用户请求的动作。另外,编排器14可以使用REST API端点来与机器人12进行通信。REST API可以包括配置、记录、监控和排队功能。配置端点可以用于定义和配置应用用户、权限、机器人、资产、发布等。例如,记录REST端点可以被用于记录不同的信息,诸如错误、机器人发送的显式消息以及其他环境特定的信息。部署REST端点可以被机器人用来查询要被执行的RPA脚本40的版本。排队REST端点可以负责队列和队列项管理,诸如将数据添加到队列、从队列中获得事务、设置事务的状态,等等。监控REST端点可以监控编排器14和RPA代理24的web应用组件。
在一些实施例中,RPA环境10(图1)还包括连接到RPA数据库18的数据库服务器16。在服务器16被供应在云计算平台上的实施例中,服务器16可以被体现为数据库服务,例如,作为具有一组数据库连接器的客户端。数据库服务器16被配置为选择性地将与RPA环境10相关的数据存储在数据库18中和/或从数据库18中取回与RPA环境10相关的数据。这种数据可以包括各种机器人12a-c、机器人池的配置参数以及表征各种机器人执行的工作流程的数据和表征用户、作用(role)、调度、队列等的数据。由数据库服务器16存储和/或取回的另一个示例性种类的数据包括表征每个执行机器人的当前状态的数据。另一个数据的示例性种类包括由各种机器人在执行期间记录的消息。除了其他之外,数据库服务器16和数据库18可以采用本领域中已知的任何数据存储协议和格式,诸如结构化查询语言(SQL)、ElasticSearchTM和RedisTM。在一些实施例中,数据由编排器14例如经由记录REST端点收集和管理。编排器14还可以向数据库服务器16发出结构化查询。
在一些实施例中,RPA环境10(图1)还包括互连环境10的各种成员的通信信道/链路15a-e。可以根据本领域中已知的任何方法来实现这些链路,例如作为虚拟网络链路、虚拟专用网络(VPN)或端到端隧道。一些实施例还对通过一些或全部链路15a-e传播的数据进行加密。
本领域技术人员将理解,RPA环境10的各种组件可以在不同的主机计算机系统(物理装置和/或虚拟机)上被实现和/或可以在其上执行。图3示出了根据本发明的一些实施例的各种各样的RPA主机系统20a-d。每个主机系统20a-d代表至少具有硬件处理器和用于存储处理器指令和/或数据的存储器单元的计算系统(个体的计算装置或一组互连的计算机)。除了其他之外,示例性RPA主机20a-d包括个人计算机、膝上型计算机和平板计算机、移动电信设备(例如,智能手机)以及企业的大型计算机。除了其他之外,被图示为12c的另一个示例性RPA主机包括云计算平台,诸如由AmazonTMAWS或MicrosoftTMAzureTM操作的服务器集群。除了其他之外,RPA主机12a-c可以通过诸如互联网的通信网络13与供应服务器28进行通信,以接收RPA软件,诸如RPA机器人12、编排器14、RPA设计应用34的各种组件以及人工智能组件,诸如机器学习模型和训练语料库。
一些RPA主机可以是物理隔离的,如图3中的示例性主机20d所示。为了本公开的目的,物理隔离的主机包括无法经由通信网络链路连接到服务器28的一组计算设备。换句话说,物理隔离的主机和供应服务器28之间的网络连接存在物理或逻辑障碍。物理隔离的主机的简单示例是未通过电缆或无线方式连接到其他计算机或通信网络13的计算机。物理隔离的主机的另一个示例包括一组互连的计算机系统(例如,局域网的成员),但是其中相应组的计算机还没有连接到诸如互联网的扩展网络。物理隔离的主机的又一示例包括位于严格的防火墙后面的计算机,该防火墙阻止相应的主机与包括供应服务器28的扩展网络之间的通信。
各种方法都可以被用来将RPA软件和数据传输给物理隔离的RPA主机/从物理隔离的RPA主机传输RPA软件和数据。在根据本发明的一些实施例的一个示例中,可以从中间主机26处的供应服务器28接收相应的数据,该中间主机26包括连接到(多个)通信网络13的计算装置。然后,操作者可以采用中间主机26将去往物理隔离的主机20d的数据传输到诸如外部硬盘驱动器的非瞬态计算机可读介质,或传输到在物理上或在逻辑上与网络13分离的本地网络上的文件存储库。下面还将详细描述示例性中间主机26的操作。
图4示出了根据本发明的一些实施例的在RPA主机系统20上执行的示例性RPA组件。主机系统20一般代表图3中所示的任何RPA主机系统,包括物理隔离的主机20d。除了其他之外,操作系统(OS)30可以包括任何广泛可用的操作系统,诸如Microsoft WindowsTM、MacOSTM、LinuxTM、iOSTM或AndroidTM,操作系统包括软件层,该软件层在主机系统20的硬件与在相应的计算设备上执行的其他软件之间接口连接。RPA主机20还可以执行包括以机器人12自动化为目标的软件应用的RPA目标应用32的实例,例如Microsoft ExcelTM或web浏览器的实例。RPA目标应用32一般表示被人类操作者用来执行任务的任何计算机程序。除了其他之外,示例性应用32包括文字处理器、电子表格应用、图形应用、浏览器、社交媒体应用和电子通信应用。
在主机20被用来开发RPA应用(在本领域中被称为设计侧或设计时的RPA的方面)的用例场景中,主机20可以执行RPA设计应用34的实例,包括一组计算机程序(例如,集成开发环境——IDE),用于设计被配置为执行特定任务的机器人。应用34可以展示具有各种工具的用户界面,这些工具用于构建和组织工作流程、定义个体的RPA活动、以及设置各种活动参数。在一些实施例中,除了其他之外,RPA设计应用34包括用于设计、训练和/或部署机器学习(ML)模型的工具/软件模块,这些模型能够执行特定的RPA活动,诸如对文本和图像的自动处理等。在主机系统20被用于生产(在本领域中也被称为运行时)的另一个用例场景中,主机20可以执行一组RPA机器人12,其中一些可以实现各种ML模型。在一些实施例中,机器学习模型以及相关联的训练语料库可以以机器学习包的形式被交付给RPA主机系统20,如下所述。
图5示意性地图示了根据本发明的一些实施例的机器学习(ML)模型和ML包。ML模型40包括人工智能系统的任何实现方式(例如软件、硬件或其组合),该人工智能系统的性能(例如作为效用函数进行量化)可以经由训练流程被自动优化。除了其他之外,ML模型的示例包括人工神经网络、决策树、支持向量机、贝叶斯网络和聚类分类器。ML模型40被配置为接收模型输入42,并且应用模型特定的算法根据输入42产生模型输出44。在自动图像处理示例中,输入42可以包括发票的图像,并且输出44可以包括表示相应的发票上的支付VAT金额的数字。在自动自然语言处理示例中,输入42可以包括社交媒体帖子的内容,并且输出44可以包括相应的社交媒体帖子的基调是积极的还是消极的指示符。
在一些实施例中,训练ML模型40包括将各种训练输入提供给模型40。对于每个训练输入,训练可以包括根据相应的模型处理相应的输入以产生训练输出,根据相应的训练输出确定模型特定的效用函数的值,以及根据相应的效用值调节模型40的一组参数。调节参数的目的可以是使效用函数最大化(或在某些情况下,最小化)。在ML模型40包括神经网络的一个示例中,可调节参数可以包括一组突触权重,同时效用函数可以量化训练输出与预期或期望输出的偏离。在这种示例中,训练可以包括调节突触权重,并且可能调节其他网络参数,以便使训练输出更接近与相应的训练输入对应的期望输出。
在一些实施例中,训练语料库48包括针对相应的ML模型的训练输入集合。在图像处理示例中,语料库48可以包括以计算机可读形式进行编码的图像库。例如,语料库48可以包括发票和/或出纳收据的图像集合。在语言处理示例中,语料库48可以包括一组文本样本,例如在社交媒体网站上发布的评论集合、新闻文章集合等。可以例如使用元数据给个体的语料库项加上标签、标记和/或注释。除了其他之外,示例性元数据可以包括选定的项的类别/种类的会员指示符(例如包含人脸、特定部门的员工、来自选定客户的发票等的图像)和从相应的语料库项中提取的各种数据(例如,相应发票上的总金额)。可以以本领域中已知的任何格式将语料库48组织和存储为例如关系数据库、简单列表或作为以XML或JSON格式指定的结构化数据。
在一些实施例中,训练管理器46包括用于使用训练语料库48训练ML模型40的计算机程序。因此,管理器46可以从语料库48中选择训练输入,执行ML模型40以产生相应的训练输出,调整模型40的可调节参数和/或评估ML模型40的性能。除了其他之外,训练管理器46可以实现本领域中已知的任何ML训练算法,包括例如,监督学习、强化学习、无监督学习和遗传算法。管理器46可以进行训练,直到满足某些终止条件,例如对于预定数目的训练输入或轮数(epoch),或直到ML模型40达到预定的性能等级。
除了其他之外,ML模型40可以以ML包45的形式被交付给(多个)RPA主机系统,该ML包45还可以包括训练语料库48的实例和/或训练管理器46的实例。单个ML包可以包括多个训练语料库和/或多个ML模型。组件40、46和/或48可以被编码为个体的软件库,如下面所述。因此,ML包45可以由一组库组成,这些库还可以被归档和/或一起压缩到一个文件中,诸如压缩包或ZIP档案。
在另一个示例性实施例中,ML包45包括虚拟机镜像,该镜像具有执行ML模型所需的操作系统和所有软件。另一个示例性ML包45可以包括容器镜像,诸如rkt或容器。本文中的术语“容器”表示不同的且隔离的虚拟环境,该虚拟环境具有用于执行ML模型(包括所有依赖关系)的虚拟化操作系统和代码。换句话说,容器是OS级虚拟化的形式,即它们与成熟的虚拟机的不同在于,它们不包括真正的OS,但是将在相应的硬件平台上执行的实际OS的一些特征虚拟化。在容器中执行的计算机程序只知道相应的容器和被分配给相应的容器的硬件设备的内容。相反,在传统的OS上执行的程序通常具有对相应的硬件平台的所有资源的访问权。
一些容器开发环境,诸如等,将容器内容组织为层的堆栈,其中每个层代表一组软件对象/库,该组软件对象/库调用下面的(多个)层的功能。格式化为容器镜像的示例性ML包45可以具有:顶层,包括相应的ML模型的二进制文件;一些中间层,包括各种模型依赖关系;以及底层,包括OS虚拟化代码。
本发明的一些实施例依赖于以下观察:由于物理隔离的主机通常不被连接到供应服务器28,所以向这种主机供应软件不会受益于现代软件分发的一些设施。例如,在物理隔离的主机上实现传统的、自动的、增量的软件更新机制可能是不可能或不切实际的。相反,考虑到证明物理隔离是合理的严格安全性和/或保密性,到/从物理隔离的主机的数据传输可以由具有丰富技能和责任的人类操作者执行。此外,物理隔离的主机可以包括多个计算机,可以具有不同的硬件配置和操作系统。此外,由于机器学习包的大小相对较大(例如,ML训练语料库可以在数百兆字节到数千兆字节的范围内),因此,可能难以供应机器学习包。
鉴于上述情况,一些实施例通过将多个ML包捆绑成聚合包以便交付到物理隔离的主机,来促进基于ML的RPA软件的供应。还通过去重聚合包的内容将其进一步优化以进行交付,如下所述。在图6中所示的一个示例中,供应服务器28可以通过通信网络13与中间主机26建立连接。中间主机26可以包括由拥有和/或操作物理隔离的RPA主机系统20d的同一实体拥有和/或操作的计算机系统。为了发起软件供应,中间主机26的一些实施例将包请求52发送给供应服务器28,请求52指示物理隔离的主机26d的一组期望ML资源和/或一组硬件和/或软件规范,该物理隔离的主机26d将托管/执行相应的ML资源。响应于接收请求52,供应服务器28可以根据请求52的内容组装聚合包50,并且将聚合包50发送到中间主机26。
图7图示了捆绑多个个体的(individual)ML包45a-c的示例性聚合包50。每个ML包45a-c包括个体的RPA库的集合,在图7中表示为L1至L6。库L1至L6通常代表任何类型或格式的数据文件/结构/软件对象,包括用于实现RPA活动的代码和/或数据。根据本发明的一些实施例的示例性RPA库包括以任何编程语言制定的源代码文件、可执行文件(例如,可移植可执行)、脚本文件、共享库(例如,动态链接库——DLL)、以计算机可读形式编码的图像集合和数据库等。另一个示例性库由元数据组成,例如关于相应的ML包的描述性元数据、指定相应ML包的库适合或一起工作的方式的结构元数据等。单个库可以包括多个对象,例如选定的文件夹的所有内容。描绘个体的库的顺序可能是任意的,并且可以不反映软件对象的实际层次结构。
在一个示例中,库L1可以代表ML模型40的代码和/或软件依赖关系,库L2代表训练管理器46的代码和/或依赖关系,同时库L3和L4可以包括两个不同的训练语料库(参见例如图5)。在另一个示例中,库L4表示ML模型40的源代码,库L2和L3表示L4(例如,DLL)的各种软件依赖关系,并且L1表示选定的OS功能的集合。在另一个示例中,其中ML包45a包括容器镜像,,库L1至L4可以表示相应容器图像的不同层。在一些实施例中,聚合包50包括去重的多个RPA库,如下面进一步详述的。
在一些实施例中,供应服务器28还将解包脚本54发送到中间主机26,脚本54包括用于解包聚合包50的规范。解包在这里表示从聚合包50中重构个体的ML包45,如图7的右侧直观地所示。术语“脚本”在这里一般表示允许明确恢复被打包成聚合包50的个体的ML包的任何数据。一个示例性脚本54包括指令的集合(例如命令行、可移植可执行),这些指令在由计算机系统的处理器执行时,使相应的计算机系统从聚合包50中重新创建个体的ML包。脚本54的另一个示例包括每个个体的ML包的内容的规范,例如组成每个个体的ML包的软件库的列表、定位个体的库或其他依赖关系的一组路径指示符、必须将各种库添加到可执行构建或容器镜像的顺序等。这种脚本可以以本领域中已知的任何格式被编码为,例如文本文件、XML文件、JSON文件等。
图8示出了根据本发明的一些实施例的在供应服务器上执行的示例性打包器模块62。相继地,图9示出了由打包器62执行的示例性步骤序列。响应于接收包请求52,打包器62可以根据请求52标识一组ML包(参见例如图7中的示例性ML包45a-c)。在步骤204中,一些实施例可以确定每个请求的ML包的内容/结构,可能根据包规范66,并且在组件存储库68中和/或从组件存储库68中定位相应的RPA库和/或取回相应的RPA库。存储库68可以包括计算机可读介质,计算机可读介质形成供应服务器28的部分或者通信地耦合到供应服务器28。例如,RPA库,诸如ML源代码、依赖关系和训练语料库,可以驻留在本地硬盘驱动、驻留在可经由局域网访问的网络驱动上或驻留在可经由web界面访问的远程服务器计算机上。
在步骤206中,打包器62可以将标识的ML包打包成聚合包50。打包在这里表示被执行以根据个体的ML包构建聚合包50的过程的集合,如图7的左侧直观地所示。打包可以包括枚举组成个体的ML包45a-c的所有RPA库、根据枚举的列表构建去重的多个RPA库、以及将去重的多个RPA库中的每个库的实例复制到聚合包50中。在一些实施例中,去重的多个RPA库包括出现在个体的ML包中的所有RPA库,其中每个不同的库只出现一次。换句话说,当两个ML包具有共同的选定的库时,根据相应的ML包构建的去重的多个库包含相应的ML包的所有库,但是只包含选定的库的一个副本。在图7中所示的示例中,聚合包50包括库L1至L6的单个副本,尽管所述库中的一些出现在多个个体的ML包45a-c中。
步骤206还可以包括使用本领域中已知的任何数据压缩方法压缩/归档去重的多个RPA库,例如创建组合相应的库的压缩包或Zip文件。本领域技术人员将理解,所得到的聚合包50可以由单个文件组成或者可以被分解成数个不同的文件/卷以促进存储和/或传输。在使用计算的容器化模型的替代实施例中,步骤206可以包括创建容器镜像来保存所有去重的多个RPA库。可以按照特定的顺序将个体的库添加到对应的容器镜像中,该顺序可以反映对象层次结构、依赖关系结构、分层等。
在一些实施例中,步骤208制定解包脚本54,该脚本包括用于根据聚合包50重构个体的ML包的规范。示例性脚本54包括一组命令(例如,命令行或可移植可执行文件),用于解压缩聚合包50、将各种RPA库复制到特定存储位置、并且写入一组元数据,诸如指示相应的存储位置的路径指示符,等。在一些实施例中,脚本54包括命令,该命令用于构建和/或编译重构ML包的内容以产生一组可执行对象。在另一个示例性实施例中,脚本54可以包括命令的集合,该命令用于构建与每个个体的ML包45a-c对应的个体的容器镜像(使用图7中所示的示例)。命令可以显式地指示在每个个体的容器镜像中包括哪些库。在进一步的步骤210中,供应服务器28可以通过通信网络13将聚合包50和解包脚本54发送给中间主机26。
图10图示了根据本发明的一些实施例的在中间主机上执行的示例性解包器组件64。相继地,图11示出了由解包器64执行的示例性步骤序列。解包器64被配置为接收来自供应服务器28的聚合包50和解包脚本54。作为响应,步骤224可以将聚合包50解包。解包包括自动地重构组成聚合包50的个体的ML包,如图7的右侧所示。在一些实施例中,步骤224包括在中间主机26的本地处理器上执行脚本54,这可以使主机26自动地创建个体的ML包45a-c。在替代实施例中,其中解包脚本54不是可执行的,而是包括ML包45a-c的规范(例如,组成每个ML包的库的列表),步骤224可以包括根据相应的包规范,解析脚本54并且构造每个ML包。当ML包45a-c包括容器镜像(例如,镜像)时,步骤224包括构建相应的镜像。
在进一步的步骤226中,中间主机26可以将个体的ML包45a-c传输给其目的地RPA主机,包括物理隔离的RPA主机系统20d(图3)。传输可以包括将至少一个ML包写入可移动的计算机可读介质(例如,外部硬盘驱动、记忆棒等),用于传送给物理隔离的主机20d。在另一个示例性实施例中,步骤226包括将至少一个ML包写入在物理上或在逻辑上与网络13分离的本地网络上的文件存储库,其中该至少一个ML包可以由物理隔离的RPA主机20d取回。在一些实施例中,其中中间主机26管理到多个物理隔离的RPA主机的软件分发,步骤226可以包括将每个ML包45a-c传输到其预期接收方。
在替代实施例中,响应于接收到聚合包50和脚本54,中间主机26可以将它们直接传输到物理隔离的RPA主机系统20d,物理隔离的RPA主机系统20d进一步可以根据脚本54将聚合包50解包,以产生多个ML包45a-c。在这样的实施例中,解包器64(步骤222至224)可以在物理隔离的主机20d上而不是在中间主机26上执行,如图10至图11所示。
图12示出了计算装置70的示例性硬件配置,计算装置70被编程以执行本文中所描述的一些方法。计算装置70可以代表以下任何项:图3中的RPA主机系统20a-d、中间主机26和供应服务器28。所示的装置是个人计算机;其他设备,诸如服务器、移动电话、平板计算机和可穿戴设备,可以具有稍有不同的配置。(多个)处理器72包括物理设备(例如,微处理器、在半导体衬底上形成的多核集成电路),被配置为使用一组信号和/或数据执行计算和/或逻辑操作。这种信号或数据可以被编码并且以处理器指令(例如,机器代码)的形式被交付给(多个)处理器72。
处理器72通常由指令集架构(ISA)表征,该ISA指定相应的处理器指令集(例如,x86系列与系列)以及寄存器的大小(例如,32位与64位处理器)等。处理器72的架构还可以根据其预期主要用途变化。虽然中央处理单元(CPU)是通用处理器,但是图形处理单元(GPU)可以针对图像/视频处理和某些形式的并行计算被优化。处理器72还可以包括专用集成电路(ASIC),诸如来自公司的张量处理单元(TPU)和来自各种制造商的神经处理单元(NPU)。TPU和NPU可以特别适合于本文中所描述的ML应用。
存储器单元73可以包括易失性计算机可读介质(例如,动态随机存取存储器——DRAM),在执行操作的过程中存储由(多个)处理器72访问或生成的数据/信号/指令编码。输入设备74可以包括计算机键盘、鼠标和麦克风等,包括相应的硬件接口和/或适配器,允许用户将数据和/或指令引入到装置70中。输出设备75可以包括诸如显示器和扬声器等的显示设备以及诸如图形卡的硬件接口/适配器,使得相应的计算装置能够将数据传递给用户。在一些实施例中,输入和输出设备74至75共享共同的硬件部件(例如,触摸屏)。存储设备76包括计算机可读介质,使得非易失性存储装置能够读取和写入软件指令和/或数据。示例性存储设备包括磁盘和光盘以及闪存设备以及诸如CD和/或DVD盘和驱动器等可移动介质。(多个)网络适配器77使计算装置70能够连接到电子通信网络(例如,图3中的网络13)和/或其他设备/计算机系统。
控制器集线器78通常代表多个系统、外设和/或芯片集总线和/或其他电路系统,从而使能(多个)处理器72和装置70的其余硬件组件之间的通信。例如,控制器集线器78可以包括存储器控制器、输入/输出(I/O)控制器和中断控制器。根据硬件制造商,可以将一些这样的控制器并入到单个集成电路中和/或可以与(多个)处理器72集成。在另一个示例中,控制器集线器78可以包括将处理器72连接到存储器73的北桥和/或将处理器72连接到设备74、75、76和77的南桥。
上述示例性系统和方法促进对物理隔离的RPA主机的软件供应,因此,可以促进在诸如银行业、医疗保健、国防、执法等关键领域以及通常数据安全性和保密性要求是如此严格以至于证明物理隔离是合理的任何领域中操作的客户端访问RPA技术。
通过与诸如互联网等扩展通信网络断开连接,物理隔离的计算机可能缺乏使能现代软件供应(诸如自动增量软件更新)的设施。相反,到/从物理隔离的机器的数据传输可能需要人类操作者的协助来物理桥接对应的物理隔离,例如通过在可移动的介质(例如,外部驱动)上传送数据。这种操纵通常会增加操作成本,同时引入数据安全性和保密性风险。此外,物理隔离的主机通常包括多个计算机,可能具有不同的硬件配置和操作系统。因此,将软件供应到这些客户端可能需要获取相同的软件的多个版本,例如用于安装在一些工作站上的版本和用于安装在膝上型计算机上的版本。
现代RPA越来越依赖诸如自动图像处理(计算机视觉)和自然语言处理工具等机器学习技术。然而,将机器学习RPA软件供应到物理隔离的主机具有其自己的一组技术挑战。首先,机器学习模型通常与训练语料库配对,该训练语料库的大小可以在数百兆到数千兆字节的范围内。ML模型的性能在很大程度上取决于训练数据的质量和数量,因此希望将ML应用于特定业务流程的RPA客户端可能需要在内部使用特定于对应的业务流程并且与相应的业务流程相关的数据来训练至少一些ML模型。因此,需要将大数据文件传输到物理隔离的主机和/或从物理隔离的主机传输大数据文件。第二,现代机器学习中的重要趋势包括通过在特定类型的处理器硬件(诸如图形处理单元(GPU)或者甚至诸如张量处理单元(TPU)或神经处理单元(NPU)等专用的“AI加速器”专用集成电路(ASIC))上运行这些流程来改进模型性能和/或加速训练。每个这样的硬件处理器可以有其自己的架构和指令集,需要架构特定的软件构建。RPA开发者可能需要测试各种机器学习策略和优化,因此,将RPA ML软件供应到物理隔离的主机可能需要传输相同的RPA ML软件的多个版本,每个版本都被配置为在不同类型的处理器上执行。由于在传输相同软件的多个版本中固有的数据冗余(不同的版本可能仍然有大量的资源重叠和/或使用相同的训练语料库),从数据流量和存储方面来说,这种供应可能会额外昂贵。
一些实施例直接解决了这种技术和行政管理挑战。将多个RPA组件/包捆绑在一起可以简化供应程序,并且降低与人类操作者的数据操纵相关联的成本和风险。一些实施例还在构造聚合包的流程中将RPA ML资源去重,这可以大大减少供应包的大小。在使用图7中的图示的一个这样的示例中,ML包45a和45b可以在两个不同的处理器架构上实现相同的ML模型。例如,包45a可以被配置为在CPU上执行,同时包45b可以被配置为在GPU上执行。在另一个示例中,包45a被配置为在下执行,同时包45b被配置为在下执行。两个包可以具有共同的数个资源(例如库L1、L3和L4),这些资源可以包括各种软件依赖关系和训练语料库等。当构造聚合包50时,一些实施例确保只供应每个不同库的副本,这可以大大减少供应的包的大小。
在一个显式示例中,容器化的ML包被配置为在GPU阵列上执行ML模型。对应的ML包可以包括具有虚拟化层的镜像、GPU驱动器层、web框架层(例如,实现方式)以及包括ML模型本身的二进制文件的层。相反,被配置为在CPU上执行相同的ML模型的另一个ML包可能不需要GPU驱动器库。然而,所有其他库/层对两个ML包都是共用的。一些实施例通过传输包括去重的捆绑库的单个包、并且使用适当制定的解包脚本从相应的去重的捆绑中重构两个ML包,来利用这种冗余。
本领域技术人员将清楚,在不偏离本发明的范围的情况下,上述实施例可以在许多方面进行更改。因此,本发明的范围应由下列权利要求和其法律上的等同物确定。
Claims (21)
1.一种机器人流程自动化RPA方法,包括采用计算机系统的至少一个硬件处理器来:
接收数据包和解包脚本,所述数据包组合实现机器学习模型的RPA软件模块的至少两个不同的版本,其中所述数据包对去重的多个RPA机器学习库进行编码,其中所述RPA软件模块的第一版本包括所述多个RPA机器学习库的第一子集,其中所述RPA软件模块的第二版本包括所述多个RPA机器学习库的第二子集,并且其中所述第一子集和所述第二子集至少共享所述多个RPA机器学习库中的选定的库;
作为响应,根据所述解包脚本对所述数据包进行解包,以至少产生所述RPA软件模块的所述第一版本;以及
将所述RPA软件模块的所述第一版本传输到物理隔离的RPA主机系统,所述物理隔离的RPA主机系统被配置为执行所述机器学习模型。
2.根据权利要求1所述的方法,其中:
对所述数据包进行解包还产生所述RPA软件模块的所述第二版本;并且
其中所述方法还包括采用所述计算机系统的至少一个硬件处理器来将所述RPA软件模块的所述第二版本传输到所述物理隔离的RPA主机系统。
3.根据权利要求1所述的方法,其中所述RPA软件模块的所述第一版本被配置为在由第一指令集架构ISA表征的处理器上执行,并且其中所述RPA软件模块的所述第二版本被配置为在由第二ISA表征的处理器上执行,所述第二ISA不同于所述第一ISA。
4.根据权利要求1所述的方法,其中所述RPA软件模块的所述第一版本被配置为在中央处理单元CPU上执行,并且其中所述RPA软件模块的所述第二版本被配置为在图形处理单元GPU上执行。
5.根据权利要求1所述的方法,其中所述RPA软件模块的所述第一版本被配置为在中央处理单元CPU上执行,并且其中所述RPA软件模块的所述第二版本被配置为在专用集成电路ASIC上执行。
6.根据权利要求1所述的方法,其中所述RPA软件模块的所述第一版本被配置为在具有第一操作系统OS的RPA主机上执行,并且其中所述RPA软件模块的所述第二版本被配置为在具有第二OS的RPA主机上执行,所述第二OS不同于所述第一OS。
7.根据权利要求1所述的方法,其中所述RPA软件模块的所述第一版本包括用于训练所述机器学习模型的第一训练语料库,并且其中所述RPA软件模块的所述第二版本包括用于训练所述机器学习模型的第二训练语料库,所述第一训练语料库不同于所述第二训练语料库。
8.根据权利要求1所述的方法,其中所述选定的库包括用于训练所述机器学习模型的训练语料库。
9.根据权利要求1所述的方法,其中所述数据包包括容器镜像。
10.根据权利要求9所述的方法,其中所述多个RPA库中的每个RPA库包括所述容器镜像的不同层。
11.一种计算机系统,包括至少一个硬件处理器,所述至少一个硬件处理器被配置为:
接收数据包和解包脚本,所述数据包组合实现机器学习模型的RPA软件模块的至少两个不同的版本,其中所述数据包对去重的多个RPA机器学习库进行编码,其中所述RPA软件模块的第一版本包括所述多个RPA机器学习库的第一子集,其中所述RPA软件模块的第二版本包括所述多个RPA机器学习库的第二子集,并且其中所述第一子集和所述第二子集至少共享所述多个RPA机器学习库中的选定的库;
作为响应,根据所述解包脚本对所述数据包进行解包,以至少产生所述RPA软件模块的所述第一版本;以及
将所述RPA软件模块的所述第一版本传输到物理隔离的RPA主机系统,所述物理隔离的RPA主机系统被配置为执行所述机器学习模型。
12.根据权利要求11所述的计算机系统,其中:
对所述数据包进行解包还产生所述RPA软件模块的所述第二版本;并且
其中所述至少一个硬件处理器还被配置为将所述RPA软件模块的所述第二版本传输到所述物理隔离的RPA主机系统。
13.根据权利要求11所述的计算机系统,其中所述RPA软件模块的所述第一版本被配置为在由第一指令集架构ISA表征的处理器上执行,并且其中所述RPA软件模块的所述第二版本被配置为在由第二ISA表征的处理器上执行,所述第二ISA不同于所述第一ISA。
14.根据权利要求11所述的计算机系统,其中所述RPA软件模块的所述第一版本被配置为在中央处理单元CPU上执行,并且其中所述RPA软件模块的所述第二版本被配置为在图形处理单元GPU上执行。
15.根据权利要求11所述的计算机系统,其中所述RPA软件模块的所述第一版本被配置为在中央处理单元CPU上执行,并且其中所述RPA软件模块的所述第二版本被配置为在专用集成电路ASIC上执行。
16.根据权利要求11所述的计算机系统,其中所述RPA软件模块的所述第一版本被配置为在具有第一操作系统OS的RPA主机上执行,并且其中所述RPA软件模块的所述第二版本被配置为在具有第二OS的RPA主机上执行,所述第二OS不同于所述第一OS。
17.根据权利要求11所述的计算机系统,其中所述RPA软件模块的所述第一版本包括用于训练所述机器学习模型的第一训练语料库,并且其中所述RPA软件模块的所述第二版本包括用于训练所述机器学习模型的第二训练语料库,所述第一训练语料库不同于所述第二训练语料库。
18.根据权利要求11所述的计算机系统,其中所述选定的库包括用于训练所述机器学习模型的训练语料库。
19.根据权利要求11所述的计算机系统,其中所述数据包包括容器镜像。
20.根据权利要求19所述的计算机系统,其中所述多个RPA库中的每个RPA库包括所述容器镜像的不同层。
21.一种非瞬态计算机可读介质,存储指令,所述指令在由计算机系统的至少一个硬件处理器执行时使所述计算机系统:
接收数据包和解包脚本,所述数据包组合实现机器学习模型的RPA软件模块的至少两个不同的版本,其中所述数据包对去重的多个RPA机器学习库进行编码,其中所述RPA软件模块的第一版本包括所述多个RPA机器学习库的第一子集,其中所述RPA软件模块的第二版本包括所述多个RPA机器学习库的第二子集,并且其中所述第一子集和所述第二子集至少共享所述多个RPA机器学习库中的选定的库;
作为响应,根据所述解包脚本对所述数据包进行解包,以至少产生所述RPA软件模块的所述第一版本;以及
将所述RPA软件模块的所述第一版本传输到物理隔离的RPA主机系统,所述物理隔离的RPA主机系统被配置为执行所述机器学习模型。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202111034446 | 2021-07-30 | ||
IN202111034446 | 2021-07-30 | ||
US17/447,867 | 2021-09-16 | ||
US17/447,867 US11762676B2 (en) | 2021-07-30 | 2021-09-16 | Optimized software delivery to airgapped robotic process automation (RPA) hosts |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115686600A true CN115686600A (zh) | 2023-02-03 |
Family
ID=79185721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210011201.6A Pending CN115686600A (zh) | 2021-07-30 | 2022-01-06 | 软件交付给物理隔离机器人流程自动化(rpa)主机的优化 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4124946A1 (zh) |
JP (1) | JP2023020830A (zh) |
CN (1) | CN115686600A (zh) |
WO (1) | WO2023009158A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934077A (zh) * | 2023-03-10 | 2023-04-07 | 北京安锐卓越信息技术股份有限公司 | 一种面向UiPath的数据处理方法、装置及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8904368B2 (en) * | 2008-03-31 | 2014-12-02 | International Business Machines Corporation | Instantiating a composite application for different target platforms |
US9104504B2 (en) * | 2013-03-13 | 2015-08-11 | Dell Products Lp | Systems and methods for embedded shared libraries in an executable image |
US11210269B2 (en) * | 2018-02-13 | 2021-12-28 | Red Hat, Inc. | System and method for deduplicating container image storage data |
US11086711B2 (en) * | 2018-09-24 | 2021-08-10 | International Business Machines Corporation | Machine-trainable automated-script customization |
US11790262B2 (en) * | 2019-01-22 | 2023-10-17 | Accenture Global Solutions Limited | Data transformations for robotic process automation |
US20200409723A1 (en) * | 2019-06-28 | 2020-12-31 | Microsoft Technology Licensing, Llc | Container management system with a layout manager system |
US11738453B2 (en) * | 2019-10-15 | 2023-08-29 | UiPath, Inc. | Integration of heterogeneous models into robotic process automation workflows |
-
2021
- 2021-11-30 WO PCT/US2021/061210 patent/WO2023009158A1/en unknown
- 2021-12-20 JP JP2021206006A patent/JP2023020830A/ja active Pending
- 2021-12-29 EP EP21218223.2A patent/EP4124946A1/en not_active Withdrawn
-
2022
- 2022-01-06 CN CN202210011201.6A patent/CN115686600A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934077A (zh) * | 2023-03-10 | 2023-04-07 | 北京安锐卓越信息技术股份有限公司 | 一种面向UiPath的数据处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2023009158A1 (en) | 2023-02-02 |
JP2023020830A (ja) | 2023-02-09 |
EP4124946A1 (en) | 2023-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003486B2 (en) | Dynamically configurable microservice model for data analysis using sensors | |
CN113011828B (zh) | 更新或重新训练并更新动态人工智能/机器学习模型 | |
Barika et al. | Orchestrating big data analysis workflows in the cloud: research challenges, survey, and future directions | |
Murthy et al. | Apache Hadoop YARN: moving beyond MapReduce and batch processing with Apache Hadoop 2 | |
Ankam | Big data analytics | |
US10162735B2 (en) | Distributed system test automation framework | |
JP2018533125A (ja) | ビジュアルコンテンツ開発 | |
Oancea et al. | Integrating R and hadoop for big data analysis | |
Gunarathne | Hadoop MapReduce v2 Cookbook | |
Ganelin et al. | Spark: Big data cluster computing in production | |
US11221846B2 (en) | Automated transformation of applications to a target computing environment | |
JP2023054777A (ja) | コンテナオーケストレーションシステムをテストする方法、システムおよびコンピュータプログラム(コンテナオーケストレーションシステムをテストするためのテストクラスタの生成) | |
Akhtar | Big Data Architect’s Handbook: A guide to building proficiency in tools and systems used by leading big data experts | |
Nagy et al. | Cloud-agnostic architectures for machine learning based on Apache Spark | |
CN115686600A (zh) | 软件交付给物理隔离机器人流程自动化(rpa)主机的优化 | |
JP2023536768A (ja) | コンピューティングプラットフォームのエンティティエンジン | |
US11042530B2 (en) | Data processing with nullable schema information | |
US20240061674A1 (en) | Application transition and transformation | |
Sankar | Fast Data Processing with Spark 2 | |
Estrada | Fast Data Processing Systems with SMACK Stack | |
US11762676B2 (en) | Optimized software delivery to airgapped robotic process automation (RPA) hosts | |
Vergadia | Visualizing Google Cloud: 101 Illustrated References for Cloud Engineers and Architects | |
US11625282B2 (en) | Systems and methods of remote machine learning training with remote submission and execution through a coding notebook | |
Ramuka | Data analytics with Google Cloud platform | |
Dinh et al. | Data Process Approach by Traditional and Cloud Services Methodologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |