Robotización AI con plataforma de datos IRIS de InterSystems

Autor: Sergey Lukyanchikov, ingeniero de ventas en InterSystems

Arreglando la terminología


No se espera que un robot sea enorme o humanoide, o incluso material (en desacuerdo con Wikipedia , aunque este último suaviza la definición inicial en un párrafo y admite la forma virtual de un robot). Un robot es un automatizado, desde un punto de vista algorítmico, un automatizado para la ejecución autónoma (algorítmica) de tareas concretas. Un detector de luz que activa las luces de la calle por la noche es un robot. Un software de correo electrónico que separa los correos electrónicos en "externo" e "interno" también es un robot.

La inteligencia artificial (en un sentido limitado y aplicado, Wikipedia lo interpreta de nuevo de manera diferente) son algoritmos para extraer dependencias de los datos. No ejecutará ninguna tarea por sí solo, ya que necesitaría implementarlo como procesos analíticos concretos (datos de entrada, más modelos, más datos de salida, más control de procesos). El proceso analítico que actúa como un "portador de inteligencia artificial" puede ser lanzado por un humano o por un robot. Puede ser detenido por cualquiera de los dos también. Y administrado por cualquiera de ellos también.

Interacción con el medio ambiente.


La inteligencia artificial necesita datos que sean adecuados para el análisis. Cuando un analista comienza a desarrollar un proceso analítico, los datos para el modelo son preparados por el mismo analista. Por lo general, crea un conjunto de datos que tiene suficiente volumen y características para ser utilizado para la capacitación y prueba de modelos. Una vez que la precisión (y en casos menos frecuentes, la "estabilidad local" en el tiempo) del resultado obtenido se vuelve satisfactoria, un analista típico considera su trabajo realizado. ¿Tiene razón? En realidad, el trabajo está a medio hacer. Queda por garantizar una "ejecución ininterrumpida y eficiente" del proceso analítico, y ahí es donde nuestro analista puede experimentar dificultades.

Las herramientas utilizadas para desarrollar mecanismos de inteligencia artificial y aprendizaje automático, a excepción de algunos casos más simples, no son adecuadas para una interacción eficiente con el entorno externo. Por ejemplo, podemos (por un corto período de tiempo) usar Python para leer y transformar datos de sensores de un proceso de producción. Pero Python no será la herramienta adecuada para el monitoreo general de la situación y cambiar el control entre varios procesos de producción, escalar los recursos de cómputo correspondientes hacia arriba y hacia abajo, analizar y tratar todo tipo de "excepciones" (por ejemplo, la no disponibilidad de una fuente de datos, falla de infraestructura, problemas de interacción del usuario, etc.). Para ello, necesitaremos una plataforma de integración y gestión de datos. Y cuanto más cargado, más variado será nuestro proceso analítico, mayor será el estándar de nuestras expectativas de los componentes de integración de la plataforma y "DBMS". Un analista que se basa en lenguajes de scripting y entornos de desarrollo tradicionales para construir modelos (incluyendo utilidades como "notebooks") se enfrentará a la casi imposibilidad de asegurar su proceso analítico y una implementación productiva eficiente.

Adaptabilidad y adaptabilidad.


La capacidad de cambio del entorno se manifiesta de diferentes maneras. En algunos casos, cambiará la esencia y la naturaleza de las cosas gestionadas por la inteligencia artificial (por ejemplo, entrada de una empresa en nuevas áreas de negocio, requisitos impuestos por los reguladores nacionales e internacionales, evolución de las preferencias de los clientes relevantes para la empresa, etc.). En los otros casos, la firma de información de los datos procedentes del entorno externo será diferente (por ejemplo, nuevos equipos con nuevos sensores, canales de transmisión de datos más eficaces, disponibilidad de nuevas tecnologías de "etiquetado" de datos, etc.).

¿Puede un proceso analítico "reinventarse" a medida que cambia la estructura del entorno externo? Simplifiquemos la pregunta: ¿qué tan fácil es ajustar el proceso analítico si cambia la estructura del entorno externo? Según nuestra experiencia, la respuesta que sigue es simple y triste: en la mayoría de las implementaciones conocidas (¡no para nosotros!) Se requerirá al menos reescribir el proceso analítico y muy probablemente reescribir la IA que contiene. Bueno, la reescritura de principio a fin puede no ser el veredicto final, pero hacer la programación para agregar algo que refleje la nueva realidad o cambiar la "parte de modelado" puede ser necesaria. Y eso podría significar una sobrecarga prohibitiva, especialmente si los cambios en el entorno son frecuentes.

Agencia: el límite de la autonomía?


El lector puede haber notado ya que procedemos en la dirección de una realidad cada vez más compleja propuesta a la inteligencia artificial. Mientras toma nota de las posibles "consecuencias del lado del instrumento". Con la esperanza de que finalmente podamos dar una respuesta a los desafíos emergentes.

Ahora nos estamos acercando a la necesidad de equipar un proceso analítico con el nivel de autonomía para que pueda hacer frente no solo a la capacidad de cambio del entorno, sino también a la incertidumbre de su estado. Aquí no se hace referencia a una naturaleza cuántica del medio ambiente (lo discutiremos en una de nuestras publicaciones adicionales), simplemente consideramos la probabilidad de que un proceso analítico encuentre el estado esperado en el momento esperado en el "volumen" esperado. Por ejemplo: el proceso "pensó" que lograría completar un modelo de entrenamiento antes de la llegada de nuevos datos para aplicar el modelo, pero "no pudo" completarlo (por ejemplo, por varias razones objetivas, la muestra de entrenamiento contenía más registros que generalmente). Otro ejemplo: el equipo de etiquetado ha agregado un lote de nuevas prensas en el proceso, un modelo de vectorización ha sido entrenado usando ese nuevo material, mientras que la red neuronal todavía está usando la vectorización previa y está tratando como "ruido" alguna información extremadamente relevante. Nuestra experiencia muestra que superar tales situaciones requiere dividir lo que antes era un proceso analítico único en varios componentes autónomos y crear para cada uno de los procesos de agentes resultantes su "proyección amortiguada" del entorno. Llamemos a esta acción (adiós, Wikipedia) la representación de un proceso analítico. Y llamemos a la agencia la calidad adquirida por un proceso analítico (o más bien a un sistema de procesos analíticos) debido a la representación.

Una tarea para el robot.


En este punto, intentaremos llegar a una tarea que necesite una IA robotizada con todas las cualidades mencionadas anteriormente. No tomará un largo viaje llegar a las ideas, especialmente debido a la riqueza de algunos casos y soluciones muy interesantes para los casos publicados en Internet; simplemente reutilizaremos uno de esos casos / soluciones (para obtener ambos tarea y la formulación de la solución). El escenario que hemos elegido es sobre la clasificación de publicaciones ("tweets") en la red social de Twitter, en función de su sentimiento. Para entrenar a los modelos, tenemos muestras bastante grandes de tweets "etiquetados" (es decir, con un sentimiento especificado), mientras que la clasificación se realizará en tweets "no etiquetados" (es decir, sin un sentimiento especificado):

imagen
Figura 1 Formulación de tareas de clasificación de texto basada en sentimientos (análisis de sentimientos)

En un gran ejemplo publicado en la Web se presenta un enfoque para crear modelos matemáticos capaces de aprender de textos etiquetados y clasificar textos no etiquetados con sentimientos desconocidos.

Los datos para nuestro escenario se han hecho disponibles amablemente desde la Web.

Con todo lo anterior a la mano, podríamos comenzar a “ensamblar un robot”; sin embargo, preferimos complicar la tarea clásica al agregar una condición: tanto los datos etiquetados como los no etiquetados se envían al proceso analítico como archivos de tamaño estándar como el proceso "Consume" los archivos ya alimentados. Por lo tanto, nuestro robot necesitará comenzar a operar con volúmenes mínimos de datos de entrenamiento y mejorar continuamente la precisión de la clasificación repitiendo el entrenamiento del modelo en volúmenes de datos de crecimiento gradual.

Al taller de InterSystems


Demostraremos, tomando como ejemplo el escenario recién formulado, que InterSystems IRIS y ML Toolkit, un conjunto de extensiones, pueden robotizar la inteligencia artificial. Y lograr una interacción eficiente con el entorno externo para los procesos analíticos que creamos, mientras los mantenemos adaptables, adaptativos y agentes (las "tres A").

Comencemos con la agencia. Implementamos cuatro procesos de negocio en la plataforma:

imagen
Figura 2 Configuración de un sistema de procesos empresariales basado en agentes con un componente para la interacción con Python

  • GENERADOR : a medida que los archivos generados anteriormente son consumidos por otros procesos, genera nuevos archivos con datos de entrada (etiquetados - tweets positivos y negativos - así como tweets sin etiquetar)
  • BUFFER : como los otros procesos consumen los registros ya almacenados, lee los nuevos registros de los archivos creados por GENERATOR y los elimina después de haber leído los registros de ellos.
  • ANALIZADOR : consume registros del búfer sin etiquetar y les aplica el RNN entrenado (red neuronal recurrente), transfiere los registros "aplicados" con los respectivos valores de "probabilidad de ser positivos" añadidos al búfer de monitoreo; consume registros de buffers etiquetados (positivo y negativo) y entrena la red neuronal en función de ellos
  • MONITOR : consume los registros procesados ​​y transferidos a su búfer por ANALYZER, evalúa las métricas de error de clasificación demostradas por la red neuronal después del último entrenamiento y desencadena un nuevo entrenamiento por ANALYZER

Nuestro sistema de procesos basado en agentes se puede ilustrar de la siguiente manera:

imagen
Figura 3 Flujos de datos en el sistema basado en agente

Todos los procesos en nuestro sistema funcionan independientemente uno del otro pero están escuchando las señales del otro. Por ejemplo, una señal para que el proceso GENERADOR comience a crear un nuevo archivo con registros es la eliminación del archivo anterior por el proceso BUFFER.

Ahora veamos la adaptabilidad. La adaptabilidad del proceso analítico en nuestro ejemplo se implementa a través de la "encapsulación" de la IA como un componente que es independiente de la lógica del proceso portador y cuyas funciones principales - entrenamiento y predicción - están aisladas una de otra:

imagen
Figura 4 Aislamiento de las funciones principales de la IA en un proceso analítico: capacitación y predicción utilizando modelos matemáticos

Dado que el fragmento citado anteriormente del proceso ANALYZER es parte del "bucle sin fin" (que se activa al inicio del proceso y funciona hasta que se cierra todo el sistema basado en el agente), y dado que las funciones de AI se ejecutan simultáneamente, el proceso es capaz de adaptar el uso de IA a la situación: modelos de entrenamiento si surge la necesidad, prediciendo de acuerdo con la versión disponible de modelos entrenados, de lo contrario. La necesidad de entrenar los modelos está señalada por el proceso MONITOR adaptativo que funciona independientemente del proceso ANALYZER y aplica sus criterios para estimar la precisión de los modelos entrenados por ANALYZER:

imagen
Figura 5 Reconocimiento del tipo de modelo y aplicación de las respectivas métricas de precisión por el proceso MONITOR

Seguimos con adaptabilidad. Un proceso analítico en InterSystems IRIS es un proceso empresarial que tiene una representación gráfica o XML en forma de una secuencia de pasos. Los pasos a su vez pueden ser secuencias de otros pasos, bucles, verificaciones de condición y otros controles de proceso. Los pasos pueden ejecutar código o transmitir información (también puede ser código) para su tratamiento por otros procesos y sistemas externos.

Si es necesario cambiar un proceso analítico, tenemos la posibilidad de hacerlo en el editor gráfico o en el IDE. Cambiar el proceso analítico en el editor gráfico permite adaptar la lógica del proceso sin programar:

imagen
Figura 6 Proceso ANALIZADOR en el editor gráfico con el menú abierto para agregar controles de proceso

Finalmente, es interacción con el medio ambiente. En nuestro caso, el elemento más importante del entorno es el conjunto de herramientas matemáticas Python. Para la interacción con Python y R, se desarrollaron las extensiones funcionales correspondientes: Python Gateway y R Gateway . Permitir una interacción cómoda con un conjunto de herramientas concreto es su funcionalidad clave. Ya pudimos ver el componente para la interacción con Python en la configuración de nuestro sistema basado en agentes. Hemos demostrado que los procesos comerciales que contienen IA implementados usando el lenguaje Python pueden interactuar con Python.

El proceso ANALYZER, por ejemplo, lleva el modelo de entrenamiento y las funciones de predicción implementadas en InterSystems IRIS usando el lenguaje Python, como se muestra a continuación:

imagen
Figura 7 Función de entrenamiento modelo implementada en el proceso ANALYZER en InterSystems IRIS usando Python

Cada uno de los pasos de este proceso es responsable de una interacción específica con Python: una transferencia de datos de entrada del contexto IRIS de InterSystems al contexto de Python, una transferencia de código para su ejecución a Python, un retorno de datos de salida del contexto de Python al contexto IRIS de InterSystems .

El tipo de interacciones más utilizado en nuestro ejemplo es la transferencia de código para su ejecución en Python:

imagen
Figura 8 El código Python implementado en el proceso ANALYZER en InterSystems IRIS se envía para su ejecución a Python

En algunas interacciones hay un retorno de los datos de salida del contexto de Python al contexto IRIS de InterSystems:

imagen
Figura 9 Traza visual de la sesión del proceso ANALYZER con una vista previa de la salida devuelta por Python en uno de los pasos del proceso

Lanzando el robot


¿Lanzar el robot aquí mismo en este artículo? ¿Por qué no? Aquí está la grabación de nuestro seminario web en el que (además de otras historias interesantes de IA relevantes para la robotización). El ejemplo discutido en nuestro artículo fue demo. Desafortunadamente, el tiempo del seminario web siempre es limitado, y seguimos prefiriendo mostrar nuestro trabajo de la manera más ilustrativa y breve posible, por lo que compartimos a continuación una descripción más completa de los resultados producidos (7 sesiones de capacitación, incluida la capacitación inicial, en lugar de solo 3 en el seminario web):

imagen
Figura 10 Robot que alcanza un AUC constante por encima de 0.8 en la predicción

Estos resultados están en línea con nuestras expectativas intuitivas: a medida que el conjunto de datos de entrenamiento se llena de tweets positivos y negativos "etiquetados", la precisión de nuestro modelo de clasificación mejora (esto se demuestra por el aumento gradual de los valores de AUC que se muestran en la predicción).

¿Qué conclusiones podemos sacar al final del artículo?

• InterSystems IRIS es una poderosa plataforma para la robotización de los procesos que involucran inteligencia artificial

• La inteligencia artificial se puede implementar tanto en el entorno externo (por ejemplo, Python o R con sus módulos que contienen algoritmos listos para usar) como en la plataforma IRIS de InterSystems (utilizando bibliotecas de funciones nativas o escribiendo algoritmos en los lenguajes Python y R). InterSystems IRIS asegura la interacción con conjuntos de herramientas de IA externas que permiten combinar sus capacidades con su funcionalidad nativa

• InterSystems IRIS robotiza la IA mediante la aplicación de "tres A": procesos empresariales adaptables, adaptativos y de agente (o de lo contrario, procesos analíticos)

• InterSystems IRIS opera AI externo (Python, R) a través de kits de interacciones especializadas: transferencia / devolución de datos, transferencia de código para ejecución, etc. Un proceso analítico puede interactuar con varios conjuntos de herramientas matemáticas.

• InterSystems IRIS se consolida en una sola plataforma de datos de modelado de entrada y salida, mantiene la historización y el control de versiones de los cálculos.

• Gracias a InterSystems IRIS, la inteligencia artificial puede usarse tanto como mecanismo analítico especializado, como OLTP integrado y soluciones de integración.

Para aquellos que leyeron este artículo y se interesaron por las capacidades de InterSystems IRIS como una plataforma para desarrollar e implementar mecanismos de aprendizaje automático e inteligencia artificial, proponemos una discusión adicional sobre los escenarios potenciales que son relevantes para su empresa, y una definición colaborativa de los próximos pasos. El correo electrónico de contacto de nuestro equipo de expertos de AI / ML es MLToolkit@intersystems.com .

Source: https://habr.com/ru/post/478822/


All Articles