Machine Learning Model Retraining Pipeline for Robotic Process Automation
The ML model retraining pipeline for RPA addresses the lack of automation in feedback loops by using triggers and user interaction to collect labeled data, enhancing model accuracy and reliability through automated retraining processes.
Patent Information
- Application Number
- JP2020552794
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-04-30
- Filing Date
- 2020-08-19
- Publication Date
- 2025-01-23
- Estimated Expiration
- 2040-08-19
AI Technical Summary
There is no standard mechanism or process to automate the feedback loop for retraining machine learning (ML) models in robotic process automation (RPA), leading to degraded performance over time due to changing conditions.
Implementing a computer-implemented method for an ML model retraining pipeline in RPA that includes triggers for data labeling, user interaction for providing labeled data, and server-based training or queuing of data for subsequent labeling, with asynchronous labeling for attended and unattended robots, and automated model updating based on collected data.
Enhances ML model accuracy by automatically collecting and utilizing user feedback to retrain models, improving performance without requiring continuous human intervention and maintaining model reliability across varying conditions.
Smart Images

Figure 0007620430000001 
Figure 0007620430000002 
Figure 0007620430000003
Abstract
Description
[Technical field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Nonprovisional Patent Application No. 16 / 864,000, filed April 30, 2020. The subject matter of this earlier-filed application is incorporated by reference in its entirety.
[0002] The present invention relates generally to robotic process automation (RPA), and more specifically to a machine learning (ML) model retraining pipeline for RPA. [Background technology]
[0003] Currently, there is no standard mechanism or process for automating the feedback loop for retraining ML models, therefore improved solutions would 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 ML model retraining pipelines for RPA.
[0005] In an embodiment, a computer-implemented method for implementing an ML model retraining pipeline for RPA includes invoking, by the RPA robot, an ML model and receiving, by the RPA robot, results from execution of the ML model. The computer-implemented method also includes determining, by the RPA robot, whether one or more trigger conditions are met for labeling data of the ML model. If the one or more trigger conditions are met, the computer-implemented method further includes prompting a user to provide labeled data for training or retraining the ML model, and sending, by the RPA robot, the labeled data to a server for training or retraining the ML model, or adding, by the RPA robot, information related to the results from the ML model to a queue for subsequent labeling.
[0006] In another embodiment, a computer-implemented method for implementing an ML model retraining pipeline for RPA includes determining, by the RPA robot, whether one or more trigger conditions are met for labeling data of the ML model. If the one or more trigger conditions are met, the computer-implemented method also includes prompting a user to provide labeled data for training or retraining the ML model, and sending, by the RPA robot, the labeled data to a server for training or retraining the ML model, or adding, by the RPA robot, information related to results from the ML model to a queue for subsequent labeling.
[0007] In yet another embodiment, a computer-implemented method for implementing an ML model retraining pipeline for RPA includes invoking an ML model by the RPA robot and receiving results from the execution of the ML model by the RPA robot. The computer-implemented method also includes determining whether one or more trigger conditions are met for labeling data of the ML model by the RPA robot. If the one or more trigger conditions are met, the computer-implemented method further includes prompting a user to provide labeled data for training or retraining the ML model, and sending, by the RPA robot, the labeled data to a server for training or retraining the ML model, or adding, by the RPA robot, information related to the results from the ML model to a queue for subsequent labeling. If the one or more training criteria are met, the computer-implemented method further includes training, by the server, the ML model, generating a new version of the ML model using the labeled data, and deploying, by the server, the new version of the ML model. [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 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:
[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 implement a portion of an ML model retraining pipeline for RPA, according to an embodiment of the invention.
[0014] [Figure 6] FIG. 1 is an architectural diagram illustrating a system configured to implement an ML model retraining pipeline for RPA, according to an embodiment of the present invention.
[0015] [Figure 7] 1 is a flowchart illustrating a process for an ML model retraining pipeline for RPA in accordance with an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] Detailed Description of the Embodiments Some embodiments relate to an ML model retraining pipeline for RPA. When an ML model is deployed in a production (i.e., runtime) or development environment, RPA robots may send requests to the ML model as they execute their workflows. However, the performance of the ML model may degrade over time as various conditions change and / or otherwise deviate from desired performance characteristics. For example, consider an RPA robot calling an ML model trained to identify dogs. The ML model initially had a 99% confidence threshold, but as it becomes more widely used with more dog images and new dog breeds, the confidence threshold drops to 95%.
[0017] In some embodiments, one or more triggers are employed to initiate collection of labeled data for retraining. Triggers include, but are not limited to, ML model performance dropping below a trusted threshold, ML model results deviating from a statistical distribution (e.g., ML model predictions no longer fall within a normal distribution for a user demographic), ML model results falling outside a previously observed range, a human user (e.g., an RPA developer) noticing undesirable performance characteristics and initiating collection of labeled data for retraining, and / or other suitable triggers without departing from the scope of the present invention. Unlike deterministic logic, where there is always a specific logical path to provide an "exception," probabilistic ML models require other types of mechanisms to be used.
[0018] The timing of triggering the labeled data collection (i.e., "human-in-the-loop") is thus trigger-based in some embodiments. Returning to the dog-identifying ML model example above, once the confidence threshold falls below 95%, a human user may be prompted for input. For example, a human user of the computing system on which the RPA robot is running may be presented with an interface or option to make corrections. For example, the human user may review the identification made by the ML model (e.g., an identification of "not a dog") and make corrections if the identification is incorrect. The incorrect images and user corrections may be sent as training data to a server (e.g., a cloud-based system, a data center, an in-house server, an RPA provider's server, etc.), and the RPA robot may proceed to execute the remainder of its workflow.
[0019] Some embodiments may be employed for attended or unattended robots. In the context of attended automation, a human may label data and work together with the RPA robot. Consider an attended RPA robot that runs in the background and classifies contract clauses for a lawyer. When retraining is triggered, the lawyer may be prompted to select the type of clause, and that classification may become part of the labeled data for retraining. Thus, the labeling for the ML model invoked by the attended RPA robot may be synchronized in some embodiments.
[0020] In the context of unattended automation, the RPA robot may send a request to the ML model, which returns a prediction and the confidence of the prediction. The unattended RPA robot may then evaluate whether a confidence threshold and / or some other criteria / criteria are met. If not, the unattended RPA robot may add the labeled task to a task queue for a user to execute later. Thus, in some embodiments, labeling for an ML model invoked by an unattended RPA robot may be asynchronous.
[0021] The server may receive and store training data from various users. Thus, over time, batches of labeled training data are collected. The ML model may be trained or retrained using the collected training data when a predetermined amount of time has passed, when a predetermined amount of training data has been received, when a predetermined number of training data samples have been received, when the data falls outside some distribution of data (e.g., normal, binomial, or other statistical distribution), a custom criterion or standard, or any combination thereof, etc. Training also occurs only using the collected training data, or using training data collected together with previous training data used to train the current version of the ML model. Once trained or retrained, new versions of the ML model are deployed, potentially without human action.
[0022] In some embodiments, the new version of the ML model may simply replace the previous version, and the call to the ML model from the RPA robot workflow may instead call the new version of the ML model. In certain embodiments, the new version of the ML model may be pushed out to the computing system of the user of the RPA robot. In some embodiments, the workflow of the RPA robot may be modified to call the new version of the ML model. In certain embodiments, the RPA robot may try the new version of the ML model first, and if a certain confidence is not achieved, try the previous version of the ML model to see if the previous version achieved a higher confidence. In some embodiments, the RPA robot may call both versions of the ML model and select the output from the model with the highest confidence.
[0023] Some embodiments provide a framework for ML model monitoring with a standard mechanism for humans to correct the predictions of ML models to improve accuracy. In certain embodiments, users may not be aware that labeled data is being ingested for training / retraining. This standard framework may be used to collect training data and improve the accuracy of ML models for various business processes, in some embodiments without requiring programming knowledge.
[0024] The circumstances and timing of sample collection depend, in some embodiments, on the ML model. When used for an ML model, business or technical decisions may be made about acceptable confidence thresholds. Where false negatives are highly detrimental, such as medical diagnostics or vehicle control models, the threshold may be high (e.g., 99.9%, 99.9999%, etc.). Where transaction speed is important, a higher error rate may be acceptable (e.g., 75%, 85%, 90%, 95%, etc.). If false positives are more tolerable than false negatives, or vice versa, this may also affect under what conditions it is desirable to train or retrain an ML model.
[0025] 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.
[0026] Automation projects enable rule-based process automation by giving developers control over the execution order 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.
[0027] Workflow types 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, allowing flow from one activity to another without cluttering the workflow. Flowcharts may be particularly suited to 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 suited to large workflows. FSMs may use a finite number of states during 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, or to debug the process.
[0028] 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.
[0029] The conductor 120 may manage all the robots 130, connecting and running them from a centralized 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 started from the conductor 120 on this type of robot and / or they cannot be run under a locked screen. In certain embodiments, attended robots 132 may only be launched from the robot tray or from a command prompt. The attended robot 132, in some embodiments, preferably operates under human supervision.
[0030] Unattended robots 134 may operate unattended in a virtual environment and automate many processes. Unattended robots 134 may be responsible for providing remote execution, monitoring, scheduling, and work queue support. Debugging for all robot types may be performed in the designer 110 in some embodiments. Both attended and unattended robots may 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.).
[0031] 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 maintenance and delivery of 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 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.
[0032] The robot 130 is an execution agent that executes workflows 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.
[0033] 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.
[0034] 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, 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 runs). 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.
[0035] 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.
[0036] An Executor may run 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 to start a job and wait for its output.
[0037] As explained 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 executors may always be aware of per-monitor DPI settings in some embodiments. As a result, workflows may run at any DPI regardless of the configuration of the computing system on which they were 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.
[0038] 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.
[0039] 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.
[0040] 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 executed. 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.
[0041] 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, and start and stop robots.
[0042] 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.
[0043] 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, getting transactions from the queue, and setting the status of transactions.
[0044] The monitoring REST endpoints may monitor the web application 232 and the agents 214. The notification and monitoring API 236 may be a REST endpoint used to register the agents 214, deliver configuration settings to the agents 214, and send and receive notifications between the server and the agents 214. The notification and monitoring API 236 may use WebSocket communications in some embodiments.
[0045] 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).
[0046] 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.
[0047] 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 executed 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 identifies an element and clicks 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 an 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 presence or absence of element on 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.
[0048] 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 via 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.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] FIG. 5 is an architecture diagram illustrating a computing system 500 configured to implement a portion of an ML model retraining pipeline 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.
[0053] 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. Also, the media may be removable, non-removable, or both.
[0054] Additionally, the computing system 500 includes a communications device 520, such as a transceiver, to provide access to a communications 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.
[0055] 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.
[0056] A keyboard 530 and cursor control device 535, such as a computer mouse, touchpad, and the like, 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). The 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 500 may operate autonomously.
[0057] 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 an ML model retraining pipeline 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.
[0058] 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.
[0059] It should be noted that some of the system features described herein are presented as modules to better emphasize implementation independence. For example, a module may be implemented as a hardware circuit 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.
[0060] The modules may be implemented at least partially 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 as, for example, an object, a procedure, or a function. Nevertheless, the executable identified modules need not be physically located together, but may include separate instructions stored in different locations that, when logically combined, comprise the modules and accomplish the purpose stated for the modules. Furthermore, the 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.
[0061] 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. The 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.
[0062] FIG. 6 is an architecture diagram illustrating a system 600 configured to implement an ML model retraining pipeline for RPA, according to an embodiment of the present invention. The system 600 includes user computing systems, such as desktop computers 602, 603, tablets 604, smartphones 606, etc. However, any desired computing system may be used without departing from the scope of the present invention, including, but not limited to, smart watches, laptop computers, Internet of Things (IoT) devices, vehicle computing systems, etc. Also, while four user computing systems are shown in FIG. 6, any suitable number of computing systems may be used without departing from the scope of the present invention. For example, in some embodiments, tens, hundreds, thousands, or millions of computing systems may be used.
[0063] Each computing system 602, 603, 604, 606 executes thereon a digital process 610 that invokes and / or executes the ML model. The digital process 610 may be a robot generated via an RPA designer application, may be part of an operating system, may be a downloadable application for a personal computer (PC) or smartphone, or any other software and / or hardware without departing from the scope of the present invention. Indeed, in some embodiments, the logic of one or more digital processes 610 is implemented partially or fully via physical hardware. The digital process 610 may collect and send training data for training / retraining the ML model in response to a trigger. Triggers include, but are not limited to, the performance of the ML model dropping below a trusted threshold, results of the ML model deviating from a statistical distribution (e.g., the predicted values of the ML model no longer fall within a normal distribution for a pool of users), results of the ML model falling outside a previously observed range, a human user (e.g., an RPA developer) noticing undesirable performance characteristics and initiating the collection of labeled data for retraining, and / or other suitable triggers without departing from the scope of the present invention.
[0064] The digital processes 610 transmit training data collected from users of their respective computing systems to a server 630 via a network 620 (e.g., a local area network (LAN), a cellular network, a satellite network, the Internet, any combination thereof, etc.). The server 630 stores the training data in a database 640. The training data may include, but is not limited to, images and user modifications (e.g., areas where components are located on the screen, textual descriptions from users of errors, labels for areas, etc.).
[0065] When instructed by a human user (e.g., an RPA technician or data scientist), when a predetermined amount of training data has been collected, when a predetermined amount of time has passed since the previous training, when a training request is received, etc., the server 630 runs the training data through multiple AI layers 632. The AI layers 632 process the data and generate a new version of the ML model. The AI layers 632 may perform statistical modeling (e.g., Hidden Markov Models (HMMs)) and utilize deep learning techniques (e.g., Long Short-Term Memory (LSTM) deep learning, encoding of prior hidden states, etc.).
[0066] In some embodiments, each AI layer 632 is an algorithm (or model) that runs on training data, and the ML model itself may be a deep learning neural network (DLNN) of artificial "neurons" trained on training data. The layers may run in series, parallel, or a combination thereof. The AI layers 632 may include, but are not limited to, a sequence extraction layer, a clustering detection layer, a visual component detection layer, a text recognition layer (e.g., OCR), an audio-to-text conversion layer, multiple instances of one or more layers, or any combination thereof. Any desired number and type(s) of layers may be used without departing from the scope of the invention. Using multiple layers may allow the system to develop a global picture of what is happening on a screen or process. For example, one AI layer may perform OCR, another AI layer may detect buttons, etc. The patterns may be determined individually by one AI layer or collectively by multiple AI layers.
[0067] In particular embodiments, a data scientist may initiate and / or monitor the training of an ML model. For example, the data scientist may supplement a training dataset with additional data or retrain an ML model with different or supplemented training data if a newly trained ML model fails to achieve a desired confidence level. The data scientist, in some embodiments, may generate an update notification when an ML model is ready and approved. In particular embodiments, server 630 may generate the notification.
[0068] After the new version of the ML model is properly trained, the server 630 may store the new version of the ML model in the database 640, potentially replacing the previous version of the ML model. The new version of the ML model is executed when the ML model is called from the user computing systems 602, 603, 604, 606. In certain embodiments, the new version of the ML model may be pushed out to the computing systems 602, 603, 604, 606. In some embodiments, the workflow of the RPA robot that calls the ML model may be modified to call the new version of the ML model. In certain embodiments, the RPA robot may try the new version of the ML model first, and if a certain confidence threshold is not met, try the previous version of the ML model to see if the previous version achieved a higher confidence for a given scenario. In some embodiments, the RPA robot may call both versions of the ML model and select the output from the model with the highest confidence.
[0069] FIG. 7 is a flow chart illustrating a process 700 for an ML model retraining pipeline for RPA, according to an embodiment of the invention. The process begins with invoking an ML model from an RPA robot workflow running on a user computing system 710. The RPA robot receives 720 output from the ML model (e.g., prediction and confidence thresholds, variables and statistical distributions, etc.) and determines 730 whether one or more trigger conditions are met. Trigger conditions include, but are not limited to, the performance of the ML model falling below a confidence threshold, ML model results deviating from a statistical distribution (e.g., the ML model's predictions no longer fall within a normal distribution for a pool of users), ML model results falling outside a previously observed range, a human user (e.g., an RPA developer) noticing undesirable performance characteristics and initiating collection of labeled data for retraining, and / or other suitable triggers without departing from the scope of the invention.
[0070] If the trigger condition(s) are met at 730, labeled training data is obtained and submitted to the server at 740. For example, in the case of an attended robot RPA robot, a human user of the computing system on which the RPA robot is running may be presented with an interface or option to make corrections, or a human user of another computing system may be provided with information regarding where identifications below a confidence threshold occurred and presented with an interface or option to make corrections. Also, in the case of an unattended robot RPA robot, screenshots may be automatically taken and provided with the coordinates of a given component on the screen to which the ML model was applied. This information may be added to a queue for subsequent review or labeling.
[0071] If one or more training criteria are met at 750, the ML model is trained at 760 using the collected training data, or using training data collected along with previous training data used to train the current version of the ML model. The one or more training criteria may include when a predetermined amount of time has passed, when a predetermined amount of training data has been received, when a predetermined number of training data samples have been received, when the data falls outside some distribution of data (e.g., normal, binomial, or other statistical distribution), a custom criterion or standard, or any combination thereof, etc. In some embodiments, the training criteria are checked in a separate process that is not linked to other steps shown in FIG. 7.
[0072] After training, the new version of the ML model is deployed at 770. In some embodiments, the new version of the ML model may simply replace the previous version, and calls to the ML model from the RPA robot workflow may instead call the new version of the ML model without further modification. However, in some embodiments, further modifications are made so that the RPA robot can interact with the new version of the ML model at 780. For example, in certain embodiments, the new version of the ML model may be pushed out to a computing system of a user of the RPA robot. In some embodiments, the workflow of the RPA robot may be modified to call the new version of the ML model.
[0073] In some embodiments, multiple versions of the ML model may be invoked by the RPA robot at 790. For example, in certain embodiments, the RPA robot may first try a new version of the ML model, and if a certain confidence is not achieved, try one or more previous versions of the ML model to see if the previous version(s) achieve a higher confidence or otherwise achieve better results (e.g., better fit with a statistical distribution, values that fall within a range, faster execution, etc.). In some embodiments, the RPA robot may invoke multiple versions of the ML model (e.g., a new version of the ML model and one or more previous versions of the ML model) and select the output from the model with the highest confidence or otherwise better results.
[0074] The process steps performed in FIG. 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 FIG. 7 according to an embodiment of the present invention. The computer program may be embodied in 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 FIG. 5) to implement all or a portion of the process steps described in FIG. 7, which may also be stored in a computer readable medium.
[0075] 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.
[0076] 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.
[0077] 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.
[0078] 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.
[0079] Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. A person skilled in the relevant art will recognize that the invention may be practiced without the specific features or advantages of one or more particular 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.
[0080] 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 based on these 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. Accordingly, reference should be made to the appended claims to determine the scope of the invention.
Claims
1. 1. A computer-implemented method for implementing a machine learning (ML) model retraining pipeline for robotic process automation (RPA), comprising: The RPA robot calls the machine learning (ML) model, receiving, by the RPA robot, results from execution of the ML model; determining, by the RPA robot, whether one or more trigger conditions are met for labeling data in the ML model; If the one or more trigger conditions are met, prompting a user to provide labeled data for training or retraining the ML model, and transmitting the labeled data by the RPA robot to a server for training or retraining the ML model; or adding information related to the results from the ML model to a queue for subsequent labeling by the RPA robot.
2. 2. The computer-implemented method of claim 1, wherein the one or more trigger conditions include the performance of the ML model falling below a trusted threshold, the results of the ML model deviating from a statistical distribution, the results of the ML model falling outside a previously observed range, or any combination thereof.
3. The computer-implemented method of claim 1 , wherein the one or more trigger conditions include receiving a start command for collection of the labeled data.
4. receiving, by the server, the labeled data; The computer-implemented method of claim 1 , further comprising storing, by the server, the labeled data in a database.
5. training, by the server, the ML model using the labeled data to generate a new version of the ML model if one or more training criteria are met; The computer-implemented method of claim 1 , further comprising: deploying, by the server, the new version of the ML model.
6. 6. The computer-implemented method of claim 5, wherein training the ML model additionally comprises using previous training data used to train a version of the ML model that was trained earlier than the new version of the ML model.
7. 6. The computer-implemented method of claim 5, wherein the one or more training criteria include the passage of a predetermined period of time, receipt of a predetermined amount of training data, receipt of a predetermined number of training data samples, the data falling outside a distribution of data, or any combination thereof.
8. The computer-implemented method of claim 5 , wherein the new version of the ML model replaces a previous version of the ML model.
9. 6. The computer-implemented method of claim 5, further comprising modifying a workflow of the RPA robot to invoke the new version of the ML model.
10. 6. The computer-implemented method of claim 5, further comprising modifying a workflow of the RPA robot to call multiple versions of the ML model, the multiple versions including the new version of the ML model.
11. Invoking the new version of the ML model by the RPA robot; 11. The computer-implemented method of claim 10, further comprising: if the one or more trigger conditions are not met, invoking, by the RPA robot, a previous version of the ML model and selecting an optimal result from the current version of the ML model and the previous version of the ML model.
12. Invoking, by the RPA robot, the new version of the ML model and at least one previous version of the ML model; 11. The computer-implemented method of claim 10, further comprising selecting, by the RPA robot, a best result from a current version of the ML model and at least one previous version of the ML model.
13. 2. The computer-implemented method of claim 1, wherein the collection of the labeled data and the training of new versions of the ML model are uniform for multiple ML models invoked by multiple RPA robots.
14. 1. A computer-implemented method for implementing a machine learning (ML) model retraining pipeline for robotic process automation (RPA), comprising: determining, by the RPA robot, whether one or more trigger conditions are met for labeling the data in the ML model; If the one or more trigger conditions are met, prompting a user to provide labeled data for training or retraining the ML model, and transmitting the labeled data by the RPA robot to a server for training or retraining the ML model; or adding information relating to results from the ML model to a queue for subsequent labeling by the RPA robot.
15. 15. The computer-implemented method of claim 14, wherein the one or more trigger conditions include the performance of the ML model falling below a trusted threshold, the results of the ML model deviating from a statistical distribution, the results of the ML model falling outside a previously observed range, or any combination thereof.
16. training, by the server, the ML model using the labeled data to generate a new version of the ML model if one or more training criteria are met; The computer-implemented method of claim 14 , further comprising deploying, by the server, the new version of the ML model.
17. 17. The computer-implemented method of claim 16, wherein the one or more training criteria include the passage of a predetermined period of time, receipt of a predetermined amount of training data, receipt of a predetermined number of training data samples, the data falling outside a distribution of data, or any combination thereof.
18. 20. The computer-implemented method of claim 16, further comprising modifying a workflow of the RPA robot to invoke multiple versions of the ML model, the multiple versions including the new version of the ML model.
19. 1. A computer-implemented method for implementing a machine learning (ML) model retraining pipeline for robotic process automation (RPA), comprising: The RPA robot calls the machine learning (ML) model, receiving, by the RPA robot, results from execution of the ML model; determining, by the RPA robot, whether one or more trigger conditions are met for labeling data in the ML model; If the one or more trigger conditions are met, Prompting a user to provide labeled data for training or retraining the ML model, and transmitting the labeled data by the RPA robot to a server for training or retraining the ML model; or adding information related to the results from the ML model to a queue for subsequent labeling by the RPA robot; training, by the server, the ML model using the labeled data to generate a new version of the ML model if one or more training criteria are met; deploying, by the server, the new version of the ML model.
20. the one or more trigger conditions include the performance of the ML model falling below a confidence threshold, the results of the ML model deviating from a statistical distribution, the results of the ML model falling outside a previously observed range, or any combination thereof; 20. The computer-implemented method of claim 19, wherein the one or more training criteria include the passage of a predetermined period of time, receipt of a predetermined amount of training data, receipt of a predetermined number of training data samples, the data falling outside a distribution of data, or any combination thereof.
Citation Information
Patent Citations
Inspection device, inspection method and program
JP2014153906A
Information transfer device, leaning system, information transfer method, and program
JP2016191973A
Sorting assistance device, sorting assistance method, and sorting assistance program
JP2018028939A
Multiplex learning system and multiplex learning program
JP2018163623A
System having computation model for machine learning, and machine learning method
JP2019144872A