For a change, I have prepared a rather technical article for all the technology lovers and professionals out there. As a technical project manager, it’s my job to always stay up to date with the new technologies and trends that are out there. This is the only way I am able to provide high quality solutions that guarantee the best result for both the customer and our team. In my self-learning activities, I have found that I spend a lot of time learning about artificial intelligence and researching Plato.
The Plato Research Dialogue System is a framework that can be used to create, train, and evaluate conversational artificial intelligence (AI) agents. Plato is a tool provided by Uber in 2020 that can be used to create conversational agents that support interactions through speech, text, or dialogue. To simplify, there are four main components in Plato:
Take a look at the following picture, which represents exactly what I just mentioned:
Now let me explain to you what these components really mean.
Domain:
There are two elements that make up the domain of the dialogue system:
Dialogue:
Plato facilitates conversations between agents through well-defined concepts in dialogue theory, such as dialogue states and dialogue acts. A Plato agent may need to perform actions not directly related to dialogue (e.g., invoking an API), or actions that communicate information in modalities other than speech. Plato models actions and states as abstract containers from which dialogue acts and the dialogue states are created. If required for specific applications (e.g., multimodal conversational agents), we can have task-specific dialogue acts and states.
Controller:
In Plato, controllers are objects that organize conversations between agents. A controller instantiates the agents, initializes them for each dialogue, passes input and outputs accordingly, and keeps track of statistics.
Agent:
Each conversational application in Plato can have one or more agents. Each agent has a role and a set of components such as NLU (Natural Language Understanding), DM ( Dialogue Management), DST (Dialogue State Tracking), Dialogue Policy, and NLG (Natural Language Generation). An agent could have an explicit module for each of these components, or alternatively, some of these components could be combined into one or more modules.
I have also put together some interesting articles on this topic if you want to learn more about Plato. You can take a look at them HERE and HERE.
The learning process of the Plato framework was integrated into LOAD’s research and development program, whose main goal was to implement user intent determination, entity extraction (e.g., topic, day), language generation, and interaction management. In this context, and with an in-depth study of Plato (since Plato is an open-source framework), we restructured it for our specific needs, whose main objective was the extraction of intentions and entities from a given text received from the user and the generation of his response, as shown in the figure below.
With all the technological development taking place every day, we should not (and cannot) focus only on our comfort zone. Instead, we need to take the initiative to learn new technologies by challenging ourselves to become better. In this article and in conversations happening about digital evolution, we hear more and more the term “artificial intelligence” and the need for it to be present in our daily lives.
With this in mind, and as true technology lovers, we at LOAD always want to be on the cutting edge of technology and feel the urge to continue researching to provide answers to the future needs of our customers and expand the internal knowledge of our team.