Etiqueta: codigo heredado

  • Por qué los LLM de código flojean en lenguajes minoritarios

    Por qué los LLM de código flojean en lenguajes minoritarios

    La generación de código en lenguajes con pocos recursos es el tema de un trabajo de investigación cuyo título apunta a avances en este terreno. Hablamos de lenguajes con poco código disponible para entrenar modelos, donde los LLM de código rinden peor que con los lenguajes más populares. De momento solo conocemos el título: no hay cifras, modelos ni método publicados en lo que hemos recibido. Aun así, el problema afecta a empresas con lenguajes minoritarios, heredados o propios de un sector, y conviene entenderlo bien.

    Generación de código en lenguajes con pocos recursos: qué sabemos y qué no

    Empecemos por lo verificable, que es poco. El trabajo se presenta como un avance en cómo mejorar la generación de código para lenguajes de programación con pocos recursos. Un lenguaje de pocos recursos es, en este contexto, uno del que existe poco código disponible para entrenar modelos. Esa es toda la información sólida que tenemos. No sabemos qué lenguajes se han estudiado, qué modelos se han probado, qué técnica se propone ni cuánto mejoran los resultados. Cualquier cifra de mejora que circule sin la fuente completa merece desconfianza.

    Lo que sí es bien conocido es la causa del problema. Un LLM de código aprende patrones a partir de los ejemplos que ha visto durante el entrenamiento. Cuando un lenguaje tiene millones de repositorios públicos, el modelo ve muchas formas de resolver el mismo problema. Cuando apenas tiene ejemplos, el modelo tiene menos material del que aprender y sus respuestas son menos fiables. Esto afecta a tres grupos: lenguajes minoritarios, lenguajes heredados que siguen sosteniendo sistemas en producción y lenguajes específicos de un sector, que a veces ni siquiera tienen presencia pública relevante.

    Conviene separar dos cosas que a menudo se mezclan. Una es que un modelo escriba código que parece correcto. Otra es que ese código compile, se ejecute y haga lo que se pidió. En lenguajes con poco código público, la distancia entre ambas cosas suele ser mayor, y por eso este tipo de investigación importa más allá del ámbito académico.

    Implicaciones técnicas de mejorar la generación de código en lenguajes con pocos recursos

    Sin conocer el método concreto del trabajo, podemos describir el terreno de juego. En el área se exploran varias vías para compensar la falta de datos: ampliar el corpus de ejemplos, aprovechar lo que el modelo ya sabe de lenguajes mayoritarios para llevarlo a otros, o ajustar el modelo con ejemplos específicos de un dominio. Cada vía tiene costes distintos en datos, cómputo y revisión humana. Insistimos en que no sabemos cuál de ellas, si alguna, es la que propone este trabajo. Lo que sí podemos decir es qué preguntas habría que hacerle a cualquier resultado cuando se publique con detalle.

    La primera pregunta es contra qué se compara. Una mejora medida sobre un modelo base débil impresiona menos que una medida frente a modelos de código de uso común. La segunda es cómo se evalúa. Para código, la prueba más honesta es ejecutarlo contra tests, no juzgar si el texto resulta plausible. La tercera es si el resultado se sostiene en lenguajes distintos de los estudiados, porque una técnica que funciona con uno solo tiene un valor limitado.

    Hay además un efecto práctico para quien desarrolla modelos. Si la mejora depende de reunir grandes volúmenes de ejemplos nuevos, el problema vuelve a ser de datos y de coste. Si depende de reutilizar conocimiento de otros lenguajes, el reto pasa a ser de adaptación. Para un equipo pequeño, la diferencia entre ambos caminos decide si la técnica se puede reproducir con sus medios o queda reservada a laboratorios con mucho presupuesto.

    Por último, está la cuestión de la confianza. Un asistente que acierta en Python y falla en un lenguaje poco habitual no avisa de que ha cambiado de terreno. Mientras no existan métricas claras por lenguaje, el equipo que lo usa tiene que asumir esa verificación por su cuenta.

    Cuándo y para quién será relevante esto

    Con un título como único dato, hablar de plazos exactos sería inventar. Lo razonable es pensar en horizontes por etapas. Primero llegará la lectura del trabajo completo, donde se verá qué lenguajes se evalúan, con qué modelos y con qué métricas. Después vendrá la fase de replicación, en la que otros grupos comprueban si los resultados se mantienen. Solo tras eso, si la técnica se sostiene, tendría sentido que los proveedores de modelos la incorporen a sus productos. Ese recorrido suele medirse en meses o años, no en semanas.

    Los primeros afectados serán los equipos que dependen de código en lenguajes con poco soporte: quienes mantienen sistemas heredados, quienes trabajan con lenguajes propios de un sector concreto y quienes desarrollan sobre lenguajes minoritarios. Para ellos, los asistentes de código actuales ofrecen menos que lo que ven sus colegas en lenguajes populares, y cualquier avance en generación de código en lenguajes con pocos recursos puede cambiar esa ecuación.

    Mientras tanto, hay decisiones que no dependen de la investigación. Conviene hacer un inventario de qué lenguajes se usan en la empresa y cuáles son críticos. Conviene también probar los asistentes actuales con tareas reales y pequeñas de esos lenguajes, midiendo cuántas respuestas compilan y pasan los tests. Y conviene no comprar herramientas basándose en promesas genéricas de que funcionan con cualquier lenguaje. Un piloto corto con datos propios da más información que cualquier titular.

    Para quien trabaja solo con lenguajes populares, este tema es de interés general, pero no urgente. El impacto práctico llegará, si llega, a medida que se conozcan los detalles del trabajo.

    Analisis Blixel

    El mayor riesgo de la IA para programar no es que falle, sino que falle sin avisar justo donde hay menos código público para comprobarla. Un modelo se muestra igual de seguro en un lenguaje con millones de ejemplos que en uno con unos pocos miles. Para el usuario, la diferencia solo aparece cuando el código no compila o, peor, compila y hace algo distinto de lo pedido. Por eso la generación de código en lenguajes con pocos recursos merece más atención de la que recibe en la conversación habitual sobre asistentes de programación.

    Nuestra posición es doble. Por un lado, es una línea de investigación útil: muchas empresas españolas, sobre todo en banca, industria y administración, mantienen sistemas escritos en lenguajes que no salen en los rankings de popularidad. Si los LLM mejoran ahí, el beneficio práctico es real. Por otro lado, hoy no hay base para vender nada. Un título no es un resultado, y las mejoras en investigación suelen reducirse cuando se prueban fuera del laboratorio y con código de verdad, con sus dependencias y sus rarezas.

    Nuestra recomendación para una PYME es poco glamurosa: mida antes de creer. Elija diez tareas reales, páselas por los asistentes disponibles y cuente cuántas funcionan sin retoques. Ese número vale más que cualquier promesa y le dará una referencia para comparar cuando aparezcan técnicas nuevas. Cuando se publique el trabajo completo, lo analizaremos con cifras en la mano.

    Quieres aplicar esto en tu empresa? En Blixel.ai te ayudamos a integrar IA con sentido comun. Hablemos.