A stack de MLOps da Hotmart

Conheça um pouco sobre a filosofia e plataforma de MLOps que a Hotmart está criando

Paulo Vasconcellos
Troopers-Legacy
9 min readApr 3, 2023

--

Capa criada com o DALL-E

Nos últimos anos, a área de ML tem visto dois principais fenômenos: (1) mais modelos estão sendo produtizados; e (2) um aumento na necessidade de fazer esse crescimento se tornar não só escalável, mas também sustentável. Com isso, uma das áreas que mais tem recebido destaque é Machine Learning Operations, ou MLOps, para os mais íntimos.

Talvez você já saiba como nós estamos aplicando AI aqui na Hotmart, e com tantos modelos críticos para o negócio, é importante criar uma cultura que suporte esse crescimento. Nesse post, quero dar um pouco mais de visibilidade em como nós estamos aplicando MLOps na Hotmart.

O problema da Modern Data Stack

Antes de falar das ferramentas e processos da cultura de MLOps da Hotmart, quero compartilhar minha linha de pensamento e opinião sobre a área. Isso vai te ajudar a entender a minha motivação para escolher alguns caminhos e abordagens para fomentar tal cultura na Hotmart.

Minha leitura do atual cenário de MLOps é que estamos passando por um momento semelhante ao hype do desenvolvimento web, no começo dos anos 2010, onde toda semana surgia uma nova ferramenta que resolvia o mesmo problema. Em ML, centenas de novas ferramentas surgem todo ano, algumas em áreas mais consolidadas, como data pipelines, e outras em áreas mais em ascensão, como serving e infraestrutura.

AI Landscape 2021

AI Ltda.

Um problema que vejo é que muitas dessas novas ferramentas do mercado são empresas vendendo-as como soluções gerenciadas, onde você tem pouca ou quase nenhuma flexibilidade de customização (afinal, ferramentas assim querem ser genéricas o suficiente para ter um maior market share), onde muitas delas são negócios que ainda não são lucrativos ou nem sequer cruzaram o abismo. Neste último, as vezes é simplesmente difícil de dizer o nível de maturidade da empresa.

Sabemos que, estatisticamente, quase 50% dos negócios quebram nos primeiros cinco anos de vida. Some isso ao fato de (1) tais serviços e ferramentas não serem baratos, e (2) grande parte dessas soluções de MLOps não são plug n' play, onde já vi casos de processos de onboarding e implementação de uma ferramenta demorar mais de nove meses! É desmotivante você adotar uma tecnologia cara e difícil de implementar, vindo de uma empresa que pode, literalmente, desaparecer nos próximos anos.

Embora existam empresas que estão fazendo um ótimo trabalho (Tecton, Algorithmia, Paperspace), elas são exceções a regra. O cenário ainda é mais desmotivante quando analisamos a economia atual, onde o investimento em startups de AI caiu em 2022, mesmo que ainda não estejamos correndo o perigo de um Inverno em AI. Com o surgimento de AI que estão estourando a bolha, como Stable Diffusion e ChatGPT, VCs estão tirando seus olhos de web3 e blockchain e olhando para IA. Embora eu seja otimista em ver que investimentos na área irão aumentar, é preciso separar o que é hype do que não é.

A saída é o open-source… Será?

Uma das saídas que praticantes e profissionais podem buscar está em soluções open-source mantidas pela comunidade. Afinal, mesmo se a empresa quebrar, a comunidade irá mantê-la, não é? Não é?

Embora eu seja um dos maiores fãs e consumidores de soluções open-source, é preciso ter sabedoria em escolher qual ferramenta você vai trazer para dentro do seu negócio. Em muitas ferramentas, usuários precisam se agarrar na benevolência dos desenvolvedores, exercendo a fé para que tal framework ou ferramenta nunca pare de ser mantida (ou que o cara não seja preso).

Um bom indicador dessa saúde podem ser ferramentas sob o "selo" Apache Foundation, a maior fundação open-source do mundo, onde soluções como Spark, Airflow, e Flink são alguns dos membros dessa família. Mas, nem todas as ferramentas nascem Apache, e um bom exercício para se fazer nesses casos é analisar o quão engajada é a comunidade por trás de uma ferramenta.

Eles possuem um canal de comunicação (Slack, Discord, Discourse)? Eles possuem uma documentação rica ou um centro de conhecimento da comunidade (como DBT)? Existe algum grande player por trás dessa ferramenta (como a Databricks com MLflow ou Netflix com o Metaflow)? As vezes, uma simples análise na quantidade de estrelas e forks no Github, ou a última vez que alguém fez um commit já pode ou não subir uma bandeira vermelha naquela ferramenta (e isso inclui a minha própria ferramenta open-source).

MLOps está morto. Vida longa ao MLOps

Até aqui, parece que eu estou desacreditado com MLOps e AI, mas é completamente o contrário. Gosto de trazer os pontos realistas do cenário, pois é importante dar um passo para trás e olhar todo o panorama de MLOps para evitar cair nas armadilhas do hype. Mesmo que investimentos em startups de AI tenham diminuído, existem empresas levantando milhões de dólares em financiamentos em Series A e, assim como no desenvolvimento web tivemos soluções que se consolidaram na liderança, acredito que MLOps terá um momento semelhante.

Meu palpite é que o panorama de MLOps irá mudar nos próximos anos, saindo de um cenário com muitas ferramentas resolvendo o mesmo problema, para um mercado mais consolidado. Na minha humilde opinião, existirão apenas dois tipos de peixes nesse lago: grandes corporações com soluções gerenciadas, e fortes iniciativas open-source da comunidade.

Já estamos vendo isso acontecer. A Amazon está colocando muita energia na evolução do SageMaker, vendendo ele como uma IDE para o cientista de dados, enquanto Google e Microsoft estão lutando pela supremacia em IA. Outros players estão tentando pegar sua fatia, desde a já consolidada Databricks até nomes menos conhecidos como Paperspace.

A Plataforma de Machine Learning na Hotmart

Quando falamos de MLOps, uma das palavras-chave é Abstração. Mais importante que sair plugando ferramenta na sua infra é abstrair os conceitos e adequá-los ao seu negócio e processo de entrega de valor. Nem todas as iniciativas de MLOps nascem iguais, e ter uma cultura forte é mais importante que uma nova tecnologia. Uma das soluções que mais tem sido adotadas é a criação de plataformas de machine learning.

Uma das primeiras arquiteturas do Micheleangelo, da Uber. (Foto: Uber)

Uma plataforma de machine learning é um conjunto de ferramentas e serviços que servem como arcabouço para novas soluções de ML da organização, automatizando parte ou todo o processo, desde a coleta e treinamento, até deploy e monitoramento. Um dos primeiros casos a existir foi o Michelangelo, da Uber.

Ter uma cultura forte é mais importante que uma ferramenta hypada

Buy or Build… or Maintain

Uma das primeiras escolhas que ditam a jornada da sua cultura de MLOps está no fato de (1) comprar uma solução gerenciada; (2) construir do zero sua plataforma (Michelangelo da Uber, Bighead do Airbnb); ou (3), manter uma estrutura de ferramentas open-source.

Cada uma das abordagens possui seus tradeoffs, e só esse assunto dá um post inteiro que pretendo fazer. No caso da Hotmart, optamos primariamente por soluções open-source, como as ferramentas que vamos mostrar a seguir, mas também utilizamos muito ferramentas proprietárias, como o Amazon SageMaker, principalmente por nossa stack de desenvolvimento de software já estar na AWS. Inclusive, fica a dica: utilizar ferramentas que sua cloud já oferece facilita muito o discurso de venda de uma iniciativa de MLOps na empresa.

Omnitool é nossa ferramenta de interface com nossa plataforma

Omnitool: a ferramenta de ML da Hotmart

Imagine o seguinte: decidimos hoje por utilizar a ferramenta X, pois ela se mostrou muito eficaz para resolver um problema de nossa esteira de ML. Implementamos ela dentro da organização, realizamos workshops e treinamentos ensinando a usar ela e todo o time começou a usá-la. Contudo, um ano depois descobrimos uma ferramenta melhor para resolver o problema, e queremos implementá-la.

É melhor gastar mais energia desenvolvendo uma ferramenta que abstrai nossa plataforma de ML, do que gastar horas ensinando a usar uma ferramenta que pode morrer amanhã

Como disse na seção anterior, ferramentas vão surgir e morrer, principalmente pelo cenário atual de MLOps e Modern Data Stack que mencionei anteriormente. Uma das formas de manter a adoção e engajamento com sua plataforma de ML é fazer com que a migração para uma nova ferramenta e sua curva de aprendizado sejam as mais naturais possíveis. Para isso, nós na Hotmart criamos a Omnitool: uma ferramenta interna para Machine Learning que abstrai conceitos e outras ferramentas da nossa plataforma, que vai desde a coleta do dado até o deploy.

Para exemplificar essa abstração, pegue por exemplo nosso módulo de Experimentação. Nós utilizamos o MLflow como nossa ferramenta de tracking e model serving por debaixo dos panos, contudo, nossos DS e MLE não utilizam comandos do MLflow em si ao interagir com a ferramenta, mas sim abstrações que a Omnitool oferece.

Com a Omnitool, nós estamos abstraindo desde a coleta do dado com Feature Store e o Astrobox (nossa ferramenta de BI self-service), até a experimentação (MLflow) e deploy (SageMaker Endpoints)

Por exemplo, se quiserem criar um experimento novo, ao invés de executarem um create_experiment() do MLflow, que precisaria de parâmetros adicionais (local de armazenamento, tags, permissões,…), eles simplesmente podem usar algo como omnitool.create_experiment(), que já criaria não só o experimento no MLflow em si, mas também adicionaria configurações adicionais de ambiente e segurança. Se amanhã ou depois mudarmos o MLflow para outra ferramenta, não precisaremos ensinar as pessoas do time a usar essa nova ferramenta: o conceito em si já está abstraído na Omnitool.

Exemplo de outras abstrações que a Omnitool possui com o Astrobox, executando uma query e retornando um DataFrame

MLOps não é só ferramental

Sei que a parte ferramental é a parte mais reluzente de MLOps. Como qualquer pessoa, eu adoro testar um brinquedo novo e ver do que ele é capaz. Mas, MLOps é sobre cultura e a prática dela. A ferramenta é apenas o meio, e para que essa cultura funcione da melhor forma, é necessário um ambiente de colaboração e aprendizado contínuo nas ferramentas e processos que MLOps está criando.

Alakazam: nosso repostório conhecimento interno para DS e AI

Onboarding e Knowledge sharing

É importante essa cultura fazer parte da jornada de um novo Trooper desde o dia 1. Um bom processo de onboarding será capaz de introduzí-la a essa cultura, mostrar boas práticas e ferramentas a disposição dela, mas é a troca de conhecimento, integração do time, e aprendizado constante que fará essa cultura funcionar em um momento "pós-apadrinhamento".

Na Hotmart, uma das formas que estamos usando tanto para disseminar conhecimento quanto ajudar no processo de onboarding é através do Alakazam: o repositório de conhecimento em DS e AI da Hotmart. Ali nós colocamos conteúdos que vão desde apresentação das nossas ferramentas, ritos e processos, até treinamentos, configurações de ambientes e resolução de problemas. Tudo feito de forma colaborativa.

O futuro é top!

Em pouco tempo muito trabalho foi feito para melhorar nossa maturidade em MLOps, mas ainda tem muito a ser feito. Entre nossos planos está melhorar nossa abstração de camadas de monitoramento para antecipar problemas como drifting. Outra oportunidade está em automatizar a criação de batch prediction e abstrair parte da criação desses jobs (hoje utilizamos o Airflow + SageMaker Processing).

Se você se interessa pelo tema, não deixe de seguir o Trooper's Legacy aqui no Medium. Aproveita pra me dar um "Oi" no Twitter também e me seguir no Linkedin.

--

--

Paulo Vasconcellos
Troopers-Legacy

Principal Data Scientist @ Hotmart | Msc in Computer Science | Co-founder @ Data Hackers