Model Selection and Chaining for Robotic Process Automation Using Artificial Intelligence
AI-enhanced RPA systems dynamically select and chain ML models to address inefficiencies in current RPA technologies, enhancing adaptability and performance by deploying superior models, thus optimizing robotic process automation workflows.
Patent Information
- Application Number
- JP2022520182
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-12-09
- Filing Date
- 2020-08-18
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2040-08-18
AI Technical Summary
Current robotic process automation (RPA) systems struggle with adapting to changes and optimizing workflows due to the need for continuous rule updates and the suboptimal performance of single robots in diverse scenarios, leading to potential malfunctions and inefficiencies.
Implementing artificial intelligence (AI) to select and chain machine learning (ML) models within an RPA robot workflow, analyzing performance, and deploying improved models or chains of models that outperform existing ones, thereby enhancing workflow efficiency and adaptability.
AI-driven model selection and chaining improves RPA system performance by optimizing model usage, adapting to changes, and ensuring optimal workflow execution across varying scenarios.
Smart Images

Figure 0007616750000001 
Figure 0007616750000002 
Figure 0007616750000003
Abstract
Description
[Technical field]
[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Nonprovisional Patent Application No. 16 / 707,933, filed December 9, 2019, and U.S. Provisional Patent Application No. 62 / 915,399, filed October 15, 2019. The subject matter of these prior applications is incorporated herein by reference in its entirety.
[0002] The present invention relates generally to robotic process automation (RPA), and more specifically to using artificial intelligence (AI) to select and / or chain models for RPA. [Background technology]
[0003] Typically, a single RPA workflow is built and deployed to a single robot to perform a specific task under specific conditions. For example, a robot can be built and deployed to look for specific visual components in an image, pull specific information from an invoice, and so on. However, without continually building new rules based on changes to the current problem or understanding which activities are working properly, new changes may not be recognized or the robot may fail altogether. Additionally, a single robot may not be optimal for all scenarios. Thus, improved techniques may be beneficial. Summary of the Invention
[0004] Certain embodiments of the present invention may provide solutions to problems and needs in the art that have not yet been fully identified, recognized, or solved by current RPA technology. For example, some embodiments of the present invention relate to using AI to select and / or chain models for RPA.
[0005] In one embodiment, a computer-implemented method for using AI to select and / or chain ML models for RPA includes running, by a computing system, a model of models that analyzes performance of individual ML models and chains of ML models in an ML model pool that are invoked in the workflow of the RPA robot. If the model of models is found to perform better than an existing ML model or chain of ML models, the computer-implemented method also includes deploying, by the computing system, the discovered ML model or chain of ML models, thereby replacing the existing ML model or chain of ML models.
[0006] In another embodiment, a computer-implemented method for selecting and / or chaining ML models for RPA using AI includes running a model of models to analyze performance of individual ML models and chains of ML models in an ML model pool that are invoked in the workflow of the RPA robot. If the model of models is found to perform better than an existing ML model or chain of ML models, the computer-implemented method also includes deploying the discovered ML model or chain of ML models, thereby replacing the existing ML model or chain of ML models, and modifying the workflow of the RPA robot to invoke the discovered ML model or chain of ML models.
[0007] In yet another embodiment, a computer-implemented method for chaining ML models for RPA using AI includes running a model of models to analyze the performance of a chain of ML models in an ML model pool that is invoked in the workflow of an RPA robot. If the model of models is found to perform better than an existing ML model or chain of ML models, the computer-implemented method also includes deploying the discovered chain of ML models, thereby replacing the existing ML model or chain of ML models, and modifying the workflow of the RPA robot to invoke the discovered chain of ML models. Analyzing the performance of the chain of ML models includes running AI-based experiments on permutations of chained ML models in series, parallel, or a combination thereof, and analyzing the results output by the chain of ML models. [Brief description of the drawings]
[0008] 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 be provided by reference to specific embodiments which are illustrated in the accompanying drawings, it being understood that these drawings depict only typical embodiments of the invention and therefore should not be considered as limiting its scope, but the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:
[0009] [Figure 1] FIG. 1 is an architectural diagram illustrating an RPA system according to one embodiment of the present invention.
[0010] [Diagram 2] FIG. 1 is an architectural diagram illustrating a deployed RPA system according to one embodiment of the present invention.
[0011] [Diagram 3] FIG. 2 is an architecture diagram illustrating the relationships between designers, activities, and drivers according to one embodiment of the present invention.
[0012] [Figure 4] FIG. 1 is an architectural diagram illustrating an RPA system according to one embodiment of the present invention.
[0013] [Diagram 5] FIG. 1 is an architecture diagram illustrating a computing system configured to use AI for model selection and chaining of RPA models for RPA, according to one embodiment of the present invention.
[0014] [Figure 6] FIG. 1 illustrates a process for chaining multiple models and using "models of models" to run experiments to achieve better results, according to one embodiment of the present invention.
[0015] [Figure 7] 1 is a flowchart illustrating a process for using AI to select and / or chain models for RPA in accordance with one embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] Some embodiments relate to selecting a model for a given problem and / or chaining multiple models to create a more optimized model performance for the problem via a "model of models". In some embodiments, the model of models may be an RPA robot or may itself be an ML model that is invoked by an RPA robot. Such a model of models can act as an additional layer on an existing system that makes existing models more effective. In some embodiments, the model of models can incorporate AI to learn improved or best sets of rules and / or orders from existing models, potentially determine the best performing model from a model pool, obtain specific activities from models, feed inputs from one model to another, and / or chain models. In certain embodiments, the model of models can search a relatively large number of existing models (e.g., 5, 10, 50, 100 or more, etc.) and apply at least some of these models to produce superior results.
[0017] Consider the case of deploying software to perform automatic flight control in an aircraft or drone. Various sensors provide different readings, and it may be desirable to determine how these inputs can be used to select and invoke an appropriate model. For example, to turn the aircraft or drone, should only ailerons be used, or would some combination of flight control surfaces perform better? The model of the model can determine which model to select, and this selection can be governed by a reward function. The reward function guides the exploration of the state space, exploring intermediate transitions and steps with both short-term and long-term rewards to attempt to achieve a goal (e.g., improved fuel efficiency, successful execution of control maneuvers, etc.).
[0018] In some embodiments, a process mining / task mining system can collect logs of different steps that a user uses in a workflow. These logs can be analyzed by the process mining system to reveal patterns of usage and so-called process flow diagrams. In certain embodiments, the system can take input from the process logs and / or process flow diagrams to suggest AI models that can result in optimization of that workflow / process.
[0019] When multiple models are chained, the models may be run in series, in parallel, or a combination thereof. For example, consider an embodiment in which four models are chained. In a serial implementation, data is run through model 1, whose output is run through model 2, whose output is run through model 3, whose output is run through model 4, to generate the final output of the chain. In a parallel implementation, data may be run through models 1-4 individually. In a combination implementation, data may be fed into models 1 and 2 in series, then the output of model 2 may be run in parallel through models 3 and 4, data may be run through models 1 and 2 in parallel, and the output from each of models 1 and 2 may be fed in series through models 3 and 4, etc.
[0020] For example, in sales, if a software application provides recommendations to salespeople, one model could consider what types of leads were most successful, while a second model could look at which applications users are using. Based on the recommendations from each, it could be monitored whether revenue increases, revenue decreases, or revenue stays the same. Experiments could then be run to see if chaining the outputs of the models leads to improvements (e.g., testing which lead types are most successful with different applications the salespeople are using).
[0021] Consider the case of invoice processing. In a serial implementation, a model for invoice processing may first run a model that determines if an email contains an invoice and classifies what the email contains. If it is determined that an invoice is present, a second model may be an extractor that extracts the contents of the invoice.
[0022] In certain embodiments, input from a user of a computing system is taken into account by the model of models to determine whether an underlying model is behaving incorrectly or improperly in a given scenario. The model of models can also determine which of the underlying models are behaving correctly in a given scenario. The decision of which model to use can be made via A / B testing, canary testing, etc.
[0023] During operation, a model of models may compare a given existing model to a confidence threshold that is specific to that model, shared in common by multiple models, shared in common by all models, etc. For example, a model that runs a highly sensitive process such as a mission-critical system in an aircraft, an accounting operation, etc. may have a higher confidence threshold for success. However, a less sensitive model such as a model for running invoice processing may have a lower confidence threshold.
[0024] In certain embodiments, the model of the model can modify the confidence threshold of one or more underlying models based on the performance observed at that threshold. For example, if the confidence threshold of the underlying image analysis model returns no results, the threshold can be lowered. Alternatively, if false positives are provided by the model, the threshold can be raised. Thus, the confidence threshold can be changed depending on the requirements of the underlying models governed by the model of the model.
[0025] Using the sales example, there may be multiple models. For example, there may be one model to provide the best possible leads, another model to detect churn customers, etc. These models may not know how good they are, but the models can still provide recommendations to the user. These recommendations allow the user to see the effect as a reward function.
[0026] For example, a model that predicts new leads may not be effective. However, a model that predicts whether a customer will churn soon and provides action suggestions to potentially prevent the customer from churn can be very beneficial. To create a model that predicts whether a customer is likely to churn, N new machine learning models can be tested and compared to each other to see how successful they are. By comparing these models, AI can be applied to learn how to chain models together for better results, how to use models in different combinations, etc., thereby creating a model of models that are more effective than any single model alone.
[0027] Consider the example of a policy network. In this example, if a positive delta from the reward function is not being received from testing different models, AI can be used to chain models together and try different model orders to see if there is an improvement. For example, if you have a model that knows how to identify new leads and another model that can detect fake email addresses, you can use AI to learn to run a suspicious email checker before the new lead identification model, feeding the email addresses that remain after the suspicious email checker has been run to the new lead identification model. This logic can then be deployed to kick out fake (or spam) emails before checking for leads. Thus, the AI can determine the order in which to use the models and the data that should be provided between them to improve efficiency as the models of the model.
[0028] FIG. 1 is an architecture diagram illustrating an RPA system 100, according to one embodiment of the present invention. The RPA system 100 includes a designer 110 that enables developers to design and implement workflows. The designer 110 can provide application integration and solutions for 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. Simply put, the designer 110 facilitates the development and deployment of workflows and robots.
[0029] Automation projects enable rule-based process automation by giving developers control over the order of execution and relationships between custom sets 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 can include actions such as clicking a button, reading a file, writing to a log panel, etc. In some embodiments, workflows may be nested or embedded.
[0030] 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 suited to linear processes that allow flow from one activity to another without disrupting the workflow. Flowcharts are particularly suited to more complex business logic, allowing for the integration of decisions and the connection of activities in more diverse ways through multiple branching logical operators. FSMs may be particularly suited to large workflows. FSMs may use a finite number of states in their execution that are triggered by conditions (i.e., transitions) or activities. Global exception handlers may be particularly suited to determining the behavior of a workflow when an execution error is encountered and to debugging the process.
[0031] Once a workflow is developed in Designer 110, the execution of the business process is orchestrated by Conductor 120, which orchestrates 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 creation, monitoring, and management of deployment of resources in the environment. Conductor 120 can act as an integration point with third party solutions and applications.
[0032] The conductor 120 can manage all the robots 130 connecting and executing the robots 130 from a centralized point. The types of robots 130 that can 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 alongside humans on the same computing system. Attended robots 132 can be used with the conductor 120 for centralized process deployment and recording. Attended robots 132 can help human users accomplish various tasks and can be triggered by user events. In some embodiments, processes cannot be started from the conductor 120 for this type of robot and / or cannot be run under a locked screen. In certain embodiments, attended robots 132 can only be launched from the robot tray or command prompt. In some embodiments, the attended robot 132 should operate under human supervision.
[0033] 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. In some embodiments, debugging of all robot types can be performed in the designer 110. 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 manufactured by SAP®, SalesForce®, Oracle®, etc.), and computing system applications (e.g., desktop and laptop applications, mobile device applications, wearable computer applications, etc.).
[0034] The conductor 120 may have a variety of functions, 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 identification 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 and quickly query large data sets). The conductor 120 may provide interconnectivity by acting as a centralized point of communication for third party solutions and / or applications.
[0035] 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 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 have the rights of a Windows service.
[0036] In some embodiments, the robot 130 can be installed in user mode. For such robots 130, this means that a given robot 130 has the same rights as the user for whom it is installed. This feature may also be available for high density (HD) robots, ensuring full utilization of each machine at its maximum potential. In some embodiments, any type of robot 130 can be configured in an HD environment.
[0037] The robot 130 in some embodiments is divided into several components, each dedicated to a specific automation task. The robot components in some embodiments include, but are not limited to, an SCM managed robot service, a user mode robot service, an executor, an agent, and a 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 trusted with and manage the credentials of the robot 130. The console application is launched by the SCM under the local system.
[0038] 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 can trust and manage credentials for the robot 130. If the SCM management robot service is not installed, the Windows application can be launched automatically.
[0039] An Executor can run a given job under a Windows session (i.e., an Executor can execute a workflow). An Executor can be aware of per-monitor dots per inch (DPI) settings. An Agent can be a Windows Presentation Foundation (WPF) application that displays available jobs in a system tray window. An Agent can be a client of a Service. An Agent can request to start or stop a job and change settings. A Command Line is a client of a Service. A Command Line is a console application that can request to start a job and wait for its output.
[0040] Splitting up the components of the robot 130 as described above helps developers, support users, and computing systems more easily execute, identify, and track what each component is doing. In this way, special behaviors can be configured per component, such as setting different firewall rules for executors and services. The executors, in some embodiments, can always be aware of the DPI setting per monitor. As a result, workflows can be executed at any DPI regardless of the configuration of the computing system on which they were created. In some embodiments, projects from the designer 110 can be independent of the browser zoom level. For applications that are not DPI aware or are intentionally marked as not aware, DPI can be disabled in some embodiments.
[0041] 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 may 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 is a running process. As shown in FIG. 2, several 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 discussed above with respect to FIG. 1, the executor 212 may be a robotic component.
[0042] In some embodiments, a robot represents an association between a machine name and a username. A robot can manage multiple executors simultaneously. In computing systems that support multiple interactive sessions running simultaneously (e.g., Windows Server 2012), multiple robots may run simultaneously, each running in a separate Windows session using a unique username. This is referred to above as an HD Robot.
[0043] 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 necessary versions of packages to be fulfilled. Communication between the agent 214 and the conductor 230 is always initiated by the agent 214 in some embodiments. In a notification scenario, the agent 214 can open a WebSocket channel that is later used by the conductor 230 to send commands (e.g., start, stop, etc.) to the robot.
[0044] The server side includes a presentation layer (web application 232, Open Data Protocol (OData) Representational State Transfer (REST) Application Programming Interface (API) endpoints 234, and 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 within the conductor 220 interface (e.g., via browser 220) are performed by calling various APIs. Such actions may include, but are not limited to, starting a job on a robot, adding / removing data in a queue, scheduling a job 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 invention. A user interacts with web pages from web application 232, in this embodiment via browser 220, to perform various actions to control conductor 230. For example, a user can create robot groups, assign packages to robots, analyze logs per robot and / or per process, start and stop robots, etc.
[0045] 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 the administrator of one or more robots on a client computer.
[0046] The REST API in this embodiment covers configuration, logging, monitoring, and queuing functions. The configuration endpoint may be used in some embodiments to define and configure application users, permissions, robots, assets, releases, and environments. For example, a logging REST endpoint may be used to log various information such as errors, explicit messages sent by the robot, and other environment specific information. A deployment REST endpoint may be used by a robot to query the package version that should be committed when a start job command is used in the conductor 230. The queuing REST endpoint may be responsible for queue and queue item management, such as adding data to the queue, getting transactions from the queue, setting the state of transactions, etc.
[0047] The monitoring REST endpoint monitors the web application 232 and the agents 214. The notification monitoring API 236 may be a REST endpoint used to register the agents 214, deliver configuration settings to the agents 214, and send / receive notifications from the server and the agents 214. The notification monitoring API 236 may also use WebSocket communication in some embodiments.
[0048] The persistence layer includes a pair of servers in this embodiment: a database server 240 (e.g., 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 can manage queues and queue items. In some embodiments, the database server 240 can store messages logged by the robots (in addition to or instead of the indexer server 250).
[0049] The indexer server 250 is optional in some embodiments and stores and indexes information logged by the robots. In certain embodiments, the indexer server 250 can be disabled through a configuration setting. In some embodiments, the 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 a logging REST endpoint to the indexer server 250, where they are indexed for future use.
[0050] FIG. 3 is an architecture diagram illustrating the relationship 300 between a designer 310, activities 320, 330, and a driver 340, according to one embodiment of the present invention. In accordance with the above, a developer uses the designer 310 to develop a workflow to be performed by the robot. The workflow can include user-defined activities 320 and UI automation activities 330. Some embodiments can identify non-textual visual components in an image, referred to herein as computer vision (CV). Some CV activities related to such components can include, but are not limited to, click, type, get text, hover, element presence, refresh range, highlight, and the like. In some embodiments, click can identify an element using, for example, CV, optical character recognition (OCR), fuzzy character matching, and multi-anchors, and click on it. Type can identify an element using the above and type within an element. Get text can identify the location of a particular text using OCR and scan it. Hover can identify an element and hover it. Element Present can check if an element is present on the screen using the techniques described above. In some embodiments, there may be hundreds or thousands of activities that can be implemented in the designer 310. However, any number and / or type of activities may be utilized without departing from the scope of the invention.
[0051] UI automation activities 330 are a subset of special low-level activities that are written into lower level code (e.g., CV activities) and facilitate interactions with the screen. UI automation activities 330 facilitate these interactions via drivers 340 that allow 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.
[0052] Drivers 340 can interact with the OS at a low level, looking for hooks, monitoring keys, etc. They can facilitate integration with Chrome®, IE®, Citrix®, SAP®, etc. For example, a "click" activity performs the same role in these different applications via drivers 340.
[0053] FIG. 4 is an architecture diagram illustrating an RPA system 400, according to one embodiment of the present invention. In some embodiments, the RPA system 400 may be or 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.
[0054] 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 that communicates with a non-web-based client software application on a client computing system.
[0055] FIG. 5 is an architecture diagram illustrating a computing system 500 configured to use AI to select and chain models of RPA models for RPA, according to an embodiment of the present invention. In some embodiments, the computing system 500 may be one or more of the computing systems illustrated and / or described herein. The computing system 500 includes a bus 505 or other communication mechanism for communicating information, and a processor 510 coupled to the bus 505 for processing information. The processor 510 may be any type of general-purpose or special-purpose 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 510 may also have multiple processing cores, at least some of which may be configured to perform a particular function. In some embodiments, multiple parallel processing may be used. In certain embodiments, at least one of the processors 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.
[0056] The computing system 500 further includes a memory 515 for storing information and instructions executed by the processor 510. The memory 515 can be comprised of any combination of random access memory (RAM), read-only memory (ROM), flash memory, cache, static storage such as magnetic or optical disks, or any other type of non-transitory computer-readable medium, or any combination thereof. The non-transitory computer-readable medium may be any available medium accessible by the processor 510 and may include volatile media, non-volatile media, or both. The medium may also be removable, non-removable, or both.
[0057] Additionally, the computing system 500 includes a communications device 520, such as a transceiver for providing access to a communications network via wireless and / or wired connections. In some embodiments, the communications device 520 may be a communications device for a variety of communications networks, including Frequency Division Multiple Access (FDMA), Single Carrier FDMA (SC-FDMA), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), Orthogonal Frequency Division Multiplexing (OFDM), Orthogonal Frequency Division Multiple Access (OFDMA), Global System for Mobile Communications (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 ... The communication device 520 may be configured to use any of the following communication standards and / or protocols: High Speed Passive Access (HSPA), Long Term Evolution (LTE), LTE Advanced (LTE-A), 802.11x, Wi-Fi, Zigbee, Ultra Wideband (UWB), 802.16x, 802.15, Home Node B (HnB), Bluetooth, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Near Field Communication (NFC), Fifth Generation (5G), New Radio (NR), any combination thereof, and / or any other currently existing or future implemented communication standards and / or protocols without departing from the scope of the present invention. In some embodiments, the communication device 520 may include one or more antennas that are single, array, phased, switched, beamforming, beamsteering, combinations thereof, and / or any other antenna configuration without departing from the scope of the present invention.
[0058] The processor 510 is 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 signal techniques, 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.
[0059] A keyboard 530 and cursor control devices 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, there are no physical input devices and / or displays. For example, a user may interact with the computing system 500 remotely via another computing system that communicates with it, or the computing system 500 may operate autonomously.
[0060] The memory 515 stores software modules that provide functionality when executed by the processor 510. The modules include an operating system 540 for the computing system 500. The modules further include a model selection and chaining module 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.
[0061] 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 above functions as being performed by a "system" is in no way intended to limit the scope of the present invention, but is intended to provide one 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.
[0062] It should be noted that some of the system features described herein have been presented as modules to more specifically emphasize their implementation independence. For example, a module may be implemented as a hardware circuit including 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.
[0063] Modules may also be implemented at least partially in software for execution by various types of processors. 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 files of identified modules need not be physically located together, but may include different instructions stored in different locations that, when logically combined together, comprise a module and achieve the stated purpose of the module. Furthermore, modules may be stored on a computer-readable medium, which may be, for example, a hard disk drive, a flash device, RAM, tape, and / or any other such non-transitory computer-readable medium used to store data without departing from the scope of the present invention.
[0064] In fact, a module of executable code may be a single instruction, or many instructions, and may be distributed across several different code segments, different programs, and several memory devices. Similarly, operational data may be identified and illustrated herein in modules, and may be embodied in any suitable form and organized within any suitable type of data structure. Operational data may be collected as a single data set or distributed in different locations, including different storage devices, and may exist, at least in part, only as electronic signals on a system or network.
[0065] FIG. 6 illustrates a process 600 for chaining multiple models and using a "model of models" to run experiments to achieve better results, according to one embodiment of the present invention. In this example, there is a model pool of different trained ML models (i.e., ML models A-I) for various tasks. AI-based experiments are then run on various permutations of the chained ML models (possibly including tests involving the same model in the chain multiple times). The ML models may be run in series, parallel, or a combination thereof (possibly alternating between series and parallel multiple times). If a chain of ML models is found that has superior results for a given problem, this chain is output as a model of models that can be applied to that problem and deployed. As illustrated, this chaining may be in series, parallel, or a combination thereof. Indeed, any permutation or combination can be identified and used without departing from the scope of the present invention. Also, in certain embodiments, a single model can be identified and selected as optimal over any chain.
[0066] FIG. 7 is a flow chart illustrating a process 700 for using AI to select and / or chain models for RPA, according to an embodiment of the present invention. The process begins at 710 with running AI-based experiments on the ML model pool by running a "model of models" that analyzes the performance of individual ML models and chains of ML models on the ML model pool. In some embodiments, a process sniffing / process mining system can be used to analyze user workflows and determine different AI models that can be incorporated into those workflows. If no single ML model or multiple chained ML models (e.g., serial, parallel, combinations thereof, alternating serial and / or parallel portions of the chain, etc.) is found to perform better than an existing ML model or chain of ML models at 720, the search for a superior ML model and / or combination continues at 710.
[0067] However, if a chained ML model or combination of ML models in a configuration is found at 720, then this ML model or chain of ML models is deployed at 730. The RPA robot workflow is modified at 740 to invoke the new ML model or chain of ML models and apply the ML model or chain of ML models to the given task. A new version of the RPA robot is then generated at 750 and deployed at 760. The new version of the RPA robot then invokes the ML model or chain of ML models during its operation at 770.
[0068] The process steps performed in FIG. 7 may be performed by a computer program encoding instructions for a processor to perform at least a portion of the process described in FIG. 7 according to an embodiment of the present invention. The computer program may be embodied 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, RAM, tape, and / or any other such medium or combination of media used to store data. The computer program may include encoded instructions for controlling a processor of a computing system (e.g., processor 510 of computing system 500 of FIG. 5) to perform all or a portion of the process steps described in FIG. 7, which may also be stored on a computer readable medium.
[0069] The computer program may be implemented in hardware, software, or a hybrid implementation. The computer program may be composed of modules designed to operatively communicate with each other and pass information or instructions for display. The computer program may be configured to run on a general purpose computer, an ASIC, or any other suitable device.
[0070] It will be readily understood that the components of the various embodiments of the present invention, as generally described and illustrated in the figures 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 drawings, is not intended to limit the scope of the invention as claimed, but is merely representative of selected embodiments of the invention.
[0071] 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, references throughout this specification to "certain embodiments," "some embodiments," or similar language means that the particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. Thus, the appearances of the phrases "in certain embodiments," "in some embodiments," "in other embodiments," or similar language throughout this specification do not necessarily all refer to the same group of embodiments, but rather the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0072] It should be noted that the reference to features, advantages, or similar language throughout this specification does not mean 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 that any single embodiment of the present invention is. Rather, language referring to features and advantages is understood to mean that the particular feature, advantage, or characteristic described in connection with one embodiment is included in at least one embodiment of the present invention. Thus, the description of features and advantages and similar language throughout this specification may, but does not necessarily, refer to the same embodiment.
[0073] 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 art will recognize that the invention may be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
[0074] Those skilled in the art will readily appreciate that the invention described above may be practiced with steps in a different order and / or hardware elements in different configurations than those disclosed. Thus, while the invention has been described based on these preferred embodiments, it will be apparent to those skilled in the art that certain modifications, variations, and alternative constructions will be apparent while remaining within the spirit and scope of the invention.
Claims
1. 1. A computer-implemented method for using artificial intelligence (AI) to chain machine learning (ML) models for robotic process automation (RPA), comprising: Executing a model of the model to analyze the performance of individual ML models and chains of ML models in the ML model pool that are invoked in the workflow of the RPA robot; If a model of said model is found to have better performance results than an existing ML model or a chain of ML models, expanding the discovered ML model or chain of ML models, thereby replacing the existing ML model or chain of ML models; modifying the workflow of the RPA robot to invoke the discovered ML model or chain of ML models; The computer-implemented method, wherein the analysis of the performance of the individual ML models and the chain of ML models includes the steps of performing AI-based experiments on permutations of chained ML models in series, parallel, or a combination thereof, and analyzing results output by the individual ML models and the chain of ML models.
2. A step of generating a new version of the RPA robot that implements the modified workflow of the RPA robot; deploying the generated new version of the RPA robot; The computer-implemented method of claim 1 , further comprising:
3. The method further comprises the step of invoking, by the generated new version of the RPA robot, the discovered ML model or chain of ML models when performing the modified workflow of the RPA robot.
3. The computer-implemented method of claim 2.
4. The computer-implemented method of claim 1 , wherein the permutation of the chained ML models includes multiple instances of the same ML model in a chain of ML models.
5. 2. The computer-implemented method of claim 1, wherein the superior performance results are governed by a reward function that guides exploration of a state space and explores intermediate transitions and steps with rewards to attempt to achieve a goal.
6. The computer-implemented method of claim 1, wherein at least one of the permutations of the serial and parallel chained ML models includes alternating serial and parallel ML models.
7. The computer-implemented method of claim 1 , wherein the model of the model is an ML model or an RPA robot.
Citation Information
Patent Citations
Stream-based Accelerator Processing of Computational Graphs
JP2018533795A
RPA maintenance support device and RPA maintenance support program
JP2019159556A
Systems and methods for machine learning using a trusted model
US20170364831A1
Dynamic accuracy-based deployment and monitoring of machine learning models in provider networks
US20190156247A1
Ensemble control system, ensemble control method, and ensemble control program
WO2019058508A1