Noções Básicas de MLOps
10 exemplos para você começar com MLOps - 7 básicos e 3 intermediários.
Pré-requisitos
uv venv && source .venv/bin/activate
uv pip install "mlflow>=2.20" "scikit-learn>=1.5" "fastapi>=0.115" "joblib"Exemplos Básicos
1. Registrar um Experimento com MLflow
import mlflow
import mlflow.sklearn
from sklearn.ensemble import RandomForestClassifier
with mlflow.start_run():
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
mlflow.log_param("n_estimators", 100)
mlflow.log_metric("accuracy", clf.score(X_test, y_test))
mlflow.sklearn.log_model(clf, "model")Relacionado: Rastreamento de Experimentos
2. Salvar um Artefato de Modelo
import joblib
joblib.dump(pipeline, "models/churn_v1.joblib")3. Carregar e Predizer
pipeline = joblib.load("models/churn_v1.joblib")
prediction = pipeline.predict(new_data)4. Hashear Dados de Treinamento para Versionamento
import hashlib
data_hash = hashlib.sha256(open("train.csv", "rb").read()).hexdigest()[:12]5. Treinamento por Script (Não Notebooks)
# train.py - execute com: python train.py --data train.csv
def main(data_path: str) -> None:
...
if __name__ == "__main__":
main()6. Servir com FastAPI
from fastapi import FastAPI
app = FastAPI()
@app.post("/predict")
def predict(features: dict):
return {"prediction": int(model.predict([list(features.values())])[0])}Relacionado: Servindo com FastAPI
7. Teste de Fumaça da Inferência
def test_predict():
assert model.predict(sample_input).shape == (1,)Exemplos Intermediários
8. Rastrear Dados com DVC
dvc add data/train.csv
git add data/train.csv.dvcRelacionado: Versionamento de Dados e Modelos (DVC)
9. Promover Modelo para Staging
client = mlflow.tracking.MlflowClient()
client.transition_model_version_stage("churn", version=3, stage="Staging")Relacionado: Registros e Versionamento de Modelos
10. Registrar Distribuição de Predição
import logging
logging.info(f"prediction={pred} features_hash={hash}")Relacionado: Monitoramento e Desvios
Versões da Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ e uv 0.6+.