Dentro de Code Llama La entrada de Meta AI en el espacio de Code LLM

En Code Llama, Meta AI entra en el espacio de Code LLM.

La nueva familia de modelos se basa en la base de Llama 2 para igualar el rendimiento de vanguardia en diferentes tareas de generación de código.

Creado usando Midjourney

Recientemente comencé un boletín educativo centrado en la inteligencia artificial, que ya cuenta con más de 160,000 suscriptores. TheSequence es un boletín orientado a la IA (sin exageraciones, sin noticias, etc.) que se lee en 5 minutos. El objetivo es mantenerte actualizado sobre proyectos de aprendizaje automático, artículos de investigación y conceptos. Por favor, pruébalo suscribiéndote a continuación:

TheSequence | Jesus Rodriguez | Substack

La mejor fuente para mantenerte actualizado con los avances en el aprendizaje automático, inteligencia artificial y datos…

thesequence.substack.com

La programación se ha convertido rápidamente en uno de los escenarios de acción más activos para los grandes modelos de lenguaje (LLM, por sus siglas en inglés). Desde que OpenAI presentó Codex (ahora parte de GPT-4) el año pasado, el nivel de innovación en los modelos de lenguaje de programación ha sido impresionante. En los últimos meses, hemos visto LLMs de código lanzados por empresas como Salesforce, Hugging Face, DeepMind, Amazon y muchas otras. La semana pasada, Meta AI se sumó a la fiebre de los LLMs de código con el lanzamiento de Code Llama, un LLM de código abierto basado en el recientemente lanzado Llama 2. El lanzamiento de Code Llama es significativo debido al impacto que Meta está teniendo en el movimiento de modelos de código de código abierto. Meta AI ha desarrollado Code Llama, una iteración especializada de Llama 2 que surgió a través de un entrenamiento prolongado en conjuntos de datos específicos de programación. Al extraer intensivamente datos del conjunto de datos centrado en el código, Code Llama evolucionó para mejorar su competencia en programación, mejorando así las capacidades heredadas de Llama 2. Esta versión avanzada demuestra habilidades en la generación de código y la articulación de lenguaje natural sobre el código. Independientemente de si la entrada es código o lenguaje natural, como solicitudes como “Crear una función que produzca la secuencia de Fibonacci”, Code Llama produce hábilmente código relevante y explicaciones textuales. Además, ayuda hábilmente en la finalización de código y los esfuerzos de depuración, acomodando sin problemas lenguajes populares como Python, C++, Java, PHP, Typescript (Javascript), C# y Bash.

Crédito de la imagen: Meta AI

Dentro de Code Llama

El lanzamiento de Code Llama no incluye un solo modelo, sino tres variantes diferentes, caracterizadas por sus tamaños de parámetros de 7B, 13B y 34B. Cada uno de estos modelos ha sido entrenado en un amplio conjunto de 500B tokens que abarca código e información relacionada con el código. Es importante destacar que los modelos base e instructivos de 7B y 13B han sido dotados de competencias de “fill-in-the-middle” (FIM), lo que les permite insertar código de manera fluida en estructuras de código existentes. Esta característica los capacita para manejar tareas como la completación de código desde el principio. El trío de modelos atiende requisitos distintos en cuanto a servicio y latencia. Por ejemplo, el modelo de 7B cuenta con la capacidad de funcionar en una sola GPU. Mientras que el modelo de 34B se destaca por obtener resultados óptimos y mejorar la asistencia de codificación, las versiones más pequeñas de 7B y 13B destacan por su velocidad, lo que las hace adecuadas para tareas de baja latencia, como la completación de código en tiempo real.

Las innovaciones de Meta AI se extienden aún más a dos adaptaciones sutiles de Code Llama: Code Llama – Python y Code Llama – Instruct.

  • Code Llama – Python es una derivación especializada, meticulosamente perfeccionada en un volumen sustancial de código Python que abarca 100B tokens. Dado el papel central de Python en los puntos de referencia de generación de código y su importancia dentro de la comunidad de IA, este modelo enfocado aumenta su utilidad.
  • Code Llama – Instruct representa una alineación y refinamiento de Code Llama a través del ajuste fino instructivo. Este enfoque de entrenamiento novedoso implica proporcionar al modelo entradas de “instrucciones en lenguaje natural” junto con salidas anticipadas. Esta metodología estratégica mejora la capacidad del modelo para comprender las expectativas humanas en las indicaciones. Para proyectos que involucren generación de código, se recomienda optar por las versiones de Code Llama – Instruct, ya que han sido calibradas para producir respuestas útiles y seguras en lenguaje natural.
Crédito de la imagen: Meta AI

Sumergiéndonos en el entrenamiento y ajuste fino del Code Llama, hay algunos aspectos que vale la pena resaltar. 1) Conjunto de datos El entrenamiento de Llama se basa en un conjunto de datos meticulosamente curado enriquecido con código público disponible, ofreciendo un panorama casi libre de duplicados. El conjunto de datos consta de 500B tokens durante la fase inicial, comenzando desde las versiones 7B, 13B y 34B. Un 8% adicional de datos de muestra se obtiene de conjuntos de datos de lenguaje natural vinculados a dominios de código.

2) Relleno Dentro del ámbito del Relleno de código, una tarea fundamental gira en torno a predecir segmentos faltantes dentro de un programa mientras se guía por el contexto circundante. Las aplicaciones pragmáticas incluyen el autocompletado de código dentro de los Entornos de Desarrollo Integrados (IDE), la inferencia de tipos e incluso la generación de documentación en código como docstrings. Operando en alineación con el concepto de enmascaramiento causal, un marco expuesto por Aghajanyan et al. (2022) y Fried et al. (2023), Meta AI moldea modelos de relleno. El proceso de entrenamiento implica desplazar partes de secuencias de entrenamiento hacia la conclusión, abriendo el camino para predicciones autoregresivas. En este esfuerzo, tanto los modelos versátiles de 7B como de 13B son sometidos a entrenamiento orientado al relleno, siguiendo las estrategias recomendadas por Bavarian et al. (2022).

3) Ajuste fino de contexto largo: Desentrañar las complejidades de manejar secuencias extensas es una tarea formidable en el ámbito de los modelos de lenguaje basados en transformadores. Los desafíos fundamentales orbitan en torno a la extrapolación, adentrándose en longitudes de secuencia más allá de las encontradas durante el entrenamiento, y la complejidad cuadrática de los pasos de atención que inclinan el equilibrio hacia entradas cortas a medianas para un entrenamiento efectivo. Meta AI avanza con una solución única, introduciendo el dominio dedicado del ajuste fino de contexto largo (LCFT). Abrazando secuencias que abarcan 16,384 tokens, un salto sustancial desde los 4,096 tokens presentes en las etapas iniciales de entrenamiento de código de Llama 2, LCFT dota a los modelos de capacidades de rango extendido. Este cambio estratégico ocurre dentro de una fase de ajuste fino, evitando una escalada desproporcionada en los costos de entrenamiento.

4) Ajuste fino de instrucciones: La destreza de Code Llama se extiende al ajuste fino de instrucciones, evidenciado en los modelos refinados de Code Llama – Instruct. Esta iteración aprovecha Code Llama como su base, esculpida para responder adecuadamente a consultas. La fusión del ajuste fino supervisado con un amplio conjunto de ejemplos de muestreo de rechazo produce esta competencia instructiva.

5) Autoinstrucción: En el ámbito de los conjuntos de datos, Meta AI emprende un viaje propio, curando instancias vinculadas a tareas relacionadas con el código. Reconociendo la naturaleza intensiva en recursos de adquirir datos de anotadores humanos o a través de retroalimentación humana, se enfatiza particularmente en la autoinstrucción. El dominio de las tareas de codificación, impregnado de los conocimientos de desarrolladores profesionales, forma el lienzo en el que se pinta este enfoque innovador.

Los Resultados

Para evaluar Code Llama, Meta AI se involucró en dos ampliamente reconocidas pruebas de código: HumanEval y Mostly Basic Python Programming (MBPP). La prueba HumanEval evalúa sistemáticamente la destreza del modelo en el autocompletado de código a través de docstrings, mientras que la prueba MBPP examina la capacidad del modelo para traducir descripciones en código ejecutable. El riguroso esfuerzo de evaluación reveló resultados iluminadores: Code Llama superó a los Modelos de Lenguaje de Gran Tamaño (LLMs) de código abierto y incluso superó a su predecesor, Llama 2. Por ejemplo, en el caso de Code Llama 34B, surgieron puntuaciones destacadas: un impresionante 53,7% en la prueba HumanEval y un formidable 56,2% en la prueba MBPP. Estas puntuaciones se mantuvieron como las más altas entre soluciones comparables de vanguardia, situando a Code Llama 34B al nivel de las notables capacidades de ChatGPT.

Crédito de la imagen: Meta AI

Code Llama promete ser uno de los Modelos de Lenguaje de Gran Tamaño más importantes en el futuro cercano. Sin duda, contribuye a reafirmar el valor de los modelos base de código abierto en diferentes dominios.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Hacia la IA General el papel de LLMs y Modelos Fundamentales en la Revolución del Aprendizaje de por Vida

En la última década y especialmente con el éxito del aprendizaje profundo, se ha formado una discusión continua en to...

Inteligencia Artificial

La carta de presentación generada por IA de un graduado del IIT hace reír a todos

En un giro cómico de los acontecimientos, el intento de un graduado del IIT (Instituto Indio de Tecnología) de aprove...