<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Calidad-Llm on lo0 — Blog Técnico</title><link>https://blog.lo0.es/tags/calidad-llm/</link><description>Recent content in Calidad-Llm on lo0 — Blog Técnico</description><generator>Hugo -- gohugo.io</generator><language>es</language><lastBuildDate>Tue, 16 Jun 2026 03:00:00 +0200</lastBuildDate><atom:link href="https://blog.lo0.es/tags/calidad-llm/index.xml" rel="self" type="application/rss+xml"/><item><title>Benchmarks de calidad de LLM: la trampa de la contaminación y las herramientas OSS para no mentirse</title><link>https://blog.lo0.es/posts/benchmarks-de-calidad-llm/</link><pubDate>Tue, 16 Jun 2026 03:00:00 +0200</pubDate><guid>https://blog.lo0.es/posts/benchmarks-de-calidad-llm/</guid><description>&lt;blockquote>
&lt;p>Notación: importes en &lt;strong>euros (N €)&lt;/strong>, decimales con coma. No se usa el símbolo de dólar
(en este sitio es delimitador de fórmula).&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>Post &lt;strong>B7&lt;/strong> del track de benchmarking. La &lt;a href="https://blog.lo0.es/posts/benchmarking-llm-frameworks-estado-del-arte/">introducción B1&lt;/a>
fijó la distinción entre los tres ejes (rendimiento, calidad, energía). El &lt;a href="https://blog.lo0.es/posts/herramientas-benchmark-llm-ficha-a-ficha/">catálogo de herramientas B2&lt;/a>
cubrió el eje de rendimiento (TTFT, ITL, goodput). Este artículo cubre el eje de &lt;strong>calidad&lt;/strong>:
qué mide cada benchmark, cómo se ejecuta, y por qué los números del leaderboard no siempre
dicen lo que parecen. El &lt;a href="https://blog.lo0.es/posts/evals-llm-la-capa-despues-de-tracing/">pipeline de evals LLMOps&lt;/a>
y el &lt;a href="https://blog.lo0.es/posts/llm-as-judge-fundamentos/">LLM-as-judge&lt;/a> cubren la capa de evaluación
interna del sistema; este artículo cubre la evaluación &lt;strong>del modelo base&lt;/strong> con benchmarks
académicos estándar.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>Un motor de inferencia con TTFT de 80 ms que sirve un modelo de baja calidad no sirve de nada: el Pareto de la plataforma tiene dos ejes independientes. En 2025–2026, los benchmarks estáticos más usados —MMLU, HumanEval— han cruzado el umbral de saturación (HumanEval &amp;gt; 93% en modelos frontier, MMLU-Pro &amp;gt; 75% en los top-5), lo que invalida su capacidad de diferenciar en la zona alta. La causa principal no es que los modelos sean mejores: es contaminación de datos, con solapamiento n-gram del 18% detectado en Llama-2-70B sobre datasets de evaluación. Las herramientas OSS activas en 2026 son &lt;strong>lm-evaluation-harness&lt;/strong> (EleutherAI, MIT, 60+ tareas, motor de facto del ecosistema), &lt;strong>HELM&lt;/strong> (Stanford, Apache 2.0, en mantenimiento desde junio 2026), &lt;strong>LiveBench&lt;/strong> (MIT, 1.000 preguntas renovadas mensualmente para evitar contaminación), &lt;strong>lighteval&lt;/strong> (Hugging Face, MIT, 1.000+ tareas, soporte vLLM), y &lt;strong>LMArena/Chatbot Arena&lt;/strong> (Bradley-Terry sobre millones de comparaciones humanas). El OpenLLM Leaderboard v2 fue archivado en 2025 y sustituido por el ecosistema &lt;strong>OpenEvals&lt;/strong> (200+ leaderboards especializados). Reproducir un número de eval requiere pinear: versión del harness, del modelo, de la plantilla de prompt y del número de shots.&lt;/p>
&lt;hr>
&lt;h2 id="calidad--rendimiento-el-eje-pareto-independiente">Calidad ≠ rendimiento: el eje Pareto independiente&lt;/h2>
&lt;p>El eje de rendimiento (TTFT, ITL, throughput) mide &lt;strong>cuánto tarda&lt;/strong> el motor en producir tokens.
El eje de calidad mide &lt;strong>qué tan correctos&lt;/strong> son esos tokens. Son ortogonales: un modelo pequeño
servido con vLLM a 3.000 tok/s puede sacar 42% en MMLU-Pro; un modelo frontier puede necesitar
4× más GPU y sacar 72%. El producto throughput × calidad es el único número que importa para
una plataforma en producción.&lt;/p>
&lt;div class="diagram" style="max-width:700px;margin:1rem auto;">
&lt;svg viewBox="0 0 700 320" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Espacio Pareto calidad versus rendimiento con cuatro cuadrantes">
&lt;style>
.ax{fill:none;stroke:currentColor;stroke-width:1.4}
.tl{font:600 13px sans-serif;fill:currentColor}
.ts{font:11px sans-serif;fill:currentColor}
.dot{stroke:currentColor;stroke-width:1.2}
.ar{fill:none;stroke:currentColor;stroke-width:1.3;marker-end:url(#arh)}
&lt;/style>
&lt;defs>
&lt;marker id="arh" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto">
&lt;path d="M0,0 L10,5 L0,10 z" fill="currentColor"/>
&lt;/marker>
&lt;/defs>
&lt;line class="ax" x1="60" y1="260" x2="660" y2="260"/>
&lt;line class="ax" x1="60" y1="260" x2="60" y2="30"/>
&lt;path class="ar" d="M650,260 L665,260"/>
&lt;path class="ar" d="M60,40 L60,25"/>
&lt;text x="670" y="264" class="ts">Rendimiento (tok/s)&lt;/text>
&lt;text x="65" y="22" class="ts">Calidad (MMLU-Pro %)&lt;/text>
&lt;text x="62" y="258" class="ts">0&lt;/text>
&lt;text x="55" y="155" class="ts" text-anchor="end">50&lt;/text>
&lt;text x="55" y="80" class="ts" text-anchor="end">72&lt;/text>
&lt;text x="200" y="270" class="ts">1000&lt;/text>
&lt;text x="460" y="270" class="ts">3000&lt;/text>
&lt;line class="ax" x1="58" y1="155" x2="62" y2="155"/>
&lt;line class="ax" x1="58" y1="80" x2="62" y2="80"/>
&lt;line class="ax" x1="200" y1="258" x2="200" y2="262"/>
&lt;line class="ax" x1="460" y1="258" x2="460" y2="262"/>
&lt;circle class="dot" cx="200" cy="155" r="10" fill="none"/>
&lt;text x="212" y="150" class="ts">Modelo pequeño rápido&lt;/text>
&lt;text x="212" y="163" class="ts">(42% / 3.000 tok/s) — inútil si la tarea lo exige&lt;/text>
&lt;circle class="dot" cx="460" cy="80" r="10" fill="none"/>
&lt;text x="472" y="75" class="ts">Modelo frontier optimizado&lt;/text>
&lt;text x="472" y="88" class="ts">(72% / 3.000 tok/s) — zona Pareto&lt;/text>
&lt;circle class="dot" cx="180" cy="80" r="10" fill="none"/>
&lt;text x="192" y="75" class="ts">Frontier lento&lt;/text>
&lt;text x="192" y="88" class="ts">(72% / 800 tok/s)&lt;/text>
&lt;circle class="dot" cx="500" cy="200" r="10" fill="none"/>
&lt;text x="512" y="195" class="ts">Motor rápido, modelo malo&lt;/text>
&lt;text x="512" y="208" class="ts">(35% / 4.000 tok/s) — inutilizable&lt;/text>
&lt;text x="330" y="300" class="tl" text-anchor="middle">Zona útil: calidad ≥ umbral de tarea ∧ rendimiento ≥ SLO de producción&lt;/text>
&lt;/svg>
&lt;/div>
&lt;p>La consecuencia operativa: seleccionar modelo y motor &lt;strong>primero por calidad&lt;/strong> (¿supera el umbral mínimo para la tarea?) y &lt;strong>luego por rendimiento&lt;/strong> (¿cumple el SLO dentro del presupuesto de GPU?). Invertir el orden —elegir el motor más rápido y encajar el modelo— es el error más frecuente en el dimensionamiento inicial.&lt;/p>
&lt;hr>
&lt;h2 id="benchmarks-de-referencia-qué-mide-cada-uno">Benchmarks de referencia: qué mide cada uno&lt;/h2>
&lt;p>La tabla siguiente recoge los benchmarks académicos estándar en 2026, la capacidad que mide cada uno, su tamaño de test set y el nivel de saturación actual en modelos frontier.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Benchmark&lt;/th>
&lt;th>Capacidad medida&lt;/th>
&lt;th>Formato&lt;/th>
&lt;th>Test set&lt;/th>
&lt;th>Saturación frontier 2026&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>MMLU&lt;/strong>&lt;/td>
&lt;td>Conocimiento multidisciplinar (57 materias)&lt;/td>
&lt;td>4-choice MCQ&lt;/td>
&lt;td>14.079&lt;/td>
&lt;td>Alta: top-5 &amp;gt; 88%; diferencia insuficiente&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>MMLU-Pro&lt;/strong>&lt;/td>
&lt;td>MMLU con 10 opciones, razonamiento multistep&lt;/td>
&lt;td>10-choice MCQ&lt;/td>
&lt;td>12.032&lt;/td>
&lt;td>Media: top-5 entre 72–77%; aún diferencia&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>GSM8K&lt;/strong>&lt;/td>
&lt;td>Razonamiento matemático nivel primaria (problemas de enunciado)&lt;/td>
&lt;td>generación de respuesta&lt;/td>
&lt;td>1.319&lt;/td>
&lt;td>Muy alta: top modelos &amp;gt; 97%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>MATH&lt;/strong>&lt;/td>
&lt;td>Matemáticas de competición (álgebra, geometría, cálculo, etc.)&lt;/td>
&lt;td>generación LaTeX&lt;/td>
&lt;td>5.000&lt;/td>
&lt;td>Media-alta: top modelos 85–92%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>GPQA Diamond&lt;/strong>&lt;/td>
&lt;td>Razonamiento científico PhD (biología, física, química)&lt;/td>
&lt;td>4-choice MCQ&lt;/td>
&lt;td>198&lt;/td>
&lt;td>Emergente: top &amp;gt; 90% en 2026; aún diferencia en 60–90%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>BBH&lt;/strong> (BIG-Bench Hard)&lt;/td>
&lt;td>23 tareas donde modelos anteriores caían por debajo del humano&lt;/td>
&lt;td>generación&lt;/td>
&lt;td>6.511&lt;/td>
&lt;td>Media: útil para razonamiento complejo&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>IFEval&lt;/strong>&lt;/td>
&lt;td>Seguimiento de instrucciones verifiable (format, longitud, idioma)&lt;/td>
&lt;td>generación + reglas&lt;/td>
&lt;td>541&lt;/td>
&lt;td>Baja: diferencia notable entre modelos&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>HumanEval&lt;/strong>&lt;/td>
&lt;td>Generación de código Python (164 problemas con signatura)&lt;/td>
&lt;td>generación + ejecución&lt;/td>
&lt;td>164&lt;/td>
&lt;td>Muy alta: top &amp;gt; 93%; saturado&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>MBPP&lt;/strong>&lt;/td>
&lt;td>Generación de código (500 problemas sin signatura de función)&lt;/td>
&lt;td>generación + ejecución&lt;/td>
&lt;td>500&lt;/td>
&lt;td>Alta: top modelos 85–92%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>MuSR&lt;/strong>&lt;/td>
&lt;td>Razonamiento multistep sobre textos largos&lt;/td>
&lt;td>generación&lt;/td>
&lt;td>~1.000&lt;/td>
&lt;td>Baja: útil para razonamiento extenso&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>TruthfulQA&lt;/strong>&lt;/td>
&lt;td>Veracidad: resistencia a afirmar mitos populares&lt;/td>
&lt;td>generación + MCQ&lt;/td>
&lt;td>817&lt;/td>
&lt;td>Media: diferencia visible entre familias&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>Nota sobre saturación:&lt;/strong> un benchmark saturado no distingue modelos en la zona alta; sólo tiene valor como &lt;em>floor check&lt;/em> (confirmar que el modelo no regresa al nivel de hace 3 años). Para la zona frontier, los benchmarks útiles en 2026 son MMLU-Pro, GPQA Diamond, IFEval y MuSR.&lt;/p>
&lt;hr>
&lt;h2 id="herramientas-oss-de-evaluación-fichas">Herramientas OSS de evaluación: fichas&lt;/h2>
&lt;h3 id="lm-evaluation-harness-eleutherai">lm-evaluation-harness (EleutherAI)&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Campo&lt;/th>
&lt;th>Dato&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Repositorio&lt;/td>
&lt;td>github.com/EleutherAI/lm-evaluation-harness&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Licencia&lt;/td>
&lt;td>MIT&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mantenedor&lt;/td>
&lt;td>EleutherAI&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Versión activa (jun-2026)&lt;/td>
&lt;td>0.4.x (rama &lt;code>main&lt;/code>)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Tareas disponibles&lt;/td>
&lt;td>60+ benchmarks, cientos de subtareas y variantes&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Backends soportados&lt;/td>
&lt;td>Hugging Face Transformers, vLLM, litellm, API OpenAI-compatible, GGUF&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Formato de tareas&lt;/td>
&lt;td>YAML + Python; cada tarea define dataset, plantilla, métrica y número de shots&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Qué mide&lt;/td>
&lt;td>Precisión en MCQ, exact match, pass@k en código, perplexity, BLEU/ROUGE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Cómo se invoca&lt;/td>
&lt;td>&lt;code>lm_eval --model hf --model_args pretrained=&amp;lt;modelo&amp;gt; --tasks mmlu,gsm8k --num_fewshot 5 --output_path resultados/&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Salida&lt;/td>
&lt;td>JSON con métricas por tarea + metadatos de configuración&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Uso en el ecosistema&lt;/td>
&lt;td>Motor oficial del OpenLLM Leaderboard (v1 y v2); referencia de facto en investigación&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>El harness es el estándar de la industria para evaluación reproducible. Su fortaleza es la amplitud de tareas y la normalización del formato de prompt. Su limitación: las tareas son estáticas — los datasets no cambian entre versiones del harness, lo que lo expone al problema de contaminación si el modelo fue entrenado con los mismos datos.&lt;/p>
&lt;p>Invocación completa con vLLM como backend:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">lm_eval &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --model vllm &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --model_args &lt;span class="nv">pretrained&lt;/span>&lt;span class="o">=&lt;/span>meta-llama/Llama-3.1-70B-Instruct,dtype&lt;span class="o">=&lt;/span>bfloat16 &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --tasks mmlu_pro,gpqa_diamond,ifeval,humaneval &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --num_fewshot &lt;span class="m">5&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --batch_size auto &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --output_path ./eval_results/ &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --log_samples
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h3 id="helm-stanford-crfm">HELM (Stanford CRFM)&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Campo&lt;/th>
&lt;th>Dato&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Repositorio&lt;/td>
&lt;td>github.com/stanford-crfm/helm&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Sitio oficial&lt;/td>
&lt;td>crfm.stanford.edu/helm&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Licencia&lt;/td>
&lt;td>Apache 2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mantenedor&lt;/td>
&lt;td>Stanford CRFM&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Estado (jun-2026)&lt;/td>
&lt;td>&lt;strong>Modo mantenimiento&lt;/strong> desde 1 de junio de 2026&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Qué mide&lt;/td>
&lt;td>Precisión, calibración, robustez, fairness, toxicidad, eficiencia (latencia/coste)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Formato de tareas&lt;/td>
&lt;td>Python + YAML; escenarios con métricas múltiples simultáneas&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Backends soportados&lt;/td>
&lt;td>API (OpenAI, Anthropic, Cohere, etc.) + modelos locales vía Hugging Face&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Variantes activas&lt;/td>
&lt;td>HELM Classic, HELM Capabilities, HELM Lite, MedHELM, HELM Safety&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Instalación&lt;/td>
&lt;td>&lt;code>pip install crfm-helm&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Cómo se invoca&lt;/td>
&lt;td>&lt;code>helm-run --conf-paths run_specs.conf --suite v1 --max-eval-instances 1000&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Salida&lt;/td>
&lt;td>JSON + UI web con leaderboard reproducible y transparencia por prompt&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>HELM es la herramienta que introdujo la evaluación &lt;strong>holística&lt;/strong> (múltiples métricas sobre el mismo escenario en lugar de un único número). En 2026, con HELM en modo mantenimiento, el ecosistema ha fragmentado en leaderboards especializados; pero HELM sigue siendo la referencia metodológica para evaluaciones que necesitan fairness y toxicidad además de precisión.&lt;/p>
&lt;p>&lt;strong>HELM Capabilities&lt;/strong> (publicado marzo 2025): leaderboard activo con transparencia total de prompt, reproducible con el framework HELM. Disponible en crfm.stanford.edu/helm/capabilities.&lt;/p>
&lt;hr>
&lt;h3 id="livebench">LiveBench&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Campo&lt;/th>
&lt;th>Dato&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Repositorio&lt;/td>
&lt;td>github.com/LiveBench/LiveBench&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Sitio oficial&lt;/td>
&lt;td>livebench.ai&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Licencia&lt;/td>
&lt;td>MIT&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mantenedor&lt;/td>
&lt;td>NYU, UT Austin, UC Santa Barbara&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Paper&lt;/td>
&lt;td>arXiv:2406.19314&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Tamaño&lt;/td>
&lt;td>1.000 preguntas activas (renovación mensual, mismo tamaño total)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Categorías&lt;/td>
&lt;td>6: math, coding, reasoning, language, instruction following, data analysis&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Tareas&lt;/td>
&lt;td>18 subtareas&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Qué mide&lt;/td>
&lt;td>Capacidades generales sobre preguntas con respuesta verificable objetivamente&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Anticontaminación&lt;/td>
&lt;td>Preguntas generadas desde fuentes recientes: papers arXiv, noticias, IMDb, datasets nuevos&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Scoring&lt;/td>
&lt;td>Sin LLM-as-judge: respuesta verificable automáticamente (ground truth exacto)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Periodicidad&lt;/td>
&lt;td>Nuevas preguntas mensualmente; las antiguas se retiran para evitar acumulación de memorización&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>LiveBench es la respuesta arquitectural al problema de contaminación: si el benchmark cambia cada mes con preguntas basadas en fuentes publicadas &lt;strong>después&lt;/strong> del cutoff del modelo evaluado, la memorización del training set no puede inflar el resultado. La limitación es el tamaño (1.000 preguntas) y que no cubre todos los dominios con la misma profundidad que MMLU.&lt;/p>
&lt;p>Ejecución:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git clone https://github.com/LiveBench/LiveBench
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> LiveBench
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">pip install -e .
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python livebench/gen_model_answer.py &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --model-path meta-llama/Llama-3.1-70B-Instruct &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --model-id llama3-70b
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python livebench/gen_ground_truth_judgment.py &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --model-id llama3-70b
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python livebench/show_livebench_result.py
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h3 id="lighteval-hugging-face">lighteval (Hugging Face)&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Campo&lt;/th>
&lt;th>Dato&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Repositorio&lt;/td>
&lt;td>github.com/huggingface/lighteval&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Licencia&lt;/td>
&lt;td>MIT&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mantenedor&lt;/td>
&lt;td>Hugging Face (Leaderboard &amp;amp; Evals Team)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Tareas disponibles&lt;/td>
&lt;td>1.000+ tareas en múltiples dominios e idiomas&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Backends soportados&lt;/td>
&lt;td>Hugging Face Accelerate (CPU/GPU/multi-GPU), Nanotron, vLLM, TGI, endpoints OpenAI-compatible&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Qué mide&lt;/td>
&lt;td>Accuracy, BERT score, BLEU, exact match; ídem al harness + tareas propias de HF&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Diferenciador&lt;/td>
&lt;td>Diseñado para ser el motor de los leaderboards de HF; fácil extensión con tareas custom&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Instalación&lt;/td>
&lt;td>&lt;code>pip install lighteval&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Cómo se invoca&lt;/td>
&lt;td>`lighteval accelerate &amp;ndash;model_args &amp;ldquo;pretrained=&lt;modelo>&amp;rdquo; &amp;ndash;tasks &amp;ldquo;lighteval&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Salida&lt;/td>
&lt;td>JSON + integración directa con Hugging Face Hub para publicar resultados&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>lighteval es el sucesor interno de lm-evaluation-harness en el ecosistema HF: más moderno, mejor soporte de vLLM y de backends distribuidos, y diseñado para poder correr sin salir del stack HF. Para equipos que ya usan el Hub para gestionar modelos, es la opción con menos fricción.&lt;/p>
&lt;hr>
&lt;h3 id="openllm-leaderboard-v2-archivado-2025--openevals">OpenLLM Leaderboard v2 (archivado 2025) → OpenEvals&lt;/h3>
&lt;p>El &lt;strong>OpenLLM Leaderboard v2&lt;/strong> evaluó más de 13.000 modelos entre junio de 2024 y su cierre en 2025, usando seis benchmarks fijos: &lt;strong>IFEval, MuSR, GPQA, MATH, BBH y MMLU-Pro&lt;/strong>, todos ejecutados con lm-evaluation-harness. Su cierre fue consecuencia directa del problema de saturación y gaming: a medida que los benchmarks se conocían, los modelos se optimizaban para ellos.&lt;/p>
&lt;p>&lt;strong>Sucesor: OpenEvals&lt;/strong> (huggingface.co/spaces/OpenEvals/find-a-leaderboard)&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Aspecto&lt;/th>
&lt;th>OpenLLM Leaderboard v2&lt;/th>
&lt;th>OpenEvals&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Arquitectura&lt;/td>
&lt;td>Único leaderboard centralizado&lt;/td>
&lt;td>+200 leaderboards especializados de la comunidad&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Benchmarks&lt;/td>
&lt;td>Fijos (6 tareas)&lt;/td>
&lt;td>Variables por leaderboard (math, code, médico, seguridad, etc.)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Modelos evaluados&lt;/td>
&lt;td>13.000+&lt;/td>
&lt;td>Distribuido por leaderboard&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Motor de eval&lt;/td>
&lt;td>lm-evaluation-harness&lt;/td>
&lt;td>lighteval (mayoría) o harness&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Estado&lt;/td>
&lt;td>Archivado con UI actualizada (mar-2025)&lt;/td>
&lt;td>Activo; se puede crear leaderboard propio&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ventaja&lt;/td>
&lt;td>Consistencia histórica&lt;/td>
&lt;td>Especialización, velocidad de adaptación&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>La colección archivada está disponible como referencia en &lt;code>huggingface.co/collections/OpenEvals/archived-open-llm-leaderboard-2024-2025&lt;/code>.&lt;/p>
&lt;hr>
&lt;h3 id="lmarena--chatbot-arena">LMArena / Chatbot Arena&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Campo&lt;/th>
&lt;th>Dato&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Sitio&lt;/td>
&lt;td>lmarena.ai (rebrand de LMSys Chatbot Arena, enero 2026)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Metodología&lt;/td>
&lt;td>Comparaciones pareadas anónimas: el usuario vota qué respuesta prefiere sin saber el modelo&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Modelo estadístico&lt;/td>
&lt;td>&lt;strong>Bradley-Terry&lt;/strong> (máxima verosimilitud sobre historial completo de enfrentamientos; sustituyó al Elo clásico por mayor estabilidad)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Votos acumulados&lt;/td>
&lt;td>&amp;gt; 6 millones (jun-2026)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Variantes&lt;/td>
&lt;td>Overall, Coding, Math, Hard Prompts, Multimodal — las especializadas son más fiables&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Licencia/acceso&lt;/td>
&lt;td>Gratuito (web); datos de votos disponibles bajo licencia CC&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Limitaciones&lt;/td>
&lt;td>Overall sesgado por disclosure selectiva de labs y gaming de formato; Bradley-Terry se recalibró en mid-2025 (Style Control), desplazando ±20–40 Elo en algunos modelos&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>LMArena es el único benchmark basado en preferencia humana a escala. Su ventaja: captura calidad percibida real, no solo exactitud en MCQ. Su limitación: es difícil reproducirlo on-premise (requiere interfaz de usuario y panel de votantes humanos). Útil como señal de validación externa, no como gate de CI.&lt;/p>
&lt;hr>
&lt;h2 id="tabla-de-decisión-qué-herramienta-para-cada-objetivo">Tabla de decisión: qué herramienta para cada objetivo&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Objetivo&lt;/th>
&lt;th>Herramienta&lt;/th>
&lt;th>Por qué&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Reproducir una eval académica estándar&lt;/td>
&lt;td>lm-evaluation-harness&lt;/td>
&lt;td>Motor de facto; máxima compatibilidad con papers&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Evaluación holística (accuracy + fairness + toxicidad)&lt;/td>
&lt;td>HELM (+ HELM Capabilities)&lt;/td>
&lt;td>El único framework que mide todos los ejes a la vez&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Evitar contaminación con preguntas recientes&lt;/td>
&lt;td>LiveBench&lt;/td>
&lt;td>Renovación mensual; respuesta verificable sin judge&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Integración nativa con HF Hub y vLLM&lt;/td>
&lt;td>lighteval&lt;/td>
&lt;td>Backend vLLM, 1.000+ tareas, publicación directa en Hub&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Comparar con el estado del arte público (OSS)&lt;/td>
&lt;td>OpenEvals + lighteval&lt;/td>
&lt;td>Ecosistema sucesor del OpenLLM Leaderboard&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Preferencia humana a escala&lt;/td>
&lt;td>LMArena&lt;/td>
&lt;td>Bradley-Terry sobre millones de comparaciones reales&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Eval de dominio personalizado (médico, legal, etc.)&lt;/td>
&lt;td>lighteval con tarea custom&lt;/td>
&lt;td>Extensión más sencilla que el harness&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CI gate rápido (&amp;lt;10 min)&lt;/td>
&lt;td>lm-eval harness (subset)&lt;/td>
&lt;td>Tareas individuales con &lt;code>--tasks ifeval,gpqa&lt;/code> + batching vLLM&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="la-trampa-de-la-contaminación-de-datos">La trampa de la contaminación de datos&lt;/h2>
&lt;h3 id="qué-es">Qué es&lt;/h3>
&lt;p>Un modelo que ha visto durante preentrenamiento los &lt;strong>datos de test de un benchmark&lt;/strong> memoriza respuestas en lugar de generalizar. El benchmark mide memorización, no capacidad. Esto se denomina &lt;strong>data contamination&lt;/strong> o &lt;strong>benchmark leakage&lt;/strong>.&lt;/p>
&lt;h3 id="escala-del-problema-datos-20242025">Escala del problema (datos 2024–2025)&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Hallazgo&lt;/th>
&lt;th>Fuente&lt;/th>
&lt;th>Dato&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>N-gram overlap en Llama-2-70B&lt;/td>
&lt;td>&amp;ldquo;Data Contamination or Genuine Generalization?&amp;rdquo; (2025)&lt;/td>
&lt;td>18,1% de solapamiento con datasets de eval&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Caída out-of-distribution en modelos grandes contaminados&lt;/td>
&lt;td>Ibíd.&lt;/td>
&lt;td>−9,4 pp en prompts reformulados vs test original&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>HumanEval saturado&lt;/td>
&lt;td>Artificial Analysis / múltiples reportes 2026&lt;/td>
&lt;td>Top modelos &amp;gt; 93%; diferencia ≤ 2 pp entre los 5 mejores&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>GPQA Diamond: aparición de contaminación indirecta&lt;/td>
&lt;td>mindstudio.ai analysis 2026&lt;/td>
&lt;td>&amp;ldquo;Data laundering&amp;rdquo;: preguntas filtradas vía foros online&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="mecanismos-de-detección">Mecanismos de detección&lt;/h3>
&lt;p>&lt;strong>1. N-gram overlap (método clásico)&lt;/strong>&lt;/p>
&lt;p>Calcula la fracción de n-gramas del test set que aparecen en el corpus de preentrenamiento del modelo. Un umbral práctico: si más del 13% de los 8-gramas del test coinciden con el corpus, el resultado está comprometido.&lt;/p>
&lt;p>[
\text{ratio contaminación} = \frac{|{g \in \text{n-gramas test}} \cap {g \in \text{n-gramas train}}|}{|\text{n-gramas test}|}
]&lt;/p>
&lt;p>Límite: sólo funciona si tienes acceso al corpus de preentrenamiento. Para modelos cerrados, no es aplicable.&lt;/p>
&lt;p>&lt;strong>2. Canary strings (inserción de señuelos)&lt;/strong>&lt;/p>
&lt;p>Se insertan cadenas únicas y aleatorias en el dataset de evaluación durante su creación. Si el modelo reproduce esas cadenas sin haberlas visto en contexto, se confirma que las memorizó del preentrenamiento. Técnica propuesta en &amp;ldquo;Extracting Training Data from Large Language Models&amp;rdquo; (Carlini et al., 2021) y adoptada en benchmarks recientes.&lt;/p>
&lt;p>&lt;strong>3. Perturbación y reformulación&lt;/strong>&lt;/p>
&lt;p>Se generan variantes semánticas equivalentes del test (paraphrasing, cambio de nombres propios, traducción y retradución). Un modelo que generaliza mantiene el accuracy; un modelo que memoriza cae. La caída promedio detectada en modelos contaminados es de 9–15 pp sobre prompts reformulados equivalentes.&lt;/p>
&lt;p>&lt;strong>4. LiveBench (renovación mensual)&lt;/strong>&lt;/p>
&lt;p>La solución arquitectural: si las preguntas se generan de fuentes publicadas &lt;strong>después&lt;/strong> del cutoff del modelo (papers arXiv recientes, noticias, datos nuevos), la memorización del preentrenamiento no puede ayudar. El modelo debe razonar sobre información que nunca pudo ver.&lt;/p>
&lt;p>&lt;strong>5. Análisis de divergencia de kernel&lt;/strong> (Savelka et al., 2025)&lt;/p>
&lt;p>Método estadístico más sofisticado: compara la distribución de embeddings del conjunto de test con la distribución del corpus de entrenamiento. Una divergencia anormalmente baja indica que el benchmark y el corpus de entrenamiento provienen de la misma fuente.&lt;/p>
&lt;h3 id="por-qué-los-leaderboards-estáticos-se-saturan">Por qué los leaderboards estáticos se saturan&lt;/h3>
&lt;p>El ciclo es predecible:&lt;/p>
&lt;ol>
&lt;li>Se publica un benchmark nuevo (MMLU en 2021, GPQA en 2023).&lt;/li>
&lt;li>Los labs lo usan como &lt;em>evaluation target&lt;/em> durante el preentrenamiento y fine-tuning.&lt;/li>
&lt;li>El rendimiento en ese benchmark sube rápido —más rápido que la capacidad real.&lt;/li>
&lt;li>El benchmark deja de discriminar en la zona alta.&lt;/li>
&lt;li>La comunidad necesita un benchmark nuevo.&lt;/li>
&lt;/ol>
&lt;p>El tiempo medio entre publicación de un benchmark y saturación en modelos frontier ha pasado de ~36 meses (MMLU: 2021–2024) a ~18 meses (HumanEval: 2021–2023, GPQA: 2023–2025). La velocidad de saturación se acelera.&lt;/p>
&lt;hr>
&lt;h2 id="metodología-honesta-reproducibilidad-y-fuentes-de-varianza">Metodología honesta: reproducibilidad y fuentes de varianza&lt;/h2>
&lt;h3 id="los-cuatro-parámetros-que-deben-pinarse">Los cuatro parámetros que deben pinarse&lt;/h3>
&lt;p>Un resultado de eval sólo es reproducible si declara:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Parámetro&lt;/th>
&lt;th>Ejemplo&lt;/th>
&lt;th>Por qué importa&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Versión del harness&lt;/td>
&lt;td>&lt;code>lm-evaluation-harness==0.4.3&lt;/code>&lt;/td>
&lt;td>Cambios en la plantilla de prompt entre versiones invalidan la comparación&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Versión exacta del modelo&lt;/td>
&lt;td>&lt;code>meta-llama/Llama-3.1-70B-Instruct@sha256:abc…&lt;/code>&lt;/td>
&lt;td>Actualizaciones silenciosas del modelo en el Hub cambian los resultados&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Plantilla de prompt (template)&lt;/td>
&lt;td>&lt;code>mmlu_pro_cot_0shot&lt;/code> vs &lt;code>mmlu_pro_5shot&lt;/code>&lt;/td>
&lt;td>La diferencia entre 0-shot y 5-shot puede ser 5–12 pp&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Número de shots&lt;/td>
&lt;td>&lt;code>--num_fewshot 5&lt;/code>&lt;/td>
&lt;td>El estándar publicado varía por benchmark; 0-shot y 5-shot no son comparables&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="few-shot-vs-zero-shot-la-diferencia-numérica">Few-shot vs zero-shot: la diferencia numérica&lt;/h3>
&lt;p>La sensibilidad al número de shots varía drásticamente por benchmark:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Benchmark&lt;/th>
&lt;th>0-shot típico&lt;/th>
&lt;th>5-shot típico&lt;/th>
&lt;th>Diferencia&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>MMLU-Pro&lt;/td>
&lt;td>62%&lt;/td>
&lt;td>72%&lt;/td>
&lt;td>+10 pp&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>GPQA Diamond&lt;/td>
&lt;td>55%&lt;/td>
&lt;td>65%&lt;/td>
&lt;td>+10 pp&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>GSM8K&lt;/td>
&lt;td>70%&lt;/td>
&lt;td>82%&lt;/td>
&lt;td>+12 pp&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>IFEval&lt;/td>
&lt;td>68%&lt;/td>
&lt;td>71%&lt;/td>
&lt;td>+3 pp&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>HumanEval&lt;/td>
&lt;td>75%&lt;/td>
&lt;td>80%&lt;/td>
&lt;td>+5 pp&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Publicar un resultado de MMLU-Pro en 0-shot sin indicarlo, cuando el estándar del leaderboard es 5-shot, infla la comparación en ~10 pp. Dos resultados del mismo modelo publicados con diferente número de shots &lt;strong>no son comparables&lt;/strong>.&lt;/p>
&lt;h3 id="sensibilidad-al-prompt">Sensibilidad al prompt&lt;/h3>
&lt;p>Perturbaciones menores en la plantilla de prompt generan variaciones de hasta ±8 pp en MCQ y ±15 pp en tareas de generación. Fuentes de varianza identificadas en la literatura:&lt;/p>
&lt;ul>
&lt;li>Orden de las opciones en MCQ (position bias): hasta ±4 pp.&lt;/li>
&lt;li>Formulación del enunciado (paraphrasing): ±3–8 pp.&lt;/li>
&lt;li>Presencia o ausencia de &amp;ldquo;Let&amp;rsquo;s think step by step&amp;rdquo;: ±5–12 pp en razonamiento.&lt;/li>
&lt;li>Idioma de las instrucciones del sistema: ±3–10 pp en modelos no multilingues.&lt;/li>
&lt;/ul>
&lt;h3 id="por-qué-dos-evals-dan-resultados-distintos">Por qué dos evals dan resultados distintos&lt;/h3>
&lt;p>Escenario habitual: el paper reporta MMLU-Pro 74,3% y la reproducción da 71,8%. Causas frecuentes:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Causa&lt;/th>
&lt;th>Magnitud típica&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Versión del harness diferente (plantilla cambiada)&lt;/td>
&lt;td>1–4 pp&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Modelo con actualización silenciosa&lt;/td>
&lt;td>0,5–3 pp&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Truncamiento distinto del contexto&lt;/td>
&lt;td>0,5–2 pp&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Seed de sampling (para generación)&lt;/td>
&lt;td>0,3–1,5 pp&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Tokenización con plantilla de chat vs sin plantilla&lt;/td>
&lt;td>2–8 pp&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>La suma de estas fuentes explica gaps de 2–6 pp que no son ruido sino diferencias sistemáticas de protocolo.&lt;/p>
&lt;h3 id="la-fórmula-del-intervalo-de-confianza-para-comparar-dos-modelos">La fórmula del intervalo de confianza para comparar dos modelos&lt;/h3>
&lt;p>Para saber si la diferencia entre el modelo A (accuracy (p_A)) y el modelo B ((p_B)) sobre un test set de tamaño (n) es estadísticamente significativa:&lt;/p>
&lt;p>[
\Delta p \pm 1{,}96 \cdot \sqrt{\frac{p_A(1-p_A) + p_B(1-p_B)}{n}}
]&lt;/p>
&lt;p>Aplicado a GPQA Diamond ((n = 198)), si (p_A = 0{,}90) y (p_B = 0{,}88):&lt;/p>
&lt;p>[
\Delta p = 0{,}02 \quad;\quad \text{margen} = 1{,}96 \cdot \sqrt{\frac{0{,}09 + 0{,}1056}{198}} \approx 1{,}96 \cdot 0{,}0314 \approx 0{,}062
]&lt;/p>
&lt;p>El intervalo de confianza al 95% es ([{-0{,}042},\ {+0{,}082}]): &lt;strong>cruza el cero&lt;/strong>. Una diferencia de 2 pp sobre 198 preguntas no es estadísticamente distinguible del ruido. Para distinguir 90% vs 88% con confianza 95%, hacen falta:&lt;/p>
&lt;p>[
n \approx \frac{(1{,}96)^2 \cdot (p_A(1-p_A) + p_B(1-p_B))}{(\Delta p)^2} \approx \frac{3{,}84 \cdot 0{,}1956}{0{,}0004} \approx 1,878 \text{ preguntas}
]&lt;/p>
&lt;p>GPQA Diamond no tiene ese tamaño. Diferencias de 1–2 pp en GPQA Diamond son estadísticamente invisibles.&lt;/p>
&lt;hr>
&lt;h2 id="el-eje-calidad-en-el-cuadro-de-mando">El eje calidad en el cuadro de mando&lt;/h2>
&lt;p>El cuadro de mando de la plataforma tiene tres columnas: rendimiento (goodput bajo SLO), calidad (score en benchmark de referencia), energía (J/token). La columna de calidad se construye así:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Campo&lt;/th>
&lt;th>Contenido&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Benchmark primario&lt;/td>
&lt;td>MMLU-Pro (5-shot) — diferencia en zona 60–77%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Benchmark de razonamiento&lt;/td>
&lt;td>GPQA Diamond (0-shot) — diferencia en zona 55–90%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Benchmark de instrucciones&lt;/td>
&lt;td>IFEval (0-shot prompt-level accuracy)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Benchmark de código&lt;/td>
&lt;td>MBPP (0-shot, pass@1) — menos saturado que HumanEval&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Anticontaminación&lt;/td>
&lt;td>LiveBench global score (mensual)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Herramienta&lt;/td>
&lt;td>lm-evaluation-harness (primary) + lighteval (secondary, HF Hub)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Versión pineada&lt;/td>
&lt;td>&lt;code>harness==0.4.3&lt;/code>, &lt;code>lighteval==0.6.x&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Shots&lt;/td>
&lt;td>Declarado explícitamente por benchmark&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Reproducibilidad&lt;/td>
&lt;td>JSON de salida guardado con SHA del modelo&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Frecuencia&lt;/td>
&lt;td>Por release de modelo; no en CI de cada PR (coste de GPU-horas)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Una eval completa en 4 benchmarks (MMLU-Pro 12.032 + GPQA 198 + IFEval 541 + MBPP 500) con un modelo 70B en un nodo genérico 2×H100 tarda del orden de &lt;strong>4–8 horas&lt;/strong> según el batch size y el número de shots. El coste de GPU es real: a ~5 €/h por tarjeta amortizada, una eval completa cuesta del orden de &lt;strong>40–80 €&lt;/strong>. No se ejecuta en cada commit; se ejecuta en cada release de modelo o adapter major.&lt;/p>
&lt;hr>
&lt;h2 id="ver-también">Ver también&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://blog.lo0.es/posts/evals-llm-la-capa-despues-de-tracing/">Evals LLM: la capa después del tracing&lt;/a> — la capa de evaluación interna del sistema (golden dataset, CI gate, judge calibrado). Complemento necesario a los benchmarks académicos de este artículo.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/posts/llm-as-judge-fundamentos/">LLM-as-judge: fundamentos&lt;/a> — el judge LLM que evalúa outputs en producción; distinto del benchmark académico, pero comparte la necesidad de calibración y reproducibilidad.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/posts/rag-eval-ragas-golden-dataset/">Evaluar un RAG: RAGAS y el golden dataset&lt;/a> — especialización de la evaluación para sistemas RAG; faithfulness y context precision no aparecen en los benchmarks académicos de este artículo.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/posts/herramientas-benchmark-llm-ficha-a-ficha/">Catálogo de herramientas de benchmark: ficha a ficha&lt;/a> — el eje de rendimiento (TTFT, ITL, goodput); el par complementario de este artículo en el cuadro de mando.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/posts/benchmarking-llm-frameworks-estado-del-arte/">Benchmarking LLM: estado del arte&lt;/a> — introducción B1 con los tres ejes y la metodología general del track.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="fuentes">Fuentes&lt;/h2>
&lt;ul>
&lt;li>EleutherAI · lm-evaluation-harness — &lt;a href="https://github.com/EleutherAI/lm-evaluation-harness">https://github.com/EleutherAI/lm-evaluation-harness&lt;/a>&lt;/li>
&lt;li>Stanford CRFM · HELM — &lt;a href="https://github.com/stanford-crfm/helm">https://github.com/stanford-crfm/helm&lt;/a>&lt;/li>
&lt;li>Stanford CRFM · HELM Capabilities (mar-2025) — &lt;a href="https://crfm.stanford.edu/2025/03/20/helm-capabilities.html">https://crfm.stanford.edu/2025/03/20/helm-capabilities.html&lt;/a>&lt;/li>
&lt;li>Stanford CRFM · HELM (sitio oficial) — &lt;a href="https://crfm.stanford.edu/helm/">https://crfm.stanford.edu/helm/&lt;/a>&lt;/li>
&lt;li>LiveBench · paper arXiv:2406.19314 — &lt;a href="https://arxiv.org/abs/2406.19314">https://arxiv.org/abs/2406.19314&lt;/a>&lt;/li>
&lt;li>LiveBench · sitio oficial — &lt;a href="https://livebench.ai">https://livebench.ai&lt;/a>&lt;/li>
&lt;li>LiveBench · GitHub — &lt;a href="https://github.com/LiveBench/LiveBench">https://github.com/LiveBench/LiveBench&lt;/a>&lt;/li>
&lt;li>NYU Center for Data Science · LiveBench blog — &lt;a href="https://nyudatascience.medium.com/livebench-challenging-language-models-with-contamination-free-questions-999b52967ec8">https://nyudatascience.medium.com/livebench-challenging-language-models-with-contamination-free-questions-999b52967ec8&lt;/a>&lt;/li>
&lt;li>Hugging Face · lighteval — &lt;a href="https://github.com/huggingface/lighteval">https://github.com/huggingface/lighteval&lt;/a>&lt;/li>
&lt;li>Hugging Face · OpenLLM Leaderboard (archivado) — &lt;a href="https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard">https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard&lt;/a>&lt;/li>
&lt;li>Hugging Face · OpenEvals (sucesor) — &lt;a href="https://huggingface.co/spaces/OpenEvals/find-a-leaderboard">https://huggingface.co/spaces/OpenEvals/find-a-leaderboard&lt;/a>&lt;/li>
&lt;li>Hugging Face · Archived Open LLM Leaderboard 2024-2025 — &lt;a href="https://huggingface.co/collections/OpenEvals/archived-open-llm-leaderboard-2024-2025">https://huggingface.co/collections/OpenEvals/archived-open-llm-leaderboard-2024-2025&lt;/a>&lt;/li>
&lt;li>LMArena · Chatbot Arena — &lt;a href="https://lmarena.ai">https://lmarena.ai&lt;/a>&lt;/li>
&lt;li>LMSys · blog Chatbot Arena Elo — &lt;a href="https://www.lmsys.org/blog/2023-05-03-arena/">https://www.lmsys.org/blog/2023-05-03-arena/&lt;/a>&lt;/li>
&lt;li>&amp;ldquo;A Statistical Framework for Ranking LLM-Based Chatbots&amp;rdquo; · arXiv:2412.18407 — &lt;a href="https://arxiv.org/pdf/2412.18407">https://arxiv.org/pdf/2412.18407&lt;/a>&lt;/li>
&lt;li>&amp;ldquo;Data Contamination or Genuine Generalization?&amp;rdquo; (2025) — &lt;a href="https://www.suaspress.org/ojs/index.php/AJNS/article/view/v2n2a03">https://www.suaspress.org/ojs/index.php/AJNS/article/view/v2n2a03&lt;/a>&lt;/li>
&lt;li>&amp;ldquo;When Benchmarks Leak: Inference-Time Decontamination&amp;rdquo; (2025) · arXiv:2601.19334 — &lt;a href="https://arxiv.org/pdf/2601.19334">https://arxiv.org/pdf/2601.19334&lt;/a>&lt;/li>
&lt;li>&amp;ldquo;How Contaminated Is Your Benchmark?&amp;rdquo; (2025) · arXiv:2502.00678 — &lt;a href="https://arxiv.org/pdf/2502.00678">https://arxiv.org/pdf/2502.00678&lt;/a>&lt;/li>
&lt;li>&amp;ldquo;When AI Benchmarks Plateau&amp;rdquo; (2026) · arXiv:2602.16763 — &lt;a href="https://arxiv.org/pdf/2602.16763">https://arxiv.org/pdf/2602.16763&lt;/a>&lt;/li>
&lt;li>GPQA · arXiv:2311.12022 — &lt;a href="https://arxiv.org/abs/2311.12022">https://arxiv.org/abs/2311.12022&lt;/a>&lt;/li>
&lt;li>GPQA Diamond leaderboard · Artificial Analysis — &lt;a href="https://artificialanalysis.ai/evaluations/gpqa-diamond">https://artificialanalysis.ai/evaluations/gpqa-diamond&lt;/a>&lt;/li>
&lt;li>&amp;ldquo;The Emperor&amp;rsquo;s New Clothes in Benchmarking?&amp;rdquo; (2025) · arXiv:2503.16402 — &lt;a href="https://arxiv.org/pdf/2503.16402">https://arxiv.org/pdf/2503.16402&lt;/a>&lt;/li>
&lt;li>lm-evaluation-harness · CLI reference — &lt;a href="https://lm-evaluation-harness.readthedocs.io/running_evals/cli_reference/">https://lm-evaluation-harness.readthedocs.io/running_evals/cli_reference/&lt;/a>&lt;/li>
&lt;li>crfm-helm · PyPI — &lt;a href="https://pypi.org/project/crfm-helm/">https://pypi.org/project/crfm-helm/&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>