Saltar al contenido principal

Capítulo 2: Kubeflow

Componentes de Kubeflow​

ComponentePropósito
PipelinesOrquestación de flujos de trabajo de ML
NotebooksJupyter notebooks en K8s
KatibAjuste de hiperparámetros
KFServingServir modelos
Training OperatorsEntrenamiento distribuido (TFJob, PyTorchJob)

Ejemplo de Pipeline en Kubeflow​

from kfp import dsl, compiler

@dsl.component
def preprocess_data(input_path: str, output_path: str):
import pandas as pd
df = pd.read_csv(input_path)
# Preprocessing logic
df.to_csv(output_path, index=False)

@dsl.component
def train_model(data_path: str, model_path: str):
import joblib
from sklearn.ensemble import RandomForestClassifier
# Training logic
model = RandomForestClassifier()
joblib.dump(model, model_path)

@dsl.pipeline(name="ml-training-pipeline")
def ml_pipeline(input_data: str = "gs://bucket/data.csv"):
preprocess_task = preprocess_data(input_path=input_data, output_path="/tmp/processed.csv")
train_task = train_model(data_path=preprocess_task.output, model_path="/tmp/model.pkl")

compiler.Compiler().compile(ml_pipeline, "pipeline.yaml")

Siguiente: Capítulo 3: Escalando cargas de trabajo de ML