book_icon

Python e InterSystems Iris um casamento perfeito para Machine Learning

A natureza híbrida do InterSystems Iris, permite que ele seja extremamente performático em ambientes de ML, e agora com a possibilidade de executar código em Python nativamente na plataforma, isso permite que os cientistas de dados executem os processos no servidor de dados ao invés de levar os dados para o servidor de processamento analítico

Python e InterSystems Iris um casamento perfeito para Machine Learning

A plataforma de dados InterSystems Iris agora apresenta suporte nativo completo para Python, liberando o poder da linguagem de programação mais popular do mundo para criar aplicativos de missão crítica com uso intensivo de dados.

https://www.intersystems.com/news-events/news/news-item/embedded-python-intersystems-iris-data-platform/

Essa decisão estratégica leva em consideração vários fatores:

• A grande escala no uso de Python dentro das corporações
• Python passou ser a um padrão de fato para desenvolvimento de modelos de Machine Learning (ML)
• A grande oferta e demanda de programadores Python.

A seguir iremos explorar esses pontos.

O crescimento do Python
Inegável o crescimento explosivo do uso de Python nas grandes corporações. Isso é facilmente comprovado em várias publicações acessadas na web, tanto acadêmicas quanto jornalísticas. Não é à toa que os desenvolvedores focados nas aplicações de missão crítica com uso intensivo de dados passaram unanimemente a preferir as plataformas de dados de arquitetura única para suportar todo tipo de dados e cargas de trabalho.

Afinal, análise de bases de dados e baixa latência, além da interoperabilidade, são características muito vantajosas dessas plataformas para se trabalhar com modelos analíticos e de aprendizado de máquina (Machine Learning-ML). Esse trabalho tem como base a criação de modelos de análise que precisam passar por um “treinamento”, que consiste em expor esse modelo a dados históricos e observar como o modelo de ML se comporta e se as conclusões do cientista de dados estão corretas ou não.
O gráfico abaixo mostra o aumento da demanda por programadores em Python.

Gráfico InterSystems

Para os programadores independentes, Python oferece um grande ecossistema de desenvolvedores e “peer-support” (algo como suporte solidário) onde desenvolvedores menos experientes podem contar com a sabedoria e experiência de uma comunidade de milhões de desenvolvedores.

Além disso, existem milhares de bibliotecas de funções analíticas e de ML que aceleram o desenvolvimento de modelos de ML: TensorFlow, NumPy, Ramp, Matplotlib, e Pandas para citar apenas algumas. Esses são alguns dos motivos que tornaram Python tão popular entre os cientistas de dados, a ponto de superar o desenvolvimento de modelos em R.

Um novo padrão para Machine Learning
Os modelos analíticos e de Aprendizado de Máquina ou “Machine Learning” (ML) são baseados na criação de modelos de análise que precisam passar por um “treinamento”, que consiste em expor esse modelo a dados históricos e observar como o modelo de ML se comporta e se as conclusões do cientista da dados estão corretas ou não.

Um dos pontos mais importantes do ML, no entanto, e que muitas pessoas se esquecem ou não levam em consideração, é a qualidade dos dados usados na etapa de treinamento. A seu respeito, um dos pensadores mais respeitados da comunidade de TI no Brasil, Cezar Taurion, fez o seguinte comentário em um post: “(…) Hoje gasta-se, pelo menos 80% do tempo na preparação e limpeza dos dados para um sistema de ML ser treinado. Modelos com esse conceito tendem a apresentar resultados ruins quando os dados mudam, por exemplo, quando entrando em produção.”

O tempo e o esforço que as corporações dispendem preparando os dados para serem ingeridos nos modelos de ML é muito grande e é “preconceituoso”. O pré-conceito é fazer os dados se adequarem ao modelo, quando o correto seria o inverso. Os dados acumulados representam a vida como ela é, ou seja, a realidade.

Os modelos analíticos requerem uma grande massa de dados e mesmo o tempo de transferência do resultado de uma query entre os dois sistemas, pode ser significativo     

O uso de um “Smart Data Fabric”, onde os dados são tratados como cidadãos de primeira classe, permite que os dados sejam tratados, limpos e anonimizados sem perder a sua significância e a sua ligação com a realidade.

Um dos grandes gargalos de processamento de modelos analíticos ou de ML, é a tempo necessário para preparar os dados, que residem num sistema de armazenamento de dados transacional, e levá-los para o sistema de processamento analítico. Os modelos analíticos requerem uma grande massa de dados e mesmo o tempo de transferência do resultado de uma query entre os dois sistemas, pode ser significativo.

Um dos grandes apelos de se usar Python dentro do InterSystems Iris é conseguir rodar esses processos analíticos no servidor de banco de dados, eliminando a necessidade de transferir os dados do banco transacional para o servidor de processamento analítico.
A partir da versão 2021.2 do InterSystems Iris, Python é uma das linguagens de desenvolvimento que rodam nativamente dentro do InterSystems Iris, que também permite o desenvolvimento em Java, .Net e ObjectScript. Os modelos de ML que já existem podem ser portados para rodar no InterSystems IRIS, com poucas ou nenhuma adaptação, agilizando o desenvolvimento e a entrada em produção dos modelos de ML.

InterSystems Iris um banco de dados translítico ou HTAP
O InterSystems Iris é um banco translítico, termo usado pelo Forrester Group para descrever um banco de dados que é capaz de executar operações transacionais tradicionais concomitantemente com operações analíticas, HTAP do inglês “Hybrid Transactional and Analytical Processing” é outro termo usado para descrever esse tipo de servidor.

A figura acima mostra a arquitetura de um teste de ingestão transacional num ambiente translítico, esse teste de performance foi desenvolvido pela InterSystems e é auditado por uma consultoria externa para garantir a idoneidade dos resultados. Maiores detalhes do teste podem ser encontrados neste link:

https://www.intersystems.com/speedtest

Os resultados dos testes de performance HTAP mostram que o InterSystems Iris apresenta melhor performance, em comparação com outros bancos de dados, em um ambiente misto de ingestão de dados e tempo de resposta das queries.

Os resultados variam entre 60% e 4860% em termos da quantidade de novos registros ingeridos, enquanto os tempos de resposta das queries analíticas variam entre 170% e 5600% na média em favor do InterSystems Iris.

No link acima, também é possível encontrar os procedimentos para executar o teste em seu próprio ambiente ou em uma Nuvem como AWS.

A natureza híbrida do InterSystems Iris, permite que ele seja extremamente performático em ambientes de ML, e agora com a possibilidade de executar código em Python nativamente na plataforma, isso permite que os cientistas de dados executem os processos no servidor de dados ao invés de levar os dados para o servidor de processamento analítico.

Além disso o InterSystems Iris suporta PMML (Predictive Model Markup Language) que permite que ele importe ou exporte modelos preditivos de Machine Learning, o que torna o InterSystems Iris a plataforma ideal para a implementação de MLOps, ou Machine Learning Operations.

MLOps implementa ferramentas para o gerenciamento do ciclo de vida completo de um modelo de ML: treinar o modelo, conduzir análise dos erros para identificar os tipos de dados nos quais o algoritmo apresenta baixa performance, conseguir mais dados via nova coleta ou conseguir marcações mais consistentes para os dados que foram detectados como ambíguos. E finalmente o teste em produção no mundo real, onde os novos dados são usados para refinar continuamente o modelo. Uma pesquisa recente aponta que um terço das organizações não monitoram rotineiramente ou retreinam seus modelos de ML para melhorar a performance.

Novamente, o suporte ao Python dentro do InterSystems Iris alavanca e acelera este processo, tornando o InterSystems Iris a plataforma de dados ideal para projetos de ML que se alimentam de dados oriundos de um sistema transacional.

Espero que este breve artigo tenha despertado o seu interesse no uso de Python com o InterSystems Iris, verdadeiramente um “Casamento Perfeito”!

Publieditorial
Últimas Notícias
Você também pode gostar
As opiniões dos artigos/colunistas aqui publicados refletem exclusivamente a posição de seu autor, não caracterizando endosso, recomendação ou favorecimento por parte da Infor Channel ou qualquer outros envolvidos na publicação. Todos os direitos reservados. É proibida qualquer forma de reutilização, distribuição, reprodução ou publicação parcial ou total deste conteúdo sem prévia autorização da Infor Channel.