Tabla de contenidos
Introducción
“Damos forma a nuestras herramientas y, a partir de entonces, nuestras herramientas nos dan forma a nosotros”. —John Culkin (1967)
Tomar decisiones tecnológicas astutas en las primeras fases de creación de tu chatbot tiene un impacto significativo en cuál será la trayectoria de tu asistente.
Elige y dale forma a tus herramientas sabiamente. Porque, más adelante en el proceso, esas herramientas darán forma e influirán en la forma en que planificas, desarrollas y escalas tu chatbot. Los impedimentos suelen estar relacionados con el sistema o el marco elegido.
Las herramientas y marcos de desarrollo de chatbots se pueden dividir en cuatro categorías, aproximadamente:
Categoría 1
El código abierto, herramientas de NLP más técnicas y marcos de desarrollo de chatbot. Por lo general, estas herramientas:
- Se puede instalar en cualquier lugar
- Tiene arquitectura abierta
- Fuente abierta
- Sin interfaz gráfica de usuario o limitada
- Archivo de configuración y centrado en el código profesional
- Enfoque de Machine Learning
- Mayor barrera de entrada
- Escala correctamente
- Exige una planificación técnica astuta para la instalación y la gestión operativa
- A menudo se utiliza como tecnología habilitadora subyacente por el software de Categoría 3
- Se pueden desarrollar nuevas funciones y mejorar la plataforma
Categoría 2
- A menudo utilizado por ofertas comerciales a gran escala
- Basado en la nube
- En algunos casos, se pueden seleccionar regiones geográficas específicas
- Visto como apuestas seguras para las grandes organizaciones
- Las soluciones van desde pro-code o low-code hasta sin código
- Barrera de entrada más baja
- GUI centrado
- Poca o ninguna percepción o control de lo que sucede debajo del capó
- Poca o ninguna influencia del usuario en la hoja de ruta del producto
- Gestión de estado de diálogo basada en reglas rígidas
- El costo generalmente no es negociable
- Enfocado en la colaboración y el desarrollo del diseño grupal
Categoría 3
- Estas son alternativas independientes para la IA conversacional, que proporcionan un producto encapsulado
- La tecnología habilitadora debajo del capó a menudo no se da a conocer
- Proveedores independientes de soluciones alternativas
- Construido con frecuencia usando herramientas NLP de código abierto
- A menudo se siguen enfoques innovadores para los desafíos del diseño, desarrollo y gestión del estado de diálogo
- Enfoque de código bajo a sin código
- Existe la posibilidad de que estas empresas sean adquiridas
- El precio suele ser más negociable
- Es más probable que se atiendan las solicitudes de características
- Bajar la barrera de entrada y ponerse en marcha
Categoría 4
- Herramientas de comprensión y procesamiento del lenguaje natural
- El texto o las conversaciones se pueden analizar por intención, entidades con nombre, entidades definidas personalizadas
- A menudo, se pueden realizar tareas como resúmenes, extracción de palabras clave, detección de idioma, etc
- Las herramientas GUI de anotación de datos y mejora de datos de entrenamiento están disponibles en algunos casos
- También herramientas para gestionar datos de entrenamiento
- Fácilmente accesible, pero con una barrera técnica de entrada más alta
- Ideal para un paso alto de NLP en la entrada del usuario antes de NLU
- No es un marco de desarrollo de chatbot
- No incluye funciones como gestión de estado de diálogo, gestión de respuesta de chatbot, etc
- Enfocado en implementaciones de procesamiento de lenguaje más amplias y no solo en agentes conversacionales
- A menudo se utiliza para el procesamiento de texto conversacional fuera de línea y en tiempo no real
- Utilizado a menudo como tecnología subyacente por el software de Categoría 3
Descripción general del entorno de desarrollo
Los entornos son generalmente muy similares en su enfoque de las herramientas disponibles para crear una interfaz conversacional.
Teniendo en cuenta lo que está disponible, los entornos de desarrollo de chatbot aún se pueden segmentar en 4 grupos distintos para las Categorías 1 y 2 mencionadas anteriormente.
Siendo estos:
- Ofertas comerciales líderes en la nube
- Herramientas NLU / NLP (en su mayoría de código abierto)
- La vanguardia y el borde
- El Use-the-Cloud-You’re-In
“¡Nuestra Era de Ansiedad es, en gran parte, el resultado de tratar de hacer los trabajos de hoy con las herramientas de ayer!” -Marshall McLuhan
Categoría 1
MindMeld se encuentra en el redil de Rasa en términos de ser un marco completo de desarrollo de chatbot que se puede instalar en cualquier lugar.
MindMeld se fundó en 2011 y fue adquirida por Cisco en 2017. Posteriormente, Cisco anunció que abriría la plataforma de IA de conversación MindMeld.
Hay bastante actividad en MindMeld GitHub. Sin embargo, MindMeld 4.3 se lanzó en julio de 2020.
El último paquete se lanzó en octubre de 2020… solía haber una cadencia de dos a tres paquetes por año. Aparentemente hay una desaceleración de lanzamientos y paquetes. La instalación de MindMeld en una instancia de Ubuntu es sencilla y hay disponible una serie de aplicaciones de ejemplo de blueprint.
MindMeld es un marco de Machine Learning basado en Python para IA conversacional. Las bibliotecas de código abierto que se utilizan incluyen Tensorflow, scikit-learn y NumPy.
Elasticsearch se utiliza para potenciar la parte de preguntas y respuestas de MindMeld.
Los datos se pueden estructurar en un formato JSON y se pueden buscar mediante el uso de Elasticsearch. Esto actúa como un recurso de base de conocimiento disponible dentro de MindMeld.
Rasa sigue un camino muy singular en términos de querer desaprobar la máquina de estado con sus flujos/árboles de diálogo codificados.
Junto con su Conversation Driven Design (CDD) en forma de Rasa-X, esta es una opción muy convincente.
Sus entidades son conscientes del contexto y siguen un enfoque en el que las entidades y las intenciones realmente se fusionan.
Las entidades compuestas son parte de la oferta. Las entidades se pueden segmentar según roles y grupos.
Se ha anunciado e iniciado la desaprobación de las intenciones.
En función de su expansión, financiación, defensa de los desarrolladores y eventos, esta es una empresa a tener en cuenta.
Con suerte, los jugadores más grandes los emularán. Uno de sus puntos fuertes es la defensa de los desarrolladores y ser la tecnología elegida para los proyectos de semillas.
RASA ha logrado crear seguidores leales de desarrolladores.
El 28 de julio de 2021, NVIDIA Jarvis pasó a llamarse NVIDIA Riva. Siempre pensé que el nombre Jarvis ya se usaba demasiado. La buena noticia es que las tecnologías principales, el rendimiento y la hoja de ruta permanecen sin cambios.
NVIDIA Riva es un SDK acelerado por GPU para desarrollar aplicaciones de IA conversacionales multimodales.
Según NVIDIA, los únicos cambios desde la perspectiva del usuario:
- El nombre «Jarvis» se reemplazó por «Riva» en las API, los contenedores NGC y otros recursos para desarrolladores.
- Las API más antiguas y las aplicaciones que usan el término «Jarvis» seguirán funcionando, pero estas API quedarán obsoletas en favor de las nuevas API. Por lo tanto, es necesario pensar en una estrategia de migración.
- Los logros de rendimiento y las optimizaciones permanecen sin cambios con este cambio.
- Pronto estará disponible una nueva versión de Transfer Learning Toolkit que utiliza Riva en lugar de las API de Jarvis.
La atención se centra en la baja latencia, menos de 300 milisegundos, y las demandas de alto rendimiento.
Es una solución de inteligencia artificial conversacional de alto rendimiento que incorpora señales de voz y visuales; a menudo referido como la velocidad de la cara. La velocidad de la cara incluye detección de la mirada, actividad de los labios, etc.
El aspecto multimodal de Riva se entiende mejor en el contexto de dónde NVIDIA quiere llevar a Riva en términos de funcionalidad.
Esto incluye:
- ASR (reconocimiento automático de voz) / STT (voz a texto)
- NLU (comprensión del lenguaje natural)
- Reconocimiento de gestos
- Detección de actividad de labios
- Detección de objetos
- Detección de mirada
- Detección de sentimiento
Una vez más, lo emocionante de esta colección de funciones es que Riva está preparada para convertirse en un verdadero agente conversacional.
DeepPavlov se encuentra definitivamente en el extremo superior del espectro; siendo un framework nativo/pro-code con un enfoque de machine learning.
DeepPavlov se refiere a un marco semántico. Esto incluye la comprensión del lenguaje natural, que abarca la detección de dominios, la intención y las entidades.
En el mundo de DeepPavlov, un agente digital está constituido por una colección de habilidades, que es administrada por un Administrador de habilidades.
- Una habilidad cumple con el objetivo del usuario en un dominio particular.
- Un Modelo es cualquier modelo de NLP que no necesariamente se comunica con el usuario en lenguaje natural.
- Los componentes son partes funcionales reutilizables de un modelo o habilidad.
- Hay modelos basados en reglas y modelos ML.
- Los modelos ML se pueden entrenar de forma independiente y en un modo de extremo a extremo que se unen en una cadena.
- El Skill Manager realiza la selección de la habilidad correcta para generar la respuesta.
- Un encadenador crea una canalización modelo a partir de componentes heterogéneos (basado en reglas/ML/DL).
Categoría 2
Los principales entornos comerciales de nube atraen a clientes y usuarios únicamente por su:
- destreza y presencia en el procesamiento del lenguaje natural,
- facilidad de uso sin instalación y
- gestión del medio ambiente.
Entre estos cuento IBM Watson Assistant, Microsoft Bot Framework/Composer/LUIS/Virtual Agents, Google Dialog Flow etc.
Las empresas establecidas gravitan hacia estos entornos, a un costo significativo, por supuesto. Estos se ven como una apuesta segura, para cumplir con sus requisitos de IA conversacional. Son vistos como proveedores de herramientas de chatbot en sí mismos.
El escalamiento de cualquier solución empresarial no será un problema y el desarrollo continuo y el aumento de las herramientas son un hecho.
Abundan los recursos con material técnico, tutoriales y más. No puedo evitar sentir que Amazon Lex con Oracle Digital Assistant (ODA) se encuentra en este grupo. Mi sensación es que alguien no optará fácilmente por ODA o Lex si no tiene un vínculo existente con Oracle o AWS desde la perspectiva de la nube.
Especialmente si el archivo adjunto existente es Oracle Cloud u Oracle Mobile Cloud Enterprise. O con AWS a través de Echo y Alexa.
Otro impedimento con la AOD es el coste. El acceso gratuito juega un papel muy importante en la adopción por parte de los desarrolladores y en la obtención de esa masa crítica por parte de la plataforma. Hemos visto esto con IBM siendo muy accesible en términos de su nivel gratuito con una gran cantidad de funcionalidades.
Microsoft ha recorrido un largo camino en herramientas más accesibles, especialmente con entornos de desarrollo. Google Dialogflow también es popular y, a menudo, un punto de partida para las empresas que exploran NLU y NLP.
Categoría 4
🤗 HuggingFace… Si una empresa puede reducir la barrera de entrada para la IA en general y la IA conversacional en particular, seguramente habrá interés. La facilidad de acceso inicial debe ser doble:
- Técnica y
- de coste.
Obviamente, también al presentar una propuesta de valor convincente. Ser capaz de acceder y experimentar con el software a través de Jupyter Notebooks sin costo alguno, sin demasiados requisitos de conocimientos técnicos, es importante para crear una masa crítica en la adopción.
Es por eso que 🤗 HuggingFace está prosperando con su biblioteca de código abierto y de fácil acceso para una serie de tareas de procesamiento de lenguaje natural.
Hay similitudes sorprendentes en la funcionalidad de NLP y GPT-3 y 🤗 HuggingFace, y este último obviamente lidera en las áreas de funcionalidad, flexibilidad y ajuste.
Los modelos preentrenados para tareas de comprensión del lenguaje natural (NLU) permiten la creación rápida de prototipos y la funcionalidad instantánea. El aprendizaje por transferencia es una técnica para entrenar un modelo de machine learning para una tarea utilizando el conocimiento de otra tarea.
🤗 HuggingFace está democratizando la NLP, esto se está logrando actuando como catalizador y haciendo accesible el trabajo a nivel de investigación en NLP a simples mortales.
Es importante entender 🤗 HuggingFace es una empresa de resolución de problemas de procesamiento de lenguaje natural, y no una empresa de marco de desarrollo de chatbot per se.
Sus canalizaciones y modelos se pueden usar para aumentar un marco de chatbot para realizar diversas tareas. Sin embargo, elementos como la implementación operativa y la gestión de intenciones y entidades no forman parte de su ámbito. Junto con el desarrollo y la gestión del diálogo.
spaCy es una biblioteca gratuita de código abierto para el procesamiento avanzado del lenguaje natural (NLP) en Python.
El procesamiento y la comprensión del lenguaje natural pueden ser livianos y fáciles de implementar. Está al alcance de cualquiera crear algún código de Python para procesar la entrada de lenguaje natural y exponerlo como una API.
spaCy es una herramienta de NLP y no un marco de desarrollo de chatbot.
No admite scripts de diálogo, NLG, gestión de estado de diálogo, etc.
Pero, lo que hace que spaCy sea aún más interesante es que se puede implementar como una API de procesamiento de lenguaje que ayuda a la implementación de un chatbot existente. Especialmente en los casos en que los usuarios envían una entrada más larga, el chatbot funcionará bien solo con un lapso o tokens específicos de la expresión.
Además, se puede utilizar para el procesamiento posterior sin conexión de las conversaciones de los usuarios.
Positivos
- Rápido y fácil de empezar a crear prototipos
- Excelente documentación y tutoriales
- Se pueden entrenar modelos personalizados
- Buen recurso para servir como introducción a la NLP
- Buena vía para familiarizarse con los conceptos básicos de la NLP
Consideraciones
- Se requieren grandes conjuntos de datos para entrenar modelos personalizados
- Las implementaciones complejas pueden volverse muy técnicas
- Los idiomas menores pueden representar un desafío
Rasa NLU API… Existe la creencia común de que cuando se trata de procesamiento de lenguaje natural (NLP), estás a merced de los gigantes de la computación en la nube. Estos gigantes son IBM, AWS, Microsoft y Google; para nombrar unos pocos.
¡La buena noticia es que no lo eres!
Otro desafío cuando se trata de NLP es que, a menudo, las organizaciones no quieren que sus datos se transfieran a otros países, o se inviertan en algún entorno de nube comercial donde es difícil hacer cumplir las leyes relativas a la protección de la información personal.
Hay algunas plataformas de chatbot que tienen una separación clara entre la parte de NLU y las partes de gestión e integración de diálogos. Esto permite el desarrollo de una API NLU independiente.
La arquitectura Rasa le brinda la oportunidad de tener una API NLU que también se puede usar para tareas de comprensión del lenguaje natural no relacionadas con conversaciones en vivo. Esto incluye conversaciones archivadas en correo electrónico, conversaciones de agentes en vivo, etc.
Con un solo comando, la API se inicia en el puerto 5005. Pero primero, asegúrate de haber activado tu anaconda virtual environment con:
conda activate rasa2
Mi entorno virtual se llama rasa2.
Ejecuta la API:
rasa run --enable-api -m models/nlu-20200917-225530.tar.gz
Puedes acceder a la API en la URL:
http://localhost:5005/model/parse
Interactúa con tu API a través de un cliente como Postman.
Matriz de calificación de oferta en gran parte de categoría 3
Al calificar las nueve soluciones de chatbot, observé nueve puntos clave. Obviamente, la capacidad de NLU es clave en términos de intenciones y entidades. Fui especialmente duro con la medida en que las entidades pueden aplicarse de forma compuesta, anotarse y detectarse contextualmente con descomposición.
El diálogo y el desarrollo y la gestión del estado también son puntos clave; la facilidad de desarrollo es importante y hasta qué punto es posible la colaboración.
Los demás elementos se explican por sí mismos.
Para diferentes organizaciones, los elementos dispares son importantes y guiarán su pensamiento y eventualmente determinarán su juicio. Por ejemplo, aunque Lex no se presenta en muchos aspectos, si una empresa utiliza AWS para otro servicio, Lex podría ser la opción correcta.
Lo mismo ocurre con Oracle, Cisco/MindMeld, etc.
Flujo de llamadas gráficas/Herramientas de desarrollo de diálogos
Para organizaciones más grandes y equipos más grandes, la colaboración es importante. La facilidad para compartir partes del diálogo y la creación conjunta es primordial. Por lo tanto, las organizaciones tienen la necesidad de entornos de desarrollo gráfico. Otros equipos prefieren un enfoque de código nativo más flexible.
IBM Watson Assistant hizo una gran incorporación con el lanzamiento de Actions.
Rasa con su herramienta llamada Rasa-X es tan única que es difícil categorizar con precisión con los otros entornos. Rasa-X es gráfico, permite editar y desarrollar, en consecuencia, es mucho más completo.
La función de desarrollo y gestión de diálogos de Riva está en desarrollo y aún no se ha lanzado.
Comprensión del lenguaje natural
La comprensión del lenguaje natural sustenta las capacidades del chatbot. Sin la detección de entidades y el reconocimiento de intenciones, todos los esfuerzos por comprender al usuario resultan inútiles.
En algunos elementos de un entorno de chatbot, la improvisación puede ser muy útil. Este no es el caso con NLU. LUIS tiene una funcionalidad y categorización de entidades excepcionales. Esto incluye entidades descomponibles. IBM Watson Assistant también se puede contar como uno de los líderes, con RASA y NVIDIA Riva.
También observé la integración de los componentes de NLU en los otros componentes de chatbot. Aquí es donde Microsoft sobresale con sus capacidades.
Escalabilidad
La madurez de cualquier marco se prueba en un entorno empresarial donde están presentes implementaciones con diversos casos de uso y una escala en constante expansión.
La preparación empresarial es un criterio de evaluación que no goza de la atención que merece. Una vez que se detectan las vulnerabilidades, ya se ha invertido demasiado dinero y tiempo en la tecnología.
Conclusión
Esta es una mera descripción general basada en una matriz con puntos de evaluación que personalmente considero importantes.
Y nuevamente, según la importancia de un punto particular de la matriz para usted o su organización, influirá en nuestro juicio.En el análisis final, el software tiene un propósito en su organización y en el panorama actual de la nube. La oferta más adecuada para ese propósito es la mejor opción para usted.