← Últimos artículos
🤖 AI

Beyond Code Pairs: Dialogue-Based Data Generation for LLM Code Translation

Este artículo presenta un proceso automatizado de generación de conjuntos de datos basado en diálogos que aprovecha un diseño dual de LLM de tipo Preguntador-Solucionador con retroalimentación del compilador y del tiempo de ejecución para crear traducciones de código y diálogos de razonamiento verificados, mejorando significativamente la corrección funcional de los LLM en dominios de bajos recursos como Fortran y CUDA.

Autores originales: Le Chen, Nuo Xu, Winson Chen, Bin Lei, Pei-Hung Lin, Dunzhi Zhou, Rajeev Thakur, Caiwen Ding, Ali Jannesari, Chunhua Liao

Publicado 2026-06-05
📖 4 min de lectura☕ Lectura para el café

Autores originales: Le Chen, Nuo Xu, Winson Chen, Bin Lei, Pei-Hung Lin, Dunzhi Zhou, Rajeev Thakur, Caiwen Ding, Ali Jannesari, Chunhua Liao

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que estás intentando enseñarle a un aprendiz brillante pero inexperto cómo traducir una receta compleja de un lenguaje antiguo y oscuro (como Fortran) a uno moderno (como C++ o CUDA).

El Problema: La traducción de la "Caja Negra"
Tradicionalmente, cuando enseñamos a la IA a traducir código, le mostramos un "Código Fuente" y el "Código Objetivo" uno al lado del otro. Es como darle al aprendiz una lista de ingredientes y el plato final, pero nunca dejarle ver el proceso de cocción. Podría adivinar el plato correcto, pero si comete un error, no sabrá por qué o cómo arreglarlo. Simplemente produce un resultado que parece correcto, pero que podría fallar cuando realmente intentas comerlo (ejecutar el código).

La Solución: El "Interrogador" y el "Solucionador"
Este artículo presenta una nueva forma de entrenar a la IA, llamada Beyond Code Pairs (Más allá de los pares de código). En lugar de solo mostrar el principio y el final, crearon un sistema que registra toda la conversación y la lucha del proceso de traducción.

Piensa en esto como una cocina con dos roles distintos:

  1. El Interrogador (El Crítico del Chef): Esta IA no escribe el código. En su lugar, actúa como un jefe de cocina estricto. Observa el estado actual, busca errores (como un error de compilación o un fallo en tiempo de ejecución) y hace preguntas específicas: "¿Por qué falló esto?" o "¿Verificaste los límites de memoria?". Utiliza la retroalimentación del mundo real proveniente de la computadora para guiar el proceso.
  2. El Solucionador (El Aprendiz): Esta IA es la que realmente escribe el código. Intenta traducir el código, escribe pruebas unitarias (como pruebas de sabor) e intenta corregir los errores que el Interrogador señala.

El Proceso: Un Diálogo, no un Monólogo
El artículo describe un flujo de trabajo donde estas dos IA mantienen un diálogo de varios turnos:

  • Paso 1: El Interrogador le pide al Solucionador que escriba una prueba para el código original.
  • Paso 2: El Solucionador escribe la prueba. El Interrogador verifica si pasa. Si no es así, discuten y refinan la prueba hasta que funciona.
  • Paso 3: El Interrogador pide la traducción. El Solucionador escribe el nuevo código.
  • Paso 4: El Interrogador ejecuta el nuevo código. Si falla, el Interrogador dice: "¡Olvidaste manejar este error específico!". El Solucionador entonces corrige el error.
  • Paso 5: Repiten esto hasta que el código compila, se ejecuta y pasa todas las pruebas.

La magia es que los investigadores guardaron cada turno de esta conversación. No solo guardaron el código final; guardaron los errores, las preguntas, los mensajes de error del compilador y las correcciones.

Los Resultados: Modelos Pequeños, Grandes Victorias
Los investigadores utilizaron este método para generar miles de estas "conversaciones" para traducir Fortran a C++ y C++ a CUDA (un lenguaje para tarjetas gráficas).

Cuando entrenaron modelos de IA más pequeños y de código abierto (como un modelo de 7 mil millones de parámetros) con estas conversaciones, los resultados fueron impactantes:

  • Corrección Funcional: Los modelos no solo escribieron código que parecía correcto; escribieron código que realmente funcionaba. En la difícil tarea de traducir C++ a CUDA, la tasa de éxito al pasar las pruebas saltó del 12.5% al 68.8%.
  • Venciendo a los Gigantes: Un modelo pequeño de código abierto entrenado con estos datos de "diálogo" funcionó mejor que sistemas masivos y costosos de propiedad privada (como Gemini de Google o Llama 4 de Meta) en métricas clave como lograr que el código compile y se ejecute sin fallar.

La Conclusión
El artículo sostiene que para enseñar a la IA a realizar tareas complejas como la traducción de código, no basta con mostrarle la respuesta. Es necesario mostrarle la lucha, las preguntas y las correcciones. Al entrenar con estas "conversaciones" en lugar de solo pares estáticos de código, incluso los modelos de IA más pequeños y económicos pueden aprender a razonar a través de los errores y producir software de alta calidad y funcional.

En resumen: No le enseñes a la IA solo la respuesta; enséñale cómo pensar, discutir y corregir sus propios errores.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →