Inteligencia Artificial Robótica InterSystems IRIS

Publicado por Sergey Lukyanchikov, ingeniero consultor, InterSystems

Acordar terminología


Un robot no tiene que ser grande, humanoide o básicamente material (hasta el pico de Wikipedia , que, sin embargo, después de un par de párrafos suaviza la redacción inicial y permite que el robot sea irrelevante). Un robot es un autómata en el sentido algorítmico, un autómata para la solución autónoma (algorítmica) de algunos problemas. El detector de luz que enciende las luces por la noche es un robot. Analizando correos electrónicos al cliente de correo "externo" e "interno" también.

La inteligencia artificial (en el sentido estrictamente aplicado, Wikipedia no la comparte de nuevo) son algoritmos para extraer dependencias de los datos. No resolverá ningún problema por sí solo, para esto primero debe implementarse en forma de procesos analíticos específicos (datos de entrada, modelos, datos de salida, control de procesos). El proceso analítico que actúa como un "portador de inteligencia artificial" puede ser iniciado por una persona, puede ser iniciado por un robot. Y se detuvo también, uno u otro. Y administrar también.

Interacción con el medio ambiente.


La inteligencia artificial necesita datos, además, en una forma adecuada para el análisis. Cuando el analista comienza a desarrollar el proceso analítico, el analista mismo prepara los datos para el modelo. Como regla general, se crea un conjunto de datos suficiente en volumen y alcance ("conjunto de datos") en el que se entrena y prueba el modelo. Habiendo obtenido un resultado que es satisfactorio en precisión (y, en casos más raros, "localmente estable" en el tiempo), un analista típico considera su trabajo realizado. Pero realmente? De hecho, esto es solo la mitad de la batalla. Ahora es necesario garantizar el "funcionamiento ininterrumpido y eficiente" del proceso analítico, y el analista puede tener dificultades con esto.

Las herramientas utilizadas para desarrollar mecanismos de inteligencia artificial y aprendizaje automático, excepto en los casos más simples, no son adecuadas para la interacción productiva con el entorno externo. Es decir Probablemente sea posible obligar, por ejemplo, a Python a leer y transformar datos de sensores en el proceso de producción (al menos por un corto tiempo). Pero cambiar entre varios procesos de producción y administración dependiendo de la situación, escalar la potencia informática correspondiente, manejar todo tipo de "excepciones" (inaccesibilidad de una de las fuentes de datos, fallas de infraestructura, problemas de interacción del usuario, etc.): esto no está destinado a Python . Esto requiere 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á la barra de requisitos para la integración y los componentes de soluciones de "subcomponentes". El analista, gravitando hacia los mecanismos de inteligencia artificial, tratando de implementar el proceso analítico a través del lenguaje de secuencias de comandos de su entorno de modelado habitual (y las utilidades desarrolladas "para él", como "computadoras portátiles"), se enfrenta a la incapacidad de proporcionar su proceso analítico con un uso productivo completo.

Adaptabilidad y adaptabilidad


La variabilidad del medio ambiente se manifiesta de diferentes maneras. En algunos casos, la esencia y la naturaleza de los fenómenos controlados por la inteligencia artificial cambiarán (ingresar a una empresa en nuevas áreas de negocios, requisitos de los reguladores nacionales e internacionales, evolución de las preferencias de los consumidores de productos empresariales, etc.). En otros, la naturaleza de los datos provenientes del entorno (nuevos equipos con nuevos sensores, canales de transmisión de datos más eficientes, la disponibilidad de nuevas tecnologías para "marcar" datos, etc.).

¿Puede el proceso analítico "reconstruirse a sí mismo" al cambiar la estructura del entorno? Para simplificar la pregunta: ¿qué tan fácil es reconstruir el proceso analítico al cambiar la estructura del entorno? Según nuestras observaciones, la respuesta es simple y triste: en la mayoría de las implementaciones (¡no las nuestras!) Conocidas por nosotros, tendremos que reescribir al menos el proceso analítico, y a menudo la IA contenida en él. Puede que no sea literalmente de "entrada a salida" para reescribir, pero tendrá que agregar algo a la programación para procesar nuevas realidades, cambiar la lógica interna del "proceso de aplicación del modelo", etc. Y esto puede resultar en un negocio prohibitivamente caro, especialmente si el entorno cambia dinámicamente.

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


Como el lector probablemente ya haya notado, estamos avanzando hacia un aumento en la complejidad de la realidad ofrecida a la atención de la inteligencia artificial. Y marcamos las posibles consecuencias para la "parte instrumental". Con la esperanza de que al final podamos encontrar la respuesta a todos los desafíos que surgen.

Nos acercamos a la necesidad de proporcionar al proceso analítico un grado de autonomía en el que sería capaz de hacer frente no solo a la variabilidad del entorno, sino también a la incertidumbre de su estado. No se trata de la naturaleza cuántica del medio ambiente (aunque hablaremos de esto en una de las siguientes publicaciones), solo estamos hablando de la probabilidad de obtener el estado esperado por el proceso analítico en el momento esperado y en el "volumen" esperado. Por ejemplo: el proceso "pensó" que se manejaría con la próxima capacitación del modelo hasta que llegaran nuevos datos para la aplicación del modelo, pero no se "administre" (por razones objetivas, ingresaron más registros del conjunto de capacitación de lo habitual y la capacitación del modelo se retrasó). O bien: el grupo de marcado agregó una nueva prensa al proceso, el modelo de vectorización ya ha sido entrenado en el nuevo material textual, y la red neuronal todavía está trabajando en la vieja vectorización y envía información nueva extremadamente interesante al "desecho". Para hacer frente a tales situaciones, como muestra nuestra práctica, solo puede dividir el proceso analítico previamente unificado en varios componentes que funcionan independientemente y crear su propia "proyección de amortiguación" del entorno para cada proceso de agente recibido. Esta acción (adiós, Wikipedia) se llamará agenteización del proceso analítico. Y la calidad comunicada por la agencia al proceso analítico (como regla, a todo el sistema que consta de varios procesos a la vez) se llama agencia.

Establecemos la tarea para el robot.


Intentemos llegar a tal problema, para cuya solución se requeriría una IA robótica con todas las propiedades anteriores. No tenemos que ir muy lejos de la idea, ya que se han publicado muchos casos y soluciones interesantes en Internet: utilizaremos una de estas "soluciones de caso" (tanto para la declaración del problema como para la solución en términos de inteligencia artificial). Nuestra tarea elegida se reducirá a la clasificación de declaraciones en la red social Twitter ("tweets") en "negativas" y "positivas" en términos de su coloración emocional. Para entrenar a los modelos, tendremos muestras suficientemente grandes de tweets "marcados" (es decir, con un color emocional ya definido), y tendremos que clasificar los tweets "sin marcar" (es decir, con un color emocional indefinido):

imagen
Figura 1 Declaración del problema para la clasificación de textos por coloración emocional (análisis de sentimiento en inglés)

El enfoque para crear modelos matemáticos capaces de aprender sobre textos marcados y posteriormente clasificar textos con un color emocional indefinido se formula en un ejemplo bastante conocido publicado en Internet por S. Smetanin.

Yu. Rubtsova recopila, procesa y publica amablemente los datos para las tareas de esta clase.

Y sobre esto podríamos comenzar a "ensamblar el robot", pero complicaremos un poco la declaración clásica con una condición: tanto los datos marcados como los no asignados se proporcionan al proceso analítico en forma de archivos de tamaño estándar a medida que el proceso "consume" los archivos que ya se proporcionaron. Por lo tanto, nuestro robot necesitará comenzar a trabajar en los volúmenes mínimos de datos de entrenamiento, aumentando constantemente la precisión de la clasificación repitiendo el entrenamiento modelo en volúmenes crecientes de datos de entrenamiento.

Vamos al taller de InterSystems


Permítanos mostrar con el ejemplo de la tarea que acabamos de formular cómo robotizar la inteligencia artificial utilizando la plataforma IRIS de InterSystems y un conjunto de extensiones llamada ML Toolkit. Al mismo tiempo, garantizar que los procesos analíticos que creamos sean capaces de interactuar productivamente con el entorno, sean adaptables, adaptativos y agentes ("tres A").

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

imagen
Figura 2 Configuración de un sistema de agente de procesos empresariales con un componente para interactuar con Python

  • GENERADOR ("generador") : a medida que los archivos son consumidos por otros procesos, crea nuevos archivos con datos de entrada (marcados como "positivos" y "negativos" - tweets y tweets con un color emocional indefinido)
  • BUFFER ("buffer") : a medida que otros procesos consumen los registros, lee los registros nuevos de los archivos creados por el generador y los elimina después de leerlos.
  • ANALIZADOR ("analizador") : consume entradas del búfer de tweets indefinidos, aplica una red neuronal convolucional entrenada a estas entradas y coloca las entradas resultantes con la "probabilidad de positivo" calculada en el búfer del monitor; Consumir entradas de buffers de tweets positivos y negativos, realiza entrenamiento de redes neuronales
  • MONITOR ("monitor") : al consumir los registros procesados ​​por el analizador desde su propio búfer, monitorea los valores de las métricas de error de clasificación de tweets por la red neuronal durante el último entrenamiento y envía una señal al analizador sobre la necesidad de un nuevo entrenamiento de la red neuronal

Podemos representar esquemáticamente nuestro sistema de agente de procesos comerciales de la siguiente manera:

imagen
Figura 3 Flujo de datos del agente

Todos los procesos dentro de nuestro sistema operan independientemente uno del otro, pero teniendo en cuenta las señales de cada uno. Por ejemplo, la señal al comienzo de la formación del siguiente archivo con registros por parte del generador de procesos es la eliminación del archivo anterior con los registros por el búfer.

Ahora sobre adaptabilidad. La adaptabilidad del proceso analítico en nuestro ejemplo se implementa a través de la "encapsulación" de la IA en forma de un elemento independiente de la lógica del proceso portador del elemento, con el aislamiento de sus funciones principales: capacitación y aplicación de modelos:

imagen
Figura 4 Aislamiento en el analizador analítico de procesos de las principales funciones de la IA: entrenamiento y puntuación de modelos matemáticos

Porque El fragmento del proceso del analizador presentado anteriormente es parte del "ciclo sin fin" (que comienza cuando el proceso del analizador comienza y se ejecuta hasta que se detiene todo el sistema del agente), y las funciones de AI se ejecutan en paralelo, el proceso tiene la capacidad de adaptar la IA a la situación: entrenar modelos cuando sea necesario , y sin parar para utilizar la versión de modelos a su disposición. La necesidad de modelos de entrenamiento está determinada por un proceso de monitor adaptativo que funciona independientemente del proceso del analizador y utiliza sus propios criterios para evaluar la precisión de los modelos entrenados por el analizador:

imagen
Figura 5 Reconocimiento por el monitor del proceso del tipo de modelo y la aplicación de criterios apropiados para evaluar la precisión de los modelos.

Pasamos a la adaptabilidad. El proceso analítico en InterSystems IRIS es un proceso empresarial que tiene una representación gráfica o XML como una secuencia de pasos. Los pasos pueden, a su vez, ser secuencias de pasos, ciclos, pruebas de condición y otros controles de proceso. Los pasos pueden ejecutar código de programa para ejecución o transferir información (que también puede ser código de programa) para ejecución a otros procesos o entornos externos.

En particular, si es necesario cambiar el proceso analítico, tenemos la oportunidad de hacerlo tanto en el editor gráfico como en el IDE. Cambiar el proceso analítico en un editor gráfico le permite adaptar la lógica del proceso sin programar:

imagen
Figura 6 Analizador de procesos en un editor gráfico con un menú abierto para agregar controles

Y finalmente, interacción con el medio ambiente. El componente más importante del entorno, en nuestro caso, será el entorno de modelado matemático Python. Para garantizar la interacción con los entornos Python y R, se crearon las extensiones funcionales correspondientes: Python Gateway y R Gateway . Una clave funcional de ambos mecanismos es la capacidad de interactuar con el entorno apropiado utilizando componentes de integración convenientes. Ya hemos visto el componente para interactuar con Python en la configuración de nuestro sistema de agente. De esta manera, los procesos empresariales que contienen IA implementados en Python interactúan con Python.
Por ejemplo, el proceso del analizador contiene funciones para la capacitación y la aplicación de modelos, cuya implementación en Python en la plataforma IRIS de InterSystems se ve así:

imagen
Figura 7 Implementación en Python de la plataforma IRIS de InterSystems para la capacitación de modelos en el proceso del analizador

Cada uno de los pasos de este proceso es responsable de procesar una determinada interacción con Python: transferir la entrada del contexto del proceso IRIS de InterSystems al contexto Python, pasar el código para ejecutar en Python, devolver la salida del contexto Python al contexto del proceso IRIS de InterSystems.

El tipo de interacción más utilizado en nuestro ejemplo es pasar código para ejecutar en Python:

imagen
Figura 8 El código Python alojado en un proceso de analizador IRIS de InterSystems se envía a Python para su ejecución

En algunas interacciones, los datos se devuelven del contexto de Python al contexto del proceso IRIS de InterSystems:

imagen
Figura 9 Traza visual de la sesión del proceso del analizador con la visualización de la información devuelta por Python en uno de los pasos del proceso

Empezamos el robot


¿Ejecutar el robot correctamente en este artículo? Por qué no, aquí hay una grabación de nuestro seminario web, durante el cual (además de una serie de otras historias de IA interesantes y relacionadas con la robotización) se muestra el trabajo del escenario anterior. Desafortunadamente, desde el momento del seminario web es limitado, y queremos mostrar el "trabajo útil" de nuestro script robótico de la manera más compacta y visual posible, colocamos a continuación una descripción más completa de los resultados del entrenamiento modelo (7 ciclos de entrenamiento consecutivos en lugar de 3 en el seminario web):

imagen

Los resultados son bastante consistentes con las expectativas intuitivas: a medida que la muestra de entrenamiento se llena de tweets positivos y negativos "marcados", la calidad de nuestro modelo de clasificación mejora (esto se evidencia por el creciente "área bajo la curva", el mismo AUC - Área bajo la curva).

Qué conclusiones me gustaría sacar al final del artículo:

  • InterSystems IRIS es una potente plataforma de IA para procesos robóticos
  • La inteligencia artificial se puede implementar tanto en entornos externos (por ejemplo, Python y R con sus módulos que contienen algoritmos listos para usar) como en la plataforma InterSystems IRIS (usando una biblioteca integrada de algoritmos o escribiendo algoritmos en Python o R) - InterSystems IRIS proporciona interacción con entornos de IA externos, lo que le permite combinar sus capacidades con su propia funcionalidad
  • InterSystems IRIS robot AI usando "tres A": procesos comerciales adaptables, adaptativos y de agente (también son procesos analíticos)
  • InterSystems IRIS funciona con IA externa (Python, R) a través de conjuntos de interacciones especializadas: transferencia / retorno de datos, transferencia de código para ejecución, etc. Dentro del marco de un proceso analítico, se pueden llevar a cabo interacciones con varios entornos de modelado matemático.
  • InterSystems IRIS consolida los datos de entrada y salida del modelo en una sola plataforma, historiza y computa las versiones
  • Gracias a InterSystems IRIS, la inteligencia artificial se puede utilizar tanto en mecanismos analíticos especializados como incrustados en OLTP o soluciones de integración.

Quienes lean el artículo y estén interesados ​​en las capacidades de InterSystems IRIS como una plataforma para desarrollar o desplegar mecanismos de inteligencia artificial y aprendizaje automático, sugerimos discutir posibles escenarios de interés para su empresa. Analizaremos fácilmente las necesidades de su empresa y determinaremos conjuntamente un plan de acción; El correo electrónico de contacto para nuestro equipo de expertos de AI / ML es MLToolkit@intersystems.com .

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


All Articles