GUÍA Técnica

Métrica Pass@k explicada

Pass@k es la probabilidad de que al menos uno de los k intentos muestreados de un modelo resuelva un problema, generalmente verificado ejecutando pruebas unitarias ocultas en el código generado.

Escuche esta guíaNarrado por IA · ~3 min

En esta pagina4 minutos de lectura
  1. Descripción general
  2. Buceo profundo
  3. Implementación en el mundo real
  4. El futuro de la métrica Pass@k explicado
  5. Poniéndolo en práctica
  6. Sigue explorando
  7. Preguntas frecuentes

Descripción general

Es importante porque los benchmarks de código y agentes lo reportan constantemente, y una puntuación pass@10 o pass@100 puede parecer mucho mejor de lo que un usuario obtiene en un solo intento.

Buceo profundo

Pass@k grew out of program synthesis research, where Kulal and colleagues used it in 2019 for pseudocode-to-code tasks, and it became standard with OpenAI's 2021 Codex paper, which introduced HumanEval, a set of 164 hand-written Python programming problems. For each problem the model writes a function, and the function counts as correct only if it passes hidden unit tests. Pass@k asks: if you drew k samples, what is the chance that at least one passes? The benchmark score is that probability averaged over all problems. The naive method is to generate exactly k samples per problem and check whether any pass, but that estimate is very noisy. The Codex paper instead generates n samples, where n is larger than k (for example 200), counts the c correct ones, and computes the probability that a random subset of k samples contains at least one correct sample: 1 minus C(n minus c, k) divided by C(n, k). This estimator is unbiased and far less variable. The shortcut of plugging c/n into 1 minus (1 minus p) to the power k is biased. Sampling temperature matters. Pass@1 is usually best at low temperature, while pass@100 benefits from higher temperature because more diverse samples raise the chance that one works. Papers often pick a different temperature for each k. Agent benchmarks added a complementary metric. The tau-bench paper from Sierra (2024) defined pass^k, the probability that all k independent trials succeed. It measures reliability rather than capability. Common misreadings include comparing one model's pass@10 with another's pass@1, forgetting that pass@k assumes something already knows which sample is correct, and treating greedy-decoding pass@1 as identical to sampled pass@1. Weak unit tests inflate every pass@k number, which is why EvalPlus added many more tests to HumanEval and saw scores drop.

Implementación en el mundo real

Un equipo que evalúa un modelo de código en HumanEval muestrea 200 finalizaciones por problema, cuenta cuántas pasan las pruebas e informa pass@1, pass@10 y pass@100 a partir de ese único conjunto de muestras usando el estimador no sesgado.

Un autocompletado de editor que muestra una sugerencia debe juzgarse por pass@1, mientras que una herramienta que genera cinco candidatos y ejecuta tu suite de pruebas para elegir uno que funcione se acerca más a una situación de pass@5.

Un agente de atención al cliente que tiene éxito en el 75 por ciento de los ensayos parece fuerte en pass@k, pero si los ensayos son independientes, su puntuación pass^4 (los cuatro ensayos tienen éxito) es de solo aproximadamente 0.32, lo que muestra lo poco confiable que se sentiría en un uso repetido.

Un sistema de programación competitiva genera muchos programas candidatos, los filtra mediante pruebas de ejemplo y envía un número pequeño; su tasa de resolución reportada depende de cuántos envíos se permitieron, lo cual es un presupuesto al estilo pass@k.

El futuro de la métrica Pass@k explicado

A medida que los modelos pasan de completaciones únicas a agentes de múltiples pasos, las medidas de fiabilidad como pass^k y la consistencia entre ejecuciones están recibiendo más atención junto con pass@k, porque los usuarios experimentan un intento, no el mejor de muchos. Los autores de benchmarks también están invirtiendo en conjuntos de pruebas más sólidos, ya que las pruebas débiles permiten que el código incorrecto pase e inflan cada métrica. Los informes cuidadosos deben indicar k, el recuento de muestras, la temperatura y si se utilizó algún paso de selección, pero la práctica varía, por lo que los lectores deben seguir verificando esos detalles en lugar de asumirlos.

Poniéndolo en práctica

Por qué es importante

  • Costo y presupuesto. Las decisiones de arquitectura impulsan el rendimiento y los costos operativos durante años.
  • Decisiones más claras. La educación técnica ayuda a los equipos a elegir la pila adecuada, no sólo la más nueva.
  • control de calidad. Mejores opciones de ingeniería reducen los incidentes de confiabilidad en la producción.

cuidado con

  • La optimización de un punto de referencia puede ocultar debilidades más amplias del sistema.
  • Los costos de infraestructura y mantenimiento a menudo se subestiman.
  • Las brechas de seguridad y observabilidad pueden crecer a medida que los sistemas se vuelven más complejos.

Próximos pasos

  1. Defina objetivos de latencia, calidad y costos antes de la implementación.
  2. Comparación en condiciones realistas de carga y datos.
  3. Monitoreo de instrumentos para detectar errores, deriva e impacto para el usuario.
  4. Prepare rutas de reversión y respuesta a incidentes antes de escalar.

Sigue explorando

Boletín gratuito

Recibe el resumen diario de IA

Tres noticias verificadas sobre IA cada mañana de lunes a viernes, explicadas con claridad. Gratis para siempre y sin anuncios.

Un correo cada día laborable. Date de baja con un clic. Nunca vendemos ni compartimos tu dirección.

Ponte a prueba

Realiza el cuestionario sobre la métrica Pass@k explicada

Corrección inmediata en cada respuesta y un certificado para compartir, con un ID verificable, cuando apruebas un curso.

Empezar el cuestionario

Apoya la educación gratuita sobre IA. AI Understanding es una organización sin fines de lucro 501(c)(3): sin anuncios ni muros de pago, nunca. Hacer una donación

Preguntas frecuentes

¿Qué es la métrica Pass@k explicada?

Pass@k es la probabilidad de que al menos uno de los k intentos muestreados de un modelo resuelva un problema, generalmente verificado ejecutando pruebas unitarias ocultas en el código generado. Es importante porque los benchmarks de código y agentes lo reportan constantemente, y una puntuación pass@10 o pass@100 puede parecer mucho mejor de lo que un usuario obtiene en un solo intento.

¿Qué mide pass@k para un solo problema?

Pass@k es la probabilidad de que al menos uno de los k intentos tenga éxito. La puntuación del benchmark promedia esa probabilidad en todos los problemas.

HumanEval, el benchmark introducido con el artículo Codex, ¿qué contiene?

HumanEval tiene 164 problemas Python escritos a mano, cada uno verificado mediante pruebas unitarias ocultas.

¿Por qué el artículo Codex genera n muestras con n mayor que k?

Generar exactamente k muestras da una estimación ruidosa. Usar n muestras y contar c correctas permite una estimación insesgada con mucha menos varianza.

Con n muestras y c correctas, ¿cuál es la expresión del estimador insesgado de pass@k?

Es uno menos la probabilidad de que un subconjunto k aleatorio contenga solo muestras incorrectas. C(c, k)/C(n, k) es el estimador de pass^k, y el atajo de potencia k es sesgado.

¿Qué mide pass^k, definido en el artículo de tau-bench?

Pass^k requiere que cada prueba tenga éxito, por lo que mide la fiabilidad, lo cual es importante para los agentes que sirven a muchos usuarios.