opção

mle-workflow

affaan-m/ECC affaan-m/ECC

Transforme o trabalho com modelos em um sistema de aprendizado de máquina (ML) de produção com contratos de dados, treinamento repetível, etapas de qualidade mensuráveis, artefatos implantáveis e monitoramento operacional.

...Expandir tudo
0
Tempo atualizado 1 de Outubro de 2026

Fluxo de trabalho de engenharia de aprendizado de máquina

Utilize essa competência para transformar o trabalho com modelos em um sistema de ML em produção com contratos de dados claros, treinamento repetível, metas de qualidade mensuráveis, artefatos implantáveis e monitoramento operacional.

Quando ativar

  • Ao planejar ou revisar um recurso de ML em produção, atualização de modelo, sistema de classificação, sistema de recomendação, classificador, fluxo de trabalho de incorporação ou pipeline de previsão
  • Conversão de código de notebook em um pipeline reutilizável de treinamento, avaliação, inferência em lote ou inferência online
  • Projetar critérios de promoção de modelos, avaliações offline/online, acompanhamento de experimentos ou caminhos de reversão
  • Depuração de falhas causadas por desvio de dados, vazamento de rótulos, características desatualizadas, incompatibilidade de artefatos ou lógica inconsistente de treinamento e serviço
  • Adicionar monitoramento de modelos, implantação canária, tráfego sombra ou verificações de qualidade pós-implantação

Calibração de escopo

Use apenas as pistas que se adequam ao sistema que você tem diante de si. Essa habilidade é útil para classificação, pesquisa, recomendações, classificadores, previsão, embeddings, fluxos de trabalho de LLM, detecção de anomalias e análise em lote, mas não deve impor uma única arquitetura a todos eles.

  • Não presuma que todo modelo tenha rótulos supervisionados, serviço online, um armazenamento de características, PyTorch, GPUs, revisão humana, testes A/B ou feedback em tempo real.
  • Não adicione mecanismos pesados de MLOps quando um contrato de dados, uma linha de base, um script de avaliação e uma nota de reversão já tornariam a alteração passível de revisão.
  • Torne as suposições explícitas quando o projeto carecer de rótulos, resultados atrasados, definições de fatias, tráfego de produção ou responsabilidade pelo monitoramento.
  • Trate os exemplos como estruturas intercambiáveis. Substitua métricas, modo de serviço, armazenamentos de dados e mecanismos de implementação pelos equivalentes nativos do projeto.

Habilidades relacionadas

  • python-patterns e python-testing para implementação em Python e cobertura com pytest
  • pytorch-patterns para modelos de aprendizado profundo, carregadores de dados, gerenciamento de dispositivos e ciclos de treinamento
  • eval-harness e ai-regression-testing para portas de promoção e verificações de regressão assistidas por agentes
  • database-migrations, postgres-patterns, e clickhouse-io para armazenamento de dados e interfaces de análise
  • deployment-patterns, docker-patterns, e security-review para serviços, segredos, contêineres e fortalecimento da produção

Reutilize a superfície de SWE

Não trate o MLE como algo separado da engenharia de software. A maioria dos fluxos de trabalho de SWE do ECC se aplica diretamente aos sistemas de ML, muitas vezes com modos de falha mais rigorosos:

A instalação recomendada minimal --with capability:machine-learning instalação mantém a superfície do agente principal disponível junto com esta skill. Para ambientes que utilizam apenas a skill ou com uso restrito do agente, combine skill:mle-workflow com agent:mle-reviewer onde o destino for compatível com agentes.

Superfície de SWE Uso do MLE
product-capability / architecture-decision-records Transforme o trabalho com modelos em contratos de produto explícitos e registre escolhas irreversíveis de dados, modelos e implementação
repo-scan / codebase-onboarding / code-tour Identifique os caminhos existentes de treinamento, recursos, implantação, avaliação e monitoramento antes de introduzir uma pilha paralela de ML
plan / feature-dev Defina o escopo das alterações no modelo como recursos do produto, com fases de dados, avaliação, implantação e reversão
tdd-workflow / python-testing Teste transformações de características, lógica de divisão, cálculos de métricas, carregamento de artefatos e esquemas de inferência antes da implementação
code-reviewer / mle-reviewer Analise a qualidade do código, além de riscos específicos de ML relacionados a vazamentos, reprodutibilidade, promoção e monitoramento
build-fix / pr-test-analyzer Diagnostique CI com falhas, avaliações instáveis, fixtures ausentes e falhas de modelos ou dependências específicas do ambiente
quality-gate / test-coverage Exija evidências automatizadas para transformações, métricas, contratos de inferência, portas de promoção e comportamento de reversão
eval-harness / verification-loop Transforme métricas offline, verificações de fatias, orçamentos de latência e simulações de reversão em portas de controle repetíveis
ai-regression-testing Preserve cada bug de produção como uma regressão: recurso ausente, rótulo desatualizado, artefato defeituoso, desvio de esquema ou incompatibilidade de serviço
api-design / backend-patterns Projete APIs de previsão, tarefas em lote, endpoints idempotentes de retreinamento e envelopes de resposta
database-migrations / postgres-patterns / clickhouse-io Rótulos de versão, instantâneos de recursos, logs de previsão, métricas de experimentos e análises de desvio
deployment-patterns / docker-patterns Empacote imagens reproduzíveis de treinamento e serviço com verificações de integridade, limites de recursos e reversão
canary-watch / dashboard-builder Torne a integridade da implantação visível com painéis de versão do modelo, fatias, desvios, latência, custo e rótulos atrasados
security-review / security-scan Verifique artefatos de modelo, notebooks, prompts, conjuntos de dados e logs em busca de segredos, informações de identificação pessoal (PII), desserialização insegura e riscos na cadeia de suprimentos
e2e-testing / browser-qa / accessibility Teste fluxos críticos de produto que utilizam previsões, incluindo explicabilidade e estados de fallback da interface do usuário
benchmark / performance-optimizer Meça a taxa de processamento, a latência p95, a memória, a utilização da GPU e o custo por previsão ou retreinamento
cost-aware-llm-pipeline / token-budget-advisor Roteie cargas de trabalho de LLM/embedding por qualidade, latência e orçamento, em vez de usar por padrão o maior modelo
documentation-lookup / search-first Verifique o comportamento atual das bibliotecas para serviço de modelos, armazenamentos de características, bancos de dados vetoriais e ferramentas de avaliação antes de codificar
git-workflow / github-ops / opensource-pipeline Organize as alterações de MLE para revisão com escopo bem definido, excluindo artefatos gerados e incluindo evidências de teste reproduzíveis
strategic-compact / dmux-workflows Divida trabalhos longos de ML em trilhas paralelas: contrato de dados, estrutura de avaliação, caminho de serviço, monitoramento e documentação

Dez simulações de tarefas de MLE

Use essas simulações como verificações de cobertura ao planejar ou revisar o trabalho de MLE. Um fluxo de trabalho de MLE robusto deve reduzir cada tarefa a contratos explícitos, interfaces de engenharia de software reutilizáveis, evidências automatizadas e um artefato passível de revisão.

ID Tarefa comum de MLE Caminho ECC otimizado Saída exigida Etapas do pipeline cobertas
MLE-01 Definir uma capacidade ambígua de previsão, classificação por ordem de importância, recomendação, classificação, incorporação ou projeção product-capability, plan, architecture-decision-records, mle-workflow Iteração: definir de forma concisa quem é responsável, quem toma a decisão, métrica de sucesso, erros inaceitáveis, suposições, restrições e o contrato do produto da primeira experiência contrato do produto, perdas para as partes interessadas, risco, implementação
MLE-02 Definir metas métricas, rótulos, fontes de dados e o orçamento para erros repo-scan, database-reviewer, database-migrations, postgres-patterns, clickhouse-io Contrato de dados e métricas com granularidade de entidade, tempo de rotulagem, confiança na rotulagem, tempo de características, junções em um ponto no tempo, política de divisão e instantâneo do conjunto de dados contrato de dados, projeto de métricas, vazamento, reprodutibilidade
MLE-03 Construa um modelo de linha de base e um caminho de pontuação antes de adicionar complexidade tdd-workflow, python-testing, python-patterns, code-reviewer Classificador de referência com matriz de confusão, notas de calibração, estimativa de latência/custo, pontos fracos conhecidos e testes para forma da pontuação e determinismo linha de base, pontuação, testes, paridade de produção
MLE-04 Gerar características a partir de hipóteses sobre o que diferencia os resultados python-patterns, pytorch-patterns, docker-patterns, deployment-patterns Plano de características e módulo de transformação abrangendo fonte de sinal, valores ausentes, outliers, correlações, verificações de vazamento e equivalência entre treinamento e produção pipeline de características, vazamento, treinamento, artefatos
MLE-05 Ajustar limites, configurações e complexidade do modelo considerando compromissos eval-harness, ai-regression-testing, quality-gate, test-coverage Relatório de limites/configurações comparando precisão, recall, F1, AUC, calibração, fatias de grupo, latência, custo, complexidade e classes de erro aceitáveis avaliação, limite, promoção, regressão
MLE-06 Realizar análise de erros e transformar os erros no próximo experimento eval-harness, ai-regression-testing, mle-reviewer, silent-failure-hunter Relatório de agrupamento de erros para falsos positivos, falsos negativos, rótulos ambíguos, características obsoletas, sinais ausentes e rastreamento de bugs com lições aprendidas análise de erros, rastreamento de bugs, iteração, regressão
MLE-07 Empacote um artefato de modelo para inferência em lote ou online api-design, backend-patterns, security-review, security-scan Pacote de artefatos com controle de versão, incluindo pré-processamento, configuração, restrições de dependência, validação de esquema, carregamento seguro e logs protegidos contra PII artefato, segurança, contrato de inferência
MLE-08 Fornecer serviço online ou pontuação em lote com captura de feedback api-design, backend-patterns, e2e-testing, browser-qa, accessibility Endpoint de previsão ou tarefa em lote com envelope de resposta, tempo limite, processamento em lote, fallback, versão do modelo, confiança, registro de feedback e testes de fluxo do produto serviço, inferência em lote, plano alternativo, fluxo de trabalho do usuário
MLE-09 Implemente um modelo com tráfego de teste, canary, teste A/B ou reversão canary-watch, dashboard-builder, verification-loop, performance-optimizer Plano de implantação que define divisão de tráfego, painéis, latência p95, custo, limites de qualidade, artefato de reversão e gatilho de reversão implantação, canário, reversão
MLE-10 Operar, depurar e atualizar um modelo de produção após o lançamento silent-failure-hunter, dashboard-builder, mle-reviewer, doc-updater, github-ops Registro de observação e plano de atualização com verificações de desvio, integridade de rótulos atrasados, responsáveis por alertas, atualizações do manual de procedimentos, critérios de retreinamento e evidências de PR monitoramento, resposta a incidentes, retreinamento

Iteração Compacta

Antes de alterar o código do modelo, concentre o trabalho em um único artefato passível de revisão. Ele deve ser curto o suficiente para caber na descrição de um PR e preciso o suficiente para que outro engenheiro possa questionar as escolhas feitas.

Goal:
Who cares:
Decision owner:
User or system action changed by the model:
Success metric:
Guardrail metrics:
Mistake budget:
Unacceptable mistakes:
Acceptable mistakes:
Assumptions:
Constraints:
Labels and data snapshot:
Baseline:
Candidate signals:
Threshold or config plan:
Eval slices:
Known risks:
Next experiment:
Rollback or fallback:

Esse resumo é o equivalente, no MLE, a uma nota de projeto sólida de um engenheiro de software (SWE). Ele impede que a equipe otimize uma métrica na qual ninguém confia, adicione recursos que não resolvam o verdadeiro modo de erro ou lance complexidade sem um plano de reversão.

Cérebro de Decisão

Use esse ciclo sempre que a tarefa for ambígua, de alto impacto ou envolver muitas métricas:

  1. Comece pela decisão, não pelo modelo. Identifique a ação que altera o comportamento a jusante.
  2. Identifique quem se importa e por quê. Diferentes partes interessadas arcam com custos diferentes por falsos positivos, falsos negativos, latência, gastos com computação, opacidade ou oportunidades perdidas.
  3. Converta a ambiguidade em hipóteses. Pergunte qual sinal diferenciaria os resultados, quais evidências o refutariam e qual linha de base simples deveria ser difícil de superar.
  4. Pesquise o estado da técnica ou um problema conhecido semelhante antes de criar um sistema sob medida.
  5. Avalie as opções levando em conta (probability, confidence) x (cost, severity, importance, impact).
  6. Leve em conta comportamentos adversos, incentivos, divulgação seletiva, mudanças na distribuição e ciclos de feedback.
  7. Dê preferência à mudança mais simples que reduza o erro mais importante. Simplicidade não é preguiça; é uma forma de minimizar erros graves ao mesmo tempo em que se preserva a velocidade de iteração.
  8. Registre a decisão, as evidências, o contra-argumento e o próximo passo reversível.

Métricas e a economia do erro

Escolha métricas com base nos custos de falha, não por hábito:

  • Utilize uma matriz de confusão logo no início para que a equipe possa discutir falsos positivos e falsos negativos concretos, em vez de precisão abstrata.
  • Dê preferência à precisão quando o custo de uma decisão positiva incorreta for predominante.
  • Dê prioridade à recuperação quando o custo de um positivo perdido for predominante.
  • Use o F1 apenas quando o equilíbrio entre precisão e recall for genuinamente equilibrado e explicável.
  • Use AUC ou métricas de classificação quando a ordenação da qualidade for mais importante do que um único limiar.
  • Acompanhe a latência, a taxa de processamento, a memória e o custo como métricas de primeira linha, pois elas determinam a complexidade viável do modelo.
  • Compare com uma linha de base e com o modelo de produção atual antes de comemorar um ganho offline.
  • Trate os sinais de feedback do mundo real como rótulos atrasados, com viés, defasagem e lacunas de cobertura; não os trate como verdade absoluta sem análise.

Cada escolha de métrica deve indicar qual erro ela torna mais barato, qual erro ela torna mais provável e quem arca com esse custo.

Hipóteses sobre dados e características

As características devem derivar de uma teoria da separação:

  • Texto, campos categóricos, históricos numéricos, relações em grafos, recência, frequência e agregados são famílias de sinais candidatas, não características automáticas.
  • Para cada família de características, indique por que ela deve separar os resultados e como poderia vazar informações futuras.
  • Para rótulos ruidosos, considere adjudicação, confiança do rótulo, alvos flexíveis ou ponderação de confiança.
  • Para desequilíbrio de classes, compare perda ponderada, reamostragem, mudança de limiar e regras de decisão calibradas.
  • Para valores ausentes, decida se a ausência é informativa, imputável ou um motivo para se abster.
  • Para valores atípicos, decida se deve cortá-los, agrupá-los, investigá-los ou preservá-los como sinais raros, mas importantes.
  • Para características correlacionadas, verifique se elas são redundantes, instáveis ou proxies para um estado futuro indisponível.

Não aumente a complexidade do modelo até que a análise de erros mostre que a linha de base está falhando por um motivo que um sinal adicional ou capacidade possa, plausivelmente, corrigir.

Ciclo de Análise de Erros

Após cada linha de base, rodada de treinamento, alteração de limite ou alteração de configuração:

  1. Divida os erros em falsos positivos, falsos negativos, abstenções, casos de baixa confiança e falhas do sistema.
  2. Agrupe os erros por características comuns: idioma, tipo de entidade, fonte, hora, localização geográfica, dispositivo, dispersão, atualidade, atualização da característica, fonte do rótulo ou versão do modelo.
  3. Separe os erros do modelo de bugs nos dados, ambiguidade de rótulos, ambiguidade do produto, lacunas na instrumentação e incompatibilidades na prestação de serviço.
  4. Rastreie cada agrupamento principal até uma das quatro ações: rótulos melhores, características melhores, limiar/configuração melhores ou plano de contingência de produto melhor.
  5. Preserve cada erro importante como um teste de regressão, uma fatia de avaliação, um painel do dashboard ou uma entrada no manual de procedimentos.
  6. Escreva a próxima iteração como um experimento falsificável, não como uma tarefa vaga do tipo “melhorar o modelo”.

O ciclo de MLE mais robusto não é treinamento -> métrica -> implantação. É erro -> cluster -> hipótese -> experimento -> evidência -> sistema mais simples.

Registro de Observações

Mantenha um registro compacto de decisões e evidências ao lado do código, do PR, do relatório de experimento ou do runbook:

Iteration:
Change:
Why this mattered:
Metric movement:
Slice movement:
False positives:
False negatives:
Unexpected errors:
Decision:
Tradeoff accepted:
Lesson captured:
Regression added:
Debt created:
Next iteration:

Use o registro para tornar o trabalho com modelos cumulativo. O objetivo é que cada iteração facilite a decisão seguinte, e não apenas produza mais um artefato.

Fluxo de Trabalho Principal

1. Defina o contrato de previsão

Registre o contrato no nível do produto antes de escrever o código do modelo:

  • Meta de previsão e responsável pela decisão
  • Entidade de entrada, esquema de saída, campos de confiança/calibração e latência permitida
  • Modo de serviço em lote, online, streaming ou híbrido
  • Comportamento de fallback quando o modelo, o armazenamento de características ou a dependência estiverem indisponíveis
  • Revisão humana ou caminho de substituição para decisões de alto impacto
  • Requisitos de privacidade, retenção e auditoria para entradas, previsões e rótulos

Não aceite “melhorar o modelo” como um requisito. Vincule o modelo a um comportamento observável do produto e a um critério de aceitação mensurável.

2. Fixe o contrato de dados

Toda tarefa de ML precisa de um contrato de dados explícito:

  • Nível de granularidade da entidade e chave primária
  • Definição do rótulo, carimbo de data/hora do rótulo e atraso na disponibilidade do rótulo
  • Carimbo de data/hora da característica, SLA de atualização e regras de junção em um ponto no tempo
  • Política de divisão entre treinamento, validação, teste e backtest
  • Colunas obrigatórias, valores nulos permitidos, intervalos, categorias e unidades
  • Campos de informações de identificação pessoal (PII) ou sensíveis que não devem constar em artefatos de treinamento ou logs
  • Versão do conjunto de dados ou ID do snapshot para reprodutibilidade

Proteja-se contra vazamentos em primeiro lugar. Se uma característica não estiver disponível no momento da previsão ou for combinada com informações futuras, remova-a ou transfira-a para um caminho destinado exclusivamente à análise.

3. Crie um pipeline reproduzível

O código de treinamento deve poder ser executado por outro engenheiro sem estado oculto no notebook:

  • Use arquivos de configuração tipados ou classes de dados para todos os hiperparâmetros e caminhos
  • Fixar as dependências de pacotes e modelos
  • Defina sementes aleatórias e documente qualquer comportamento não determinístico da GPU
  • Registre a versão do conjunto de dados, o SHA do código, o hash da configuração, as métricas e a URI do artefato
  • Salve a lógica de pré-processamento junto com o artefato do modelo, e não separadamente em um notebook
  • Mantenha as transformações de treinamento, avaliação e inferência compartilhadas ou geradas a partir de uma única fonte
  • Torne cada etapa idempotente para que novas tentativas não corrompam artefatos ou métricas

Dê preferência a valores imutáveis e funções de transformação puras. Evite alterar dataframes compartilhados ou a configuração global durante a geração de características.

import hashlib
from dataclasses import dataclass
from pathlib import Path


@dataclass(frozen=True)
class TrainingConfig:
    dataset_uri: str
    model_dir: Path
    seed: int
    learning_rate: float
    batch_size: int


def artifact_name(config: TrainingConfig, code_sha: str) -> str:
    config_key = f"{config.dataset_uri}:{config.seed}:{config.learning_rate}:{config.batch_size}"
    config_hash = hashlib.sha256(config_key.encode("utf-8")).hexdigest()[:12]
    return f"{code_sha[:12]}-{config_hash}"

4. Avaliar antes da promoção

Os critérios de promoção devem ser declarados antes do término do treinamento:

  • Comparação entre o modelo de referência e o modelo atual em produção
  • Métrica principal alinhada ao comportamento do produto
  • Métricas de proteção para latência, calibração, fatias de equidade, custo e concentração de erros
  • Métricas de segmentação para coortes, regiões geográficas, dispositivos, idiomas ou fontes de dados importantes
  • Intervalos de confiança ou variância de execuções repetidas quando as métricas apresentam ruído
  • Exemplos de falhas analisados por um ser humano para modelos de alto impacto
  • Limites explícitos de “não lançar”
PROMOTION_GATES = {
    "auc": ("min", 0.82),
    "calibration_error": ("max", 0.04),
    "p95_latency_ms": ("max", 80),
}


def assert_promotion_ready(metrics: dict[str, float]) -> None:
    missing = sorted(name for name in PROMOTION_GATES if name not in metrics)
    if missing:
        raise ValueError(f"Model promotion metrics missing required gates: {missing}")

    failures = {
        name: value
        for name, (direction, threshold) in PROMOTION_GATES.items()
        for value in [metrics[name]]
        if (direction == "min" and value < threshold)
        or (direction == "max" and value > threshold)
    }
    if failures:
        raise ValueError(f"Model failed promotion gates: {failures}")

Use métricas offline como filtros, não como garantias. Quando o modelo alterar o comportamento do produto, planeje uma avaliação paralela, uma implementação canária ou testes A/B antes da implementação completa.

5. Preparar para a implantação

Um artefato de ML só está pronto para produção quando o contrato de serviço for testável:

  • O artefato do modelo inclui versão, referência aos dados de treinamento, configuração e pré-processamento
  • O esquema de entrada rejeita características inválidas, desatualizadas ou fora do intervalo
  • O esquema de saída inclui a versão do modelo e campos de confiança ou explicação, quando for útil
  • O caminho de serviço possui tempo limite, processamento em lote, limites de recursos e comportamento de fallback
  • Os requisitos de CPU/GPU são explícitos e testados
  • Os logs de previsão evitam informações de identificação pessoal (PII) e incluem identificadores suficientes para depuração e junção de rótulos
  • Os testes de integração abrangem características ausentes, desatualizadas, tipos incorretos, lotes vazios e caminho de fallback

Nunca permita que o código de características exclusivo para treinamento diverja do código de características de produção sem um teste que comprove a equivalência.

6. Operar o modelo

O monitoramento do modelo requer sinais tanto do sistema quanto de qualidade:

  • Disponibilidade, taxa de erros, taxa de tempo limite, profundidade da fila e latência p50/p95/p99
  • Taxa de valores nulos dos recursos, desvio de intervalo, desvio categórico e desvio de atualização
  • Desvio na distribuição de previsão e desvio na distribuição de confiança
  • Métricas de integridade da chegada de rótulos e de qualidade de atrasos
  • Limites de KPIs de negócios e gatilhos de reversão
  • Painéis por versão para testes preliminares e reversões

Cada implantação deve ter um plano de reversão que especifique o artefato anterior, a configuração, a dependência de dados e o mecanismo de comutação de tráfego.

Lista de verificação

  • O contrato de previsão é explícito e testável
  • O contrato de dados define o nível de granularidade da entidade, o momento da marcação, o momento do recurso e o instantâneo/versão
  • Os riscos de vazamento foram verificados em relação à disponibilidade no momento da previsão
  • O treinamento é reproduzível a partir do código, da configuração, da versão dos dados e da semente
  • As métricas são comparadas com a linha de base e com o modelo de produção atual
  • Métricas de fatia e limites de segurança estão incluídos para coortes de alto risco
  • Os portões de promoção são automatizados e operam no modo “fail-closed”
  • As transformações de treinamento e de serviço são compartilhadas ou submetidas a testes de equivalência
  • O artefato do modelo contém a versão, a configuração, a referência ao conjunto de dados e o pré-processamento
  • O caminho de implantação valida as entradas e possui comportamento de tempo limite, plano alternativo e reversão
  • O monitoramento abrange a integridade do sistema, desvio de características, desvio de previsão e rótulos atrasados
  • Dados confidenciais são excluídos de artefatos, logs, prompts e exemplos

Antipadrões

  • O estado do notebook é necessário para reproduzir o modelo
  • A divisão aleatória vaza dados futuros para os conjuntos de validação ou teste
  • As junções de características ignoram a hora do evento e a disponibilidade dos rótulos
  • A métrica offline melhora, enquanto fatias importantes apresentam regressão
  • Os limites são ajustados repetidamente no conjunto de teste
  • O pré-processamento de treinamento é copiado manualmente para o código de produção
  • A versão do modelo está ausente dos registros de previsão
  • O monitoramento verifica apenas o tempo de atividade do serviço, e não a qualidade dos dados ou das previsões
  • A reversão requer retreinamento, em vez de mudar para um artefato comprovadamente válido

Expectativas de saída

Ao utilizar essa competência, retorne artefatos concretos: contrato de dados, etapas de aprovação, etapas do pipeline, plano de teste, plano de implantação ou conclusões da revisão. Identifique as incógnitas que impedem a prontidão para produção, em vez de preenchê-las com suposições.

Ver no GitHub
---
name: mle-workflow
description: Turn model work into a production ML system with data contracts, repeatable training, measurable quality gates, deployable artifacts, and operational monitoring.
---

# Machine Learning Engineering Workflow

Use this skill to turn model work into a production ML system with clear data contracts, repeatable training, measurable quality gates, deployable artifacts, and operational monitoring.

## When to Activate

- Planning or reviewing a production ML feature, model refresh, ranking system, recommender, classifier, embedding workflow, or forecasting pipeline
- Converting notebook code into a reusable training, evaluation, batch inference, or online inference pipeline
- Designing model promotion criteria, offline/online evals, experiment tracking, or rollback paths
- Debugging failures caused by data drift, label leakage, stale features, artifact mismatch, or inconsistent training and serving logic
- Adding model monitoring, canary rollout, shadow traffic, or post-deploy quality checks

## Scope Calibration

Use only the lanes that fit the system in front of you. This skill is useful for ranking, search, recommendations, classifiers, forecasting, embeddings, LLM workflows, anomaly detection, and batch analytics, but it should not force one architecture onto all of them.

- Do not assume every model has supervised labels, online serving, a feature store, PyTorch, GPUs, human review, A/B tests, or real-time feedback.
- Do not add heavyweight MLOps machinery when a data contract, baseline, eval script, and rollback note would make the change reviewable.
- Do make assumptions explicit when the project lacks labels, delayed outcomes, slice definitions, production traffic, or monitoring ownership.
- Treat examples as interchangeable scaffolds. Replace metrics, serving mode, data stores, and rollout mechanics with the project-native equivalents.

## Related Skills

- `python-patterns` and `python-testing` for Python implementation and pytest coverage
- `pytorch-patterns` for deep learning models, data loaders, device handling, and training loops
- `eval-harness` and `ai-regression-testing` for promotion gates and agent-assisted regression checks
- `database-migrations`, `postgres-patterns`, and `clickhouse-io` for data storage and analytics surfaces
- `deployment-patterns`, `docker-patterns`, and `security-review` for serving, secrets, containers, and production hardening

## Reuse the SWE Surface

Do not treat MLE as separate from software engineering. Most ECC SWE workflows apply directly to ML systems, often with stricter failure modes:

The recommended `minimal --with capability:machine-learning` install keeps the core agent surface available alongside this skill. For skill-only or agent-limited harnesses, pair `skill:mle-workflow` with `agent:mle-reviewer` where the target supports agents.

| SWE surface | MLE use |
|-------------|---------|
| `product-capability` / `architecture-decision-records` | Turn model work into explicit product contracts and record irreversible data, model, and rollout choices |
| `repo-scan` / `codebase-onboarding` / `code-tour` | Find existing training, feature, serving, eval, and monitoring paths before introducing a parallel ML stack |
| `plan` / `feature-dev` | Scope model changes as product capabilities with data, eval, serving, and rollback phases |
| `tdd-workflow` / `python-testing` | Test feature transforms, split logic, metric calculations, artifact loading, and inference schemas before implementation |
| `code-reviewer` / `mle-reviewer` | Review code quality plus ML-specific leakage, reproducibility, promotion, and monitoring risks |
| `build-fix` / `pr-test-analyzer` | Diagnose broken CI, flaky evals, missing fixtures, and environment-specific model or dependency failures |
| `quality-gate` / `test-coverage` | Require automated evidence for transforms, metrics, inference contracts, promotion gates, and rollback behavior |
| `eval-harness` / `verification-loop` | Turn offline metrics, slice checks, latency budgets, and rollback drills into repeatable gates |
| `ai-regression-testing` | Preserve every production bug as a regression: missing feature, stale label, bad artifact, schema drift, or serving mismatch |
| `api-design` / `backend-patterns` | Design prediction APIs, batch jobs, idempotent retraining endpoints, and response envelopes |
| `database-migrations` / `postgres-patterns` / `clickhouse-io` | Version labels, feature snapshots, prediction logs, experiment metrics, and drift analytics |
| `deployment-patterns` / `docker-patterns` | Package reproducible training and serving images with health checks, resource limits, and rollback |
| `canary-watch` / `dashboard-builder` | Make rollout health visible with model-version, slice, drift, latency, cost, and delayed-label dashboards |
| `security-review` / `security-scan` | Check model artifacts, notebooks, prompts, datasets, and logs for secrets, PII, unsafe deserialization, and supply-chain risk |
| `e2e-testing` / `browser-qa` / `accessibility` | Test critical product flows that consume predictions, including explainability and fallback UI states |
| `benchmark` / `performance-optimizer` | Measure throughput, p95 latency, memory, GPU utilization, and cost per prediction or retrain |
| `cost-aware-llm-pipeline` / `token-budget-advisor` | Route LLM/embedding workloads by quality, latency, and budget instead of defaulting to the largest model |
| `documentation-lookup` / `search-first` | Verify current library behavior for model serving, feature stores, vector DBs, and eval tooling before coding |
| `git-workflow` / `github-ops` / `opensource-pipeline` | Package MLE changes for review with crisp scope, generated artifacts excluded, and reproducible test evidence |
| `strategic-compact` / `dmux-workflows` | Split long ML work into parallel tracks: data contract, eval harness, serving path, monitoring, and docs |

## Ten MLE Task Simulations

Use these simulations as coverage checks when planning or reviewing MLE work. A strong MLE workflow should reduce each task to explicit contracts, reusable SWE surfaces, automated evidence, and a reviewable artifact.

| ID | Common MLE task | Streamlined ECC path | Required output | Pipeline lanes covered |
|----|-----------------|----------------------|-----------------|------------------------|
| MLE-01 | Frame an ambiguous prediction, ranking, recommender, classifier, embedding, or forecast capability | `product-capability`, `plan`, `architecture-decision-records`, `mle-workflow` | Iteration Compact naming who cares, decision owner, success metric, unacceptable mistakes, assumptions, constraints, and first experiment | product contract, stakeholder loss, risk, rollout |
| MLE-02 | Define metric goals, labels, data sources, and the mistake budget | `repo-scan`, `database-reviewer`, `database-migrations`, `postgres-patterns`, `clickhouse-io` | Data and metric contract with entity grain, label timing, label confidence, feature timing, point-in-time joins, split policy, and dataset snapshot | data contract, metric design, leakage, reproducibility |
| MLE-03 | Build a baseline model and scoring path before adding complexity | `tdd-workflow`, `python-testing`, `python-patterns`, `code-reviewer` | Baseline scorer with confusion matrix, calibration notes, latency/cost estimate, known weaknesses, and tests for score shape and determinism | baseline, scoring, testing, serving parity |
| MLE-04 | Generate features from hypotheses about what separates outcomes | `python-patterns`, `pytorch-patterns`, `docker-patterns`, `deployment-patterns` | Feature plan and transform module covering signal source, missing values, outliers, correlations, leakage checks, and train/serve equivalence | feature pipeline, leakage, training, artifacts |
| MLE-05 | Tune thresholds, configs, and model complexity under tradeoffs | `eval-harness`, `ai-regression-testing`, `quality-gate`, `test-coverage` | Threshold/config report comparing precision, recall, F1, AUC, calibration, group slices, latency, cost, complexity, and acceptable error classes | evaluation, threshold, promotion, regression |
| MLE-06 | Run error analysis and turn mistakes into the next experiment | `eval-harness`, `ai-regression-testing`, `mle-reviewer`, `silent-failure-hunter` | Error cluster report for false positives, false negatives, ambiguous labels, stale features, missing signals, and bug traces with lessons captured | error analysis, bug trace, iteration, regression |
| MLE-07 | Package a model artifact for batch or online inference | `api-design`, `backend-patterns`, `security-review`, `security-scan` | Versioned artifact bundle with preprocessing, config, dependency constraints, schema validation, safe loading, and PII-safe logs | artifact, security, inference contract |
| MLE-08 | Ship online serving or batch scoring with feedback capture | `api-design`, `backend-patterns`, `e2e-testing`, `browser-qa`, `accessibility` | Prediction endpoint or batch job with response envelope, timeout, batching, fallback, model version, confidence, feedback logging, and product-flow tests | serving, batch inference, fallback, user workflow |
| MLE-09 | Roll out a model with shadow traffic, canary, A/B test, or rollback | `canary-watch`, `dashboard-builder`, `verification-loop`, `performance-optimizer` | Rollout plan naming traffic split, dashboards, p95 latency, cost, quality guardrails, rollback artifact, and rollback trigger | deployment, canary, rollback |
| MLE-10 | Operate, debug, and refresh a production model after launch | `silent-failure-hunter`, `dashboard-builder`, `mle-reviewer`, `doc-updater`, `github-ops` | Observation ledger and refresh plan with drift checks, delayed-label health, alert owners, runbook updates, retrain criteria, and PR evidence | monitoring, incident response, retraining |

## Iteration Compact

Before touching model code, compress the work into one reviewable artifact. This should be short enough to fit in a PR description and precise enough that another engineer can challenge the tradeoffs.

```text
Goal:
Who cares:
Decision owner:
User or system action changed by the model:
Success metric:
Guardrail metrics:
Mistake budget:
Unacceptable mistakes:
Acceptable mistakes:
Assumptions:
Constraints:
Labels and data snapshot:
Baseline:
Candidate signals:
Threshold or config plan:
Eval slices:
Known risks:
Next experiment:
Rollback or fallback:
```

This compact is the MLE equivalent of a strong SWE design note. It keeps the team from optimizing a metric no one trusts, adding features that do not address the real error mode, or shipping complexity without a rollback.

## Decision Brain

Use this loop whenever the task is ambiguous, high-impact, or metric-heavy:

1. Start from the decision, not the model. Name the action that changes downstream behavior.
2. Name who cares and why. Different stakeholders pay different costs for false positives, false negatives, latency, compute spend, opacity, or missed opportunities.
3. Convert ambiguity into hypotheses. Ask what signal would separate outcomes, what evidence would disprove it, and what simple baseline should be hard to beat.
4. Research prior art or a nearby known problem before inventing a bespoke system.
5. Score choices with `(probability, confidence) x (cost, severity, importance, impact)`.
6. Consider adversarial behavior, incentives, selective disclosure, distribution shift, and feedback loops.
7. Prefer the simplest change that reduces the most important mistake. Simplicity is not laziness; it is a way to minimize blunders while preserving iteration speed.
8. Capture the decision, evidence, counterargument, and next reversible step.

## Metric and Mistake Economics

Choose metrics from failure costs, not habit:

- Use a confusion matrix early so the team can discuss concrete false positives and false negatives instead of abstract accuracy.
- Favor precision when the cost of an incorrect positive decision dominates.
- Favor recall when the cost of a missed positive dominates.
- Use F1 only when the precision/recall tradeoff is genuinely balanced and explainable.
- Use AUC or ranking metrics when ordering quality matters more than a single threshold.
- Track latency, throughput, memory, and cost as first-class metrics because they shape feasible model complexity.
- Compare against a baseline and the current production model before celebrating an offline gain.
- Treat real-world feedback signals as delayed labels with bias, lag, and coverage gaps; do not treat them as ground truth without analysis.

Every metric choice should state which mistake it makes cheaper, which mistake it makes more likely, and who absorbs that cost.

## Data and Feature Hypotheses

Features should come from a theory of separation:

- Text, categorical fields, numeric histories, graph relationships, recency, frequency, and aggregates are candidate signal families, not automatic features.
- For every feature family, state why it should separate outcomes and how it could leak future information.
- For noisy labels, consider adjudication, label confidence, soft targets, or confidence weighting.
- For class imbalance, compare weighted loss, resampling, threshold movement, and calibrated decision rules.
- For missing values, decide whether absence is informative, imputable, or a reason to abstain.
- For outliers, decide whether to clip, bucket, investigate, or preserve them as rare but important signal.
- For correlated features, check whether they are redundant, unstable, or proxies for unavailable future state.

Do not add model complexity until error analysis shows that the baseline is failing for a reason additional signal or capacity can plausibly fix.

## Error Analysis Loop

After each baseline, training run, threshold change, or config change:

1. Split mistakes into false positives, false negatives, abstentions, low-confidence cases, and system failures.
2. Cluster errors by shared traits: language, entity type, source, time, geography, device, sparsity, recency, feature freshness, label source, or model version.
3. Separate model mistakes from data bugs, label ambiguity, product ambiguity, instrumentation gaps, and serving mismatches.
4. Trace each major cluster to one of four moves: better labels, better features, better threshold/config, or better product fallback.
5. Preserve every important mistake as a regression test, eval slice, dashboard panel, or runbook entry.
6. Write the next iteration as a falsifiable experiment, not a vague "improve model" task.

The strongest MLE loop is not train -> metric -> ship. It is mistake -> cluster -> hypothesis -> experiment -> evidence -> simpler system.

## Observation Ledger

Keep a compact decision and evidence trail beside the code, PR, experiment report, or runbook:

```text
Iteration:
Change:
Why this mattered:
Metric movement:
Slice movement:
False positives:
False negatives:
Unexpected errors:
Decision:
Tradeoff accepted:
Lesson captured:
Regression added:
Debt created:
Next iteration:
```

Use the ledger to make model work cumulative. The goal is for each iteration to make the next decision easier, not merely to produce another artifact.

## Core Workflow

### 1. Define the Prediction Contract

Capture the product-level contract before writing model code:

- Prediction target and decision owner
- Input entity, output schema, confidence/calibration fields, and allowed latency
- Batch, online, streaming, or hybrid serving mode
- Fallback behavior when the model, feature store, or dependency is unavailable
- Human review or override path for high-impact decisions
- Privacy, retention, and audit requirements for inputs, predictions, and labels

Do not accept "improve the model" as a requirement. Tie the model to an observable product behavior and a measurable acceptance gate.

### 2. Lock the Data Contract

Every ML task needs an explicit data contract:

- Entity grain and primary key
- Label definition, label timestamp, and label availability delay
- Feature timestamp, freshness SLA, and point-in-time join rules
- Train, validation, test, and backtest split policy
- Required columns, allowed nulls, ranges, categories, and units
- PII or sensitive fields that must not enter training artifacts or logs
- Dataset version or snapshot ID for reproducibility

Guard against leakage first. If a feature is not available at prediction time, or is joined using future information, remove it or move it to an analysis-only path.

### 3. Build a Reproducible Pipeline

Training code should be runnable by another engineer without hidden notebook state:

- Use typed config files or dataclasses for all hyperparameters and paths
- Pin package and model dependencies
- Set random seeds and document any nondeterministic GPU behavior
- Record dataset version, code SHA, config hash, metrics, and artifact URI
- Save preprocessing logic with the model artifact, not separately in a notebook
- Keep train, eval, and inference transformations shared or generated from one source
- Make every step idempotent so retries do not corrupt artifacts or metrics

Prefer immutable values and pure transformation functions. Avoid mutating shared data frames or global config during feature generation.

```python
import hashlib
from dataclasses import dataclass
from pathlib import Path


@dataclass(frozen=True)
class TrainingConfig:
    dataset_uri: str
    model_dir: Path
    seed: int
    learning_rate: float
    batch_size: int


def artifact_name(config: TrainingConfig, code_sha: str) -> str:
    config_key = f"{config.dataset_uri}:{config.seed}:{config.learning_rate}:{config.batch_size}"
    config_hash = hashlib.sha256(config_key.encode("utf-8")).hexdigest()[:12]
    return f"{code_sha[:12]}-{config_hash}"
```

### 4. Evaluate Before Promotion

Promotion criteria should be declared before training finishes:

- Baseline model and current production model comparison
- Primary metric aligned to product behavior
- Guardrail metrics for latency, calibration, fairness slices, cost, and error concentration
- Slice metrics for important cohorts, geographies, devices, languages, or data sources
- Confidence intervals or repeated-run variance when metrics are noisy
- Failure examples reviewed by a human for high-impact models
- Explicit "do not ship" thresholds

```python
PROMOTION_GATES = {
    "auc": ("min", 0.82),
    "calibration_error": ("max", 0.04),
    "p95_latency_ms": ("max", 80),
}


def assert_promotion_ready(metrics: dict[str, float]) -> None:
    missing = sorted(name for name in PROMOTION_GATES if name not in metrics)
    if missing:
        raise ValueError(f"Model promotion metrics missing required gates: {missing}")

    failures = {
        name: value
        for name, (direction, threshold) in PROMOTION_GATES.items()
        for value in [metrics[name]]
        if (direction == "min" and value < threshold)
        or (direction == "max" and value > threshold)
    }
    if failures:
        raise ValueError(f"Model failed promotion gates: {failures}")
```

Use offline metrics as gates, not guarantees. When the model changes product behavior, plan shadow evaluation, canary rollout, or A/B testing before full rollout.

### 5. Package for Serving

An ML artifact is production-ready only when the serving contract is testable:

- Model artifact includes version, training data reference, config, and preprocessing
- Input schema rejects invalid, stale, or out-of-range features
- Output schema includes model version and confidence or explanation fields when useful
- Serving path has timeout, batching, resource limits, and fallback behavior
- CPU/GPU requirements are explicit and tested
- Prediction logs avoid PII and include enough identifiers for debugging and label joins
- Integration tests cover missing features, stale features, bad types, empty batches, and fallback path

Never let training-only feature code diverge from serving feature code without a test that proves equivalence.

### 6. Operate the Model

Model monitoring needs both system and quality signals:

- Availability, error rate, timeout rate, queue depth, and p50/p95/p99 latency
- Feature null rate, range drift, categorical drift, and freshness drift
- Prediction distribution drift and confidence distribution drift
- Label arrival health and delayed quality metrics
- Business KPI guardrails and rollback triggers
- Per-version dashboards for canaries and rollbacks

Every deployment should have a rollback plan that names the previous artifact, config, data dependency, and traffic-switch mechanism.

## Review Checklist

- [ ] Prediction contract is explicit and testable
- [ ] Data contract defines entity grain, label timing, feature timing, and snapshot/version
- [ ] Leakage risks were checked against prediction-time availability
- [ ] Training is reproducible from code, config, data version, and seed
- [ ] Metrics compare against baseline and current production model
- [ ] Slice metrics and guardrails are included for high-risk cohorts
- [ ] Promotion gates are automated and fail closed
- [ ] Training and serving transformations are shared or equivalence-tested
- [ ] Model artifact carries version, config, dataset reference, and preprocessing
- [ ] Serving path validates inputs and has timeout, fallback, and rollback behavior
- [ ] Monitoring covers system health, feature drift, prediction drift, and delayed labels
- [ ] Sensitive data is excluded from artifacts, logs, prompts, and examples

## Anti-Patterns

- Notebook state is required to reproduce the model
- Random split leaks future data into validation or test sets
- Feature joins ignore event time and label availability
- Offline metric improves while important slices regress
- Thresholds are tuned on the test set repeatedly
- Training preprocessing is copied manually into serving code
- Model version is missing from prediction logs
- Monitoring only checks service uptime, not data or prediction quality
- Rollback requires retraining instead of switching to a known-good artifact

## Output Expectations

When using this skill, return concrete artifacts: data contract, promotion gates, pipeline steps, test plan, deployment plan, or review findings. Call out unknowns that block production readiness instead of filling them with assumptions.

Todos os arquivos

1 arquivos

Instalar mle-workflow

Baixe e extraia os arquivos de habilidades para o diretório .claude/skills/.

Baixar ZIP

Clone o repositório e copie os arquivos da habilidade para o seu projeto.

git clone https://github.com/affaan-m/ECC/tree/main/skills/mle-workflow # Copy SKILL.md to your .claude/skills/ directory

Copiar Copiar
Configuração rápida: Copie a pasta da habilidade para .claude/skills/ O Claude detectará e utilizará automaticamente a habilidade
Repositório affaan-m/ECC

Habilidades relacionadas

web-search
Tempo atualizado 29 de Junho de 2026
webapp-testing
Tempo atualizado 29 de Junho de 2026
lark-base
Tempo atualizado 5 de Julho de 2026
agentmail
Tempo atualizado 29 de Junho de 2026
OR