En este escenario, los modelos de aprendizaje automático (ML) entrenados se utilizan dentro de entornos simulados. En otras palabras, un modelo de ML se entrena primero fuera del ecosistema de AnyLogic. Luego, para evaluar o aprovechar sus capacidades predictivas, puede integrarse como parte del modelo de simulación.
Probar o incorporar modelos de ML requiere una conexión entre un modelo de ML entrenado y el modelo de simulación durante el tiempo de ejecución. AnyLogic ofrece varias opciones de integración, independientemente del lenguaje en el que el modelo haya sido entrenado y tanto para conexiones locales como remotas.
Un uso común de los parámetros de entrada en un modelo de simulación es definir comportamientos aproximados basados en reglas causales presentes en un sistema real (por ejemplo, tiempo de demora, tasa de llegada, etc.). Estos parámetros suelen modelarse como variables aleatorias univariadas o, en algunos casos, como vectores aleatorios con distribuciones de probabilidad multivariadas.
Como alternativa, los modelos de aprendizaje automático (ML) pueden utilizarse para representar este tipo de parámetros de entrada.

Cuando ciertos componentes dentro de un modelo de simulación son extremadamente complejos debido a la necesidad de un alto nivel de detalle, se puede utilizar un modelo de aprendizaje automático (ML) entrenado como sustituto para aproximar su comportamiento.
Esto es similar al caso anterior, pero se refiere a un componente específico del modelo que no necesariamente puede ser abstraído mediante un único valor (o una distribución).
Un ejemplo claro sería un dispositivo físico que no puede ser modelado fácilmente mediante métodos de simulación genéricos, pero cuyo comportamiento, basado en datos reales, puede ser aproximado de forma precisa mediante aprendizaje automático.

Un modelo de simulación debe replicar las reglas de un sistema real, y este principio también se aplica a cualquier solución de inteligencia artificial ya incorporada en dicho sistema.
Las reglas y comportamientos que son resultado directo de las soluciones de IA implementadas en el sistema también deben estar representados en la simulación.
La forma más natural de lograr esto es integrando directamente dichas soluciones de IA en el modelo de simulación.

El objetivo de incorporar componentes de IA en un sistema es mejorar el rendimiento general del sistema, no solo de los componentes específicos que están siendo reemplazados por la IA. Es razonable esperar que la implementación de una solución de IA bien entrenada genere una mejora significativa en el rendimiento global del sistema objetivo.
Sin embargo, cualquier alteración en un sistema tiene el potencial de cambiar los cuellos de botella existentes o provocar otros efectos en cascada.
Evaluar un modelo entrenado por sí solo (por ejemplo, utilizando una muestra de datos de prueba) no garantiza que el rendimiento del sistema modificado —como un todo— haya mejorado lo suficiente.
Los modelos de simulación pueden utilizarse como un entorno virtual y sin riesgos para probar las implicaciones de incorporar IA en sistemas existentes.

Los científicos de datos están familiarizados con el desafío de mostrar y comunicar el impacto de sus soluciones de aprendizaje automático (ML) a quienes no están familiarizados con las complejidades o implicaciones involucradas (por ejemplo, clientes, gerentes o tomadores de decisiones).
Uno de los objetivos del software de modelado de simulación es presentar el comportamiento dinámico de un modelo de forma visualmente atractiva y fácilmente comprensible.
Como tal, puede usarse para mostrar visualmente el rendimiento de un entorno simulado con y sin una solución de ML.
El objetivo final del aprendizaje por refuerzo es aprender una política útil que pueda controlar un sistema de manera óptima.
Dado que el proceso de aprendizaje (entrenamiento) se realiza en un entorno simulado, el mismo modelo de simulación también puede usarse para evaluar la política aprendida.
Evaluar el desempeño de la política aprendida es una etapa valiosa antes de implementarla en el sistema real, un proceso generalmente conocido como “Transferencia Sim-a-Real”.

Probar o incorporar modelos de ML requiere una conexión entre un modelo de ML entrenado y un modelo de simulación durante el tiempo de ejecución. AnyLogic ofrece cuatro opciones generales para conectarse con modelos de ML, independientemente del lenguaje en que fueron entrenados y para conexiones locales y remotas.
Uso de la biblioteca ONNX Helper para acceder a un modelo de ML entrenado guardado en formato “.onnx”.
El formato ONNX, abreviatura de Open Neural Network Exchange, es un formato estandarizado e interoperable para representar modelos de aprendizaje automático entrenados.
Aunque existe una biblioteca compatible con Java, su uso requiere conocimientos técnicos relativamente avanzados.
ONNX Helper es una biblioteca complementaria gratuita que se puede descargar, compatible con todas las versiones de AnyLogic (PLE, University o Professional), y ofrece una forma sencilla y fácil de consultar modelos de ML, permitiendo a los usuarios simplemente arrastrarla a su modelo y utilizar una única función.

Comunicación remota (a través de llamadas API) con modelos de ML alojados en plataformas de ML/AutoML.
Cualquier modelo de ML entrenado puede ser desplegado para permitir consultas vía API. Casi todas las plataformas populares de ML/AutoML ofrecen un mecanismo sencillo para hacerlo de inmediato.
Dentro de la simulación, se puede agregar un código simple para construir una solicitud en el momento adecuado y aplicar la predicción devuelta. Este flujo de trabajo abstrae el lenguaje de programación del modelo de ML entrenado.

Incorporar nativamente un modelo de ML entrenado en el entorno de simulación.
La consulta local de un modelo de ML entrenado es posible cuando el entrenamiento se realizó en Java (lenguaje nativo de AnyLogic) o cuando la plataforma de entrenamiento permite exportar el modelo de ML en un formato compatible con Java.

Uso de la biblioteca Pypeline para el acceso local a un modelo de ML entrenado basado en Python.
Si un modelo de ML entrenado y desplegado es accesible a través de una biblioteca Python, entonces Pypeline — una biblioteca personalizada de AnyLogic — puede usarse para consultarlo.
Pypeline permite ejecutar scripts Python con argumentos o ejecutar código Python de forma interactiva desde dentro de los modelos AnyLogic, utilizando una instalación local de Python.
