Video Summary and Transcription
El Agente Pavlov es un marco de código abierto para IA conversacional multihabilidad, que aborda la necesidad de habilidades específicas en diferentes dominios. La arquitectura de microservicios permite la escalabilidad y reutilización de habilidades. La Biblioteca Deep Pavlov permite la creación de tuberías de procesamiento de lenguaje natural (NLP) para diferentes habilidades. Deep Pavlov Dream sirve como un repositorio de habilidades y plantillas, mientras que el Agente de Implementación orquesta todos los componentes para una experiencia conversacional perfecta. DeepLove.AI ofrece más flexibilidad y personalización en comparación con el servicio LUIS de Microsoft.
1. Introducción a Pavlov Agent
Hola, mi nombre es Mikhail Burtsev, y soy fundador y líder del proyecto Pavlov en el Instituto de Física y Tecnología de Moscú. Hoy les hablaré sobre el Agente Pavlov, un marco de código abierto para IA conversacional multi-habilidad. La multi-habilidad es importante porque la experiencia del cliente abarca múltiples dominios y, para abordar cada dominio, se necesitan habilidades específicas. Los sistemas de conversación tradicionales utilizan un sistema de diálogo modular, donde las indicaciones del usuario se convierten a forma textual y se procesan mediante un módulo de comprensión del lenguaje natural. El Gestor de Diálogos actualiza el estado del diálogo y realiza acciones basadas en el estado actual. Los sistemas actuales se basan en redes neuronales, modelos de aprendizaje profundo y reglas para la gestión del diálogo y la generación del lenguaje natural. El ciclo de vida del asistente de IA comienza con un Producto Mínimo Viable, que incluye modelos pre-entrenados para NLU y scripts para el Gestor de Diálogos.
Hola, mi nombre es Mikhail Burtsev, y soy fundador y líder del proyecto Pavlov en el Instituto de Física y Tecnología de Moscú. Y hoy les hablaré sobre el Agente Pavlov, que es un marco de código abierto para IA conversacional multi-habilidad. Así que comencemos con una pregunta, ¿por qué es tan importante la multi-habilidad? Es importante porque la experiencia del cliente abarca múltiples dominios, como encuestas, promociones, campañas, servicio al cliente, soporte técnico y muchos otros. Y generalmente, para abordar cada dominio, se necesita una habilidad específica. Por eso necesitamos construir un asistente digital multi-habilidades, y necesitamos tener múltiples habilidades conversacionales en nuestro sistema. Y si observamos los asistentes de comercio electrónico, como los sistemas de diálogo complejos modernos. Por ejemplo, aquí tenemos el caso de Alimia Assist, que es un asistente en AliExpress. Entonces puedes ver aquí que es un sistema híbrido con muchas habilidades diferentes. Por ejemplo, tenemos este servicio de asistente con un motor de llenado de espacios, y tenemos servicio al cliente con un motor de gráficos de conocimiento, y tenemos servicio de chat con un motor de chat. Así que ves que es una combinación de algunas reglas comerciales, de escenarios escritos y con habilidades específicas que abordan diferentes necesidades del cliente.
Entonces, ¿cuál es la forma tradicional de construir sistemas de conversación en la actualidad? El enfoque más dominante es el llamado sistema de diálogo modular. ¿Cómo funciona? Tenemos al usuario, el usuario tiene alguna indicación para el sistema, y esta indicación se convierte a forma textual y se alimenta al módulo de comprensión del lenguaje natural, que realiza básicamente tres funciones. Detección de dominio, detección de intención y detección de entidades en la entrada del usuario. Y luego, después de este preprocesamiento, tenemos una descripción formal de la entrada del usuario, que también se llama marco semántico, donde tenemos la intención, aquí es solicitar una película, y tenemos las entidades. En esta solicitud, es comedia general y fin de semana. Y luego, toda esta información va al Gestor de Diálogos. Y la tarea del Gestor de Diálogos es primero actualizar el estado de diálogo actual, para que esté actualizado, para integrar esta nueva información en el historial previo del diálogo, y luego, con este estado de diálogo actualizado, realizar la acción necesaria en el lado del sistema.
Entonces, consta del estado de diálogo y de la política, o guion, que decide qué acción se debe seleccionar, dada la situación actual del diálogo. Y aquí en nuestro ejemplo tenemos la acción que es solicitar ubicación. Pero esta acción está en alguna representación interna del sistema. Y necesitamos convertir esta acción en la indicación de lenguaje natural. Y aquí tenemos el último módulo de nuestro sistema, que es la generación de lenguaje natural. Que crea la forma superficial de nuestra solicitud para los usuarios. Así que, con la acción de solicitar ubicación, tenemos como resultado en lenguaje natural `¿Dónde estás?`. Así es básicamente cómo se construyen los sistemas actuales. Y principalmente en esta parte de la entrevista, tenemos muchas redes neuronales, modelos de aprendizaje profundo, que se utilizan aquí, y en la parte del Gestor de Diálogos, tenemos algunas redes neuronales y muchas reglas y diálogos escritos. Y también para la generación de lenguaje natural, principalmente tenemos modelos de recuperación con algún llenado de espacios o plantillas.
Bien, entonces, ¿cuál es el ciclo de vida del asistente de IA? ¿Cómo construimos nuestro asistente digital, nuestros sistemas de diálogo, con esta tecnología modular? Por lo general, comenzamos con un Producto Mínimo Viable (MVP). Para NLU, tenemos algunas características y algunos modelos pre-entrenados para este dominio, y en el lado del Gestor de Diálogos, tenemos algunos scripts y es muy agradable y claro architecture, y entendemos cómo funciona.
2. Ventajas de la Descomposición de la Complejidad
Queremos ir más allá del techo de complejidad de la tecnología actual mediante la descomposición de la complejidad entre el agente y las habilidades conversacionales. Nuestra arquitectura de microservicios permite la escalabilidad y la reutilización de habilidades existentes. Con la Biblioteca Deep Pavlov, podemos construir tuberías de procesamiento del lenguaje natural y combinar diferentes componentes en habilidades conversacionales para dominios y tareas específicas.
Cubre los aspectos más importantes de la interacción entre el sistema y el usuario. Y luego, desplegamos este MVP en producción y este sistema comienza a interactuar con los usuarios. Y aquí, entendemos que necesitamos aumentar la cobertura del sistema porque los usuarios hacen las mismas preguntas de manera diferente debido a la variabilidad del lenguaje, por lo que necesitamos agregar más características y hacer que nuestra comprensión del lenguaje natural sea más compleja.
Y también queremos cubrir más funciones, por lo que agregamos más scripts en el lado de nuestro gestor de diálogos. Y luego, continuamos con más características y más scripts, más características, más scripts, llegamos a la llamada etapa principal del asistente de IA, que en realidad es un desorden de características y scripts. Y esta es una solución que ya alcanza la complejidad máxima debido a todos estos componentes interdependientes. Así que ahora estás en una posición en la que no puedes hacer crecer tu producto más.
Y lo que queremos hacer con nuestro marco, con el Agente Deep Pavlov, es romper esta imagen. Queremos ir más allá de este techo de complejidad de la tecnología actual. Así que en nuestra visión, el ciclo de vida del sistema de IA comienza con el mismo MVP simple, claro y agradable. Y luego, lo que haces, lo pruebas y luego lo agregas al sistema ya desplegado como una de las habilidades conversacionales. Y luego, si quieres agregar más funcionalidad a tu sistema, simplemente creas una nueva habilidad conversacional y la agregas a tu agente. Esto te permite descomponer la complejidad entre el agente, que es básicamente un marco de orquestación de habilidades, y las habilidades conversacionales. Y esto te proporciona una arquitectura de microservicios muy agradable, que se puede escalar en un sistema de IA mayor mucho más complejo.
Y también te brinda muchas características interesantes. Por ejemplo, puedes tener habilidades predeterminadas. No necesitas desarrollarlas tú mismo. Solo necesitas conectar tus propias habilidades. Y es, como dije, una arquitectura muy escalable porque cada habilidad se despliega como un microservicio. Y también es muy práctico porque cuando creas un nuevo producto o quieres crear nuevas habilidades, que son similares a las que ya tienes, simplemente puedes reutilizar las antiguas y ampliarlas para la nueva función o integrarlas en tu producto. Y lo que también es importante en nuestra cultura de desarrollo global en este momento, es que generalmente las soluciones complejas se construyen con equipos distribuidos. Y esta arquitectura de orquestación de habilidades y estructura modular de tu agente conversacional te permite distribuir el mantenimiento y desarrollo de habilidades separadas a diferentes equipos separados. Esto hace que tu trabajo y coordinación entre habilidades sea mucho más organizado y eficiente. Así que esto es lo que queremos, esta es nuestra visión. Lo que queremos hacer es tener habilidades conversacionales y tener un nivel de orquestación conversacional. Entonces, lo que estamos haciendo ahora mismo para implementar esta visión. Así que hemos comenzado con la Biblioteca Deep Pavlov. La Biblioteca Deep Pavlov es una biblioteca de código abierto para construir tuberías de procesamiento del lenguaje natural y habilidades conversacionales para la IA conversacional. Entonces puedes tener modelos específicos de NLP como reconocimiento de entidades nombradas, resolución de correferencia, reconocimiento de intención y autodetección, respuesta a preguntas, política de diálogo, historial de diálogo, modelos de lenguaje, y así sucesivamente. Y luego, con nuestro marco, puedes combinar estos diferentes componentes en habilidades conversacionales para dominios y tareas específicas, como aquí.
3. Deep Pavlov Agent Framework and DreamSocialBot
Tenemos habilidades orientadas a tareas, habilidades factorizadas y habilidades de conversación informal, todas orquestadas por el marco del agente Deep Pavlov. Un ejemplo de esta arquitectura es el DreamSocialBot, construido para la competencia Alexa Prize. La entrada del usuario es procesada por los anotadores, que extraen información y actualizan el estado del diálogo. Un selector de habilidades determina las habilidades más relevantes, y un subconjunto de estas habilidades se ejecuta para producir candidatos de respuesta. Los anotadores de candidatos garantizan la seguridad del usuario, y un selector de respuestas realiza la selección final. Este sistema multi-habilidad se ejecuta de forma asíncrona, con la biblioteca Deep Pavlov como base para crear tuberías de procesamiento del lenguaje natural.
Podemos tener habilidades orientadas a tareas, como reservas de restaurantes. Podemos tener habilidades factorizadas, que te permiten responder a una pregunta factorizada, y podemos tener habilidades de conversación informal. Y luego, tenemos el marco del agente Deep Pavlov, que orquesta estas habilidades.
Y como ejemplo de esta arquitectura, me gustaría presentarte la arquitectura de DreamSocialBot, que está construido con Deep Pavlov y el marco del agente Deep Pavlov para la competencia Alexa Prize, el Desafío Alexa Prize. Y nuestro equipo, como es un equipo universitario, participamos el año pasado en el Desafío Alexa y fuimos seleccionados como uno de los 10 equipos de entre 350 solicitudes para desarrollar una solución que se alojará dentro de Amazon Alexa y que puede ser invocada por Alexa Chat Commons. Así que usamos nuestro agente Deep Pavlov para construir este DreamSocialbot. Así que echemos un vistazo a cómo funciona.
Entonces, primero tenemos la entrada del usuario. Y esta entrada del usuario va a los llamados anotadores. Es la primera etapa del procesamiento. Los anotadores actuales también están implementados como tuberías de procesamiento del lenguaje natural de Deep Pavlov y se ejecutan como microservicios y se utilizan para extraer información de la entrada del usuario. Después de eso, esta entrada del usuario anotada pasa al estado del diálogo y el estado del diálogo es como una memoria compartida entre todos los microservicios como anotadores o habilidades, etc. Entonces, esta entrada del usuario anotada y el estado actual del diálogo son utilizados por un selector de habilidades para decidir qué habilidades son más relevantes para el estado actual del diálogo. Y aquí, para la competencia, hemos desarrollado alrededor de 25 habilidades diferentes y algunas para uso para el clima, películas, libros, como chat general, etc.
Y luego, como dije, solo se selecciona un subconjunto de estas habilidades y estas habilidades se ejecutan y producen candidatos de respuesta. Cada habilidad produce un candidato de respuesta y cierta confianza en su propia respuesta. Y todos estos candidatos van a los anotadores de candidatos. Necesitamos que estos anotadores se aseguren de que no haya candidatos que puedan ser perjudiciales para nuestros usuarios. Así que realizamos la detección de toxicidad, la detección de terminación del diálogo y el filtrado de la lista negra de los candidatos de respuesta. Después de eso, tenemos candidatos de respuesta anotados y realizamos la selección final. Así que tenemos un selector de respuestas que realiza la selección final de la salida final de nuestro sistema. Y esta respuesta también puede ser anotada posteriormente y presentada a los usuarios. Y como puedes ver, en realidad es un sistema multi-habilidad y todos los elementos de nuestra tubería se ejecutan de forma asíncrona. Por lo tanto, todos los anotadores y habilidades se ejecutan de forma asíncrona como microservicios con solo dos puntos de sincronización, que son el selector de habilidades y el selector de respuestas y nuestro estado de diálogo, como dije, sirve como una memoria compartida. Y lo que tenemos ahora mismo, lo que queremos construir, en realidad tenemos lo que podemos llamar un ecosistema de Deep Pavlov. Es un ecosistema de nuestros productos y en el lado izquierdo aquí, puedes ver nuestra biblioteca Deep Pavlov, que es una biblioteca para crear tuberías de procesamiento del lenguaje natural. Y también puedes incluir modelos de procesamiento del lenguaje natural de terceros, como Hugging Face Transformers o NVIDIA NIMU, como componentes de tus tuberías de procesamiento del lenguaje natural. Y luego, puedes implementar todas estas tuberías de procesamiento del lenguaje natural como microservicios en la nube. Por ejemplo, para tu asistente de IA, estos pueden ser anotadores o algunos componentes deNLP. Y luego tenemos lo que llamamos el sueño de Deep Pavlov.
4. Deep Pavlov Dream and Deployment Agent
Queremos abrir nuestros conocimientos y ofrecerlos como una distribución predeterminada para agentes conversacionales. Puedes reutilizar nuestros conocimientos y agregar tus propias habilidades orientadas a tareas. El sueño de Deep Pavlov es un repositorio de diferentes habilidades y plantillas, que permite la integración de habilidades de terceros. El agente Pavlov orquesta todos los componentes para producir la experiencia conversacional final. Nuestro objetivo es crear un centro abierto para el intercambio de habilidades, facilitando y acelerando el desarrollo. Nuestra biblioteca DeepPowell integra modelos de aprendizaje automático en tuberías de procesamiento del lenguaje natural y resuelve problemas de habilidades conversacionales. Ofrecemos una solución única con nuestro Deployment Agent para la orquestación de múltiples habilidades.
¿Por qué llamamos a esto el sueño de Deep Pavlov? Porque lo que queremos hacer es abrir nuestros conocimientos, que hemos desarrollado para la competencia, y hacerlos de código abierto para proporcionar una distribución predeterminada para agentes conversacionales que pueda ser utilizada por otros. Entonces, no necesitas desarrollar tu propia habilidad de chit chat o habilidades básicas como el clima, entre otras. Para tu solución, simplemente puedes reutilizar nuestros conocimientos y luego agregar tus propias habilidades orientadas a tareas.
Como dije, el sueño de Deep Pavlov es un repositorio de diferentes habilidades o plantillas. Y también puedes utilizar habilidades de terceros aquí, porque nuestra architecture te permite integrar otras habilidades a través de una API. Así que puedes usar Rasa o habilidades de IA/ML en tu tubería como parte del sueño de Pavlov. Luego, ejecutas todas estas habilidades como microservicios. Y en el centro tenemos el agente Pavlov, que realiza la orquestación de todos estos componentes, anotadores y habilidades, para producir la experiencia conversacional final de tu asistente de IA.
Como dije, lo que queremos hacer es crear algo que se pueda ver como un sistema operativo de código abierto pero aquí no tenemos un sistema operativo, sino un sistema de conversación o diálogo porque tenemos algunas aplicaciones y estas aplicaciones son habilidades conversacionales y tenemos algunos servicios como anotadores y tenemos la user experience. Así que puedes agregar tus aplicaciones para mejorar la user experience. Y también queremos crear un centro abierto para el intercambio de habilidades para facilitar la vida de cada desarrollador de asistentes conversacionales complejos, porque al intercambiar algunas habilidades de propósito general se facilita mucho más el desarrollo de la solución y la prototipación de tus agentes conversacionales complejos.
Ahora, si observamos la pila de tecnologías de IA conversacional, en la parte inferior de esta pila tenemos plataformas de aprendizaje automático como PyTorch y TensorFlow. Luego tenemos frameworks de procesamiento del lenguaje natural (NLP) que integran modelos de aprendizaje automático en las tuberías de NLP y aquí tenemos SpaCy, Transformers y NVIDIA NIMR, e incluso Stanford NLP, y nuestra biblioteca DeepPowell pertenece a este nivel de frameworks de NLP. Pero no solo a este nivel, también forma parte del nivel de habilidades conversacionales porque puedes crear una tubería de NLP en DeepPowell que resuelve exactamente el problema de la habilidad conversacional.
En este nivel de habilidades conversacionales, tenemos Rasa, Pandora Bots o LMONT. Estos son frameworks para crear habilidades conversacionales separadas. Y luego, en el nivel más alto, en el nivel de orquestación de múltiples habilidades, creo que en el dominio de código abierto, ofrecemos una solución única en este momento. Es nuestro Deployment Agent, que es un marco para la orquestación de habilidades conversacionales. Con él, puedes implementar y gestionar tus habilidades y orquestar para proporcionar una experiencia de usuario muy agradable. Esta imagen muestra toda la línea de nuestro marco que estamos construyendo para crear nuestra solución de código abierto para la IA conversacional, una solución de código abierto de extremo a extremo para la IA conversacional. Así que gracias por tu atención. Eso es todo. Y estaré encantado de responder tus preguntas. Gracias. Hola, una vez más. Hola, gracias por unirte hoy y dar esta increíble charla.
5. Comparison with Microsoft LUIS
DeepLove.AI es completamente de código abierto, lo que proporciona más flexibilidad en comparación con el servicio de comprensión del lenguaje (LUIS) de Microsoft. Si bien hay una curva de aprendizaje más pronunciada, nuestro marco permite una mayor personalización y control sobre los componentes.
Tenemos algunas preguntas de la audiencia. ¿Empezamos de inmediato? Sí. Muy bien. Bueno, la primera pregunta es en realidad de mi co-presentador, AJ, y le gustaría saber, ¿cómo comparas DeepLove AI con otros sistemas de IA conversacional, como los construidos con el servicio de comprensión del lenguaje de Microsoft, por ejemplo? Lo siento. Perdón, ¿puedes repetir la pregunta? ¿Cómo compararías DeepLove.AI con otros sistemas de IA conversacional, como los construidos con el servicio de comprensión del lenguaje de Microsoft, LUIS, por ejemplo? De acuerdo. La diferencia principal aquí es que nuestro proyecto es completamente de código abierto. Con Microsoft LUIS, no tienes tanta flexibilidad como con nuestro marco, y por supuesto, con esta flexibilidad, hay un costo para dominar todos los componentes. Por lo tanto, necesitas un mejor conocimiento de los componentes para construir algo similar a lo que puedes construir en LUIS, y así sucesivamente. Sí, por lo tanto, hay una curva de aprendizaje más pronunciada, pero eres más flexible. Sí. Sí, muy bien. La siguiente pregunta es de un miembro de la audiencia llamado Nick. Quiere saber cuáles serán los pasos para integrar DeepPath de un Agente como un chatbot para el servicio de soporte al cliente. También puede haber anotadores para la localización. Actualmente, DeepPath of an Agent se puede integrar a través de la API, por lo que necesitas simplemente como un servicio REST, puedes usarlo como un servicio REST. Y también tiene muchos componentes como anotadores y habilidades, y estas habilidades pueden usar algunos data de tus bases de datos internas. Y en este caso, también debes proporcionar tus propios conectores para enviar los data de tu database dentro de tus habilidades conversacionales. Y tenemos envoltorios para Telegram y para Amazon Alexa, pero si es para tu empresa y si no estás usando Telegram, por ejemplo, y estás usando tu propio widget de sitio web o chatbot, como una interfaz web construida por ti, entonces debes usar esta API REST, creo. De acuerdo. Siguiente pregunta. Los chatbots de IA generalmente dan respuestas graciosas/raras en conversaciones extendidas, incluso los basados en modelos de lenguaje. ¿Cuánto tiempo crees que tomará para que podamos esperar oraciones coherentes en conversaciones largas utilizando, por supuesto, deeplove.ai? Creo que aquí deberíamos hablar de dos tipos de habilidades conversacionales. En DeepPavlov, tienes una architecture de múltiples habilidades, donde diferentes habilidades pueden implementarse con diferentes tecnologías de fondo. Por lo general, si tienes algo como GPT-free o alguna pregunta y respuesta basada en modelos de lenguaje, tienes un control muy débil sobre lo que obtienes como respuesta. Pero, en otros casos, puedes usar IA/ML u otros enfoques, que te permiten tener plantillas más estrictamente definidas para tus respuestas. Y en este caso, controlas lo que dice tu bot. Tal vez no cubra una amplia gama de temas, pero luego en un dominio estrecho, tendrás respuestas muy sensatas. En Deep Pavlov, puedes integrar tanto enfoques basados en reglas como generación neuronal, y luego decidir en el estado actual del diálogo cuál es el más apropiado para tu usuario, tratando de combinar ambos enfoques. El primero es basado en reglas y guiones, donde controlas el flujo del diálogo, y por otro lado, es generación neuronal, donde puedes tener respuestas mucho más graciosas y mucho más variables, pero pueden perder coherencia después de cierto número de términos de conversación. De acuerdo, muchas gracias. Otra pregunta es de mi co-presentador Sergey. Como diriges un laboratorio de investigación, ¿qué opinas de OpenAI? ¿Ayuda a acelerar la investigación? Creo que juega un papel en ambos lados, acelerando la investigación y también generando expectativas en la investigación, porque comenzaron creando OpenAI Gym, y es un conjunto muy bueno de tareas para el aprendizaje por refuerzo, y muchas personas las utilizan, y es muy bueno. Pero luego lanzaron, o no lanzaron GPT-2, y comenzaron una discusión y promoción de sus resultados sin abrir la solución. Y esto parece un poco extraño, es una organización un poco extraña porque, por un lado, tiene objetivos de producir investigación abierta, pero por otro lado, tiene reglas muy estrictas para no publicar algo y usarlo para obtener ganancias. Por lo tanto, no está claro para la community cómo entender los objetivos de OpenAI en este momento. De acuerdo. Creo que eso es todo el tiempo que tenemos ahora para esta sesión de preguntas y respuestas, pero si las personas aún tienen preguntas o quieren profundizar en Deep Bath Love, entonces estarás en tu sala de oradores, ¿verdad? Así que las personas pueden unirse allí en Spatial.Chat y sí, ahora me gustaría agradecerte por tu tiempo e invitarte a ir a tu sala de oradores.
Comments