Tabla de contenidos

Introducción

Mientras construía prototipos con diferentes plataformas y entornos de chatbot, vi patrones claros que comenzaban a surgir. Se podría ver cómo la mayoría de las plataformas tienen un enfoque muy similar a la IA conversacional.

Aunque uno podría liderar al otro en ciertos elementos, cada uno estaba tratando de resolver problemas comunes de una manera muy similar.

En esta proceso de búsqueda constante, Rasa destaca en muchas áreas gracias a su enfoque único. Por ello, a continuación voy a destacar ocho cuestiones que, desde mi punto de vista, esta plataforma hace realmente bien:

1: Facilidad de acceso

Software

Rasa es una herramienta muy abierta y generosa en términos de acceso a software e información. Teniendo en cuenta eso, surge la pregunta, ¿cómo ganan dinero? La respuesta puedes en contrarla aquí en detalle.

¿Rasa, como empresa, podría haber sido comercialmente agresiva? Sin lugar a duda. ¿Habrían ganado más dinero? Seguramente.

Pero entonces se perderían los elementos que atraen a tantos de los usuarios actuales.

Nuestra misión es capacitar a todos los creadores para que creen asistentes de IA que funcionen para todos.

Para que eso suceda, nuestras herramientas deben ser accesibles para todos los usuarios, y todos los usuarios deben tener control total sobre sus datos. ~ Rasa

Uno de mis primeros prototipos Rasa: RASA Interactive Learning and Conversation Visualization.

Uno de mis primeros prototipos Rasa: RASA Interactive Learning and Conversation Visualization.

Con Rasa no necesitas un hardware especializado, GPU, etc.

No hay que desarrollar o tener obligatoriamente un servicio en la nube. Puedes ejecutarlo localmente en tu entorno. No necesitas montañas de datos de entrenamiento (dos ejemplos por intención es el mínimo) ni horas para crear y entrenar un modelo.

Por lo general, puedes comenzar con 15 a 20 ejemplos de expresiones de usuario por intención.

No es necesario comprar ningún software. No se requiere un experto en NLU / NLP.

¿Cuál es la forma más eficiente de comenzar en un Windows con Rasa?

  • Instalar Anaconda
  • Crea un ambiente anaconda
  • Instalar Python, ujson, tensorflow, Rasa, Visual C ++,
  • Activar:
rasa init  rasa train  rasa shell

¡Hecho esto puedes comenzar a chatear con tu chatbot en la command line!

Ocultar la complejidad

Es un verdadero arte agregar funcionalidades a tu software, al mismo tiempo que simplificas la interfaz de usuario.

La mayoría de las organizaciones fracasan en esto.

La mayoría de los entornos de chatbots crecen enormemente en complejidad a medida que maduran y agregan funcionalidades. Un ejemplo de ello es la Amazon Alexa Console y especialmente las conversaciones de Alexa. También IBM Watson Assistant.

La belleza de algo como GPT-3 es la simplicidad y facilidad de uso de la nueva API.

Rasa-X y CDD entran en la misma categoría. A medida que Rasa crece en funcionalidad, el entorno del usuario se vuelve más simple e intuitivo. Lograr esto no es tarea fácil.

Documentación

Rasa se ha acercado a la IA conversacional desde un nivel de base y ha iniciado una revolución. No se ha creado en salas de reuniones, ni juntas de empresarios, sino con desarrolladores entusiastas y aquellos dispuestos a atreverse a cambiar las reglas.

Una demostración del idioma afrikáans con Tensorflow Pipeline

Rasa se ha convertido en la plataforma de muchos proyectos de hackathon.

Esto ha llevado a seed proyects en organizaciones más grandes y Rasa ganando tracción casi a través de la ósmosis.

Con documentación, tutoriales, clases magistrales, blogs y foros… la ayuda es abundante y está creciendo.

La apuesta de los desarrolladores se inició hace muchos años y creó un entorno de experimentación y aprendizaje.

Personas

Está claro que el equipo de Rasa está compuesto por algunas de las personas más brillantes. Esto es evidente desde diferentes puntos de vista, y nuevamente la apertura y el intercambio de información, las mejores prácticas y los planes futuros son asombrosos.

2: Desarrollo impulsado por la conversación o Conversation Driven Development

Rasa ha adoptado un enfoque muy innovador y único para la mejora continua de los chatbots. A este enfoque lo han denominado Desarrollo impulsado por conversaciones ( Conversation Driven Develpment ). El habilitador o la herramienta para esto ha sido denominada Rasa-X.

Rasa-X Is A Unique Approach To Continuous Chatbot Improvement

And Why Conversation Driven Development Is The Future

medium.com

Centrándose en la superposición

La superposición entre lo que dice el usuario y lo que diseñó debe crecer. Los dos círculos deben enfocarse, hasta que solo haya un círculo.

La superposición es donde tienen lugar las conversaciones exitosas y donde se construye la ventaja competitiva de tu empresa. ¿Es allí donde reside el valor de tu conjunto de datos?

Rasa-X es una herramienta ideal para hacer crecer la superposición desde el principio.

Aplicaciones móviles en comparación con chatbots

Las aplicaciones móviles y los chatbots son opuestos en sus curvas de tiempo / esfuerzo. Hay un atractivo en la facilidad con la que se puede implementar un chatbot. Sin embargo, cuando comienzan las conversaciones con los clientes, comienza lo complicado. Una vez en producción, comienza un complejo camino en los procesos de entrenamiento y crecimiento.

Esta curva empinada se conquista mejor centrándose en las conversaciones y mejorando el chatbot desde la perspectiva de las conversaciones.

La mayoría de los entornos de NLU tienen herramientas existentes para mejorar la conversación. Estas herramientas a menudo se caracterizan por estos rasgos:

  • Nivel alto
  • Enfoque estadístico
  • Abultar
  • Centrado en métricas
  • Difícil de dirigir

Una vez que hayas tirado de todas las palancas y ajustado la configuración, despliega tu modelo y esperas con ansiedad para ver los resultados.

Esto es lo opuesto a CDD, que te permite mejorar las conversaciones y el entrenamiento basándose en conversaciones reales.

3: Entidades en evolución

Contextual y compuesto

Uno de los puntos fuertes de Rasa desde el principio fueron las entidades compuestas y contextuales.

Las intenciones pueden verse como verbos y las entidades como sustantivos. La funcionalidad de phras slot filling también captura entidades.

Contextualmente significa que el chatbot no reconoce las entidades al pedirle al usuario directamente o que, simplemente, las encuentra a través de una lista de búsqueda finita. Más bien, las entidades se detectan en función de su contexto dentro del enunciado u oración.

Este enfoque está relacionado en cómo nosotros, como humanos, detectamos entidades en una conversación.

Las entidades compuestas significan que puedo capturar varias entidades por intención o expresión del usuario. En un escenario en el que el usuario te brinda toda la información en un solo enunciado, tiene la capacidad de capturar todos esos valores de una vez.

Esto se traduce en menos turnos de diálogo y un chatbot más eficiente.

Roles de entidad de Rasa

El punto de partida de las entidades es que puedes agregar etiquetas a las palabras. Por lo tanto, puedes definir conceptos en tus datos.

En el siguiente ejemplo, tienes diferentes tipos de ciudades definidos con otras entidades.

## intent:travel_details- I want to travel by [train](travel_mode) from [Berlin](from_city) to [Stuttgart](to_city) on [Friday](date_time)

Esto no es elegante, ya que es necesario crear varias entidades que tendrán un mismo valor, el de ciudad. Y en este ejemplo, la ciudad tiene dos roles, la ciudad de salida y la ciudad de llegada. Con Rasa, puedes definir estas entidades con roles específicos en el archivo nlu.md de su proyecto.

## intent:travel_details- I want to travel by [train](travel_mode) from [Berlin]{"entity": "city", "role": "depart"} to [Stuttgart]{"entity": "city", "role": "arrive"} on [Friday](date_time)

La salida se ve así:

I want to travel by train from Berlin to Stuttgart on next week Wednesday.  {   "intent": {   "name": "travel_details",   "confidence": 0.9981381893157959   },   "entities": [   {   "entity": "travel_mode",   "start": 20,   "end": 25,   "value": "train",   "extractor": "DIETClassifier"   },   {   "entity": "city",   "start": 31,   "end": 37,  "role": "depart",   "value": "Berlin",   "extractor": "DIETClassifier"   },   {  "entity": "city",   "start": 41,   "end": 49,  "role": "arrive",   "value": "Stuttgart",   "extractor": "DIETClassifier"   }   ],   "intent_ranking": [   {   "name": "travel_details",   "confidence": 0.9981381893157959   },

Grupos de entidades de Rasa

Esta función permite que las entidades se agrupen con una etiqueta de grupo específica. La mejor manera de explicar esto es con un ejemplo…

Nuevamente, definido en tu archivo /data/nlu.md :

## intent:teams- The first team will be [John]{"entity": "teamMember", "group": "1"}, [Mary]{"entity": "teamMember", "group": "1"} and [Geoff]{"entity": "teamMember", "group": "1"} and the second groupto travel will be [Martha]{"entity": "teamMember", "group": "2"}, [Adam]{"entity": "teamMember", "group": "2"} and [Frank]{"entity": "teamMember", "group": "2"}.

Y la salida de Rasa NLU:

The first team will be John, Mary and Geoff and the second group to travel will be Martha, Adam and Frank.  {   "intent": {   "name": "teams",   "confidence": 0.9999754428863525   },   "entities": [   {   "entity": "teamMember",   "start": 23,   "end": 33,   "group": "1",   "value": "John, Mary",   "extractor": "DIETClassifier"   },   {   "entity": "teamMember",   "start": 38,   "end": 43,  "group": "1",   "value": "Geoff",   "extractor": "DIETClassifier"   },   {   "entity": "teamMember",   "start": 83,   "end": 95,   "group": "2",   "value": "Martha, Adam",   "extractor": "DIETClassifier"   },   {   "entity": "teamMember",   "start": 100,   "end": 105,   "group": "2",   "value": "Frank",   "extractor": "DIETClassifier"   }

Cabe señalar… En general, se están introduciendo estructuras de datos en las Entidade . Las entidades pueden tener subentidades y sub-subentidades y se pueden descomponer. Esta tendencia es visible en Rasa, la herramienta de conversaciones de Alexa y Microsoft LUIS. Rasa lo llama Entidades, Roles y Grupos. AWS lo llama Slots with Properties. Y Microsoft LUIS, entidades que se pueden descomponer.

4: Desaprovechamiento de la máquina de estados

Hay dos áreas en las que los chatbots tendrán que avanzar significativamente para ser realmente conversacionales y manejar conversaciones no estructuradas de varios turnos. La única área son entidades complejas y compuestas.

El segundo, pero más importante, es la state machine, el flujo de diálogo o también denominado sistema de gestión de diálogo. Este es el árbol de nodos con bloques de decisión en cada nodo que decide dónde debe ir la conversación en función de un conjunto de condiciones.

Este es el talón de Aquiles de las plataformas de chatbot. Es el único elemento que obliga al chatbot a ser flexible y resistente. Mientras que otros proveedores de plataformas intentan optimizar la gestión del estado del diálogo, Rasa está haciendo lo contrario. Lo están despreciando.

No puedes escribir reglas para cada ruta de diálogo posible. La yuxtaposición es evidente; queremos presentar la IA conversacional, pero con un gran conjunto de reglas para administrar nuestro árbol conversacional.

Rasa utiliza el aprendizaje automático para aprender patrones de conversación y predecir la respuesta; basado en el contexto, etc. Los datos de entrenamiento se presentan en forma de ejemplos de conversaciones definidas en un formato simple.

5: Lenguaje agnóstico

Los grandes proveedores de chatbots en la nube prevén un conjunto de idiomas. Estos idiomas se eligen en función de lo que tenga sentido comercial. Un dialecto no tiene posibilidades de ser implementado. Y para una gran parte del mercado, esto es un requisito.

Ejemplo de una canalización Rasa para cualquier idioma que no sea inglés:

language: "xx" # your two-letter language codepipeline:  - name: WhitespaceTokenizer  - name: RegexFeaturizer  - name: LexicalSyntacticFeaturizer  - name: CountVectorsFeaturizer  - name: CountVectorsFeaturizer   analyzer: "char_wb"   min_ngram: 1   max_ngram: 4  - name: DIETClassifier   epochs: 100  - name: EntitySynonymMapper  - name: ResponseSelector  epochs: 100

Otras vías de aprendizaje automático exigen conocimientos especializados, hardware o son difíciles de empaquetar o producir.

Con Rasa puedes entrenar a tu chatbot en cualquier idioma que elijas. O puede optar por utilizar las incrustaciones de BytePair con acceso a 275 idiomas.

Choosing a Pipeline

In Rasa Open Source, incoming messages are processed by a sequence of components. These components are executed one…

rasa.com

BytePairFeaturizer

This featurizer is a dense featurizer. If you’re interested in learning how these work you might appreciate reading the…

rasahq.github.io

6: Facilidad de configuraciones y cambios en pipelines.

La experimentación y las iteraciones de prueba rápida se facilitan por las siguientes razones:

  • Instalación a través de entornos virtuales (Anaconda por ejemplo).
  • Ejecuta múltiples entornos virtuales.
  • Instalación rápida.
  • Datos de entrenamiento mínimos y tiempo de entrenamiento corto.
  • Lista de modelos y opciones.
  • Ejemplos de configuración y canalización.

Puedes personalizar completamente tu NLU pipeline combinando

componentes en el archivo config.yml . Puedes cambiar esto sobre la marcha para probar el rendimiento. Entonces puedes elegir un punto de partida, y desde allí personalizar y ajustar tu configuración.

Esta es una gran ventaja de usar Rasa, ya que puedes ajustar configuraciones y parámetros y posteriormente probar el rendimiento.

7: No se requieren personas especializadas o dedicadas

Rasa está democratizando el acceso y la disponibilidad del software, los recursos y la capacitación de NLU. Como se mencionó anteriormente, si bien Rasa se vuelve más complejo y está cargado de funciones, su interfaz de usuario está simplificada.

Los elementos que constituyen el marco del chatbot están claramente segmentados y son fáciles de entender. Con una formación mínima, el personal puede estar al día con el desarrollo y otros entornos.

8: Control total de tus datos

Cuando se trata de tus datos, hay dos aspectos que deben tenerse en cuenta. En primer lugar, dónde se alojan tus datos . Algunos países tienen leyes que prohíben que los datos personales se almacenen fuera del país. Los proveedores de la nube ofrecen una variedad de ubicaciones geográficas.

El segundo aspecto es que las organizaciones de NLU / P quieren que “entregues” tus datos. Los modelos que construyen con tus datos no están 100% bajo tu control.

Se requiere un estudio de viabilidad y meses de recopilación de datos, etc., etc.

Rasa te permite instalar en cualquier lugar que desees; puedes comenzar en tu portátil si lo deseas. Se requieren datos mínimos para iniciar el proceso y los “nuevos” pueden estar capacitados y lsito para “ejecutarlos”…

Conclusión

Hay algunas empresas que afirman tener una salsa secreta de inteligencia artificial que cambiará el mundo de forma irrevocable.

De ahí por qué encuentro el enfoque de Rasa realista, honesto, abierto y a largo plazo.

Por Cobus Greyling

Rasa Hero. NLP / NLU, Chatbots, Voz, UI / UX conversacional, Diseñador CX, Desarrollador, Interfaces de usuario ubicuas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *