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

  1. Empieza con la Línea Base – Clona el repositorio y ejecuta las pruebas. Registra tu conteo de ciclos.
  2. Perfilado Primero – Utiliza watch_trace.py o un profiler estándar (p. ej., cProfile) para identificar los puntos críticos.
  3. Micro‑optimización – Las ganancias típicas provienen de:
  4. Eliminar bucles innecesarios
  5. Usar funciones integradas en lugar de código Python puro
  6. Evitar búsquedas globales dentro de bucles estrechos
  7. Ajustes Algorítmicos – En algunos casos, una estructura de datos o algoritmo mejor pueden reducir grandes números de ciclos.
  8. 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.
  9. Validar – Después de cada ajuste, vuelve a ejecutar tests/submission_tests.py para verificar el nuevo conteo de ciclos.
  10. 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!

Artículo original: Ver original

Compartir este artículo