To change things a little bit, I have prepared a more technical article for all the tech lovers and professionals out there. As a Technical Project Manager, it is my job to stay always up-to-date with all the new technologies and trends out there. Only then, I will be able to provide quality solutions to guarantee the best outcome, both for the client and for our team. Thus, following my self-learning activities, I realized that I have been spending a lot of my time learning about Artificial Intelligence and exploring 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 made available by Uber, in 2020, that can be used to create conversational agents, supporting interactions through speech, text, or dialogue. To simplify: in Plato, there are four main components:
Take a look at the image below that represents exactly what I’ve mentioned right now:
Now, let me explain to you what those components truly mean.
There are two elements that constitute the domain of the dialogue system:
Plato facilitates conversations between agents via 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. call an API) or actions that communicate information in modalities other than speech. Plato models Actions and States as abstract containers out of which Dialogue Acts and the Dialogue States are created. If needed for specific applications (e.g. multimodal conversational agents) we may have task-specific Dialogue Acts and States.
In Plato, controllers are objects that organize the conversations between the agents. A controller instantiates the agents, initializes them for each dialogue, passes input and output appropriately, and keeps track of statistics.
Every conversational application in Plato could 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 one explicit module for each one of these components or alternatively, some of these components could be combined into one or more modules
The learning process of the Plato framework was integrated into LOAD’s R&D program which had as its main objective the implementation of the determination of users’ intentions, the extraction of entities (e.g. topic, day), the language generation, and interaction management. In this context, and with an in-depth study of Plato (being Plato an open-source framework) we restructured it for our specific needs, which had as its main objective the extraction of intentions and entities from a given text obtained by the user and the generation of their response as seen in the image below.
With the whole technological evolution happening every day, we should not (and can’t) be focused solely on our comfort zone. We must, instead, take the initiative to learn new technologies by challenging ourselves to do better. In this article, and in the conversations happening about digital evolution, we hear more often about 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, at Load, we like to be always up to date with the technological world and we feel the urge to continue exploring in order to give answers to our customers’ future needs and increase the internal knowledge of our team.