Pass@K es una métrica utilizada para evaluar la capacidad de los modelos de lenguaje grandes (LLMs) para generar código funcional. Se calcula generando K muestras de código para un problema de programación específico y luego verificando cuántas de estas muestras pasan un conjunto de pruebas unitarias predefinidas. La métrica Pass@K representa la probabilidad de que al menos una de las K muestras generadas sea correcta. Matemáticamente, se estima como 1 - (número de problemas donde ninguna de las K muestras fue correcta / número total de problemas). Es una métrica más robusta que la precisión simple, ya que considera la capacidad del modelo para producir múltiples soluciones y la probabilidad de que al menos una sea válida, reflejando mejor el uso iterativo en escenarios reales de desarrollo.
Pass@K es ampliamente utilizada en la evaluación de modelos de generación de código como GitHub Copilot, AlphaCode de DeepMind y Code Llama de Meta. Por ejemplo, en el benchmark HumanEval, que consiste en una serie de problemas de programación con pruebas unitarias, los investigadores evalúan el rendimiento de los LLMs reportando sus puntuaciones de Pass@K para diferentes valores de K (comúnmente K=1, K=10, K=100). Esto permite comparar la efectividad de diferentes arquitecturas de modelos, estrategias de fine-tuning y técnicas de prompting en la generación de código. Plataformas como Hugging Face y OpenAI utilizan esta métrica para cuantificar y comunicar las capacidades de sus modelos de programación.
Para un Arquitecto de Sistemas, Pass@K es crucial al evaluar la integración de herramientas de generación de código basadas en IA en flujos de trabajo de desarrollo. Un Pass@K alto indica que el modelo es más propenso a generar código funcional, reduciendo la carga de revisión y depuración. Sin embargo, un Pass@K alto no garantiza la calidad del código (legibilidad, eficiencia, seguridad). Los arquitectos deben considerar trade-offs: un K más alto puede mejorar la probabilidad de éxito pero aumenta el costo computacional y el tiempo de inferencia. La elección de K depende del contexto: para prototipado rápido, un K bajo puede ser suficiente; para sistemas críticos, un K más alto combinado con pruebas exhaustivas y revisión humana es indispensable. Es vital entender que Pass@K mide la corrección funcional, no la idoneidad arquitectónica o la mantenibilidad a largo plazo.