Los modelos de lenguaje grande (LLM) se han convertido en herramientas esenciales en el desarrollo de software y ofrecen capacidades como generar fragmentos de código, automatizar pruebas unitarias y depurar. Sin embargo, estos modelos a menudo no logran producir código que no sólo sea funcionalmente correcto sino también eficiente en tiempo de ejecución. Pasar por alto la eficiencia del tiempo de ejecución puede provocar que el software tenga un rendimiento deficiente, aumente los costos operativos y afecte la experiencia del usuario. Este problema es particularmente pronunciado para los desarrolladores menos experimentados, que pueden confiar en el código sugerido por la IA sin comprender completamente sus implicaciones. Salesforce Research aborda estos desafíos con PerfCodeGen, un marco que tiene como objetivo mejorar tanto la corrección como el rendimiento del código generado por LLM.
fuerza de ventas AIPerfCodeGen de es un marco sin capacitación diseñado para mejorar la eficiencia del tiempo de ejecución del código generado por LLM. Lo logra mediante el uso de retroalimentación de ejecución en un proceso iterativo de autorrefinamiento. A diferencia de los enfoques que requieren ajustes con datos de entrenamiento extensos, PerfCodeGen emplea un ciclo de retroalimentación que evalúa y refina el código en función de métricas de tiempo de ejecución durante la ejecución de la prueba. El marco opera en dos fases clave: refinar la corrección y optimizar el rendimiento. Inicialmente, garantiza que el código generado cumpla con los requisitos funcionales al abordar los problemas identificados en las pruebas unitarias. Una vez que se establece la corrección, el marco se centra en la eficiencia del tiempo de ejecución, optimizando el código apuntando y refinando los casos de prueba que consumen más recursos. Este proceso iterativo da como resultado soluciones que son correctas y eficientes.
Información técnica y beneficios
PerfCodeGen se integra con los flujos de trabajo de LLM existentes y comienza generando múltiples soluciones candidatas mediante muestreo de núcleos. En la primera fase, se evalúa la corrección de estos candidatos mediante pruebas unitarias. Los comentarios de las pruebas fallidas se utilizan para perfeccionar las soluciones. Una vez que se garantiza la corrección funcional, el marco pasa a la segunda fase, analizando las métricas de tiempo de ejecución para identificar cuellos de botella. Luego, esta información se utiliza para optimizar aún más el código, centrándose en los casos de prueba que consumen más tiempo.
Este proceso de dos fases aumenta la probabilidad de producir programas óptimamente eficientes. La metodología de PerfCodeGen refleja las prácticas de optimización y depuración humana, lo que la hace efectiva e intuitiva. Además, la dependencia del marco de la retroalimentación en lugar de la reentrenamiento le permite escalar en varios LLM y dominios de aplicaciones. Ha mostrado mejoras constantes en la eficiencia y corrección del tiempo de ejecución en modelos como Phi-3-mini, Llama 3 y GPT-4.
PerfCodeGen ha sido probado en puntos de referencia como HumanEval, MBPP y APPS, lo que demuestra su eficacia:
- Eficiencia en tiempo de ejecución: En HumanEval, la tasa de optimización de GPT-4 (%Opt) aumentó del 24,54 % al 28,83 % con PERFCODEGEN, y se observaron mejoras similares en otros modelos.
- Mejora de la corrección: En MBPP, la tasa de corrección de GPT-3.5 (% de corrección) aumentó del 66,38 % al 73,36 % con una sola muestra (Best@1).
- Superando la verdad del terreno: PERFCODEGEN permitió a los LLM generar soluciones más eficientes que la verdad básica en aproximadamente el 55 % de las tareas de HumanEval y el 67 % de las tareas de MBPP.
- Escalabilidad: Los modelos abiertos como Phi-3-mini y Mixtral lograron un rendimiento comparable al de modelos cerrados como GPT-3.5 y GPT-4.
Estos resultados resaltan la capacidad de PERFCODEGEN para equilibrar la corrección y la eficiencia del tiempo de ejecución de manera efectiva, lo que lo convierte en una valiosa adición a los flujos de trabajo de generación de código basados en LLM.
Conclusión:
PerfCodeGen ofrece una solución práctica a una limitación clave de los LLM actuales: su enfoque en la corrección a expensas de la eficiencia del tiempo de ejecución. Al incorporar comentarios de ejecución en un proceso de refinamiento iterativo, PerfCodeGen permite la generación de código correcto y eficiente. Este enfoque mejora la usabilidad de los LLM en el desarrollo de software, proporcionando a los desarrolladores herramientas para producir código de mayor calidad sin una recapacitación extensa. El éxito del marco en diversos puntos de referencia demuestra su potencial como un paso adelante en la creación de soluciones de programación basadas en IA eficientes, confiables y accesibles.
Verificar el Papel y Página de GitHub. Todo el crédito por esta investigación va a los investigadores de este proyecto. Además, no olvides seguirnos en Gorjeo y únete a nuestro Canal de telegramas y LinkedIn Grarriba. No olvides unirte a nuestro SubReddit de más de 65.000 ml.
🚨 Recomendar plataforma de código abierto: Parlant es un marco que transforma la forma en que los agentes de IA toman decisiones en escenarios de cara al cliente. (Promovido)
Asif Razzaq es el director ejecutivo de Marktechpost Media Inc.. Como empresario e ingeniero visionario, Asif está comprometido a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, Marktechpost, que se destaca por su cobertura en profundidad del aprendizaje automático y las noticias sobre aprendizaje profundo que es técnicamente sólida y fácilmente comprensible para una amplia audiencia. La plataforma cuenta con más de 2 millones de visitas mensuales, lo que ilustra su popularidad entre el público.