Estás leyendo la publicación: Uso de Kubeflow para resolver problemas de procesamiento de lenguaje natural
El procesamiento del lenguaje natural (NLP) es un conjunto de técnicas y algoritmos que permiten a las computadoras leer, comprender e interpretar los lenguajes humanos. NLP es una disciplina necesaria para cualquier desarrollador que busque construir chatbots robustos, reconocimiento de voz o software de traducción de idiomas en tiempo real. La principal dificultad para los desarrolladores de PNL es que las computadoras están diseñadas para comprender lenguajes de programación, que son explícitos y bien estructurados. ¡Mientras que el lenguaje natural que usan los humanos no es explícito ni está bien estructurado!
Debido a estos problemas, históricamente las máquinas han luchado por comprender el contexto del lenguaje natural. Además, el desarrollo de un conjunto complicado de reglas puede ser efectivo solo para un número limitado o restringido de problemas. Afortunadamente, debido a los avances recientes en el poder de cómputo, los algoritmos y el software de aprendizaje automático, las computadoras ahora pueden “hacer frente” de manera más efectiva a la ambigüedad que a menudo presenta el lenguaje humano.
En las secciones que siguen, veremos algunos casos de uso de PNL del mundo real con mayor detalle.
Caso de uso: reconocimiento automático de voz/voz
El software de reconocimiento de voz, también conocido como reconocimiento automático de voz (ASR) o voz a texto (STT), traduce el habla humana de su forma analógica (ondas de sonido acústicas) a una forma digital que las máquinas pueden reconocer y luego operar.
A continuación se muestra un ejemplo de cómo se ve un flujo de trabajo típico de ASR.
Ahora, echemos un vistazo a lo que sucede en cada paso del flujo de trabajo de ASR.
- Lo primero que debe hacer es dividir los archivos de audio de una grabación de voz en “tokens” o sonidos individuales. Estos tokens son esencialmente pequeños fragmentos de los archivos de audio que normalmente tienen una duración de 6 a 10 segundos.
- A continuación, necesitamos analizar cada sonido en el contexto del habla.
- Podemos usar diferentes tipos de algoritmos como NLP, modelo oculto de Markov de aprendizaje profundo o N-gramas para encontrar la palabra más probable que encaje en ese modelo de lenguaje.
- En este punto, realizamos “voz a texto” convirtiendo cada audio de voz en texto.
- Por ejemplo, Handover to NLU es útil para definir un significado para cada uno de los modelos adaptados al texto.
- Un ejemplo de salida del modelo ASR puede tener el siguiente aspecto:
r eh k ao gn ay z s p iy ch = “reconocer el habla”
r eh k ay n ay sb iy ch = “destrozar una bonita playa”
Caso de uso: Chatbots
Todas las empresas desean brindar un excelente servicio al cliente al tener la capacidad de responder las consultas de los clientes las 24 horas del día, los 7 días de la semana. En realidad, sin embargo, esto puede ser poco práctico debido a los niveles de personal y/o costoso. ¡Ingrese asistentes virtuales y chatbots!
Idealmente, los chatbots pueden interactuar con las personas de la misma manera que lo haría un ser humano. Cuanto más “humana” y menos “robótica” sea la interacción, mejor será la experiencia para un cliente. Para lograr este nivel de sofisticación, los bots requieren el uso eficaz de la generación de lenguaje natural (NLG) y capacidades avanzadas de procesamiento natural.
Estos son algunos de los beneficios que NLG y NLP aportan al desarrollo de chatbots.
- Con una comprensión adecuada, hay menos resultados falsos positivos
- Al aprovechar el modelado estadístico, puede reconocer fallas de entrada del usuario y resolver conflictos
- Para las respuestas de los usuarios, puede emplear una comunicación más completa.
- Aprenda más rápidamente y cierre las brechas de desarrollo en el proceso
- Reduzca la cantidad de datos de entrenamiento necesarios para lograr capacidades de lenguaje natural
- La capacidad de reconfigurar los datos de entrenamiento de entrada para aprendizajes futuros
- Se prevén medidas correctoras simplificadas para falsos positivos
Ahora, echemos un vistazo a cómo los chatbots pueden hacer un uso práctico de la PNL.
Conversaciones naturales entre idiomas
El problema con un enfoque de contenido estático prealimentado para los bots es que los idiomas tienen una cantidad infinita de formas de expresar una afirmación fáctica. También hay un número infinito de formas para que un usuario cree una declaración para articular la emoción. Afortunadamente, en los últimos años los investigadores han logrado avances tremendos en la forma en que los sistemas interpretan los lenguajes humanos. Ahora es posible vincular el texto entrante de un ser humano con una respuesta generada por el sistema usando NLP. Esta respuesta puede ir desde una simple respuesta a una consulta hasta una acción basada en una solicitud del cliente, o el almacenamiento de cualquier información del cliente en la base de datos del sistema.
Debido a que los chatbots con NLP son capaces de comprender la semántica del lenguaje, las estructuras de texto y las frases del habla, también pueden dar sentido a grandes cantidades de datos no estructurados. Por ejemplo;
- La PNL puede comprender los morfemas en todos los idiomas, lo que hace que un bot sea más competente para identificar varios matices.
- NLP permite a los chatbots leer e interpretar jerga, aprender abreviaturas y comprender diferentes emociones a través del análisis de sentimientos, al igual que los humanos.
Ayudar al personal a concentrarse en tareas de misión crítica
Cuando las organizaciones implementan chatbots basados en NLP, por ejemplo, en funciones de recursos humanos o de asistencia técnica de TI, ayudan a reducir las tareas/comunicaciones repetitivas. Esto permite que el personal de esos departamentos se concentre en actividades más críticas para la misión.
Mayor satisfacción del cliente
La gente en estos días espera respuestas y soluciones instantáneas a sus preguntas. NLP permite a los chatbots comprender, analizar y priorizar preguntas en función de su complejidad, lo que permite que los bots respondan a las consultas de los clientes más rápido que un humano. Las respuestas más rápidas ayudan a desarrollar la confianza del cliente y, como resultado, más negocios. Cuando use chatbots, verá un aumento en la retención de clientes. Reduce el tiempo y el costo de adquirir un nuevo cliente al aumentar la lealtad de los existentes.
Investigación y análisis de mercado
Las redes sociales por sí solas pueden proporcionar o generar una cantidad significativa de contenido versátil y no estructurado. PNL ayuda en el encuadre y la interpretación de contenido no estructurado. Puede comprender rápidamente el significado o el concepto que subyace en las reseñas, entradas, comentarios o consultas de los clientes. Puede tener una idea de cómo se siente el usuario acerca de sus servicios o marca sin tener que preguntarles directamente.
Caso de uso: traducción automática
La traducción automática, también conocida como “interpretación robotizada”, es un proceso en el que un programa informático interpreta el texto de un idioma a otro sin intervención humana. La traducción automática, en su nivel más básico, es el simple reemplazo de palabras atómicas en un idioma distintivo con palabras de otro.
Se pueden realizar traducciones más complejas utilizando enfoques de corpus, teniendo en cuenta el tratamiento mejorado de los contrastes de tipología fonética, el reconocimiento expreso y las traducciones de modismos, así como la reclusión de las peculiaridades. Aunque la mayoría de los sistemas actuales no pueden funcionar tan bien como un traductor humano, la brecha se está cerrando rápidamente. Solo hay que pensar en el mundo del ajedrez y lo que pasó con Deep Blue y otros programas.
Una de las ventajas más importantes de la traducción automática es la velocidad. Como habrás notado, los sistemas informáticos pueden traducir rápidamente grandes cantidades de texto. Debido a que es menos costosa que contratar a un traductor humano, la traducción automática brinda el equilibrio adecuado entre velocidad, precisión y costo. Otra ventaja de la traducción automática es que puede aprender términos significativos y reutilizarlos en nuevos contextos siempre que los necesite.
A continuación, cubriremos los cuatro tipos de traducción automática a tener en cuenta.
Traducción automática estadística
La traducción automática estadística (SMT) opera haciendo referencia a modelos estadísticos que se basan en el análisis de cantidades masivas de información bilingüe. Anticipa la determinación de la relación entre una palabra del idioma de origen y una palabra del idioma de destino. Google Translate es un gran ejemplo de esto.
Traducción automática basada en reglas
La traducción automática basada en reglas (RBMT) traduce los fundamentos de las reglas gramaticales. Construir la oración traducida conduce a una evaluación gramatical de los idiomas de origen y de destino. Sin embargo, RBMT requiere una edición extensa, y su gran dependencia de los diccionarios sugiere que la competencia se logra solo después de un largo período de tiempo.
Traducción automática híbrida
La traducción automática híbrida (HMT) es un híbrido entre RBMT y SMT, como su nombre lo indica. Hace uso de la memoria de traducción, lo que lo hace innegablemente más exitoso en términos de calidad. No obstante, HMT tiene una serie de inconvenientes, el más importante de los cuales es la necesidad de una edición extensa, así como el uso de traductores humanos.
Traducción automática neuronal
La traducción automática neuronal (NMT) es un tipo de traducción automática en la que los modelos estadísticos se construyen utilizando modelos de redes neuronales con el objetivo final de la traducción. El principal beneficio de NMT es que proporciona un sistema único que se puede configurar para desentrañar tanto el texto de origen como el de destino.
Uso de Kubeflow para acelerar NLP a producción
Llevar un caso de uso de NLP a producción requiere una gran cantidad de trabajo manual por parte de una variedad de científicos de datos, sistemas, SecOps e ingenieros de datos. Se encuentra en un estudio de investigación que un modelo de tubería ASR requiere alrededor 6 meses ¡antes de que pueda implementarse en producción! La mejor manera de reducir el tiempo que se necesita para llevar la PNL a producción es adoptar MLOps, que es una forma elegante de decir Machine Learning además de DevOps.
MLOps introduce la automatización entre cuadernos de ML con canalizaciones de DevOps. Una plataforma MLOps maneja la difícil tarea de integrar múltiples herramientas al resolver las interdependencias en varias etapas de desarrollo E implementación. Por ejemplo, Github, Github Actions, Jenkins, herramientas de monitoreo, etc. Estas pueden ser herramientas con las que los científicos de datos a menudo no están familiarizados. Entonces, ¿cómo pueden los científicos de datos de MLOps resolver este desafío operativo? Hay una variedad de opciones, pero si lo siguiente es importante para la organización:
- Portabilidad: Escriba una vez, reproduzca y ejecute en todas partes
- Microservicios: Los flujos de trabajo a menudo necesitan interactuar con múltiples servicios
- Escalada: Reducir rápidamente puede ser tan importante como ampliar
…entonces Kubeflow, que se ejecuta sobre Kubernetes, es la opción obvia… Kubeflow es una plataforma de código abierto para la capacitación y el servicio de modelos escalables de aprendizaje automático.
Kubeflow ofrece una característica de “Ejecuciones” que ayuda a conectar un Cuaderno Jupyter que contiene secuencias de comandos de canalización de modelos de lenguaje natural y secuencias de comandos de creación de modelos con Canalizaciones de Kubeflow. Una vez conectado, el flujo de trabajo se convierte en formato YAML y está listo para su implementación. Ahora es mucho más fácil para los científicos de datos implementar rápidamente modelos NLP. Cuando Kubeflow se combina con el complemento Kale, los científicos de datos pueden configurar fácilmente múltiples hiperparámetros para que el modelo con la mayor precisión (dados los requisitos) pueda ser el que finalmente se sirva. Además, Kubeflow ofrece utilidades integradas para monitorear la salida, lo que reduce aún más la carga de los científicos de datos.
A continuación se muestra un ejemplo de flujo de trabajo de ML que se ejecuta dentro de Kubeflow.
Conclusión
El objetivo final de cualquier organización que utilice procesamiento de lenguaje natural (NLP) es que sus modelos de lenguaje se ejecuten con éxito en producción y generen valor para el negocio. Sin embargo, se deben completar muchos pasos antes de que un modelo pueda implementarse en producción, incluida la carga de datos, la verificación, la división, el procesamiento, la ingeniería de características, el entrenamiento y la verificación del modelo, el ajuste de hiperparámetros y el servicio del modelo. Además, aunque sus entradas de datos pueden variar con el tiempo, los modelos NLP pueden necesitar más observación que las aplicaciones tradicionales. La reconstrucción manual de modelos y conjuntos de datos lleva tiempo y es propensa a errores.
Kubeflow puede resolver fácilmente problemas y desafíos como:
- Implementación y administración de un sistema NLP a gran escala
- Experimentación con el entrenamiento de un modelo de PNL
- Cargas de trabajo de NLP híbridas y multinube de extremo a extremo
- Ajuste de los hiperparámetros del modelo durante el entrenamiento
- Integración e implementación continuas (CI/CD) para canalizaciones NLP