Anthropic Performance Take‑Home: Benchmark de Código Abierto
¿Qué es el Performance Take‑Home de Anthropic?
Anthropic publicó recientemente un repositorio Performance Take‑Home en GitHub que invita a la comunidad a abordar un desafío de optimización del mundo real. El objetivo es simple: escribir código que complete una tarea específica en menos ciclos de reloj que el benchmark establecido por Claude Opus 4.5 en un entorno de prueba de 2 horas. El repositorio se ha limitado intencionalmente a eliminar características avanzadas para que todos empiecen desde la misma línea base lenta.
“El take‑home original era de 4 horas y comenzaba cerca del contenido de este repositorio, después de que Claude Opus 4 superó a la mayoría de los humanos, se actualizó a uno de 2 horas que comenzó con un código que alcanzó 18532 ciclos (7.97x más rápido que el inicio de este repo).” – Extracto del README
¿Por qué te importa?
- Pruebas de rendimiento con IA práctica – Si eres ingeniero de IA, este es un modo concreto de medir el rendimiento de un sistema frente a un modelo líder.
- Experiencia lista para el trabajo – Anthropic invita explícitamente a enviar soluciones que superen el récord: “Si optimizas por debajo de 1487 ciclos, superando el mejor rendimiento de Claude Opus 4.5 al momento de su lanzamiento, envíanos un correo a performance‑[email protected].”
- Oportunidad de aprendizaje – El repositorio demuestra optimización de Python en el mundo real, cómo estructurar pruebas y los riesgos de hacer trampa modificando el sistema de pruebas.
Anatomía del Repositorio
El repositorio es intencionalmente sencillo. A continuación una vista de alto nivel de su estructura:
├─ .gitignore # Ignorados estándar
├─ Readme.md # Descripción del desafío y benchmarks
├─ perf_takehome.py # Implementación de referencia (línea base lenta)
├─ problem.py # Lógica del problema (algoritmo central)
├─ watch_trace.py # Ayudante sencillo de profilado
├─ watch_trace.html # Visualización HTML de datos de traza
└─ tests/
├─ __init__.py
├─ submission_tests.py # Ejecutor que imprime el conteo de ciclos
└─ ... (fixtures y scripts de ayuda)
Archivos Clave
problem.py– El núcleo algorítmico; lo modificarás si deseas cambiar la forma en que se resuelve el problema.perf_takehome.py– Un envoltorio de conveniencia que ejecuta las pruebas y muestra el conteo de ciclos.tests/submission_tests.py– La única cosa que debes ejecutar para validar tu solución.
Ejecutando las Pruebas
El repositorio viene con un harness mínimo de pruebas. Ejecuta los siguientes comandos en la raíz del repositorio:
# Asegúrate de que tu directorio de pruebas esté intacto
git diff origin/main tests/
# Ejecuta el benchmark e imprime el conteo de ciclos
python tests/submission_tests.py
Si la salida es vacía después del comando git diff, no has modificado ningún archivo de prueba – eso es una verificación de seguridad contra trucos de “trampa”. El segundo comando produce algo como:
Total cycles: 18532
Tu misión es reducir ese número.
Cómo superar el benchmark
- Empieza con la Línea Base – Clona el repositorio y ejecuta las pruebas. Registra tu conteo de ciclos.
- Perfilado Primero – Utiliza
watch_trace.pyo un profiler estándar (p. ej.,cProfile) para identificar los puntos críticos. - Micro‑optimización – Las ganancias típicas provienen de:
- Eliminar bucles innecesarios
- Usar funciones integradas en lugar de código Python puro
- Evitar búsquedas globales dentro de bucles estrechos
- Ajustes Algorítmicos – En algunos casos, una estructura de datos o algoritmo mejor pueden reducir grandes números de ciclos.
- Verificar Multi‑núcleo – El repositorio desactiva explícitamente el soporte multi‑núcleo; cualquier intento de modificar el conteo de núcleos será considerado trampa.
- Validar – Después de cada ajuste, vuelve a ejecutar
tests/submission_tests.pypara verificar el nuevo conteo de ciclos. - Enviar – Cuando estés por debajo de 1487, envía una solicitud de extracción + una nota confirmando que has verificado las pruebas.
Errores Comunes
- Alterar archivos de prueba – Incluso un pequeño cambio puede bajar drásticamente los ciclos, pero está prohibido.
- Reimplementación del sistema de pruebas – Replicar el harness dentro de tu código para acortar verificaciones se considera trampa.
- Omitir casos límite – Las pruebas cubren un conjunto completo de escenarios; ignorarlos provoca envíos fallidos.
Números de Benchmark
Para dar contexto, aquí están los conteos de ciclos registrados que Anthropic usó como referencia:
| Modelo | Ciclos | Notas |
|---|---|---|
| Claude Opus 4 | 2164 | Después de muchas horas en el harness |
| Claude Opus 4.5 | 1790 | Sesión casual de Claude |
| Claude Opus 4.5 | 1579 | Harness de 2 horas |
| Claude Sonnet 4.5 | 1548 | Después de muchas horas |
| Claude Opus 4.5 | 1487 | Harness de 11.5 horas |
| Claude Opus 4.5 | 1363 | Harness mejorado |
Tu objetivo es llegar por debajo del hito 1487.
Más Allá del Desafío
Aunque no alcances el récord, el proceso enseña:
- Habilidades de perfilado – Cómo aislar cuellos de botella en Python.
- Pensamiento algorítmico – Equilibrar tiempo vs. espacio.
- Reproducibilidad – La importancia de un harness limpio.
También puedes experimentar con el repositorio añadiendo tus propias pruebas, o portando la lógica a otro lenguaje. Siéntete libre de forkar y compartir tus hallazgos con la comunidad.
Reflexiones Finales
El Performance Take‑Home de Anthropic es más que un ejercicio de codificación; es una ventana a la ingeniería del mundo real que sustenta los modelos de lenguaje de vanguardia. Ya sea que busques conseguir un puesto en un laboratorio de IA líder o simplemente disfrutes de maximizar el rendimiento de Python, este repositorio ofrece un desafío concreto y medible.
¡Ahora que tienes el mapa, es hora de ponerse manos a la obra! Clona el repositorio, profilea, ajusta y verifica si puedes superar las 2 horas. ¡Éxitos!