MLOps · Ingeniería de Datos

Versionado de datos y modelos

Aplicar el versionado a datos, modelos y experimentos para garantizar reproducibilidad y trazabilidad en el ciclo de vida de un proyecto de aprendizaje automático.

Versionado de datos y modelos

Git para datos y modelos El código tiene git desde hace décadas; los datos y modelos, no tanto. Versionar las tres cosas juntas —datos, código y modelo— es lo que separa un laboratorio reproducible de un cajón de sorpresa.

Qué hay que versionar

Reproducibilidad

Poder volver a obtener exactamente el mismo modelo a partir de las mismas entradas. Sin versionado, un resultado de ayer es irrepetible y por tanto inútil para auditar.

El registro de modelos

Un almacén central guarda cada versión del modelo con sus métricas, parámetros y metadatos. Permite comparar, recuperar y promover un candidato a producción.

Versionado de datos

Herramientas tipo instantáneas de datos capturan el estado exacto de un conjunto en un momento, como un commit pero para tablas voluminosas.

Linaje del dato

Experimentos trazables

Cada entrenamiento queda registrado: datos usados, código, parámetros, entorno y resultados. Así se sabe por qué una corrida batió a otra.

Entornos y dependencias

Fijar versiones de librerías y del motor importa: el mismo código con otra dependencia puede dar otro modelo. El versionado incluye el entorno.

Un cilindro de datos, un documento de código y un cubo de modelo conectados por un grafo de ramas con nodos etiquetados, y una flecha curva que señala un punto anterior indicando reversión.
Versionar datos, código y modelo juntos traza el linaje de cada resultado y permite volver a una versión previa con seguridad.

Comparar y revertir

Con versiones claras se comparan métricas lado a lado y se revierte a un modelo anterior si el nuevo regresa. Cambiar de idea sin miedo.

Etiquetas y estados

No versionar binarios gigantes a mano

Copiar archivos «modelo_final_v3_REAL» es una mala señal. El versionado debe ser sistemático, con metadatos buscables, no una colección de nombres improvisados.

Errores frecuentes

Ejemplo resuelto: reproducir un modelo premiado

Un experimento que batió el registro anterior queda fijado con su versión exacta de dataset, su código y parámetros, su entorno con dependencias y el artefacto con métricas. Semanas después, otro ingeniero puede relanzar la corrida y obtener el mismo modelo, o revertir a él si el nuevo empeora.

  1. fijar la versión exacta del dataset empleado
  2. guardar el código de preparación y entrenamiento con sus parámetros
  3. registrar librerías y versión del entorno
  4. almacenar el artefacto del modelo con sus métricas
  5. etiquetar la versión como candidata o en producción

¿Para qué sirve en la realidad?

Equipos que deben auditar por qué un modelo decidió algo, o cumplir normativas que exigen rastrear los datos de origen, dependen de un versionado que enlace cada predicción con su linaje completo.

El versionado de datos y modelos contribuye sobre todo a:

Versionar solo el código fuente basta para reproducir exactamente un modelo entrenado.

Versionado

Almacén central de versiones de modelo
registro
Volver a obtener el mismo modelo
reproducibilidad
Instantánea del estado de un dataset
version de datos
Rastrear el origen y transformaciones
linaje
Rendir un modelo anterior al empeorar
revertir

Ordena qué registrar en un experimento reproducible:

Datos
Codigo
Entorno
Artefacto

Control de versiones
Gestión del cambio de artefactos a lo largo del tiempo.

Une cada concepto de versionado con su definición:

Versionado

# Versionado
## Qué versionar
### datasets
### código
### hiperparámetros
### entorno
## Registro
### métricas
### metadatos
### estados y etiquetas
## Trazabilidad
### linaje del dato
### experimentos
### reproducibilidad
## Ciclo
### comparar
### promover
### revertir

Linaje de datos
Rastreo del origen y las transformaciones de los datos a lo largo de un pipeline.

Un modelo en producción rinde de pronto peor y nadie sabe con qué datos se entrenó. ¿Qué eslabón del versionado falló y cómo lo arreglarías?