Saltar al contenido principal

Experimentos

Un experimento ejecuta tu script de entrenamiento varias veces con distintos hiperparámetros y registra las métricas de cada intento (trial). Al final reporta la mejor combinación.

Qué necesitas

  • Un script de entrenamiento que imprima sus métricas en la salida estándar con formato nombre=valor, por ejemplo epoch=3 loss=0.21.
  • Un rango por hiperparámetro (learning rate, tamaño de lote, etc.).

Respeta la GPU

Con una GPU en la talla, configura los trials para correr de uno en uno (parallelTrialCount: 1). Si pides más, los demás esperan en cola; no fallan, pero tampoco ganas tiempo.

Un experimento mínimo

apiVersion: kubeflow.org/v1beta1
kind: Experiment
metadata:
name: lr-fugas
spec:
objective:
type: minimize
objectiveMetricName: loss
algorithm:
algorithmName: random
parallelTrialCount: 1
maxTrialCount: 3
parameters:
- name: lr
parameterType: double
feasibleSpace: { min: "0.001", max: "0.1" }
trialTemplate:
primaryContainerName: training
trialParameters:
- { name: learningRate, reference: lr }
trialSpec:
apiVersion: batch/v1
kind: Job
spec:
template:
spec:
restartPolicy: Never
containers:
- name: training
image: pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime
command: ["python", "/workspace/train.py", "--lr", "${trialParameters.learningRate}"]
resources: { limits: { nvidia.com/gpu: 1 } }

En el panel del laboratorio, Katib Experiments lista cada experimento con sus trials exitosos, en ejecución y fallidos, y el Optimal trial con el mejor valor de la métrica objetivo. Al abrirlo ves cada trial con sus parámetros y métricas.

Lista de experimentos con trials y el trial óptimo

New Experiment abre un asistente para crear el experimento sin escribir YAML; el archivo de arriba es el equivalente para aplicarlo desde el notebook.

Referencia completa en la documentación de Katib.

Siguiente paso