Inserting probabilistic models into deterministic workflows for robotic process automation and supervisory systems
Patent Information
- Application Number
- JP2022520186
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-12-09
- Filing Date
- 2020-08-19
- Publication Date
- 2025-03-04
- Estimated Expiration
- 2040-08-19
Smart Images

Figure 0007638587000001 
Figure 0007638587000002 
Figure 0007638587000003
Abstract
Description
[Technical field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Nonprovisional Patent Application No. 16 / 708,083, filed December 9, 2019, and U.S. Provisional Patent Application No. 62 / 915,434, filed October 15, 2019. The subject matter of these earlier-filed applications is incorporated herein by reference in its entirety.
[0002] The present invention relates generally to robotic process automation (RPA), and more specifically to inserting probabilistic models into deterministic workflows for RPA and supervisor systems. [Background technology]
[0003] Current RPA systems operate logistically with decision points in sequential workflows, but such workflows are based on set logic and are not dynamic, so an improved approach could be beneficial. Summary of the Invention
[0004] Certain embodiments of the present invention may provide solutions to problems and needs in the field that have not yet been fully identified, appreciated, or solved by current RPA technology. For example, some embodiments of the present invention relate to inserting probabilistic models into deterministic workflows for RPA and supervisory systems.
[0005] In an embodiment, a computer-implemented method for implementing a probabilistic model in a deterministic workflow for robotic process automation (RPA) includes generating a deterministic RPA workflow for an RPA robot, generating a plurality of RPA robots configured to perform the deterministic RPA workflow, and deploying the plurality of RPA robots. The computer-implemented method also includes training a machine learning (ML) model associated with probabilistic activities to replace deterministic activities in the RPA workflow.
[0006] In another embodiment, a computer-implemented method for implementing a probabilistic model in a deterministic workflow for robotic process automation (RPA) includes generating a plurality of RPA robots configured to perform the deterministic RPA workflow and deploying the plurality of RPA robots configured to perform the deterministic RPA workflow. The computer-implemented method also includes training an ML model associated with probabilistic activities to replace deterministic activities in the RPA workflow.
[0007] In yet another embodiment, a computer-implemented method includes generating a Robotic Process Automation (RPA) robot configured to perform an RPA workflow including a probabilistic activity, and deploying the RPA robot. The computer-implemented method also includes monitoring, by a supervisor system, an ML model invoked by the probabilistic activity in the RPA workflow, and verifying that the ML model is operating correctly using input-side metrics via a data drift detector and output-side metrics via a concept drift detector.
[0008] Detailed Description of the Embodiments So that the advantages of certain embodiments of the invention may be readily understood, a more particular description of the invention briefly described above will now be depicted with reference to specific embodiments which are illustrated in the accompanying drawings. It is to be understood that these drawings depict only typical embodiments of the invention and are therefore not to be considered as limiting its scope, but the invention will be depicted and explained with further specificity and detail through the use of the following accompanying drawings, in which: [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is an architectural diagram illustrating an RPA system according to an embodiment of the present invention.
[0010] [Diagram 2] FIG. 1 is an architectural diagram illustrating a deployed RPA system according to an embodiment of the present invention.
[0011] [Diagram 3] FIG. 2 is an architecture diagram illustrating the relationships between designers, activities, and drivers according to an embodiment of the present invention.
[0012] [Figure 4] FIG. 1 is an architectural diagram illustrating an RPA system according to an embodiment of the present invention.
[0013] [Diagram 5] FIG. 1 is an architectural diagram illustrating a computing system configured to use probabilistic models in deterministic workflows for RPA in accordance with an embodiment of the present invention.
[0014] [Figure 6] 1 is a flowchart illustrating a process for implementing a probabilistic model into a deterministic workflow for RPA in accordance with an embodiment of the present invention.
[0015] [Figure 7]4 is a flow chart illustrating a process of a supervisor system according to an embodiment of the present invention.
[0016] [Figure 8] FIG. 2 is an architectural diagram illustrating a supervisor system according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0017] Detailed Description of the Embodiments Some embodiments relate to using probabilistic models in deterministic workflows for RPA. Such embodiments may, for example, allow for faster initial deployment. Machine learning introduces a probabilistic framework in which steps are not deterministic because the outcome is not deterministic. To create a more dynamic workflow, deterministic and probabilistic workflows may be mixed, or probabilistic activities may be inserted into a deterministic workflow. RPA workflows are typically in the form of highly deterministic logistic flows with a fixed number of activities. However, in some embodiments, a probabilistic activity may be inserted in place of one or more deterministic activities in a workflow. To insert a probabilistic activity, certain factors may be considered, such as the confidence level of the probabilistic activity. If the machine learning (ML) model associated with the probabilistic activity is trained to be accurate enough to be used, the probabilistic activity may be used in the workflow in place of the deterministic activity. Thus, in some embodiments, a workflow may start out as deterministic in nature and then later be modified to become probabilistic.
[0018] Supervisor System
[0019] However, probabilistic systems are difficult to test. Thus, in some embodiments, a supervisor system is used to monitor the RPA robots performing the probabilistic workflow to determine the correct behavior. For example, consider the implementation of RPA in an aircraft. If the robot determines that a stall may occur, it may be trained to perform a specific control, such as having the aircraft sacrifice altitude for speed. However, depending on the flight situation, this may not always be the desired action. For example, performing this action immediately after takeoff may result in a crash.
[0020] The supervisor system monitors actions by the robot and may also monitor other data from the system. In the above example, the monitored data may include the actions of the pilot. If the robot sends the aircraft into a dive, and the supervisor system determines immediately, the pilot pulls the wheels back to stop the dive. The supervisor system may then disable the robot or part of the robot's workflow and send the collected data so that the robot can be retrained.
[0021] In some embodiments, the ML model may be monitored to ensure that it is operating correctly on input and output metrics. For example, if an ML model requires 16 data feeds, but one is broken, the ML model may not be suitable for use. This is "data drift" monitoring. A data drift detector may be included on the input side.
[0022] On the output side, we can see what ranges are expected. For example, if we know that a hospital's revisit rate is not more than 10%, but it determines that 290% of patients are revisiting, something is wrong. This is called concept drift, which can be monitored by a concept drift detector. Thus, the supervisory system can expect the ML model to perform in a certain way and adhere to certain parameters. The supervisory system can raise an alarm when the data drift detector indicates an error, when the concept drift detector indicates an error, or both occur.
[0023] Consider the case where a supervisor system monitors ML models implemented on an aircraft. If a particular ML model affecting control surfaces is executed and the nose is descending aggressively or rapidly when the autopilot is engaged, this can be flagged by the supervisor system and the robot invoking the ML model can be shut off or bypassed by manual control. If the robot is not mission critical or the previous version of the ML model is known to work reliably in mission critical systems, the supervisor system can roll back the ML model to the previous version.
[0024] FIG. 1 is an architecture diagram illustrating an RPA system 100, according to an embodiment of the present invention. The RPA system 100 includes a designer 110 that enables developers to design and implement workflows. The designer 110 provides solutions for application integration, as well as automating third-party applications, management information technology (IT) tasks, and business IT processes. The designer 110 can facilitate the development of automation projects, which are graphical representations of business processes. In simple terms, the designer 110 facilitates the development and deployment of workflows and robots.
[0025] Automation projects enable rule-based process automation by giving developers control over the order of execution and relationships between a custom set of steps developed in a workflow, defined herein as "activities." One commercial example of an embodiment of the Designer 110 is UiPath Studio™. Each activity may include an action such as clicking a button, reading a file, writing to a log panel, etc. In some embodiments, workflows may be nested or embedded.
[0026] Some types of workflows may include, but are not limited to, sequences, flowcharts, finite state machines (FSMs), and / or global exception handlers. Sequences may be particularly suitable for linear processes, allowing flow from one activity to another without cluttering the workflow. Flowcharts may be particularly suitable for more complex business logic, allowing for decision integration and connection of activities in more diverse ways via multiple branching logic operators. FSMs may be particularly suitable for large workflows. FSMs may use a finite number of states triggered by conditions (i.e., transitions) or activities during their execution. Global exception handlers may be particularly suitable for determining the behavior of a workflow when an execution error is encountered, or for debugging the process.
[0027] Once a workflow is developed in Designer 110, the execution of the business process is orchestrated by Conductor 120, which coordinates one or more Robots 130 that execute the workflow developed in Designer 110. One commercial example of an embodiment of Conductor 120 is UiPath Orchestrator™. Conductor 120 facilitates the management of the creation, monitoring, and deployment of resources in an environment. Conductor 120 can act as an integration point with third party solutions and applications.
[0028] The conductor 120 may manage all the robots 130, connecting and executing them from a central point. Types of robots 130 that may be managed include, but are not limited to, attended robots 132, unattended robots 134, development robots (similar to unattended robots 134 but used for development and testing purposes), and non-production robots (similar to attended robots 132 but used for development and testing purposes). Attended robots 132 are triggered by user events and operate side-by-side with humans on the same computing system. Attended robots 132 may be used with the conductor 120 for a centralized process deployment and logging medium. Attended robots 132 may assist human users in accomplishing various tasks and may be triggered by user events. In some embodiments, processes cannot be initiated from the conductor 120 on this type of robot and / or they cannot be run under a locked screen. In certain embodiments, the attended robot 132 may only be launched from the robot tray or from a command prompt. The attended robot 132 preferably operates under human supervision in some embodiments.
[0029] Unattended robots 134 operate unattended in a virtual environment and can automate many processes. Unattended robots 134 can be responsible for providing remote execution, monitoring, scheduling, and work queue support. Debugging for all robot types can be performed in the designer 110 in some embodiments. Both attended and unattended robots can automate a variety of systems and applications, including, but not limited to, mainframes, web applications, VMs, enterprise applications (e.g., those produced by SAP®, SalesForce®, Oracle®, etc.), and computing system applications (e.g., desktop and laptop applications, mobile device applications, wearable computer applications, etc.).
[0030] The conductor 120 may have various capabilities including, but not limited to, provisioning, deployment, configuration, queuing, monitoring, logging, and / or providing interconnectivity. Provisioning may include creating and maintaining connections between the robots 130 and the conductor 120 (e.g., web applications). Deployment may include ensuring correct delivery of package versions to the robots 130 assigned for execution. Configuration may include maintaining and delivering robot environment and process configurations. Queuing may include providing management of queues and queue items. Monitoring may include tracking robot specific data and maintaining user permissions. Logging may include storing and indexing logs in a database (e.g., an SQL database) and / or another storage mechanism (e.g., ElasticSearch®, which provides the ability to store large data sets and perform queries quickly). The conductor 120 may provide interconnectivity by acting as a centralized point of communication for third-party solutions and / or applications.
[0031] The robot 130 is an execution agent that executes the workflow built in the designer 110. One commercial example of some embodiments of the robot(s) 130 is UiPath Robots™. In some embodiments, the robot 130 installs the Microsoft Windows Service Control Manager (SCM) management service by default. As a result, such a robot 130 can open an interactive Windows session under the local system account and may have Windows service rights.
[0032] In some embodiments, the robot 130 may be installed in user mode, meaning that for such a robot 130, it has the same rights as the user to which the given robot 130 is installed. This feature may also be available for high density (HD) robots, ensuring maximum utilization of each machine. In some embodiments, either type of robot 130 may be configured in an HD environment.
[0033] The robot 130 in some embodiments is divided into multiple components, each specialized for a particular automation task. The robot components in some embodiments include, but are not limited to, the SCM managed robot service, the user mode robot service, the executor, the agent, and the command line. The SCM managed robot service manages and monitors the Windows session and acts as a proxy between the conductor 120 and the execution host (i.e., the computing system on which the robot 130 executes). These services are entrusted with and manage the credentials of the robot 130. The console application is launched by the SCM under the local system.
[0034] The user-mode robot service in some embodiments manages and monitors the Windows session and acts as a proxy between the conductor 120 and the execution host. The user-mode robot service may be delegated and manage the credentials of the robot 130. If the SCM management robot service is not installed, a Windows application may be launched automatically.
[0035] An Executor may execute a given job under a Windows session (i.e., execute a workflow). An Executor may be aware of per-monitor dots-per-inch (DPI) settings. An Agent may be a Windows Presentation Foundation (WPF) application that displays available jobs in a system tray window. An Agent may be a client of a Service. An Agent may ask to start or stop a job or change settings. A Command Line is a client of a Service. A Command Line is a console application that can request the start of a job and wait for its output.
[0036] As described above, the separation of the components of the robot 130 helps developers, support users, and computing systems to more easily execute, identify, and track what each component is doing. In this way, special behaviors can be configured for each component, such as setting different firewall rules for executors and services. The executor may always be aware of per-monitor DPI settings in some embodiments. As a result, workflows may execute at any DPI regardless of the configuration of the computing system on which the workflow was created. Also, in some embodiments, projects from the designer 110 may be made independent of the browser zoom level. For applications that are not DPI aware or are marked as not DPI aware intentionally, in some embodiments, DPI may be disabled.
[0037] FIG. 2 is an architecture diagram illustrating a deployed RPA system 200 according to an embodiment of the present invention. In some embodiments, the RPA system 200 may be or be part of the RPA system 100 of FIG. 1. It should be noted that the client side, the server side, or both may include any desired number of computing systems without departing from the scope of the present invention. On the client side, the robot application 210 includes an executor 212, an agent 214, and a designer 216. However, in some embodiments, the designer 216 may not be running on the computing system 210. The executor 212 executes the process. As shown in FIG. 2, multiple business projects may be running simultaneously. The agent 214 (e.g., a Windows service) is a single connection point for all the executors 212 in this embodiment. All messages in this embodiment are logged to the conductor 230, which further processes them via the database server 240, the indexer server 250, or both. As described above with respect to FIG. 1, the executor 212 may be a robotic component.
[0038] In some embodiments, a robot represents an association between a machine name and a username. A robot may manage multiple executors simultaneously. In a computing system that supports multiple interactive sessions running simultaneously (such as Windows Server 2012), multiple robots may run simultaneously, each running in a separate Windows session using a unique username. This is referred to as the HD Robot above.
[0039] The agent 214 is also responsible for transmitting the robot's status (e.g., periodically sending "heartbeat" messages to indicate that the robot is still functioning) and downloading required versions of packages to be fulfilled. Communication between the agent 214 and the conductor 230 is, in some embodiments, always initiated by the agent 214. In a notification scenario, the agent 214 may open a WebSocket channel that is later used by the conductor 230 to send commands (e.g., start, stop, etc.) to the robot.
[0040] The server side includes a presentation layer (web application 232, Open Data Protocol (OData) Representational State Transfer (REST) Application Programming Interface (API) endpoints 234, notifications and monitoring 236), a service layer (API implementation / business logic 238), and a persistence layer (database server 240, indexer server 250). Conductor 230 includes web application 232, OData REST API endpoints 234, notifications and monitoring 236, and API implementation / business logic 238. In some embodiments, most actions that a user performs in the conductor 220 interface (e.g., via browser 220) are performed by calling various APIs. Such actions may include, but are not limited to, launching jobs on a robot, adding / removing data in a queue, scheduling jobs to run unattended, etc., without departing from the scope of the invention. Web application 232 is the visual layer of the server platform. In this embodiment, web application 232 uses HyperText Markup Language (HTML) and JavaScript (JS). However, any desired markup language, scripting language, or any other format may be used without departing from the scope of the present invention. A user interacts with web pages from web application 232, in this embodiment via browser 220, to perform various operations to control conductor 230. For example, a user may create robot groups, assign packages to robots, analyze per-robot and / or per-process logs, start and stop robots, etc.
[0041] In addition to the web application 232, the conductor 230 also includes a services layer that exposes an OData REST API endpoint 234. However, other endpoints may be included without departing from the scope of the invention. The REST API is consumed by both the web application 232 and the agent 214, which in this embodiment is a supervisor of one or more robots on a client computer.
[0042] The REST API of the present embodiment covers configuration, logging, monitoring, and queuing functionality. The configuration endpoint may be used in some embodiments to define and configure users, permissions, robots, assets, releases, and environments of an application. The logging REST endpoint may be used to log various information, such as errors, explicit messages sent by the robot, and other environment specific information. The deployment REST endpoint may be used by the robot to query the version of the package that should be executed when a start job command is used in the conductor 230. The queuing REST endpoint may be responsible for managing queues and queue items, such as adding data to the queue, retrieving transactions from the queue, and setting the status of transactions.
[0043] Monitoring REST endpoints may monitor the web application 232 and the agents 214. Notification and monitoring API 236 may be a REST endpoint used to register agents 214, deliver configuration settings to agents 214, and send and receive notifications from the server and agents 214. Notification and monitoring API 236 may use WebSocket communications in some embodiments.
[0044] The persistence layer, in this embodiment, includes a pair of servers - a database server 240 (e.g., a SQL server) and an indexer server 250. The database server 240 in this embodiment stores configurations for robots, robot groups, associated processes, users, roles, schedules, etc. This information is managed, in some embodiments, via a web application 232. The database server 240 may also manage queues and queue items. In some embodiments, the database server 240 may store messages logged by robots (in addition to or instead of the indexer server 250).
[0045] Optionally in some embodiments, indexer server 250 stores and indexes information logged by the robots. In certain embodiments, indexer server 250 may be disabled via a configuration setting. In some embodiments, indexer server 250 uses ElasticSearch®, a full-text search engine from an open source project. Messages logged by the robots (e.g., using activities such as log messages or line writes) may be sent via logging REST endpoint(s) to indexer server 250, where they are indexed for future use.
[0046] FIG. 3 is an architecture diagram illustrating the relationship 300 between a designer 310, activities 320, 330, and a driver 340, according to an embodiment of the present invention. As can be seen, a developer uses the designer 310 to develop a workflow to be performed by the robot. The workflow may include user-defined activities 320 and UI automation activities 330. In some embodiments, non-textual visual components in an image may be identified, referred to herein as computer vision (CV). Some CV activities related to such components include, but are not limited to, click, type, get text, hover, detect presence or absence of element, update scope, highlight, and the like. In some embodiments, click may identify an element and click on it, for example, using CV, optical character recognition (OCR), fuzzy text matching, and multi-anchors. Type may identify an element using the above and type within the element. Get text may locate a particular text and scan it using OCR. Hover may identify an element and hover over it. Detect presence or absence of element may check to detect the presence or absence of an element on the screen using the techniques described above. In some embodiments, there may be hundreds or even thousands of activities that may be implemented in the designer 310. However, any number and / or types of activities may be utilized without departing from the scope of the present invention.
[0047] UI automation activities 330 are a subset of specialized low-level activities that are written in low-level code (e.g., CV activities) and facilitate interactions with the screen. UI automation activities 330 facilitate these interactions through drivers 340 that enable the robot to interact with desired software. For example, drivers 340 may include OS drivers 342, browser drivers 344, VM drivers 346, enterprise application drivers 348, etc.
[0048] Drivers 340 may interact with the OS at a low level, looking for hooks, monitoring keys, etc. They may facilitate integration with Chrome®, IE®, Citrix®, SAP®, etc. For example, a "click" activity plays the same role in these different applications via drivers 340.
[0049] FIG. 4 is an architecture diagram illustrating an RPA system 400, according to an embodiment of the present invention. In some embodiments, the RPA system 400 may be or may include the RPA systems 100 and / or 200 of FIG. 1 and / or FIG. 2. The RPA system 400 includes multiple client computing systems 410 that execute robots. The computing systems 410 may communicate with a conductor computing system 420 via web applications executed thereon. The conductor computing system 420 may in turn communicate with a database server 430 and an optional indexer server 440.
[0050] 1 and 3, it should be noted that although web applications are used in these embodiments, any suitable client / server software may be used without departing from the scope of the present invention. For example, the conductor may run a server-side application on a client computing system that communicates with a non-web-based client software application.
[0051] FIG. 5 is an architecture diagram illustrating a computing system 500 configured to use a probabilistic model in a deterministic workflow for RPA, according to an embodiment of the present invention. In some embodiments, the computing system 500 may be one or more computing systems depicted and / or described herein. The computing system 500 includes a bus 505 or other communication mechanism for communicating information and a processor(s) 510 coupled to the bus 505 for processing information. The processor(s) 510 may be any type of general or application-specific processor, including a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a graphics processing unit (GPU), multiple instances thereof, and / or any combination thereof. The processor(s) 510 may also have multiple processing cores, and at least some of the cores may be configured to perform specific functions. In some embodiments, multiple parallel processing may be used. In certain embodiments, at least one processor(s) 510 may be a neuromorphic circuit that includes processing elements that mimic biological neurons. In some embodiments, neuromorphic circuitry may not require typical components of a von Neumann computing architecture.
[0052] The computing system 500 further includes a memory 515 for storing information and instructions executed by the processor(s) 510. The memory 515 may be comprised of random access memory (RAM), read-only memory (ROM), flash memory, cache, static storage such as a magnetic or optical disk, or other types of non-transitory computer-readable media, or any combination thereof. The non-transitory computer-readable media may be any available media accessible by the processor(s) 510 and may include volatile media, non-volatile media, or both. Additionally, the media may be removable, non-removable, or both.
[0053] Additionally, the computing system 500 includes a communication device 520, such as a transceiver, to provide access to a communication network via wireless and / or wired connections. In some embodiments, the communications device 520 may be configured to support any of the following wireless technologies: Frequency Division Multiple Access (FDMA), Single Carrier FDMA (SC-FDMA), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), Orthogonal Frequency Division Multiple Access (OFDM), Orthogonal Frequency Division Multiple Access (OFDMA), Global System for Mobile (GSM) communications, General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), cdma2000, Wideband CDMA (W-CDMA), High Speed Downlink Packet Access (HSDPA), High Speed Uplink Packet Access (HSUPA), High Speed Packet Access (HSPA), Long Term Evolution (LTE), LTE Advanced (LTE-A), LTE-Advanced (LTE-B), LTE-Advanced-B, LTE-Advanced-C ... Advanced), 802.11x, Wi-Fi, Zigbee, Ultra-Wide Band (UWB), 802.16x, 802.15, Home Node-B (HnB), Bluetooth, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Near-Field Communications (NFC), 5th Generation (5G), New Radio (NR), any combination thereof, and / or any other currently existing or future implemented communications standards and / or protocols without departing from the scope of the present invention.In some embodiments, the communications device 520 may include one or more antennas that are a singular antenna, an array of antennas, phased antennas, switched antennas, beamforming antennas, beamsteering antennas, combinations thereof, and / or any other antenna configuration without departing from the scope of the invention.
[0054] The processor(s) 510 are further coupled via bus 505 to a display 525, such as a plasma display, a liquid crystal display (LCD), a light emitting diode (LED) display, a field emission display (FED), an organic light emitting diode (OLED) display, a flexible OLED display, a flexible substrate display, a projection display, a 4K display, a high definition display, a Retina® display, an in-plane switching (IPS) display, or any other suitable display for displaying information to a user. The display 525 may be configured as a touch (haptic) display, a three-dimensional (3D) touch display, a multi-input touch display, a multi-touch display, or the like, using resistive, capacitive, surface acoustic wave (SAW) capacitive, infrared, optical imaging, dispersive signaling, acoustic pulse recognition, frustrated total internal reflection, or the like. Any suitable display device and haptic I / O may be used without departing from the scope of the invention.
[0055] A keyboard 530 and cursor control device 535, such as a computer mouse, touchpad, etc., are further coupled to the bus 505 to allow a user to interface with the computing system. However, in certain embodiments, a physical keyboard and mouse may not be present and the user may interact with the device solely through the display 525 and / or touchpad (not shown). Any type and combination of input devices may be used as a matter of design choice. In certain embodiments, no physical input devices and / or displays are present. For example, a user may interact with computing system 500 remotely via another computing system in communication with computing system 500, or computing system 1000 may operate autonomously.
[0056] The memory 515 stores software modules that provide functionality when executed by the processor(s) 510. The modules include an operating system 540 for the computing system 500. The modules further include a probabilistic model 545 configured to perform all or a portion of the processes described herein or derivatives thereof. The computing system 500 may include one or more additional functional modules 550 that include additional functionality.
[0057] Those skilled in the art will appreciate that the "system" may be embodied as a server, an embedded computing system, a personal computer, a console, a personal digital assistant (PDA), a mobile phone, a tablet computing device, a quantum computing system, or any other suitable computing device or combination of devices without departing from the scope of the present invention. Presenting the functions described above as being performed by a "system" is not intended to limit the scope of the present invention in any way, but rather to provide an example of many embodiments of the present invention. Indeed, the methods, systems, and apparatus disclosed herein may be implemented in localized and distributed forms consistent with computing technologies, including cloud computing systems.
[0058] It should be noted that some of the system features described herein are presented as modules to further emphasize implementation independence. For example, a module may be implemented as hardware circuitry comprising custom very large scale integrated (VLSI) circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, graphics processing units, and the like.
[0059] Modules may also be implemented at least in part in software for execution by various types of processors. For example, an identified unit of executable code may include one or more physical or logical blocks of computer instructions, which may be organized, for example, as an object, procedure, or function. Nevertheless, executable identified modules need not be physically located together, but may include separate instructions stored in different locations, which when logically combined, comprise a module, and accomplish the purpose stated for the module. Furthermore, modules may be stored on a computer readable medium, such as, for example, a hard disk drive, a flash device, RAM, tape, and / or any other non-transitory computer readable medium used to store data without departing from the scope of the present invention.
[0060] Indeed, a module of executable code may be a single instruction, or many instructions, and may even be distributed across several different code segments, different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within a module, and may be embodied and organized in any suitable form within any suitable type of data structure. Operational data may be collected as a single data set, or may be distributed in different locations across different storage devices, or may exist, at least in part, simply as electronic signals on a system or network.
[0061] 6 is a flow chart illustrating a process 600 for implementing a probabilistic model in a deterministic workflow for RPA, according to an embodiment of the invention. The process begins with generating a deterministic RPA workflow for an RPA robot, at 610. An RPA robot configured to perform the deterministic RPA workflow is generated, at 620. The RPA robot is then deployed, at 630.
[0062] An ML model associated with probabilistic activities to replace deterministic activities in a deterministic RPA workflow is trained at 640. Data is collected at 650 from RPA robots implementing the deterministic workflow, their associated computing systems, or both. For example, the data may include, but is not limited to, actions performed by the robots, user interactions with the computing systems (e.g., buttons pressed, mouse movements, applications used, etc.), processes executed by the computing systems, modifications made by users, etc. This data is then used to periodically retrain the ML model until a desired confidence threshold is achieved at 660. A probabilistic workflow including probabilistic activities to replace the deterministic activities is then generated at 670, and an RPA robot implementing the workflow is generated and deployed at 680.
[0063] FIG. 7 is a flow chart illustrating a process 700 of a supervisor system according to an embodiment of the present invention. In some embodiments, the process 700 may be implemented via the supervisor system 810 of FIG. 8. The process begins (or continues from FIG. 6) with the supervisor system monitoring 710 the ML models invoked by the probabilistic activities in the RPA workflow to ensure that the ML models are operating correctly using metrics on the input side via a data drift detector and on the output side via a concept drift detector. In some embodiments, the supervisor system may monitor multiple ML models. In certain embodiments, the concept drift detector determines whether the output falls within a predefined range.
[0064] If no errors are detected at 720, monitoring continues at 710. However, if the data drift detector, the concept drift detector, or both indicate an error, an alarm is generated at 730 (e.g., sending a message to the computing system or robot that an error has been detected). The supervisor system then takes corrective action at 740. Corrective actions may include, but are not limited to, disabling the RPA robot, bypassing the RPA robot, rolling back to a previous version of the ML model, etc.
[0065] 8 is an architecture diagram 800 illustrating the operation of a supervisor system 810, according to an embodiment of the invention. The supervisor system includes a data drift detector that monitors inputs to an ML model 820 and a concept drift detector 814 that monitors outputs from the ML model 820. An RPA robot 830 invokes the ML model 820. When the supervisor system 810 receives an error from the data drift detector 812 and / or the concept drift detector 814, the supervisor system 810 may disable or bypass the RPA robot 830, raise an alarm, etc.
[0066] The process steps performed in Figures 6 and 7 may be performed by a computer program encoding instructions to a processor(s) to perform at least a portion of the process(es) described in Figures 6 and 7 according to an embodiment of the present invention. The computer program may be stored on a non-transitory computer readable medium. The computer readable medium may be, but is not limited to, a hard disk drive, a flash device, a RAM, a tape, and / or any other such medium or combination of media used to store data. The computer program may include coded instructions for controlling a processor(s) of a computing system (e.g., processor(s) 510 of computing system 500 of Figure 5) to implement all or a portion of the process steps described in Figures 6 and 7, which may also be stored on a computer readable medium.
[0067] The computer program may be implemented in hardware, software, or a hybrid implementation. The computer program may be composed of modules in operable communication with each other and designed to send information or instructions to a display. The computer program may be configured to run on a general purpose computer, an ASIC, or any other suitable device.
[0068] It will be readily understood that the components of the various embodiments of the present invention, as generally described and illustrated herein, may be arranged and designed in a wide variety of different configurations. Thus, the detailed description of the embodiments of the present invention, as represented in the accompanying figures, is not intended to limit the scope of the invention as claimed, but is merely representative of selected embodiments of the invention.
[0069] The features, structures, or characteristics of the invention described throughout this specification may be combined in any suitable manner in one or more embodiments. For example, reference throughout this specification to "certain embodiments," "some embodiments," or similar language means that the particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment of the invention. Thus, the appearance of "certain embodiments," "some embodiments," "other embodiments," or similar language throughout this specification does not necessarily refer to the same group of all embodiments, and the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0070] It should be noted that references to features, advantages, or similar language throughout this specification do not imply that all of the features and advantages that may be realized in the present invention should be in any single embodiment of the present invention, or in any embodiment of the present invention. Rather, language referring to features and advantages is understood to mean that the particular feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussions of features and advantages throughout this specification, as well as similar language, may, but do not necessarily, refer to the same embodiment.
[0071] Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. Those skilled in the relevant art will recognize that the invention may be practiced without the specific features or advantages of one or more specific embodiments. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
[0072] Those of ordinary skill in the art will readily appreciate that the invention as described above can be practiced using steps in a different order and / or with hardware elements in different configurations than those disclosed. Thus, while the invention has been described in terms of preferred embodiments, it will be apparent to those skilled in the art that certain modifications, variations, and alternative configurations will become apparent while remaining within the spirit and scope of the invention.
[0073] In one embodiment, a computer-implemented method includes generating a deterministic RPA workflow and training an ML model associated with a probabilistic activity to replace a deterministic activity in the deterministic RPA workflow. The computer-implemented method also includes collecting data from the RPA robots and their associated computing systems that implement the deterministic workflow and using the collected data to periodically retrain the ML model until a confidence threshold is achieved. The computer-implemented method then includes generating a probabilistic workflow that includes the probabilistic activity and replacing the deterministic activity.
Claims
1. 1. A computer-implemented method for implementing a probabilistic model into a deterministic workflow for robotic process automation (RPA), comprising: Generating a deterministic RPA workflow for an RPA robot; generating a plurality of RPA robots configured to perform the deterministic RPA workflow; Deploying the plurality of RPA robots; training a machine learning (ML) model associated with probabilistic activities to replace deterministic activities in the RPA workflow; replacing the deterministic activities of the RPA workflow with the probabilistic activities.
2. 2. The computer-implemented method of claim 1, further comprising: collecting data from the plurality of deployed RPA robots performing the deterministic RPA workflow, collecting data from a computing system on which the RPA robots are executing, or both.
3. The computer-implemented method of claim 2 , further comprising periodically retraining the ML model using the collected data.
4. 4. The computer-implemented method of claim 3, wherein replacement of the deterministic activities of the RPA workflow with the probabilistic activities occurs after the ML model achieves a confidence threshold.
5. generating a plurality of RPA robots configured to perform the RPA workflow including the stochastic activity; 5. The computer-implemented method of claim 4, further comprising: deploying the plurality of RPA robots configured to perform the RPA workflow including the stochastic activity.
6. 6. The computer-implemented method of claim 5, further comprising: monitoring the ML model using metrics on the input side via a data drift detector and on the output side via a concept drift detector to ensure that the ML model is operating correctly.
7. The computer-implemented method of claim 6 , wherein the concept drift detector determines whether the output falls within a predetermined range.
8. The computer-implemented method of claim 6 , further comprising generating an alarm when the data drift detector, the concept drift detector, or both indicate an error.
9. When the data drift detector, the concept drift detector, or both indicate an error, the method further comprises:
7. The computer-implemented method of claim 6, further comprising disabling or bypassing an RPA robot of the plurality of RPA robots.
10. When the data drift detector, the concept drift detector, or both indicate an error, the method further comprises: The computer-implemented method of claim 6 , further comprising rolling back to a previous version of the ML model.
11. 1. A computer-implemented method for implementing a probabilistic model into a deterministic workflow for robotic process automation (RPA), comprising: generating a plurality of RPA robots configured to perform a deterministic RPA workflow; deploying the plurality of RPA robots configured to perform the deterministic RPA workflow; training a machine learning (ML) model associated with probabilistic activities to replace deterministic activities in the RPA workflow; and replacing the deterministic activities of the RPA workflow with the probabilistic activities.
12. 12. The computer-implemented method of claim 11, further comprising: collecting data from the plurality of deployed RPA robots performing the deterministic RPA workflow, collecting data from a computing system on which the RPA robots are executing, or both.
13. and periodically retraining the ML model using the collected data.
13. The computer-implemented method of claim 12, further comprising replacing the deterministic activities of the RPA workflow with the probabilistic activities after the ML model achieves a confidence threshold.
14. generating a plurality of RPA robots configured to perform the RPA workflow including the stochastic activity; 14. The computer-implemented method of claim 13, further comprising: deploying the plurality of RPA robots configured to perform the RPA workflow that includes the stochastic activity.
15. 15. The computer-implemented method of claim 14, further comprising: monitoring the ML model using metrics on the input side via a data drift detector and on the output side via a concept drift detector to ensure that the ML model is operating correctly.
16. When the data drift detector, the concept drift detector, or both indicate an error, the method further comprises:
16. The computer-implemented method of claim 15, further comprising disabling an RPA robot of the plurality of RPA robots, bypassing the RPA robot of the plurality of RPA robots, or rolling back to a previous version of the ML model.
17. Generating a robotic process automation (RPA) robot configured to perform an RPA workflow that includes stochastic activities; Deploying the RPA robot; and monitoring a machine learning (ML) model invoked by the probabilistic activity in the RPA workflow by a supervisor system, the supervisor system being configured to verify that the ML model is operating correctly using input-side metrics via a data drift detector and output-side metrics via a concept drift detector.
18. 20. The computer-implemented method of claim 17, wherein the concept drift detector determines whether the output falls within a predetermined range.
19. 20. The computer-implemented method of claim 17, further comprising generating an alarm by the supervisor system when the data drift detector, the concept drift detector, or both indicate an error.
20. When the data drift detector, the concept drift detector, or both indicate an error, the method further comprises:
20. The computer-implemented method of claim 17, further comprising: disabling, by the supervisor system, an RPA robot of the plurality of RPA robots, bypassing the RPA robot of the plurality of RPA robots, or rolling back to a previous version of the ML model.
Citation Information
Patent Citations
Control device for autonomous plant
JP1993297188A
Method and autonomous mobile unit for detection of rotational state of autonomous mobile unit
JP2001510890A
Robot control system
JP2006239849A
Method and apparatus for operating an automation system
JP2018513490A
Robot device and non-transitory computer readable medium
US20180304471A1