Technology Fridays: An Overview of RASA, The Best NLP Platform You Never Heard Of
Welcome to Technology Fridays! Today, I would like to talk about one of my favorite natural language processing(NLP) platforms that, inexplicably, is still flying under the radar compared to incumbents like IBM, Amazon, Google or Microsoft. I am talking about RASA.
If you are building conversational interfaces in real world solutions, you are likely to start with relatively simple dialogs that can be modeled as a one-page flow chart. For that type of scenarios, its incredibly tempting to go with the NLP stacks from cloud AI incumbents such as Microsoft Cognitive Services, AWS Lex, Watson Assistant or Google’s DialogFlow. After all, those solutions seem to encompass everything you are ever going to need on a conversational solution. However, very quickly NLP scenarios start experiencing challenges that seem to fall outside the domain. Let me give you an example of my favorite challenges with this type of NLP cloud services:
1) Dialogs need complex integration with external systems.
2) The conversations grow and start producing a large number of calls to the cloud NLP services making the cost unmanageable.
3) Developers are constantly changing the dialogs to accommodate new interactions.
4) The conversations grow to a level that can’t be modeled as a simple flow chart.
These challenges are very common in large scale NLP solutions. Plain and simple, most developers quickly realize that most real world conversations can be modeled as a flow chart. Think about it, part of the magic of human conversations is that there are infinite ways to arrive to the same point or express the same intention. RASA is an NLP platform that tries to address these challenges.
The RASA platform is an open source, Python-based NLP stack that enables the implementation of highly sophisticated conversational interfaces. In principle, RASA moves away from the traditional flow chart model of natural language dialogs by introducing probabilistic models that control the flow in a conversation. The RASA platform is based on two fundamental components:
· RASA NLU: An open source stack for intent classification and entity extraction. RASA NLU can be seen as an alternative to popular NLP services such as Microsoft LUIS or Google’s DialogFlow. The main advantage of RASA NLU over those stacks is that you have access to the entire Python processing pipeline and can extend it with your complex custom logic. RASA NLU offers infrastructure capabilities such as model persistence or HTTP access that are required on conversational solutions in the real world.
· RASA Core: This is the flow control engine of the RASA platform. Fundamentally, RASA core processes and entities, intents or context generated by RASA NLU and decides what actions to take. Those actions are not based on prescriptive instructions coded in flow chart but on probabilistic models that allow the conversations to evolve organically without requiring constant modifications. Developers can enrich dialogs by creating custom interprets, policies or other highly sophisticated elements included in the RASA Core stack.
The different between RASA and other NLP stacks is the difference between writing rules-based systems or neural networks. In traditional NLP platforms, the flow of a conversation is hardcoded in static if-then rules whether the RASA platform uses techniques such as reinforcement learning to actively train models that can guide the dialog. From that perspective, RASA leverages deep learning techniques not only to recognize entities and intents in a dialog but to also to control its flow.
RASA is delivered in two fundamental modes. RASA Stack is an open source offering that includes the core capabilities of RASA Core and RASA NLU. The RASA Platform is a commercial offer that extends RASA Stack with capabilities such as model monitoring, support, etc.
RASA competes with traditional NLP cloud services such as AWS Lex, Watson Assistant, Microsoft LUIS, Facebook Wit or Google DialogFlow. RASA is positioning itself as the open source, on-premise and highly extensible alternative to those incumbent platforms. At least initially, there seems to be a strong need in the market for a platform like RASA when comes to the implementation of highly sophisticated NLP solutions.