Screenshot 2024 03 26 At 10.01.11 Pm.png

El aprendizaje automático tiene aplicaciones icónicas en los lenguajes de programación, desde la comprensión del código hasta la representación o finalización del código. El trabajo anterior se centró en explotar la estructura semántica profunda subyacente de lenguajes de programación como Code2Vec, Code2Seq y Graph Representation Learning for Code. Las arquitecturas anteriores están hechas a medida para las estructuras nativas de árboles de sintaxis abstracta (AST)/gráficos de flujo de datos (DFG). Tienen una limitación importante: sólo se pueden aplicar para tareas que impliquen código completamente ejecutable.

Investigaciones posteriores han demostrado cómo los modelos basados ​​en transformadores se pueden utilizar como lenguaje natural para código a nivel léxico (texto). Desde entonces, los modelos de lenguaje se han utilizado ampliamente para modelar código en diversas tareas. Estos modelos se ejecutan cada pocos segundos, especialmente en el caso de completar el código. Se prefieren modelos potentes que se ejecutan en dispositivos de consumo para evitar la latencia de la red, marcar la diferencia y abordar las discrepancias relacionadas con las API cerradas.

Los investigadores de Stability AI presentaron Código estable, que sirve como un modelo de lenguaje de código base de propósito general destinado a completar código, razonamiento, matemáticas y otras tareas basadas en ingeniería de software. Además, introducen una variante de instrucción denominada Instrucción de código estable que permite conversar con el modelo en una interfaz de chat natural para realizar tareas basadas en instrucciones y respuesta a preguntas.

Stable Code se basa en Stable LM, un LLM de última generación para lenguaje natural en inglés en una escala de 3 mil millones de parámetros. El modelo es un transformador solo decodificador causal similar en diseño a la arquitectura LLaMA. Las principales diferencias con LLaMA son:

  • Incrustaciones de posiciones: Las incrustaciones de posición giratoria se aplican al primer 25 % de las dimensiones de incrustación del cabezal para mejorar el rendimiento.
  • Normalización: LayerNorm con términos de sesgo aprendido a diferencia de RMSNorm.
  • Sesgos: Todos los términos de sesgo se eliminaron de las redes de retroalimentación y de las capas de autoatención de múltiples cabezales, excepto los sesgos de las proyecciones de clave, consulta y valor.

Stable Code iguala el rendimiento de Llama y StarCoder en promedio en todos los lenguajes de programación, aunque es relativamente más pequeño. Además, Stable Code 3B logra un sólido rendimiento en la escala 3B, mostrando capacidades notables en tareas de finalización de código. También evaluaron modelos ajustados por instrucciones en el subconjunto de código del desafiante banco de pruebas Multi-turn.

https://stability.ai/news/introduciendo-stable-code-instruct-3b?

En conclusión, los investigadores de Stability AI introdujeron Stable Code y Stable Code Instruct para abordar diferentes casos de uso de desarrollo de software. Tanto Stable Code como Stable Code Instruct son modelos de lenguaje compactos solo para decodificadores. Los investigadores han realizado extensas evaluaciones de modelos y comparaciones con otros modelos de tamaño similar, lo que demuestra el notable rendimiento de Stable Code y Stable Code Instruct. También proporcionan un análisis del modelo en arquitecturas informáticas de borde típicas.


Revisar la Papel y Blog. 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.