acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131wp-user-avatar domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131The post Una nueva interfaz conversacional first appeared on Planeta Chatbot.
]]>
Cuando era pequeño estaba fascinado con los chatbots, la idea de poder mantener una conversación con una máquina despertaba mi imaginación.
A temprana edad tipeé línea por línea el código de ELIZA, copiándolo de una revista de informática a una CZ Spectrum. No quedé muy impresionado por el resultado.

La primera vez que sentí que realmente estaba conversando con una computadora fue, por raro que parezca, al configurar un software para el sistema operativo Microsoft DOS, se veía algo así:

No recuerdo cual era el nombre del programa, pero recuerdo perfectamente la sensación de estar hablando con la máquina. Recuerdo sospechar que la máquina me comprendía. Todo eso sin necesidad de que yo escriba palabras en el teclado.
El programa comentaba mis opciones, yo le respondía, y juntos logramos llevar a cabo la configuración. Nunca volví a sentir esa conexión con un programa.
Propuesto a recrear esta experiencia es que diseñé una nueva manera de interactuar con las máquinas.
A pesar de los avances en la velocidad de procesamiento y la conectividad, los usuarios de asistentes automatizados inteligentes se ven limitados a la hora de ingresar comandos para brindar información, ejecutar acciones, crear rutinas personalizadas y realizar consultas complejas.
Tres áreas han avanzado tecnológicamente: la conversión de señales sonoras a texto, la identificación de la intensión en el texto, y el reconocimiento de entidades en el texto. A pesar de que el progreso en el primer área ha sido notable, los dos áreas restantes aún plantean grandes dificultades, en gran parte debido a la incapacidad de los modelos modernos de aprendizaje profundo de trabajar a nivel semántico de manera eficiente.
Algunas limitaciones en el procesamiento del lenguaje natural son: entender cuál es la necesidad real del usuario cuando una expresión en posee más de una interpretación, a su vez la adquisición de la información plantea serios problemas debido al gran número de unidades léxicas de las lenguas naturales.

A su vez el uso de sistemas de análisis de lenguaje natural a través de modelos de aprendizaje profundo requiere la recolección de grandes cantidades de datos y su consiguiente procesamiento en servidores corporativos, fuera del control del usuario, resultando en la mayoría de los casos en un detrimento en la privacidad y seguridad del usuario, y en una limitación en la calidad de datos personales que la interfaz puede manejar.
Estas limitaciones resultan en una interfaz que no contextualiza las consultas, no almacena un modelo interno suficientemente complejo del usuario y sus intereses, y no permite al usuario personalizarlo ni programarlo según sus necesidades. Derivando en una experiencia pobre para el usuario. El cual se ve limitado si la interfaz tan solo le permite seleccionar comandos predeterminadas, o frustrado cuando es libre de articular vía texto o voz una cantidad ilimitada de comandos, solo para descubrir que la mayoría resulta en un mensaje de error.
Hay dos maneras de resolver el problema de la comunicación entre seres humanos y programas de computación.
Yo propongo una tercera solución: Utilizar el diseño de interfaz de usuario para permitir una comunicación que luzca como lenguaje natural para los seres humanos, y que luzca como lenguaje formal para el programa de computación.
Inspirado en la idea de encontrar éste punto intermedio desarrollé un nuevo elemento de interfaz de usuario. Un menú que permite ingresar comandos a un programa sin tener que escribirlos de manera completa.
El usuario selecciona componentes léxicos (concepto / palabra / token) de una lista, y el programa sugiere los comandos que mejor hacen uso de esos componentes léxicos. Permitiendo una comunicación colaborativa.

La siguiente propuesta soluciona estas limitaciones apartándose del camino del reconocimiento de patrones y análisis del lenguaje natural. En su lugar propone la utilización de comandos en lenguaje formal acompañados de una interfaz de usuario basada en la selección de secuencias de componentes léxicos que ayude al usuario a programar dichos comandos de la manera más sencilla e intuitiva posible.
Ésto permite al usuario ingresar consultas más elaboradas e incluso programar sus propias rutinas. Al no utilizar costosos algoritmos de procesamiento del lenguaje natural toda la información puede mantenerse en el dispositivo del usuario, protegiendo su privacidad y permitiéndole almacenar y manipular información sensible de manera segura.

El Menú de Tokens es capaz de presentarle al usuario una lista de comandos a partir de que el usuario seleccione uno o más componentes léxicos, permitiendo al usuario ingresar comandos en lenguaje formal sin necesidad de conocer su sintaxis y sin necesidad de utilizar el lenguaje natural. Evitando sus problemas y limitaciones.
Esto amplía significativamente el rango de acciones que la interfaz puede permitir al usuario, impidiendo al mismo tiempo que el usuario seleccione un comando que resulte en una situación de error.

El Menú de Tokens le permite al usuario ejecutar un comando sin tener que escribirlo palabra por palabra, sin tener que llenar un formulario, seleccionarlo de una lista de opciones predeterminada y sin tener que utilizar lenguaje natural.
El usuario puede recorrer el espacio de comandos de manera más sencilla, sin necesidad de aprender una sintaxis determinada, sin verse limitado por la estructura de un formulario o lista y sin verse obligado a memorizar las frases correctas a pronunciar. Más aún, permite al usuario descubrir nuevos comandos al tiempo que busca los comandos ya conocidos.
Estoy desarrollando un chatbot de demostración, una versión virtual de Elon Musk al que se le pueden realizar diferentes consultas sobre Tesla, SpaceX y Inteligencia Artificial. Aún está en desarrollo, pero se puede probar en Elon4.me.

Si tenés consultas o feedback sobre el proyecto te invito a unirte a mi grupo de Telegram: https://t.me/EibrielCommunity
Eibriel
eibriel.com
The post Una nueva interfaz conversacional first appeared on Planeta Chatbot.
]]>The post Lo que aprendí entrenando al primer chatbot GPT-2 en español first appeared on Planeta Chatbot.
]]>
Entrenar un modelo GPT-2 es muy sencillo gracias al trabajo de gente muy amable que creó una versión para Google Gollaboratory.

Solo debemos seguir los pasos, subir un archivo de texto en inglés, y en un par de minutos podremos generar más texto similar al archivo que subimos, ya sea poesía, novela o recetas de cocina.
Una obra de teatro al estilo de Shakespeare
Ahora que ya tenía una manera de generar texto tocaba ver si el modelo era capaz de generar diálogo. Utilizando un corpus de diálogos que había creado hace unos años tenía la esperanza de que GPT-2 aprenda a generar mensajes de texto cortos y por turnos.

¡Y así fue! GPT-2 es muy bueno en encontrar patrones y repetirlos, así que pudo replicar rápidamente la estructura de pregunta / respuesta.

A pesar de que GPT-2 fue entrenado en varios gigas de texto en inglés yo tenía la sospecha de que, por un lado algo de texto en español se haya filtrado, y por otro que las diferencias entre un idioma y otro no sean tan grandes como para que tenga que aprenderlo desde cero. Después de todo el modelo podría reutilizar ciertos “pseudoconceptos” como palabras, espacios y puntuación.
Así que descargué un corpus de diálogos de películas en español para la prueba, y los resultados fueron increíbles.

Rápidamente había aprendido muchas palabras en español, a utilizar los acentos, signos de apertura y los pronombres masculinos y femeninos distintivos de nuestro idioma.
Entusiasmado con los resultados decidí traducir el corpus de rDany, y modificarlo para crear un nuevo personaje. Entrené el modelo por varios días en diálogos, obras de teatro, libros y transcripciones. Y utilizando la librería gpt-2-simple para Python puse en línea el chatbot Compicactus en Telegram, mi aplicación de mensajería preferida.

Cada uno de los chatbots, rDany en inglés y Compicactus español, tiene sus ventajas y desventajas.
rDany tiene una base de conocimientos muchísimo mas grande en la que fue entrenado originalmente, y puede improvisar más fácilmente, pero solo puede hablar en inglés.
Compicactus por otro lado conoce menos del mundo, ya que el corpus en español y mi capacidad de computo son muy limitados. Pero puede hablar en español (latino específicamente) y hay algo extrañamente gratificante ver que un bot habla de la misma manera que uno.
Los invito a conversar con https://t.me/rDanyBot y https://t.me/CompicactusBot en Telegram. Y si te gusta el tema tanto como a mi los invito a unirse a mi grupo de chat https://t.me/EibrielCommunity .

Los aplausos son muy bienvenidos, y pueden seguirme en Twitter o Telegram
Nota: Actualmente en la comunidad Deep-ESP estamos trabajando en entrenar un modelo GPT-2 en español apropiadamente, para mejorar los resultados obtenidos por finetuning. Si te interesa colaborar podés unirte al grupo de Telegram.
Gabriel Caraballo
Eibriel.com
The post Lo que aprendí entrenando al primer chatbot GPT-2 en español first appeared on Planeta Chatbot.
]]>