During my internship at Amazon Alexa, I created a tool called Hadron Pause-Debug Execution Tool, which is an improved version of the existing Hadron Simple Executor.
At Amazon, I was part of the Natural Language Understanding (NLU) engine organization. NLU Engine is the core of Alexa, which processes the requests made by the user. When the user speaks to Alexa device, the voice content is sent to Automatic Speech Recognition (ASR) Engine which performs speech to text conversion and sends the request to NLU Engine. Within NLU org, I was in a team who worked on a project called Hadron. Hadron is a self-service framework which aims to accelerate Machine Learning experiments on NLU Engine. Hadron breaks down the NLU Engine into discrete components which orchestrated by Directed Acyclic Graphs (DAG) and this simplifies the ability to iterate over engine components during any modifications. This also creates an environment for speeding up the research and trying out different statistical models on the NLU Engine.
hadron simple executor
Hadron consists of different executors that break down the tasks to be executed into different steps and runs them. Simple Executor is one of them. It creates a workflow from the config file. The config file specifies the executor to be used, different steps and the dependencies between each of these steps. It creates a workflow which is a graph from the steps mentioned in the config file. This is provided as the Simple Executor which takes the outermost step (node of the node) as the current vertex and begins execution by iterating over its dependencies and recursively executing all the dependent steps and returning the output to the calling parent step.
Hadron PAuse-debug execution tool
Simple executor functions as expected but once it’s launched, it is difficult to understand what is happening internally. If the executor returns an unexpected result, it is difficult to debug which step is throwing the error. Hence I worked on creating a debugging tool called Hadron Pause-Debug Execution Tool, which provides a UI for the user to track the internal functioning of the executor, review the steps before launching the execution, rewind any step execution and edit the values returned by any step and rerun the steps. This provides the user (Machine Learning Scientists and Researchers) to understand how their models are working on the NLU Engine and if unexpected errors are thrown, where exactly to fix them.
PAUsable simple executor
The core of the Hadron Pause-Debug Execution Tool is the Pausable Simple Executor. It is the modified form of the existing Simple Executor. This pausable executor has the capability to perform partial execution of the workflow, this enabling the features to review outputs before completing entire workflow execution.