Skip to content

MLOps & Model Inference

ColabBio provee una infraestructura centralizada para el entrenamiento, registro y despliegue de modelos de Inteligencia Artificial, diseñada específicamente para soportar cargas de trabajo pesadas como Whole Slide Imaging (WSI), genómica y LLMs en salud.

La plataforma delega las responsabilidades en herramientas nativas de la industria:

  1. Nextflow: Orquestación de pipelines (responsabilidad de cada Tenant).
  2. MLflow: Tracking de experimentos y Model Registry (Servicio de Plataforma).
  3. NVIDIA Triton: Servidor de Inferencia acelerado por GPU (Servicio de Plataforma).

1. Integración con MLflow (Entrenamiento)

Section titled “1. Integración con MLflow (Entrenamiento)”

Cuando desarrolles un pipeline de entrenamiento en tu proyecto Tenant (ej. WSI_MIL), no necesitas configurar tu propio servidor de MLflow ni escribir el código de las APIs.

La plataforma expone los módulos estándar en el repositorio cb-nextflow-modules.

Añade estas líneas a tu script de Nextflow (main.nf):

include { MLFLOW_REGISTER; TRITON_DEPLOY } from 'github.com/colabbio/cb-nextflow-modules/mlops.nf'

Bajo el capó, este módulo de Nextflow se encarga de ejecutar el siguiente código Python de forma transparente para inyectar los datos:

import mlflow
# La URL es resuelta internamente por Kubernetes
mlflow.set_tracking_uri("http://colabbio-mlflow:5000")
mlflow.set_experiment("wsi_mil_abmil_classifier")
with mlflow.start_run():
# El código de entrenamiento del tenant...
# Guarda el modelo en el registro
mlflow.pytorch.log_model(model, "abmil_model")

Al registrar el modelo, MLflow lo subirá automáticamente al Model Repository (GCS o un disco persistente local, dependiendo del entorno).


Debido a que modelos como los Transformers y ABMIL son extremadamente exigentes en cuanto a la VRAM (memoria de GPU), no desplegamos contenedores FastAPI individuales.

ColabBio despliega NVIDIA Triton Inference Server para gestionar la memoria de la GPU de forma dinámica. Triton detecta cuando hay modelos nuevos en el Model Repository y los carga automáticamente.

Tu backend o frontend no realiza inferencia local. Para predecir sobre un nuevo paciente o imagen, debes realizar una llamada gRPC o HTTP a Triton.

Endpoint HTTP interno: http://colabbio-triton:8000/v2/models/abmil_model/infer
Endpoint gRPC interno: colabbio-triton:8001

Nota para Desarrolladores de Frontend (cb_path_viewer): Si necesitas procesar parches de imágenes en tiempo real, envía las matrices de píxeles al backend (cb-svc-parent). Este se encargará de agruparlas (batching) y enviarlas a Triton vía gRPC para una latencia mínima.