A continuaciónSiguiente guía
Métricas de Evaluación RAG y RAGAS
Técnico
GUÍA Técnica
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
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.
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.
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.
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.
Boletín gratuito
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
Corrección inmediata en cada respuesta y un certificado para compartir, con un ID verificable, cuando apruebas un curso.
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
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.
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 tiene 164 problemas Python escritos a mano, cada uno verificado mediante pruebas unitarias ocultas.
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.
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.
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.
sigue aprendiendo
Más guías seleccionadas para este tema.
A continuaciónSiguiente guía
Métricas de Evaluación RAG y RAGAS
Técnico