mais lidos
Life at Nu
Conheça a sede do Nubank em Pinheiros, São Paulo/Brasil jan 11
Design
A nova aparência do Nubank: conheça nossa nova logo maio 17
Culture & Values
Como os valores e a cultura da Nu moldam os produtos que criamos ago 7
Carreiras
Reunimos grandes mentes de diversas origens que permitem a discussão e o debate e melhoram a resolução de problemas.
Saiba mais sobre nossas carreiras



No Nubank, implantar modelos de machine learning em um ambiente de produção construído principalmente em Clojure apresenta desafios e oportunidades únicos.
Este artigo explora os principais tópicos em torno desse assunto, com foco nos aspectos técnicos da integração de modelos de machine learning em um ambiente Clojure-first.
Continue lendo para saber tudo sobre isso!
O que é software de produção?
Ao implantar software, especialmente em uma instituição financeira como o Nubank, a definição de software de produção vai além do código. Envolve um ecossistema abrangente que inclui:
Esses elementos são essenciais para criar um ambiente de produção robusto, seguro e em conformidade.
Conheça nossas oportunidades
Padronizando componentes de produção com Clojure como a linguagem principal
Em um ambiente de grande escala como o Nubank, onde várias equipes implantam software, padronizar componentes de produção é fundamental. Essa padronização garante que todas as equipes possam se concentrar em suas tarefas principais sem precisar reinventar soluções para requisitos comuns, como autenticação, criptografia e registro de logs.
No entanto, essa padronização também apresenta desafios ao integrar modelos de machine learning, especialmente quando esses modelos são desenvolvidos em linguagens como Python, que não são nativas do ecossistema Clojure.
O Nubank utiliza predominantemente Clojure para seu código de produção, aproveitando seus recursos robustos e compatibilidade com JVM. O desafio é que muitos componentes padronizados no ecossistema Nubank são escritos especificamente para Clojure, dificultando o uso desses componentes diretamente com modelos escritos em outras linguagens, como Python ou até R.
Uma abordagem inicial para esse desafio foi reescrever componentes essenciais, como autenticação e criptografia, em Python para suportar os modelos de machine learning. Embora isso tenha permitido alguma integração, resultou em altos custos de engenharia e soluções incompletas, uma vez que era difícil acompanhar o rápido ritmo de desenvolvimento no ecossistema Clojure.
O padrão sidecar: uma solução estratégica
Para superar as limitações da abordagem inicial, o Nubank desenvolveu o padrão sidecar. Essa solução arquitetônica envolve a implantação de um serviço em Clojure (o sidecar) ao lado do modelo de machine learning.
O sidecar lida com todas as interações com a infraestrutura mais ampla, enquanto o modelo de machine learning se concentra apenas em previsões. Algumas das vantagens dessa solução incluem:
Explorando ONNX para Interoperabilidade
O que é ONNX?
O Open Neural Network Exchange (ONNX) é um formato de código aberto projetado para permitir que modelos de machine learning sejam transferidos facilmente entre diferentes frameworks. Esse formato é particularmente útil para garantir interoperabilidade entre modelos desenvolvidos em diferentes linguagens e ambientes.
ONNX no contexto do Nubank
O Nubank explorou o ONNX como uma solução potencial para integrar modelos de machine learning com a infraestrutura baseada em Clojure existente. O ONNX Runtime, que oferece suporte a várias linguagens de programação, poderia permitir que os modelos de machine learning fossem implantados sem a necessidade do ambiente original no qual foram treinados. Aqui estão alguns dos benefícios desse formato:
O futuro da implantação de Machine Learning no Nubank
O Nubank continua explorando soluções inovadoras como o ONNX, enquanto mantém a estabilidade e a robustez de seu ambiente Clojure-first.
O padrão sidecar continua sendo uma escolha estratégica para integrar modelos de machine learning, com o ONNX sendo considerado para casos de uso específicos em que pode fornecer um valor claro para o negócio.
Ao equilibrar padronização, interoperabilidade e necessidades de negócios, os funcionários do Nubank estão encontrando soluções criativas enquanto permanecem fiéis à base tecnológica da empresa.
É assim que vamos construir o futuro roxo. Isso é trabalhar no Nu!
Conheça nossas oportunidades