Los modelos de lenguajes grandes (LLM) han demostrado su éxito en diversas tareas en el dominio de la ingeniería de software, como generar código y documentación, traducir código entre lenguajes de programación, escribir pruebas unitarias y detectar y corregir errores. La disponibilidad de grandes conjuntos de datos de código fuente abierto y modelos habilitados para Github como CodeLlama, ChatGPT y Codex para desarrollar una comprensión estadística de varios lenguajes mejora significativamente la experiencia de codificación. Algunos modelos, como AlphaCode, están previamente entrenados en tareas de programación competitivas, lo que permite que el modelo optimice el código en el nivel fuente para varios lenguajes.
Investigaciones anteriores sobre optimización de código impulsadas por el aprendizaje automático probaron múltiples técnicas, desde funciones diseñadas manualmente hasta redes neuronales de gráficos complejas y sofisticadas. Sin embargo, una limitación común en estos enfoques es que la representación del programa de entrada proporcionado al modelo de aprendizaje automático permanece incompleta, lo que resulta en cierta pérdida de información crítica. Por ejemplo, MLGO ofrece información sobre la incorporación de funciones, pero carece de una reconstrucción fiel de aspectos como el gráfico de llamadas y el flujo de control. Para superar este problema, se propusieron LLM para ajustar la optimización de LLVM, que demostraron notables capacidades de razonamiento de código.
Los investigadores de Meta AI y Rice University presentan un paradigma único en la optimización del compilador impulsado por LLM con retroalimentación del compilador para optimizar el tamaño del código del ensamblado LLVM. El modelo toma IR LLVM no optimizado como entrada y produce IR optimizado, los mejores pases de optimización y recuentos de instrucciones de IR optimizados y no optimizados. Luego, la entrada se cumple con los pases de optimización generados y se evalúa para ver si el recuento de instrucciones previsto es correcto, si el IR generado es compilable y si corresponde al código compilado. Estos comentarios se devuelven a LLM y se brinda otra oportunidad para optimizar el código.
El método procede evaluando la coherencia de la generación del modelo por parte del compilador y
Proporcionar retroalimentación al modelo. Para cada generación del modelo original, si la lista de pases generada es válida y los recuentos de instrucciones pronosticados son correctos y calculados, la puntuación azul entre el código generado y el código se obtiene compilando la lista de pases generada. También se proporciona el código generado y compilado en los comentarios.
El modelo propuesto supera al modelo original en un 0,53%, cerrando la brecha con el autotuner en un 10%. Por otro lado, cuando se habilita el muestreo, se muestra que el modelo original alcanza hasta el 98% del rendimiento del autotuner cuando se utilizan 100 muestras. Al comparar el rendimiento del modelo de retroalimentación iterativa con el modelo original, se le dio la misma cantidad de cálculo por muestra y se encontró que con dos o más muestras y una temperatura superior a 0,4, el modelo original superó al modelo de retroalimentación.
Los investigadores han realizado las siguientes contribuciones en este artículo:
- Se presentaron tres modelos de retroalimentación generados por compiladores para LLM.
- Realicé evaluación de 3 métodos de muestreo con retroalimentación.
- Se evaluó la generación de retroalimentación iterativa.
En conclusión, los investigadores de Meta AI y Rice University introducen la idea de retroalimentación generada por un compilador para los LLM. El modelo comienza desde LLVM IR no optimizado y predice los mejores pases de optimización, recuentos de instrucciones e IR optimizado. Luego, construyen retroalimentación sobre la generación del modelo y le piden que vuelva a intentarlo. Todas las formas de retroalimentación superan al modelo original en temperatura 0 en un 0,11%, 0,4% y 0,53%.
Revisar la Papel. Todo el crédito por esta investigación va a los investigadores de este proyecto. Además, no olvides seguirnos en Gorjeo. Únete a nuestro Canal de telegramas, Canal de discordiay LinkedIn Grarriba.
Si te gusta nuestro trabajo, te encantará nuestro Boletin informativo..
No olvides unirte a nuestro SubReddit de 39k+ ML
Asjad es consultor interno en Marktechpost. Está cursando B.Tech en ingeniería mecánica en el Instituto Indio de Tecnología, Kharagpur. Asjad es un entusiasta del aprendizaje automático y el aprendizaje profundo que siempre está investigando las aplicaciones del aprendizaje automático en la atención médica.