Temas acerca de Inteligencia Artificial
Foto de Usuario
Keila Cahuana

Ranking Troomes
Mensajes: 26
Registrado: 08 Ene 2020, 19:31

Conociendo la Arquitectura de Rasa - Chatbots

Mensaje por Keila Cahuana » 23 Feb 2021, 12:29

Conociendo la Arquitectura de Rasa - Chatbots
Actualmente hay mucho entusiasmo con respecto a los chatbots y la IA conversacional en general. Las tecnologías a menudo se comparan entre sí para encontrar la que mejor se adapte a una organización o tarea. En este artículo, nos centraremos en utilizar una opción de código abierto denominado Rasa.


1. Descripción general de la arquitectura Rasa
El siguiente diagrama proporciona una descripción general de la arquitectura de código abierto de Rasa. Los dos componentes principales son la comprensión del lenguaje natural (NLU) y la gestión del diálogo.
NLU es la parte que maneja la clasificación de intenciones, la extracción de entidades y la recuperación de respuestas. Se muestra a continuación como la canalización de NLU porque procesa las expresiones del usuario mediante un modelo de NLU que genera la canalización entrenada.
El componente de gestión del diálogo decide la siguiente acción en una conversación en función del contexto. Esto se muestra como Políticas de diálogo en el diagrama.


2. Rasa modelos
Modelos generativos
Es un modelo bastante avanzado, se usa muy poco porque requiere algoritmos complejos. Son difíciles de construir y desarrollar. El entrenamiento de este bot requiere de mucho tiempo y esfuerzos, creando millones de ejemplos.
Se basa en un modelo de aprendizaje profundo para crear respuestas durante una conversación. Sin embargo, nunca se sabe qué va a responder el bot.

Modelos basados en la recuperación
Es un modelo de arquitectura mucho más fácil de construir y también más confiable. Claro, las respuestas no son 100% precisas, pero se pueden conocer los tipos de respuestas y asegurarse de que el chatbot no envíe respuestas inapropiadas o incorrectas.
Actualmente, es el modelo más usado. Varios algoritmos y API están disponibles para que los desarrolladores creen chatbots en este modelo arquitectónico. Es un tipo de bot que considera tanto el mensaje como el contexto para dar con el tipo de respuesta.

3. Algoritmos de entrenamiento
Para cada tipo de pregunta debe existir un patrón único, para así dar con la respuesta adecuada. Con mucha combinación en los patrones, crea una estructura jerárquica. Los algoritmos sirven para reducir los clasificadores y generar la estructura más manejable. Es lo que los científicos informáticos llaman enfoque “reduccionista”.

La multinacional Naive Bayes es el algoritmo clásico para la clasificación de texto y PLN(Procesamiento de lenguaje natural). El algoritmo se organiza de la siguiente manera:

Ejemplo de conjunto de entrenamiento de muestra:
Clase: saludo
- "¿Cómo estás?"
- "Buenos días"
- "hola"

Ejemplo de clasificación de oraciones de entrada:

Entrada: "Hola buenos días"
Término: "hola" (sin coincidencias)
Término: "buenos" (clase: saludo)
Término: "días" (clase: saludo)
Clasificación: saludo (puntuación = 2)

Con la ayuda de la ecuación, se encuentran coincidencias de palabras para algunas frases de ejemplo en cada clase. Si notas el puntaje del ejemplo, es la que identifica la clase con las coincidencias más altas en el término.
Pero las limitaciones de esta puntuación índica es que no garantiza que sea la coincidencia perfecta.

Redes neuronales artificiales


Las redes neuronales son una forma de calcular la interacción utilizando conexiones ponderadas que se toman a partir de repeticiones mientras se entrena los datos. Con cada repetición se mejora la precisión del mensaje de salida.
Al igual que con el ejemplo anterior, cada oración se divide en palabras diferentes, pero cada palabra se usa como entrada para las redes neuronales. Las conexiones ponderadas se calculan luego mediante diferentes iteraciones a través de los datos de entrenamiento miles de veces. El algoritmo mejora con cada interacción hasta que la respuesta es más precisa.
Este tipo de algoritmo es comparable a un código. Por ejemplo, cuando hay una muestra comparativamente pequeña, donde las oraciones de entrenamiento tienen 200 palabras diferentes y 20 clases, entonces eso sería una matriz de 200 × 20.
Pero también hay que tener en cuenta que cuando el tamaño de la matriz aumenta n veces se puede generar gran cantidad de errores. Es por eso que la velocidad de procesamiento debe ser muy alta.

Para mayor información pueden ir al siguiente link:
https://rasa.com/docs/rasa/arch-overview


Responder