Saltar al contenido principal

Pipelines

Un pipeline es una secuencia de pasos, cada uno en su propio contenedor, con entradas y salidas registradas. A diferencia de un notebook, deja un historial: qué corrió, con qué parámetros, qué produjo.

Cuándo pasar de notebook a pipeline

Cuando corres el mismo proceso más de dos veces, cuando necesitas comparar ejecuciones, o cuando el trabajo debe encolarse y correr sin que tú estés conectado.

Un pipeline mínimo

Se escribe en Python con el SDK de Kubeflow Pipelines (KFP v2). Ejemplo con dos pasos: generar un dataset y analizarlo.

from kfp import dsl

@dsl.component(base_image="python:3.11-slim")
def generar(salida: dsl.Output[dsl.Dataset]):
import csv, random
with open(salida.path, "w") as f:
w = csv.writer(f); w.writerow(["presion", "flujo"])
for _ in range(1000): w.writerow([random.gauss(5, 1), random.gauss(10, 2)])

@dsl.component(base_image="python:3.11-slim")
def analizar(entrada: dsl.Input[dsl.Dataset], metricas: dsl.Output[dsl.Metrics]):
import csv
filas = list(csv.DictReader(open(entrada.path)))
anomalias = sum(1 for r in filas if float(r["presion"]) < 3)
metricas.log_metric("lecturas", len(filas))
metricas.log_metric("anomalias", anomalias)

@dsl.pipeline(name="sensores")
def pipeline():
analizar(entrada=generar().outputs["salida"])

Compila y sube desde el notebook del laboratorio (el SDK ya conoce tu sesión):

from kfp import compiler, Client
compiler.Compiler().compile(pipeline, "sensores.yaml")
Client().create_run_from_pipeline_package("sensores.yaml", arguments={})

El menú Pipelines del panel

EntradaQué es
PipelinesDefiniciones subidas. Pestañas Private (solo tu laboratorio) y Shared (visibles para todo el Cliente). Upload pipeline sube un archivo compilado.
ExperimentsAgrupaciones de runs para compararlos.
RunsCada ejecución, con estado, duración, experimento y versión del pipeline. Create run, Compare runs, Clone run, Archive.
Recurring RunsEjecuciones programadas (cada hora, cada día).
ArtifactsDatasets, modelos y métricas que produjo cada paso.
ExecutionsCada paso ejecutado, con sus entradas y salidas.

Lista de pipelines con pestañas Private y Shared

Ver resultados

En Runs, cada ejecución muestra el grafo, los logs por paso, los artefactos y las métricas registradas. Un run terminado se puede archivar para sacarlo de la lista sin perderlo.

Lista de runs vacía con los botones Create run, Compare runs y Clone run

Datos que no deben ir en un pipeline

Lo que subas en la pestaña Shared, y los nombres, parámetros, métricas y artefactos de cualquier pipeline, son visibles para otros usuarios de la plataforma de pipelines. No pongas datos confidenciales ahí; mantenlos en el disco del laboratorio y pásalos por referencia.

Para la sintaxis completa del SDK, consulta la documentación de Kubeflow Pipelines.

Siguiente paso