MLOps · FastAPI · MLflow · Docker

MLOps mini‑stack completo

Entrenamiento (scikit‑learn / TensorFlow / PyTorch), tracking con MLflow, empaquetado como API FastAPI y despliegue Docker. Pipeline CI que ejecuta tests, lint y build de imagen. Plantilla lista para clonar y adaptar.

Arquitectura del MLOps stack

1

Entrenamiento de modelos

Soporte para scikit-learn, TensorFlow y PyTorch con configuración unificada

2

Tracking con MLflow

Registro de experimentos, métricas, parámetros y artefactos con versionado automático

3

API REST con FastAPI

Empaquetado automático como API con documentación Swagger y validación de esquemas

4

Contenedorización Docker

Imagen Docker optimizada con dependencias mínimas y multi-stage builds

5

CI/CD automatizado

Pipeline GitHub Actions para testing, linting, build y despliegue automático

Procedimientos y metodología

1. Configuración de experimentos

[Espacio reservado para explicar la configuración de experimentos MLflow: structure de tracking URI, organización de runs, tags automáticos, y estrategias de versionado de modelos]

Por implementar: Guía completa de configuración MLflow y best practices

2. Patrón de entrenamiento unificado

[Espacio reservado para documentar el patrón de entrenamiento que funciona para sklearn/TensorFlow/PyTorch: interface común, logging automático, y serialización consistente de modelos]

Por implementar: Ejemplos de código para cada framework ML

3. Estrategia de despliegue

[Espacio reservado para explicar la estrategia de despliegue: promoción de modelos desde staging a production, rollback automático, y monitoreo de performance en tiempo real]

Por implementar: Configuración de ambientes y pipelines de despliegue

Datasets y modelos de ejemplo

[Espacio reservado para documentar los datasets de ejemplo incluidos: clasificación (iris, wine), regresión (housing), y deep learning (MNIST/CIFAR). Cada ejemplo muestra el patrón completo MLOps]

Estructura del proyecto:

  • /models/ - Definiciones de modelos por framework
  • /training/ - Scripts de entrenamiento unificados
  • /api/ - FastAPI app con endpoints de predicción
  • /docker/ - Dockerfiles optimizados
  • /.github/workflows/ - Pipelines CI/CD
  • /examples/ - Notebooks con casos de uso

Instalación y configuración

Requisitos del sistema

[Por definir: versiones de Python,
Docker, MLflow server setup,
GitHub Actions secrets,
y configuración de registries]

Setup completo del stack

# 1. Clonar template
git clone https://github.com/marcorios99/mlops-ministack
cd mlops-ministack

# 2. Crear entorno virtual
python -m venv venv
source venv/bin/activate  # Linux/Mac
# venv\Scripts\activate   # Windows

# 3. Instalar dependencias
pip install -r requirements.txt

# 4. Configurar MLflow tracking
export MLFLOW_TRACKING_URI=http://localhost:5000
mlflow server --host 0.0.0.0 --port 5000

# 5. Entrenar modelo de ejemplo
python training/train_sklearn_example.py

# 6. Levantar API
uvicorn api.main:app --reload

# 7. Build Docker image
docker build -t mlops-model:latest .

# 8. Run container
docker run -p 8000:8000 mlops-model:latest

Resultados y métricas

[Espacio reservado para documentar métricas del pipeline MLOps: tiempo de build, tamaño de imágenes Docker, latencia de API, y comparativas de performance entre frameworks]

Outputs del stack

  • Modelos entrenados y versionados en MLflow
  • API REST lista para producción
  • Imagen Docker optimizada (<500MB)
  • Documentación Swagger automática
  • Pipeline CI/CD configurado

Métricas de performance

  • Latencia de predicción <100ms
  • Uso de CPU y memoria optimizado
  • Tiempo de build Docker <5min
  • Coverage de tests >90%

Stack tecnológico

ML Frameworks

scikit-learn, TensorFlow, PyTorch

MLOps

MLflow, DVC (básico)

API

FastAPI, Pydantic, Uvicorn

Containerización

Docker, Docker Compose

CI/CD

GitHub Actions, pytest

Monitoring

Prometheus, logging estructurado

¿Preguntas sobre este proyecto?

Envíame un mensaje.