Em Machine Learning, o verdadeiro desafio começa onde o desenvolvimento do modelo termina. A transição de um artefato funcional para um serviço robusto e escalável em produção define a fronteira entre a prototipagem e a engenharia de software. Com este princípio em mente, estruturei o repositório SpamGuard MLOps.
Este projeto serve como uma arquitetura de referência, projetada para demonstrar os conceitos fundamentais de MLOps de forma pragmática. O seu propósito é ser um template didático e, ao mesmo tempo, uma base sólida para sistemas de produção, adotando uma estrutura orientada a serviços com fronteiras claras entre os componentes de treinamento, inferência e interface. Através dele, apresento uma abordagem técnica sobre como construir sistemas de ML que são não apenas eficazes, mas também sustentáveis e extensíveis.
O SpamGuard MLOps foi cuidadosamente estruturado com uma arquitetura orientada a serviços, com separações claras para permitir a evolução independente de seus componentes. O objetivo foi criar um template que fosse:
O coração do SpamGuard MLOps é composto por:
A estrutura do repositório é organizada da seguinte forma:
artifacts/ # Artefatos centralizados do modelo (JSON)
data/raw/dataset.csv # Dataset de exemplo (CSV)
dashboard/ # UI React + Mantine (demo/dashboard)
inference/ # API (Bun + Elysia) + Drizzle ORM + SQLite
training/ # Job de treinamento (Naive Bayes Natural)
infra/ # Dockerfiles, Compose, Manifestos K8s, docs
A automação é um pilar fundamental do MLOps. Para demonstrar isso, configurei um pipeline de CI/CD com GitHub Actions (.github/workflows/ci-cd.yml
) que realiza as seguintes etapas:
artifacts/
.A portabilidade e a escalabilidade são cruciais em ambientes de produção. O SpamGuard MLOps inclui configurações para Docker Compose, permitindo o fácil levantamento dos serviços (API e dashboard) localmente com um único comando.
Além disso, a pasta infra/k8s/
contém manifestos Kubernetes como um ponto de partida conceitual para a orquestração em um ambiente mais robusto. Embora sejam placeholders, eles ilustram como os serviços poderiam ser implantados e gerenciados em escala.
Este projeto é uma demonstração do meu conhecimento atual, mas a evolução é contínua. Em uma futura Brandcore (mais avançada), pretendo explorar:
O repositório SpamGuard MLOps é mais do que um simples projeto; é uma vitrine do meu entendimento dos core concepts de MLOps, desde a concepção e desenvolvimento até a automação e a preparação para produção. Convido você a explorar o código, entender a arquitetura e ver como os conceitos se materializam na prática.