En pocas palabras
Plataforma para seguimiento de experimentos de ML y evaluación de aplicaciones LLM mediante Weave.
Qué problema resuelve
Resultados difíciles de reproducir y comparar entre modelos, datos y configuraciones.
Cuándo utilizarlo
ML y agentes en desarrollo continuo. Ejemplo: comparar dos variantes de un sistema RAG.
De la idea a la práctica
Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.
En el Radar compartido: Trial (valoración de la edición aportada).
Cómo funciona
W&B registra experimentos y artefactos; Weave añade trazas y evaluaciones de funciones y agentes. Permite relacionar comportamiento con cambios de modelo o prompt.
Ejemplo de uso
Publicar un dataset de preguntas revisadas y evaluar dos variantes con los mismos scorers. Investigar ejemplos donde mejora la media pero empeoran respuestas de un dominio crítico.
Seguimiento de experimentos
import wandb
run = wandb.init(project="scoring-riesgo", config={"modelo": "xgboost", "max_depth": 6, "lr": 0.05})
for epoca in range(100):
auc_train, auc_val = entrenar_una_epoca()
wandb.log({"auc/train": auc_train, "auc/val": auc_val, "epoca": epoca})
run.summary["auc_val_final"] = auc_val
run.finish()
Cada run guarda configuración, métricas, versión del código (commit), hardware y logs, de modo que cualquier resultado es reproducible y comparable.
Artifacts: linaje de datos y modelos
dataset = wandb.Artifact("solicitudes-2026q3", type="dataset")
dataset.add_file("solicitudes.parquet")
run.log_artifact(dataset)
# En otro run
datos = run.use_artifact("solicitudes-2026q3:latest").download()
Los artifacts se versionan automáticamente (v0, v1…) y W&B dibuja el grafo de linaje: qué dataset produjo qué modelo, evaluado con qué datos. En sectores regulados (crédito) es una evidencia valiosa para auditoría de modelos.
Sweeps
# sweep.yaml
method: bayes
metric: { name: auc/val, goal: maximize }
parameters:
max_depth: { values: [4, 6, 8] }
lr: { min: 0.01, max: 0.2, distribution: log_uniform_values }
early_terminate: { type: hyperband, min_iter: 10 }
wandb sweep sweep.yaml y luego wandb agent <id> en una o varias máquinas: la búsqueda de hiperparámetros se coordina centralmente.
Weave para aplicaciones LLM
import asyncio, weave
weave.init("asistente-cobranza")
@weave.op()
def responder(pregunta: str) -> str:
return llamar_modelo(pregunta)
@weave.op()
def contiene_dato(output: str, esperado: str) -> dict:
return {"correcta": esperado.lower() in output.lower()}
evaluacion = weave.Evaluation(
dataset=[{"pregunta": "¿Cuándo vence mi cuota?", "esperado": "día 5"}],
scorers=[contiene_dato],
)
asyncio.run(evaluacion.evaluate(responder))
@weave.op traza entradas, salidas, latencia y coste de cada función, y las evaluaciones se comparan entre versiones del prompt o del modelo.
Registro de modelos
El Model Registry enlaza versiones de modelos con etiquetas (staging, production) y con los runs que las produjeron, y puede disparar automatizaciones (por ejemplo, una evaluación o un despliegue) al cambiar una etiqueta. Alternativas: MLflow (open source) o los registros nativos de Vertex AI, SageMaker y Databricks.
Criterios de implementación
Controlar datos enviados, retención y acceso. Separar entrenamiento y evaluación y revisar costes de almacenamiento y jueces LLM; las puntuaciones requieren interpretación humana.
Continúa en las fuentes
Documentación oficial para verificar detalles y explorar más.