Alejandría

Busca en Alejandría

Plataformas

Weights & Biases

Plataforma para seguimiento de experimentos de ML y evaluación de aplicaciones LLM mediante Weave.

01

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.

02

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.