Introducción El procesamiento del lenguaje natural es una rama de la informática que se centra en la comprensión y el procesamiento del lenguaje humano por parte de las máquinas. A través del uso de técnicas y algoritmos especializados, el procesamiento del lenguaje natural nos permite interactuar con las máquinas a través del lenguaje natural, como lo hacemos con otras personas. El procesamiento del lenguaje natural tiene una amplia gama de aplicaciones, desde el análisis de sentimiento en redes sociales hasta la traducción automática y el procesamiento de consultas de búsqueda. Esta tecnología ha revolucionado la forma en que nos comunicamos y accedemos a la información, y su importancia solo ha ido en aumento con el tiempo. A lo largo de los años, el procesamiento del lenguaje natural ha evolucionado gracias a avances en técnicas y algoritmos. En este artículo, exploraremos las técnicas y algoritmos clave que se utilizan en el procesamiento del lenguaje natural y cómo juegan un pape...
El próximo jueves 2 de junio a las 18.00 CET volvemos con una charla sobre los sistemas conversacionales.
Uno de los principales problemas a la hora de hacer un chatbot, agente o IA Conversacional es la clasificación hacia el intent, es decir, dada una frase del usuario saber a qué intent se refiere. Hoy en día para esta tarea, y especialmente tras el paper "Attention is all you need", se utilizan modelos cada vez más grandes y costosos de entrenar.
Pero hay proyectos con necesidades especiales en cuanto a performance. ¿Qué sucede si nos piden ser capaces de contestar a más de 1.000 frases de usuarios por segundo? ¿Y si son 10.000? ¿Son estos modelos los más adecuados entonces? ¿Son tal vez los NLU comerciales como Microsoft LUIS o Dialogflow? ¿Cuáles serían los costos? Como spoiler, Hugging Face lanzó hace 7 meses Infinity, que consigue 1000 utterances por segundo con modelos BERT, pero cuyo coste es de 20.000$ anuales. En este meetup vamos a ver cómo llegar a más de 1000 utterances por segundo desplegando en un servidor gratuito y usando sólo CPU.
Partamos de cero y empecemos con lo más básico: el perceptrón. Con un único perceptrón por cada intent, y usando algo tan clásico como el One Hot Encoding, vamos a buscar tener cifras de accuracy bastante buenas, para luego cambiar la forma de representar la información para poder llegar a cifras muy superiores a 1000 frases por segundo. Compararemos el accuracy de esta prueba con modelos XLM-R, mT5 y con el DIET de RASA usando la corpora Amazon Massive, una corpora enorme en 51 lenguajes con 60 intents por cada lenguaje y unas 16121 utterances por cada lenguaje, repartidas entre train, test y dev. Mejoraremos ese accuracy para los 51 lenguajes gracias a la lingüística.
Finalmente, cuando el cuello de botella ya no esté en la red neural, veremos cómo desplegarlo como una API que dé los mejores resultados, cómo afinarlo para ir incluso mejor, y qué resultados da desplegando en diferentes servidores. Nuestro objetivo: más de 10.000 utterances por segundo servidas por API con un coste de menos de 100$ al mes.
Jesús Seijas de la Fuente
Jesús es un nómada digital, autor de NLP.js. Lleva años en proyectos de inteligencia artificial, principalmente visión por computador e IA conversacional, de esta última llevando proyectos de chatbots, voicebots y análisis documental.
Comentarios
Publicar un comentario