Verificación y Evals|INEMA.CLUB-PRO

Lección 7 · 18 min

Métricas honestas: pass@k, pass^k, varianza, SWE-bench y METR

"Acierta el 90%" puede querer decir que acierta casi siempre o que acierta al menos una vez en tres intentos. Para un loop que corre sin ti, solo sirve la primera. En esta clase mides las dos en tu conjunto de oro, ves cuánto oscila el número entre rondas y aprendes a leer SWE-bench y el horizonte de METR sin exagerar.

Comenzar la clase
Pantalla de osciloscopio con curvas superpuestas y papel milimetrado con puntos dispersos al lado.

En esta clase vas a

  1. 1pass@k (al menos un acierto) y pass^k (acierta todas)
  2. 2Repetir el conjunto y ver cómo oscila el número
  3. 3SWE-bench: pasar la prueba no es ser aceptado
  4. 4Horizonte de METR: qué mide y qué no mide

Objetivo: medir pass@k y pass^k con repeticiones, leer la varianza entre rondas y citar SWE-bench y el horizonte de METR sin exagerar.

01El mismo agente, tres números distintos

Haz clic en cada etapa.

Haz clic en cada bloque del diagrama para ver qué hace.

Para un loop autónomo, reporta pass^k y la desviación entre rondas, no el pass@k.

02Ensayo: un agente con 25% de ruido

El agente de triagem falso, con TRIAGEM_RUIDO=0.25, falla el "urgente" en 25% de los intentos (sorteo fijo, reproducible).

Terminal · 10 casos × 3 intentos
E=~/projetos/loop-r-eng-verificacao-v72/kit/evals; mkdir -p /tmp/ensaio-evals
TRIAGEM_RUIDO=0.25 python3 $E/rodar-evals.py --agente "python3 $E/agente-triagem-falso.py" \
  --k 3 --saida /tmp/ensaio-evals/k3.tsv > /dev/null
python3 $E/passk.py /tmp/ensaio-evals/k3.tsv
Ejemplo del repositorio
10 casos × 3 tentativas
taxa por tentativa: 73%  (rodada 1: 70% · rodada 2: 80% · rodada 3: 70%; desvio 5 pontos)
pass@3: 90%  (ao menos 1 acerto)
pass^3: 50%  (acertou todas)
se fossem independentes, 73%^3 = 39%
instáveis: t01 t06 t08 t10

El mismo agente puede anunciarse como "90%" (pass@3) o describirse como "la mitad de los casos sale bien siempre" (pass^3). La ronda 2 sola diría 80%; la 1 y la 3, 70%.

03Benchmarks: lo que se puede afirmar

Solo lo que dice la fuente primaria, con fecha.

1. Pasa ≠ aceptado

METR estimó que cerca de la mitad de los PRs que pasan las pruebas de SWE-bench Verified no serían aceptados por los mantenedores del proyecto.

Una prueba en verde mide lo que la prueba cubre. Estilo, alcance y efectos colaterales quedan fuera: es el espacio del evaluador escéptico y de la muestra humana.

04Tu agente con k = 3

Consume la cuota de tu suscripción: 30 llamadas con el conjunto del ensayo. Después, cámbialo por tu conjunto.

Terminal · real (continúa del bloque anterior)
python3 $E/rodar-evals.py --agente 'claude -p --tools ""' --k 3 --saida /tmp/ensaio-evals/real-k3.tsv
python3 $E/passk.py /tmp/ensaio-evals/real-k3.tsv
Ejemplo del repositorio
armadilha  3/3
bug        15/15
duvida     6/6
pedido     6/6
total      30/30 (100%)  → /tmp/ensaio-evals/real-k3.tsv
10 casos × 3 tentativas
taxa por tentativa: 100%  (rodada 1: 100% · rodada 2: 100% · rodada 3: 100%; desvio 0 pontos)
pass@3: 100%  (ao menos 1 acerto)
pass^3: 100%  (acertou todas)
se fossem independentes, 100%^3 = 100%
instáveis: nenhum

Claude Code 2.1.303, modelo predeterminado de la suscripción, 4 min 20 s. Con 10 casos fáciles, el agente real acertó los 30 intentos: este conjunto no mide ninguna varianza. Para ver caer pass^k, el conjunto necesita casos difíciles (clase 5). Tu número va a depender de tu conjunto.

05Práctica

Ensayo, tu agente y una frase honesta.

E19 · pass@3 contra pass^3

10 min

Ejecuta el ensayo con ruido de 25%.

Listo cuando: passk.py imprime pass@3: 90%, pass^3: 50% e instáveis: t01 t06 t08 t10.

E20 · Tu conjunto con k = 3

20 min

Ejecuta tu conjunto de oro (clase 5) con --k 3 y tu agente real. Anota en progress.md o en el README del agente una línea con fecha, N de casos, pass^3 y desvío entre rondas.

Listo cuando: python3 $E/passk.py [tu tsv] imprime las líneas pass@3:, pass^3: e instáveis:, y grep -c "pass^3" [archivo donde anotaste] → 1 o más.

06Test de la clase

Pregunta 1 de 4

Para un loop que corre sin supervisión, ¿qué métrica importa?competencia

07En tres frases

pass^k para loopspass@k mide suerte con elección; pass^k mide lo que pasa cuando nadie elige.
Ruido antes de mejoraEjecuta más de una vez; una diferencia menor que la oscilación entre rondas no es mejora.
Benchmark con fecha y salvedadPasar en SWE-bench no es ser aceptado; el horizonte de METR es tiempo de tarea humana al 50%, y la serie se detuvo en 2026.

Para ir más allá

Lección anteriorSiguiente lección