rukh · lab

// El proyecto

Rukh, en una página.

Rukh es un modelo de lenguaje de ajedrez entrenado desde cero, alineado con aprendizaje por refuerzo de recompensas verificables, desplegado en WebGPU y convertido en un agente con herramientas. Este sitio es el curso que documenta cada paso.

01 / Qué es// un artefacto, el ciclo entero

Un modelo, todas las etapas del ciclo de vida.

Un decoder propio (decenas de millones de parámetros) entrenado con partidas de Lichess, un encoder para entender posiciones, fine-tuning con instrucciones de Elo, reward model, DPO y GRPO con Stockfish como juez, exportación a ONNX para jugar en el navegador y, en la segunda fase, RAG y agentes que comentan partidas.

  1. M1Datos y tokenizaciónRecorte de Lichess, vocabulario UCI, BPE, dataloaders
  2. M2DecoderMoveDecoder tipo GPT entrenado desde cero, ONNX, demo en WebGPU
  3. M3EncoderMasked move modeling, cabezas de valor y de error
  4. M4Fine-tuningSFT de maestros, condicionamiento por Elo, LoRA, QLoRA frente a Qwen3
  5. M5AlineamientoReward model, DPO, GRPO con Stockfish como juez
  6. M6EvaluaciónTabla única de resultados, model cards, demo final
  7. A1-A6Entrenador agénticoRAG sobre posiciones y libros, agente LangGraph, servidor MCP
02 / Tres repositorios// arquitectura

Tres repositorios, sin paquetes compartidos.

Todo lo que comparten las dos webs (tokens CSS, el tokenizador en TypeScript, JSON precalculado) se copia con un script y lo vigila un test de hash. Los pesos y los datasets viven en Hugging Face, nunca en git.

Arquitectura: rukh publica en Hugging Face; rukh-lab y rukh-web leen de allírukhentrenar · evaluar · agentesrukh-labcurso · lab.rukhrukh-webjugar · WebGPUHugging Faceartifacts/web/*.json → sync:datamodelos · adaptadores · datasets
  • borja-glez/rukh

    Modelo, datos, entrenamiento, evaluación y agentes. Python 3.12, PyTorch, MLflow.

  • borja-glez/rukh-lab

    Este sitio: el curso, en español. Astro estático con islas Preact.

  • borja-glez/rukh-web

    La demo: juega contra el modelo en el navegador con onnxruntime-web.

03 / Resultados// rukh eval nightly

Medido siempre igual.

Una tabla para todas las etapas, medida siempre igual. Se llena a medida que avanza el curso; cada fila enlaza a su model card.

EtapaParámetrosLegalidad sin máscara (%)Top-1 (%)Top-3 (%)Puzles 1000-1500 (%)Puzles 1500-2000 (%)Puzles 2000+ (%)Elo vs Stockfish (IC 95 %)Δ medio (cp)Hugging Face
karvonen-8l25,7 M99,650,7—47,526,010,81328 (1250 … 1391)——
lora-d4115,1 M99,855,183,057,437,516,91535 (1481 … 1582)——
lora-e4115,1 M99,854,783,358,138,217,21538 (1488 … 1604)——
medium-elo115,1 M99,754,982,559,837,116,61592 (1532 … 1650)——
medium-masters115,1 M99,754,982,358,138,717,11563 (1502 … 1630)——
medium-v4-dpo-greedy115,1 M99,853,480,558,339,918,11586 (1530 … 1651)——
medium-v4-dpo-onpolicy-greedy115,1 M99,252,379,959,040,317,81632 (1567 … 1706)——
medium-v4-greedy115,1 M99,854,482,257,938,016,61535 (1476 … 1599)——
medium-v4-grpo-greedy115,1 M99,353,380,358,939,117,81577 (1526 … 1632)——
qwen3-pgn-qlora596,0 M62,512,5—1,80,70,4320——
small-greedy39,0 M99,451,179,434,721,110,31355 (1297 … 1420)——
small-v3-greedy39,0 M99,152,480,541,027,012,21425 (1367 … 1484)——
tiny-greedy5,3 M94,540,367,114,18,63,9778 (479 … 904)——
Encoder: un detector de errores y una cabeza de valor no se miden como un jugador. El umbral se elige en una mitad «tune» y el F1 se publica sobre la mitad «score»; la columna del umbral fijo 0,5 está ahí porque con una clase positiva del 3,7 % ese valor de fábrica no significa nada.
EtapaParámetrosF1 de error, umbral ajustado (%)Umbral (elegido en «tune»)F1 de error, umbral 0,5 (%)F1 de la heurística (%)Margen (puntos de F1)ROC AUCPrecisión mediaTasa base de error (%)Valor: SpearmanValor: PearsonResultado (%)
encoder15,1 M18,00,06630,08,9+9,20,7400,1123,70,5200,64850,0
encoder-rank15,1 M17,70,1060,08,9+8,90,7500,1153,70,6400,66249,6
encoder-squares14,3 M14,60,04460,08,9+5,70,6960,0913,70,4220,68850,2
encoder-v439,0 M18,60,09620,08,9+9,70,7610,1173,70,6660,72650,8

Fuente: rukh eval nightly · actualizado 21/9/2026

04 / Enlaces// artefactos públicos