Meta ha presentado Code World Model (CWM), un modelo de lenguaje de gran escala diseñado para ir más allá de la generación sintáctica de código. Su propuesta busca que la inteligencia artificial comprenda qué hace el código cuando se ejecuta, no solo cómo se ve. Esto representa un cambio importante respecto a los enfoques actuales, que entrenan modelos para predecir el próximo token en una secuencia, como si escribir código fuera igual que escribir texto natural.
Con CWM, Meta plantea que la IA debe entender el código como un conjunto de interacciones dinámicas, donde cada instrucción modifica un estado interno, tal como lo hace un programador humano que visualiza mentalmente el efecto de sus cambios en la aplicación. Esta capacidad para simular mentalmente la «vida interna» de un programa es precisamente lo que CWM busca replicar.
Por qué los modelos actuales se quedan cortos
A pesar de los grandes avances en generación de código con modelos como Codex o Code LLaMA, la calidad y confiabilidad del código generado sigue siendo un problema. Muchos errores surgen porque los modelos no entienden realmente el impacto que tiene una línea de código en el sistema global. Simplemente predicen tokens basándose en patrones estadísticos del entrenamiento.
En cambio, los desarrolladores humanos piensan en términos de estructuras lógicas, dependencias, flujos y estados. Por eso, Meta propone cambiar el enfoque tradicional y entrenar modelos que construyan una representación interna del «mundo» en el que el código opera.
Así aprende CWM: simulación y observación temprana
El elemento diferencial de CWM es que no espera hasta la etapa final de ajuste fino para aprender sobre ejecución de código. En su fase de «mid-training» (entrenamiento intermedio), el modelo se expone a dos tipos de datos que le permiten construir su «modelo del mundo»:
Primero, se alimenta de trazas de ejecución de código Python, donde se observa paso a paso cómo cambian los valores de las variables y el estado del programa. Esto es equivalente a aprender no solo leyendo el manual, sino también viendo cientos de ejecuciones reales en tiempo real.
Segundo, CWM aprende observando a un agente sintético, llamado ForagerAgent, que simula tareas de programación dentro de entornos Docker. Este agente realiza acciones como corregir errores o implementar nuevas funcionalidades, lo que genera una enorme cantidad de interacciones reales con entornos de desarrollo. CWM aprende observando estas acciones en secuencia, como si viera a un programador resolver tareas paso a paso.
Esta estrategia permite que el modelo desarrolle habilidades de razonar sobre la ejecución de código, de forma más parecida a cómo lo haría un ingeniero: crea una solución, la prueba, analiza el resultado y corrige si es necesario.
Resultados prometedores en pruebas especializadas
El modelo, con sus 32.000 millones de parámetros y un contexto de hasta 131.000 tokens, ha sido puesto a prueba en benchmarks reconocidos. En SWE-bench Verified, que evalúa la capacidad de resolver problemas reales extraídos de repositorios de GitHub, CWM alcanzó un 65,8% de éxito, superando a otros modelos de código con pesos abiertos de tamaño similar.
También obtuvo buenos resultados en LiveCodeBench (programación competitiva), Math-500 y AIME 2024 (razonamiento matemático), así como en CruxEval, que mide la precisión al predecir la salida de un código Python. Estos resultados sugieren que el modelo logra una comprensión funcional, más allá de la estática.
Un enfoque que apunta a agentes más inteligentes
El trabajo de Meta con CWM se inserta en una tendencia más amplia: llevar los modelos de lenguaje más allá de la predicción de texto. Una de las vías que más ha crecido es el llamado «chain-of-thought» (CoT), donde se obliga al modelo a escribir sus pensamientos antes de llegar a una conclusión. Aunque popular, esta técnica sigue siendo una estrategia de generación de texto, y hay evidencia de que no representa razonamiento real, sino una apariencia del mismo.
En contraste, el enfoque de los modelos del mundo propone algo más ambicioso: crear representaciones internas latentes que simulen un entorno o sistema, sin necesidad de ser explicitadas en texto. Como si el modelo pensara en su «mente» antes de hablar. Otros trabajos recientes, como el que combina LLMs con la arquitectura JEPA, apuntan en la misma dirección: construir modelos capaces de adaptarse mejor a entornos cambiantes y aprender nuevas tareas con mayor eficiencia.
Limitaciones y próximos pasos
Aunque prometedor, CWM es un modelo de investigación. Se ha lanzado bajo una licencia no comercial y no está optimizado para ser un asistente conversacional. Aún necesita mucho trabajo para integrarse en flujos de trabajo reales de programación, especialmente en empresas donde las necesidades son diversas y cambiantes.
El equipo de Meta reconoce que este es apenas el inicio. Investigar formas de aprovechar el conocimiento del mundo aprendido por estos modelos, ya sea mediante prompt engineering o ajustes finos, es un campo abierto y lleno de potencial. La pregunta clave es si este tipo de aprendizaje podrá traducirse en herramientas más fiables, que no solo generen código que «parece correcto», sino que realmente funcione como se espera.
