Postado por Sergey Lukyanchikov, engenheiro de consultoria da InterSystems
Concordar com terminologia
Um robô não precisa ser grande, humanóide ou basicamente material (até o pico da
Wikipedia , que, no entanto, depois de alguns parágrafos suaviza a redação inicial e permite que o robô seja imaterial). Um robô é um autômato no sentido algorítmico, um autômato para solução autônoma (algorítmica) de alguns problemas. O detector de luz que acende as luzes à noite é um robô. Analisando e-mails para o cliente de email "externo" e "interno" - também.
Inteligência artificial (no sentido estritamente aplicado, a
Wikipedia não a compartilha novamente) são algoritmos para extrair dependências dos dados. Ele não resolverá nenhum problema por si só, pois isso deve ser implementado primeiro na forma de processos analíticos específicos (dados de entrada, modelos, dados de saída, controle de processo). O processo analítico que atua como um "portador de inteligência artificial" pode ser iniciado por uma pessoa, pode ser iniciado por um robô. E parou também, um ou outro. E gerencie também.
Interação com o meio ambiente
Além disso, a inteligência artificial precisa de dados em um formato adequado para análise. Quando o analista começa a desenvolver o processo analítico, os dados são preparados para o modelo pelo próprio analista. Como regra, um conjunto de dados suficiente em volume e escopo ("conjunto de dados") é criado no qual o modelo é treinado e testado. Tendo obtido um resultado satisfatório em precisão (e, em casos mais raros, “localmente estável” no tempo), um analista típico considera seu trabalho concluído. Mas mesmo? De fato, isso é apenas metade da batalha. Agora é necessário garantir a "operação ininterrupta e eficiente" do processo analítico - e o analista pode ter dificuldades com isso.
As ferramentas usadas para desenvolver mecanismos de inteligência artificial e aprendizado de máquina, exceto nos casos mais simples, não são adequadas para interação produtiva com o ambiente externo. I.e. Provavelmente, é possível forçar, por exemplo, o Python a ler e transformar dados de sensores no processo de produção (pelo menos por um curto período de tempo). Mas alternar entre vários processos de produção e gerenciamento, dependendo da situação, dimensionar o poder de computação correspondente, lidar com todos os tipos de “exceções” (inacessibilidade de uma das fontes de dados, falha na infraestrutura, problemas de interação do usuário etc.) - isso não se destina ao Python . Isso requer uma plataforma de gerenciamento e integração de dados. E quanto mais carregado, mais variado será o nosso processo analítico, maior será a barra de requisitos para integração e componentes da solução "subcomponente". O analista, gravitando em direção aos mecanismos de IA, tentando implementar o processo analítico através da linguagem de script de seu ambiente de modelagem familiar (e utilitários desenvolvidos "para ele", como "laptops"), enfrenta a incapacidade de fornecer ao seu processo analítico um uso produtivo completo.
Adaptabilidade e adaptabilidade
A variabilidade do ambiente se manifesta de diferentes maneiras. Em alguns casos, a essência e a natureza dos fenômenos controlados pela inteligência artificial mudarão (ingressar em uma empresa em novas áreas de negócios, requisitos de reguladores nacionais e internacionais, evolução das preferências dos consumidores de produtos corporativos etc.). Em outros, a natureza dos dados provenientes do ambiente (novos equipamentos com novos sensores, canais de transmissão de dados mais eficientes, disponibilidade de novas tecnologias para “marcar” dados, etc.).
O processo analítico pode "se reconstruir" ao alterar a estrutura do ambiente? Para simplificar a pergunta: quão fácil é reconstruir o processo analítico ao alterar a estrutura do ambiente? A partir de nossas observações, a resposta é simples e triste: na maioria das implementações (não as nossas!) Conhecidas por nós, teremos que reescrever pelo menos o processo analítico - e freqüentemente a IA contida nele. Pode não ser literalmente de "entrada para saída" para reescrever, mas você precisará adicionar algo à programação para processar novas realidades, alterar a lógica interna do próprio "processo de aplicação de modelos" etc. E isso pode resultar em um negócio proibitivamente caro - especialmente se o ambiente mudar dinamicamente.
Agência: o limite da autonomia?
Como o leitor provavelmente já percebeu, estamos caminhando para um aumento na complexidade da realidade oferecida à atenção da inteligência artificial. E marcamos as possíveis consequências para a "parte instrumental". Na esperança de que, no final, possamos encontrar a resposta para todos os desafios que surgem.
Chegamos perto da necessidade de fornecer ao processo analítico um grau de autonomia com o qual ele seria capaz de lidar não apenas com a variabilidade do ambiente, mas também com a incerteza de seu estado. Não se trata da natureza quântica do ambiente (embora falemos sobre isso em uma das publicações a seguir), estamos falando apenas da probabilidade de obter o estado esperado pelo processo analítico no momento em que ele espera e no "volume" esperado. Por exemplo: o processo “pensou” que iria gerenciar com o próximo treinamento do modelo até a chegada de novos dados para a aplicação do modelo, mas não “gerenciou” (por razões objetivas, mais registros entraram no conjunto de treinamento do que o habitual e o treinamento do modelo foi adiado). Ou então: o grupo de marcação adicionou uma nova impressora ao processo, o modelo de vetorização já foi treinado no novo material textual e a rede neural ainda está trabalhando na antiga vetorização e envia novas informações extremamente interessantes para o "recado". Para lidar com essas situações, como mostra nossa prática, você só pode dividir o processo analítico previamente unificado em vários componentes de trabalho independente e criar sua própria “projeção de buffer” do ambiente para cada processo de agente recebido. Essa ação (adeus, Wikipedia) será chamada de agenciamento do processo analítico. E a qualidade comunicada pela agência ao processo analítico (como regra, a todo o sistema que consiste em vários processos ao mesmo tempo) é chamada agência.
Nós definimos a tarefa para o robô
Vamos tentar resolver esse problema, cuja solução seria uma IA robótica com todas as propriedades acima. Não precisamos ir muito atrás da ideia, já que muitos casos e soluções interessantes foram publicados na Internet - usaremos uma dessas "soluções de caso" (tanto para a declaração do problema quanto para a solução em termos de inteligência artificial). Nossa tarefa escolhida será reduzida à classificação das declarações na rede social Twitter ("tweets") em "negativa" e "positiva" em termos de coloração emocional. Para treinar os modelos, teremos amostras suficientemente grandes de tweets "marcados" (ou seja, com uma coloração emocional já definida) e precisaremos classificar os tweets "não marcados" (ou seja, com uma coloração emocional indefinida):
Figura 1 Declaração do problema para a classificação de textos por coloração emocional (análise de sentimentos em inglês)A abordagem para criar modelos matemáticos capazes de aprender em textos marcados e subsequentemente classificar textos com uma coloração emocional indefinida é formulada em um exemplo bastante conhecido publicado na Internet por S. Smetanin.
Os dados para as tarefas desta classe são gentilmente coletados, processados e publicados por Yu. Rubtsova.
E com isso poderíamos começar a "montar o robô" - mas complicaremos um pouco a afirmação clássica com uma condição: dados marcados e dados não alocados são fornecidos ao processo analítico na forma de arquivos de tamanho padrão, à medida que o processo "consome" os arquivos já fornecidos. Portanto, nosso robô precisará começar a trabalhar nos volumes mínimos de dados de treinamento, aumentando constantemente a precisão da classificação repetindo o treinamento do modelo em volumes crescentes de dados de treinamento.
Vamos ao workshop InterSystems
Vamos mostrar pelo exemplo da tarefa que acabamos de formular como robotizar a inteligência artificial usando a plataforma IRIS da InterSystems e um conjunto de extensões para ela chamado ML Toolkit. Ao mesmo tempo, garantir que os processos analíticos que criamos sejam capazes de interagir produtivamente com o ambiente, sejam adaptáveis, adaptáveis e agentes ("três A").
Vamos começar com a agência. Vamos colocar quatro processos de negócios na plataforma:
Figura 2 Configuração de um sistema de agente de processo de negócios com um componente para interagir com Python- GENERATOR ("gerador") - como os arquivos são consumidos por outros processos, ele cria novos arquivos com dados de entrada (marcados como "positivo" e "negativo" - tweets e tweets com uma coloração emocional indefinida)
- BUFFER ("buffer") - como os registros são consumidos por outros processos, lê novos registros de arquivos criados pelo gerador e exclui esses arquivos após a leitura dos registros.
- ANALISADOR ("analisador") - consumindo entradas do buffer de tweets indefinidos, aplica uma rede neural convolucional treinada a essas entradas e coloca as entradas resultantes com a "probabilidade de positiva" calculada no buffer do monitor; consumindo entradas de buffers de tweets positivos e negativos, realiza treinamento em rede neural
- MONITOR ("monitor") - consumindo os registros processados pelo analisador a partir de seu próprio buffer, ele monitora os valores das métricas de erro de classificação do tweet pela rede neural durante o último treinamento e envia um sinal ao analisador sobre a necessidade de novo treinamento da rede neural
Podemos representar esquematicamente nosso sistema de agente de processos de negócios da seguinte maneira:
Figura 3 Fluxo de dados do agenteTodos os processos em nosso sistema operam independentemente um do outro, mas levando em consideração os sinais um do outro. Por exemplo, o sinal para o início da formação do próximo arquivo com registros pelo gerador de processos é a exclusão do arquivo anterior com os registros pelo buffer.
Agora sobre adaptabilidade. A adaptabilidade do processo analítico em nosso exemplo é realizada através do "encapsulamento" da IA na forma de um elemento independente da lógica do processo de portador do elemento, com o isolamento de suas principais funções - treinamento e aplicação de modelos:
Figura 4 Isolamento no analisador de processo analítico das principais funções da IA - treinamento e pontuação de modelos matemáticosPorque o fragmento do processo do analisador apresentado acima faz parte do “ciclo interminável” (que inicia quando o processo do analisador é iniciado e é executado até que todo o sistema do agente pare) e as funções da IA são executadas em paralelo, o processo tem a capacidade de adaptar a AI à situação: treinar modelos quando necessário e sem parar para usar a versão dos modelos à sua disposição. A necessidade de modelos de treinamento é determinada por um processo de monitor adaptativo que funciona independentemente do processo do analisador e usa seus próprios critérios para avaliar a precisão dos modelos treinados pelo analisador:
Figura 5 Reconhecimento pelo monitor do processo do tipo de modelo e aplicação de critérios apropriados para avaliar a precisão dos modelosNos voltamos para a adaptabilidade. O processo analítico no InterSystems IRIS é um processo comercial que possui uma representação gráfica ou XML como uma sequência de etapas. As etapas podem, por sua vez, ser sequências de etapas, ciclos, testes de condição e outros controles de processo. As etapas podem executar o código do programa para execução ou transferência de informações (que também podem ser o código do programa) para execução em outros processos ou ambientes externos.
Em particular, se for necessário alterar o processo analítico, temos a oportunidade de fazer isso no editor gráfico e no IDE. Alterar o processo analítico em um editor gráfico permite adaptar a lógica do processo sem programar:
Figura 6 Analisador de processo em um editor gráfico com um menu aberto para adicionar controlesE, finalmente, interação com o meio ambiente. O componente mais importante do ambiente, no nosso caso, será o ambiente de modelagem matemática do Python. Para garantir a interação com os ambientes Python e R, as extensões funcionais correspondentes foram criadas:
Python Gateway e
R Gateway . Uma funcionalidade essencial de ambos os mecanismos é a capacidade de interagir com o ambiente apropriado usando componentes de integração convenientes. Já vimos o componente para interagir com o Python na configuração do nosso sistema de agentes. Dessa forma, os processos de negócios que contêm IA implementada no Python interagem com o Python.
Por exemplo, o processo do analisador contém funções para treinamento e aplicação de modelos, cuja implementação em Python na plataforma IRIS da InterSystems se parece com a seguinte:
Figura 7 Implementação em Python da plataforma IRIS da InterSystems para o treinamento de modelos no processo do analisadorCada uma das etapas deste processo é responsável por processar uma certa interação com o Python: transferir entrada do contexto do processo IRIS da InterSystems para o contexto Python, passar código para executar no Python, retornar a saída do contexto Python para o contexto do processo IRIS da InterSystems.
O tipo de interação mais usado em nosso exemplo é passar código para executar no Python:
Figura 8 O código Python hospedado em um processo analisador InterSystems IRIS é enviado ao Python para execuçãoEm algumas interações, os dados são retornados do contexto Python para o contexto do processo InterSystems IRIS:
Figura 9 Rastreio visual da sessão do processo do analisador com visualização das informações retornadas pelo Python em uma das etapas do processoNós começamos o robô
Executar o robô certo neste artigo? Por que não, aqui está uma
gravação do nosso webinar, durante o qual (além de várias outras histórias interessantes e relacionadas à IA de robotização!) O trabalho do cenário acima é mostrado. Como o tempo do webinar, infelizmente, é limitado - e queremos mostrar o "trabalho útil" de nosso script robótico da maneira mais compacta e visual possível -, colocamos abaixo uma visão geral mais completa dos resultados do treinamento com modelo (7 ciclos de treinamento consecutivos em vez de 3 no webinar):

Os resultados são bastante consistentes com as expectativas intuitivas: à medida que a amostra de treinamento se enche de tweets positivos e negativos "marcados", a qualidade do nosso modelo de classificação melhora (isso é evidenciado pelo aumento da "área sob a curva", a mesma AUC - Área sob curva).
Que conclusões eu gostaria de tirar no final do artigo:
- O InterSystems IRIS é uma poderosa plataforma de IA para processos robóticos
- A inteligência artificial pode ser implementada tanto em ambientes externos (por exemplo, Python e R com seus módulos que contêm algoritmos prontos para uso) quanto na própria plataforma InterSystems IRIS (usando biblioteca de algoritmos incorporada ou escrevendo algoritmos em Python ou R) - O InterSystems IRIS fornece interação com ambientes externos de IA, permitindo combinar seus recursos com sua própria funcionalidade
- Robôs IRIS da InterSystems usando "três A": processos de negócios adaptáveis, adaptáveis e de agente (eles também são processos analíticos)
- O InterSystems IRIS trabalha com IA externa (Python, R) através de conjuntos de interações especializadas: transferência / retorno de dados, transferência de código para execução, etc. Dentro da estrutura de um processo analítico, podem ser realizadas interações com vários ambientes de modelagem matemática.
- O InterSystems IRIS consolida os dados de entrada e saída do modelo em uma única plataforma, historiciza e versiona os cálculos
- Graças ao InterSystems IRIS, a inteligência artificial pode ser usada tanto em mecanismos analíticos especializados quanto incorporados em soluções OLTP ou de integração.
Aqueles que leem o artigo e estão interessados nos recursos do InterSystems IRIS como uma plataforma para desenvolver ou implantar mecanismos de inteligência artificial e aprendizado de máquina, sugerimos discutir possíveis cenários de interesse da sua empresa. Analisaremos prontamente as necessidades da sua empresa e determinaremos em conjunto um plano de ação; O e-mail de contato da nossa equipe de especialistas em AI / ML é
MLToolkit@intersystems.com .