CI/CD para projetos de Machine Learning¶
O tweet de Aurimas Griciūnas chama a atenção para o fato de que, ao trabalhar com inteligência artificial, é essencial considerar também os modelos de machine learning que não são baseados em grandes modelos de linguagem (LLM). A produção desses modelos traz desafios próprios, especialmente no que diz respeito ao processo de CI/CD, que precisa ser adaptado para lidar com o pipeline de treinamento como um artefato de primeira classe.
Diferentes etapas do CI/CD tradicional¶
Em projetos de software convencionais, o pipeline de CI/CD costuma ser composto por, no mínimo, três etapas principais:
- Unit Tests – verificam se funções e métodos produzem os resultados esperados para um conjunto de entradas pré‑definidas.
- Integration Tests – avaliam a capacidade de trechos de código se integrarem com sistemas externos (por exemplo, bancos de dados) e entre si.
- Delivery – disponibiliza o artefato gerado em um ambiente de pré‑produção ou produção, conforme a fase do GitFlow.
Adaptação para pipelines de Machine Learning¶
Quando o projeto envolve machine learning, cada uma dessas etapas ganha um tratamento específico, considerando o pipeline de treinamento de ML como um artefato a ser testado e entregue.
Observacao
O pipeline de treinamento de ML deve ser versionado, testado e entregue da mesma forma que qualquer outro artefato de software.
Etapa 1 – Unit Tests¶
Em um setup maduro de MLOps, cada passo do pipeline de treinamento (por exemplo, pré‑processamento, treinamento, avaliação) é isolado em seu próprio ambiente e pode ser submetido a testes unitários independentes, já que são compostos por funções e métodos comuns.
Etapa 2 – Integration Tests¶
Nesta fase, verifica‑se se o pipeline de treinamento consegue se integrar com sistemas externos:
- Conexão com um Feature Store para extrair dados de características.
- Envio do artefato de modelo treinado para um Model Registry.
- Registro de metadados em um ML Metadata Store.
- Validação de que os dados de treinamento são corretamente passados para a etapa de avaliação (por exemplo, passando o conjunto de validação do passo de treinamento para o passo de avaliação).
Dica
Tratar o pipeline de treinamento como um artefato permite que ele seja testado quanto à sua capacidade de se conectar a esses serviços externos antes de
Ferramentas e Tecnologias¶
- [[KubeFlow Pipelines]]
- [[SageMaker Pipelines]]
Nota pessoal
https://x.com/i/status/2062883076925980691