MONITORING AN ARTIFICIAL INTELLIGENCE (AI) BASED PROCESS
1. An artificial intelligence (AI)-based automated process monitoring system comprising:
- at least one processor;
a non-transitory processor readable medium storing machine-readable instructions that cause the at least one processor to;
access code associated with an AI-based automated process that includes one or more sub-processes that implement at least one process component wherein the process produces a detectable output;
automatically identify the at least one process component via a component identification tool;
retrieve one or more metrics associated with the at least one process component, the metrics correspond to respective attributes of the at least one process component during an implementation of the process;
parse the code associated with the at least one process component;
collect values of the one or more metrics via parsing the code; and
generate an introspection output for the process, the introspection output including a respective step output for each of the one or more sub-processes, the respective step output including the values.
An Artificial Intelligence (AI)-based automated process is monitored via a process monitoring system that identifies components used in the execution of the sub-processes of the automated process. Various metrics are selected for collection prior to or during the execution of the AI-based automated process. The values of the metrics are collected as step outputs corresponding to the sub-processes. A final output generated upon the execution of the automated process is also collected. The step outputs can be used to determine the reason why the automated process produced a certain final output.
- 1. An artificial intelligence (AI)-based automated process monitoring system comprising:
at least one processor; a non-transitory processor readable medium storing machine-readable instructions that cause the at least one processor to; access code associated with an AI-based automated process that includes one or more sub-processes that implement at least one process component wherein the process produces a detectable output; automatically identify the at least one process component via a component identification tool; retrieve one or more metrics associated with the at least one process component, the metrics correspond to respective attributes of the at least one process component during an implementation of the process; parse the code associated with the at least one process component; collect values of the one or more metrics via parsing the code; and generate an introspection output for the process, the introspection output including a respective step output for each of the one or more sub-processes, the respective step output including the values.
- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
- 11. A method of monitoring an automated artificial intelligence (AI)-based process comprising:
receiving process monitoring instructions for the AI-based automated process wherein the automated process includes at least one sub-process that implements one or more process components; identifying the process components by employing respective component identification tools; selecting one or more sets of metrics, wherein each set of metrics corresponds to attributes of a respective process component of the one or more process components; collecting values associated with the sets of metrics during an execution of the AI-based automated process; and generating an introspection output for the process, the introspection output including a respective step output for each of the sub-processes, the respective step output including the values.
- View Dependent Claims (12, 13, 14, 15, 16)
- 17. A non-transitory computer-readable storage medium comprising machine-readable instructions that cause a processor to:
access code associated with an AI-based process that includes one or more sub-processes that implement at least one process component wherein the process produces a detectable output; automatically identify the at least one process component via a component identification tool; parse the code associated with the at least one process component; collect values of the one or more metrics via parsing the code; and generate an introspection output for the process, the introspection output including a respective step output for each of the or more sub-processes, the respective step output including the values.
- View Dependent Claims (18, 19, 20)
The present application claims priority under 35 U.S.C. 119(a)-(d) to the Indian Non-Provisional Patent Application Serial No. 201811041021, having a filing date of Oct. 30, 2018, the disclosure of which is hereby incorporated by reference in its entirety.
Automation and Artificial Intelligence (AI) are transforming the various aspects of human society spurring economic growth by increasing productivity. Beyond traditional automation and advanced robots, newer and more autonomous systems are appearing in environments ranging from self-driving vehicles to automated checkouts. Another example includes robotic process automation (RPA) which is an emerging form of clerical process automation technology based on software robots or AI workers. These technologies are also transforming the nature of work and the workplace so that machines are increasingly assigned to execute tasks that are actually done by human workers. In fact, the machines can go beyond human capabilities in terms of speed and accuracy when executing certain routine tasks. This progress has been driven to a large extent by improvements in computing systems and components including the mechanics, sensors and software. AI especially made rapid progress recently owing to the increasing sophistication of machine learning (ML) algorithms which are in turn a result of increases in computing power and the exponential growth in data available to train the algorithm.
Features of the present disclosure are illustrated by way of examples shown in the following figures. In the following figures, like numerals indicate like elements, in which:
For simplicity and illustrative purposes, the present disclosure is described by referring to examples thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be readily apparent however that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure. Throughout the present disclosure, the terms “a” and “an” are intended to denote at least one of a particular element. As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on.
An AI-based automated process monitoring system accesses code of an AI-based automated process, collects the various metrics associated with automation components employed by the AI-based automated process, provides the introspection output which can include step outputs for the various sub-processes that are executed as part of the automated process. The step outputs enable an understanding or provide a justification to the final output of the automated process. The AI-based automated process can include any process which employs AI or machine learning (ML) elements to process a received input and produce the final output. The automated process can include a series of sub-processes wherein the output of one of the sub-processes is fed as input to a next sub-process. The sub-processes can be executed by various AI/ML based process components such as the data models, algorithms, code libraries and other platforms that enable executing the automated functions of AI-based systems.
In an example, the process monitoring system can be provided as a library included within the code of the automated process. In an example, the process monitoring system can be provided as a downloadable resource. The user has the option of including the process monitoring system within the code of the automated process and employing the functionality as needed with the automated process. The process monitoring system is configured to identify the various AI-based process components used for the execution of the automated process. The code of the automated process can be parsed to identify the various process components.
Based at least upon identification of the process components, the process monitoring system selects the metrics to be collected. The metrics to be collected can include the various attributes of the process components employed by the sub-processes. The metrics can also include the outputs produced by the sub-processes in some examples. Depending on the nature of the metrics e.g., the metrics being attributes or outputs, the metrics can be collected prior to or during the execution of the sub-processes. In an example, particular wrapper application programming interfaces (APIs) can be created on the process components for collecting the metrics. In the case of custom metrics, the instructions to output the values of those metrics can be included within the code of the automation process. Custom metrics are differentiated in that the model identified for ML e.g., Naïve Bayes, the model tuning parameters etc. can be considered as standard ML metrics. Examples of custom metrics will be described further infra at the appropriate sections.
The various metrics can be collected as step outputs corresponding to the particular sub-process steps. The final output that is generated upon the execution of the automated process can be explained or justified based on the step outputs collected during the execution of the sub-processes. A summary corresponding to the introspection output and including one or more of the step outputs and the final output can be generated via employing a natural language generator (NLG) to process the step outputs and/or the final output(s). An output graphical user interface (GUI) such as a browser can be employed to provide the summary. In an example, the raw data produced by the automated process and which has not be processed by the NLG can also be inspected.
The process monitoring system as disclosed herein provides a general purpose lightweight, plug-in and play system that can collect pre-defined insight metrics from a primary analytics flow corresponding to the automated process. The process components employed for various functions including information extraction (IE), machine learning modeler, rule engine, analytics etc. can be automatically identified. The process monitoring system as disclosed herein provides accumulated insights from the introspection layer shared along with the result from a primary flow which is plugged into NLG to automatically explain the final output(s) of the automated process.
The rapid progress made by AI-based systems has resulted in increased complexities of AI-based pipelines wherein data is exchanged between multiple process components. Each of the process components performs an assigned complex task and passes on the step output or updated data to a next process component. The final output is obtained upon the process components completing their assigned tasks. Outputs from such complex AI processes can sometimes be black boxes not only for the users but also for the technical personnel who build and maintain the AI systems. This is especially true in deep learning tools such as neural networks that are used to identify patterns in data whose structures generally mimic the human brain. While such systems can produce output with great speed and accuracy, it is not always clear how the complex computations reach a particular state or produce a final output.
Verifying the accuracy of the final output via tracking the progress of data through the various process components can be a very complex task. Generally, verification of the results involved manually executing each process component separately and manually calculating various metrics and verifying the results. Such a process can be messy and time consuming. The process monitoring system disclosed herein therefore enables a technical improvement in the field of AI-based automated processes by engineering the processes to produce predefined metrics thereby providing greater transparency to the AI-based automated processes. Therefore, a greater understanding of the automated process is achieved wherein the final output can be comprehended via tracking the step outputs produced during the execution of the automated process. This enables the users to more easily track the errors within the AI-based automated process thereby increasing the accuracy of results produced by the AI-based automated processes.
The process monitoring system 100 enables obtaining certain predetermined metrics from each of the sub-processes 1521 . . . 152n (where n is a natural number and n=1, 2, 3 . . . ) thereby enabling verification of the final output 156. The verification enables determining how the final output 156 was generated. The process monitoring system 100 therefore identifies each of the sub-processes 1521 . . . 152n, obtains the corresponding predetermined metrics from 1541 . . . 154x (where x is a natural number and x=1, 2, 3 . . . ) from each of the sub-processes 1521 . . . 152n thereby generating insights that afford greater transparency to the automated process 150. The metrics 1541 . . . 154x can include one or more of the attributes and the outputs of the sub-processes 1521 . . . 152n. In some examples, custom metrics can be defined within the metrics selector 120 for one or more of the sub-processes 1521 . . . 152n.
The process monitoring system 100 can be provided as a downloadable library including processor-readable instructions that can be executed in parallel with the automated process 150. In an example, the process monitoring system 100 includes can be pre-configured for the automated process 150. The process monitoring system 100 can include a component identifier 110, a metrics selector 120, metrics collector 130, and a summary generator 140. The component identifier 110 identifies the various sub-processes 1521 . . . 152n, that form the automated process 150. The component identifier 110 can include a parser 112 that can parse the code of the automated process 150 to identify the sequence of the sub-processes that make up the automated process 150. Respective component identification tools such as wrapper APIs can be further employed to identify the various process components such as the APIs and other tools that are employed in the sub-processes 1521 . . . 152n. The API type can identify from the import statements, the libraries being used for the executed of the automated process 150. Correspondingly, the process components that are being employed from the libraries can also be identified.
When a sub-process of the plurality of sub-processes 1521 . . . 152n is identified, the metrics corresponding to the sub-process are selected by the metrics selector 120. As mentioned earlier, the metrics selector 120 can be configured to select a subset of the metrics 1541 . . . 154n that correspond to the sub-process. Referring to the example of the automatic conversion of the information in a verbose text document into processor-based instructions, the sub-processes 1521 . . . 152n, can include i) structural analysis of the verbose text document, ii) semantic analysis of the text or information in the verbose text document, iii) retrieval of logic and domain-specific knowledge, iv) processing of the retrieved textual information, logic and domain-specific knowledge by a rule engine and iv) generation of platform specific code for the derived rules. Each of the sub-processes outlined here can have a corresponding, predetermined set of metrics that are to be retrieved.
Prior to the commencement of one of the sub-processes 1521 . . . 152n, or as the sub-process is being executed, the metrics collector 130 begins collecting the values of a set of metrics that were selected by the metrics selector 120 for the sub-process. Various metrics can be collected based on the type of the automated process being monitored. An AI-based automated process which involves data analysis such as automatic processing of health claim can require certain metrics, while a process involved in data conversion such as text to rules conversion as discussed herein can require different types of metrics. Generally, the metrics collected for a process can depend on the industry practice corresponding to the process.
In an example, the metrics collector 130 can access the wrapper APIs configured for the tools used in the sub-process such as one or more of SCIKIT or NLTK (natural language toolkit). In the case of custom metrics, the metrics collector 130 can be configured explicitly via programming instructions including access functions to collect the custom metrics as part of the output from the sub-process. In an example, the metrics collector 130 can parse the code of the automated process 150. In certain automatic processes such as those on Java-based systems, the rules that were fired for a particular decision can be identified and collected. Similarly the user interface (UI) for the Java based system can be obtained. The collection of metrics of a particular sub-process enables human users to understand why the sub-process produced a particular output.
The results from the metrics collector 130 are provided to a summary generator 140 which includes a natural language generator (NLG) for creating a natural language summary 198 based on grammatical and syntactic rules. The summary 198 can be displayed on one of the GUIs 170 that display output from the process monitoring system 100. In an example, the summary generator 140 can employ prebuilt templates for generating the summary. In an example, the raw output from the metrics collector 130 can be directly displayed without processing by the summary generator 140. Such output can be examined by technical personnel such as programmers to identify particular steps in the code that generated a particular output.
By the way of illustration and not limitation, various actions and justifications for the actions are discussed below. If the AI-based automated process 150 relates to a health claim advisor which determines whether or not to pay the claims, one of the actions can involve denying the claim. An action justification can include text matching with “Deny as investigational”. A claim can be pended based on an action justification that the test matches “request for medical records”. Another claim can be paid based on an action justification “because Drools followed rule 1, 13 and 15. The AI-based automated process 150 is configured to produce the recommended action. However, the process monitoring system 100 also produces the action justification thereby providing a reasoned output for user review.
In an example, the summary 198 can also include suggestions based on prior runs of similar processes. For example, if a user sets a learning rate for an ML component that is far away from the range generally associated with the component, a comparison of the learning rate with a predetermined threshold can be used to generate alerts for the learning rates in the summary 198. Similarly inexperienced ML practitioners may be unfamiliar the percentage of data to be divided between test and training data. The summary 198 can provide suggestions regarding the ratio of the training and test data to be used where appropriate.
The introspection layer 200 corresponds to the process monitoring system 100 that enables obtaining the metrics from each of the sub-processes 252 . . . 258. During the data preprocessing that occurs at the data curation 252, information extraction (IE) metrics 202 are collected. In the prioritization 254, analytics are executed over a data set. Accordingly, analytics metrics 204 are collected during the prioritization 254. When the output from the prioritization 254 is processed by the rule engine 256, inferencing logic specific metrics 206 are captured. Also, when NLP/ML are used for the rule engine processing the corresponding the NLP/ML model specific metrics 208 are collected. The benefits calculation 258 can enable collection of analytics metrics 212.
The conversion flow monitoring system 300 enables collecting content metrics 302 including data format, conversion metrics, encoding metrics and document segmentation metrics for the structural analysis sub-process 352. The semantic analysis process 354 employs trained ML/NLP models on the output of the structural analysis process 352. The NLP/ML metrics 304 collected for the semantic analysis sub-process 354 can include ML pre-processing metrics, data split, ML data structures e.g., tracking size and shape of the matrices after transformations, ML class distributions, ML/DL model parameters/hyper-parameters, learning rate, algorithm etc., NLP preprocessing (tokenization, lemmatization, tagging, chunking distribution), NLP custom model features, data distribution, NLP—custom model features, data distribution, supporting language model (porter stemmer, wordnet, etc.), NLP-parse/dependency tree, NLP-information extraction (IE) co-reference, algorithm used and NLP-features extraction. The collection of metrics 304 from the semantic analysis sub-process 354 helps users determine why the semantic analysis process 354 produced a particular output. For example, if it is known that a certain sub-process executed NLP based processing, the metrics 304 collected for the semantic analysis sub-process 354 can provide information such as the kind of tokenization, the kind of tagger used, the language models that were used etc. which enables clarification on why a particular output was generated by the semantic analysis sub-process 354.
The output of the semantic analysis sub-process 354 is employed for logic and domain specific knowledge 356 wherein the NLP/ML output from the semantic analysis sub-process 354 is converted to rules with the retrieved domain knowledge. The domain knowledge is super imposed on the aspects of the language details (input from the semantic analysis sub-process 354) to construct logic that is specific to the domain. Accordingly, inferencing logic detail metrics 306 collected for the logic and domain-specific knowledge retrieval sub-process 356 can include natural language to logic conversion accuracy and domain interface metrics.
When the logic and the domain knowledge from the textual manuals is understood, a rule flow 358 is built. For example, a rule can specify the action that is to be executed with a claim type is ending with digit ‘7’. Another kind of rules can specify if-else type of actions. The information from the textual manual is thus converted into a set of rules 366 which forms the final output of the text to rule conversion process 350. Thus the flow metrics 308 collected for the rule flow sub-process 358 can include logic to process flow conversion accuracy and interface with platform metrics. Therefore, the flow metrics 308 capture the outputs from the decision making sub-process thereby providing transparency to the final output/set of rules 366 produced by the text to rule conversion flow 350. For example, when the text to rule conversion flow 350 relates to a health claim adjudication process, the reasons or cause for the claim to be rejected, pending or paid can be determined from the flow metrics 308.
The output from the building of the rule flow 358 is provided to the platform specific code generation sub-process 362 for converting the rules into code e.g., Python or Java code. The code and inferencing logic metrics 312 that are collected for the platform specific code generation sub-process 362 include logic to code conversion metrics, flow to code metrics and platform interface metrics. The code and inferencing logic metrics 312 thus collected can provide information regarding which of the rules were accurately converted to code and which of the rule flows were not accurately converted into code.
At 410, a free text classifier is employed to process the textual data from the claim 402 received at the input. The metrics 450 that are captured at the step 410 can include the algorithm being used, which in this example, includes Linear Support Vector Classification (SVC), parameters etc., The process flow step n 408 further determines at 412 if sufficient free text is available from the inputted claim 402 to produce a decisive output. The features being used in the textual processing such as bigrams, stopword removal etc. are captured at the step 412. By the way of illustration and not limitation, a pattern matching rule can be employed at 414 for making the determination whether or not to pay so that if the pattern is found in the text the claim is paid, else the claim is rejected or pended. Accordingly, the confidence score associated with the prediction is one of the metrics captured at the step 414. In an example, a decision classifier can be employed to make the decision. The process monitoring system 100 can output information regarding the model, the keyword matches, regex or domino rules and supporting relevant tool information. The Scikitlearn API parameters 450 that are thus captured as step outputs for each of the steps 410, 412, and 414 are displayed as output upon being processed by the summary generator 140 in accordance with the examples outlined below.
A summary which can include the collected values or recommendations based on the collected values is generated at 510. In an example, the summary can be generated from a template. It is determined at 512 if further sub-processes exist for analysis and/or introspection. If at 512, it is determined that further sub-processes exist, then the method returns to 502 to select the next sub-process. If at 512, it is determined that no further sub-processes exist, the method terminates on the end block.
The information extracted from a received claim on the left hand side (LHS) 702 and the introspection data or metrics collected during the processing of the received claim on the right hand side (RHS) 704 in accordance with the examples disclosed herein. The extracted information is analyzed by different sub-processes 706, 708 and 710. The step outputs from each of the sub-processes 706, 708 and 710 are displayed on the RHS 704 of the UI 700. In addition, a summary 712 that corresponds to the final output 156 is also displayed which suggests a solution regarding the claim. In the instance shown on the UI 700, the summary 712 suggests paying the claim and the step outputs of the sub-processes 706, 708 and 710 explain why the health claim advisor is suggesting paying the claim. Disagree 716 and agree 714 buttons are provided to enable the user to validate the final output. In an example, the user valdiation can be further used to train the AI elements used in processing the received claim. If the user disagrees with the summary 712, the health claim advisor or the system executing the AI-based automated process 150 can seek further feedback from the user regarding which if any of the outputs from the processes 706, 708 and 710 cause the user to disagree. Thereby the user can not only make a more informed decision but also provide a more precise feedback as opposed to the feedback the user would have provided without the outputs from the processes 706, 708 and 710. The accuracy of the AI-based automated process 150 can therefore be increased
The computer system 800 includes processor(s) 802, such as a central processing unit, ASIC or other type of processing circuit, input/output devices 812, such as a display, mouse keyboard, etc., a network interface 804, such as a Local Area Network (LAN), a wireless 802.11x LAN, a 3G or 4G mobile WAN or a WiMax WAN, and a computer-readable medium 806. Each of these components may be operatively coupled to a bus 808. The computer-readable medium 806 may be any suitable medium which participates in providing instructions to the processor(s) 802 for execution. For example, the computer-readable medium 806 may be non-transitory or non-volatile medium, such as a magnetic disk or solid-state non-volatile memory or volatile medium such as RAM. The instructions or modules stored on the computer-readable medium 806 may include machine-readable instructions 864 executed by the processor(s) 802 to perform the methods and functions of the process monitoring system 100.
The process monitoring system 100 may be implemented as software stored on a non-transitory computer-readable medium and executed by the one or more processors 802. For example, the computer-readable medium 806 may store an operating system 862, such as MAC OS, MS WINDOWS, UNIX, or LINUX, and code 864 for the process monitoring system 100. The operating system 862 may be multi-user, multiprocessing, multitasking, multithreading, real-time and the like. For example, during runtime, the operating system 862 is running and the code for the process monitoring system 100 is executed by the processor(s) 802.
The computer system 800 may include a data storage 810, which may include non-volatile data storage. The data storage 810 stores any data used by the process monitoring system 100. The data storage 810 may be used to store the received claim information, the various metrics to be collected, the values of the metrics collected and the like.
The network interface 804 connects the computer system 800 to internal systems for example, via a LAN. Also, the network interface 804 may connect the computer system 800 to the Internet. For example, the computer system 800 may connect to web browsers and other external applications and systems via the network interface 804.
What has been described and illustrated herein is an example along with some of its variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the spirit and scope of the subject matter, which is intended to be defined by the following claims and their equivalents.