Testando ou incorporando modelos de ML

Neste cenário, modelos de ML treinados são usados ​​de dentro de ambientes simulados. Em outras palavras, um modelo de ML é treinado primeiro fora do ecossistema AnyLogic. Então, para avaliar ou utilizar suas habilidades preditivas, ele pode ser incluído como parte do modelo de simulação. 
Testar ou incorporar modelos de ML requer uma conexão entre um modelo de ML treinado e o modelo de simulação durante o tempo de execução. O AnyLogic fornece várias opções de conexão, independentemente da linguagem em que foi treinado e para conexões locais e remotas. 

Caso 1: Modelos de ML como alternativa para entradas que representam comportamento abstrato em um modelo

Um uso de parâmetros de entrada em um modelo de simulação é definir algum comportamento aproximado que é baseado nas regras causais presentes em um sistema real (por exemplo, tempo de atraso, taxa de chegada, etc.); estes são frequentemente modelados como variáveis ​​aleatórias univariadas ou, em alguns cenários, como um vetor aleatório com distribuições de probabilidade multivariadas. Como um substituto, modelos ML podem ser usados ​​para esses tipos de parâmetros de entrada. 

Modelos de ML como alternativa para entradas que representam comportamento abstrato em um modelo

Caso 2: Usando modelos de ML para aproximar o comportamento de componentes no sistema simulado

Quando certos componentes dentro de um modelo de simulação são extremamente complexos devido à necessidade de um grande nível de detalhes, um modelo de ML treinado pode ser usado como uma substituição para aproximar o comportamento. Isso é semelhante ao caso anterior, mas diz respeito a um componente específico do modelo que pode não ser necessariamente abstraível com um único valor (ou distribuição). Um exemplo óbvio seria um dispositivo físico que não é facilmente modelável por métodos de simulação genéricos, mas é baseado em dados reais que podem ser facilmente aproximados com aprendizado de máquina. 

Usando modelos de ML para aproximar o comportamento dos componentes no sistema simulado

Caso 3: Incorporação de quaisquer modelos de ML existentes e implantados no ambiente simulado para maior precisão

Um modelo de simulação deve replicar as regras de um sistema real – um fato que também se aplica a quaisquer soluções de IA incorporadas existentes em um determinado sistema. Regras e comportamentos que são um resultado direto das soluções de IA implantadas de um sistema também devem ser incorporados na simulação. A maneira mais natural de conseguir isso é incorporar diretamente as soluções de IA na simulação. 

Incorporar quaisquer modelos de ML existentes e implantados no ambiente simulado para maior precisão

Caso 4: Testando o impacto de uma solução de IA no desempenho geral do sistema antes da implantação

O objetivo de incorporar componentes de IA em um sistema é melhorar o desempenho geral do sistema, não apenas dos componentes específicos que estão sendo substituídos pela IA. É uma expectativa razoável que a implantação de uma solução de IA bem treinada tenha uma melhoria significativa no desempenho geral do sistema de destino. No entanto, qualquer perturbação em um sistema tem o potencial de mudar quaisquer gargalos ou causar outros efeitos cascata. Testar um modelo treinado por si só (por exemplo, usando uma amostra de dados de teste) não verifica se o desempenho do sistema modificado – como um todo – é suficientemente melhorado. Modelos de simulação podem ser usados ​​como um ambiente virtual e sem risco para testar as implicações da incorporação de IA em sistemas existentes. 

Testar o impacto de uma solução de IA no desempenho geral do sistema antes da implantação

Caso 5: Visualizando a matemática

Cientistas de dados estão familiarizados com o problema de mostrar e comunicar o efeito de suas soluções de ML para aqueles que não estão familiarizados com as nuances ou implicações envolvidas (por exemplo, clientes, gerentes ou tomadores de decisão). Um propósito do software de modelagem de simulação é apresentar o comportamento dinâmico de um modelo de uma forma que seja visualmente atraente e facilmente compreensível. Como tal, ele pode ser usado para mostrar visualmente o desempenho de um ambiente simulado com e sem uma solução de ML. 

Visualizando a matemática!

Caso 6: Testando políticas RL no ambiente simulado original

O objetivo final do aprendizado por reforço é aprender uma política útil que possa controlar um sistema de forma otimizada. Como o processo de aprendizado (treinamento) é feito em um ambiente simulado, o mesmo modelo de simulação também pode ser usado para testar a política aprendida! Avaliar o desempenho da política aprendida seria uma etapa útil antes de implantá-la no sistema real, um processo que é geralmente chamado de “Transferência Sim-para-Real”. 

Testando políticas de RL no ambiente simulado original

Fluxos de trabalho e ferramentas

Testar ou incorporar modelos de ML requer uma conexão entre um modelo de ML treinado e um modelo de simulação durante o tempo de execução. O AnyLogic fornece quatro opções gerais para conectar-se com modelos de ML, independentemente da linguagem em que foi treinado e para conexões locais e remotas. 

Acesso ao modelo ML usando a biblioteca ONNX Helper

Uso da biblioteca ONNX Helper para acesso a um modelo de ML treinado salvo no formato “.onnx”.

O formato ONNX, abreviação de Open Neural Network Exchange, é um formato padronizado e interoperável de estrutura para um modelo de ML treinado.

Embora exista uma biblioteca Java compatível, ela requer conhecimento técnico relativamente avançado para ser usada. O ONNX Helper é uma biblioteca complementar gratuita para download que é compatível com todas as versões do AnyLogic (PLE, University ou Professional) e fornece uma maneira simples e fácil de consultar modelos de ML, permitindo que os usuários simplesmente a arrastem para seu modelo e façam uso de uma única função.

Acesso ao modelo de ML usando a biblioteca ONNX Helper

Comunicação via chamadas de API

Comunicação remota (via chamadas de API) com modelos de ML hospedados por plataformas de ML/AutoML.

Qualquer modelo de ML treinado pode ser implantado de forma a permitir consultas via API. Quase todas as plataformas populares de ML/AutoML oferecem um mecanismo fácil para fazer isso imediatamente. Dentro da sua simulação, um código simples pode ser adicionado para construir uma solicitação no momento apropriado e aplicar a previsão retornada. Esse fluxo de trabalho abstrai a linguagem de programação do modelo de ML treinado.

Comunicação via chamadas de API

Modelo de ML incorporado ao ambiente de simulação

Incorpore nativamente um modelo de ML treinado no ambiente de simulação.

A consulta local de um modelo ML treinado é possível quando o treinamento foi em Java (linguagem nativa do AnyLogic) ou quando a plataforma de treinamento permite que o modelo ML seja exportado em um formato utilizável em Java.

Modelo de ML incorporado ao ambiente de simulação

Acesso ao modelo ML usando a biblioteca Pypeline

Uso da biblioteca Pypeline para acesso local a um modelo de ML treinado baseado em Python.

Se um modelo de ML treinado implantado for acessível por uma biblioteca Python, então o Pypeline – uma biblioteca AnyLogic personalizada – pode ser usado para consultá-lo. O Pypeline permite que você execute scripts Python com argumentos ou execute interativamente código Python de dentro de seus modelos AnyLogic, usando uma instalação local do Python.