Meta ha lanzado un "artefacto" de IA. ¿Cómo se compara el modelo de código abierto y código libre Code Llama con ChatGPT?

Fuente original: Laboratorio de Innovación AGI

Fuente de la imagen: Generada por Unbounded AI‌

Meta lanzó recientemente Code Llama, un modelo de lenguaje a gran escala basado en Llama 2 para ajuste fino, que puede generar código usando indicaciones de texto y es de código abierto para investigación y uso comercial.

Code Llama es un LLM abierto de última generación para tareas de codificación que tiene el potencial de hacer que los flujos de trabajo actuales de los desarrolladores sean más rápidos y eficientes y reducir la barrera de entrada para quienes aprenden a codificar. Code Llama tiene el potencial de usarse como una herramienta educativa y de productividad para ayudar a los programadores a escribir software más sólido y mejor documentado.

Cómo funciona Code Llama

En julio de este año, Meta (anteriormente Facebook) lanzó Llama 2, un modelo de código abierto gratuito y disponible comercialmente. La última versión, Code Llama, es una versión dedicada de Llama2 específicamente para codificación, creada entrenando aún más a Llama 2 en su conjunto de datos de código específico, muestreando más datos del mismo conjunto de datos durante períodos de tiempo más largos.

En general, Code Llama tiene funciones de codificación mejoradas, construidas sobre Llama 2. Puede generar código y lenguaje natural sobre el código basándose en el código y las señales del lenguaje natural (por ejemplo, "escríbeme una función que genere la secuencia de Fibonacci"). También se puede utilizar para completar y depurar código.

Code Llama admite muchos de los lenguajes más populares que se utilizan en la actualidad, incluidos Python, C++, Java, PHP, Typeface (Java), C# y Bash.

Code Llama tiene actualmente tres versiones de parámetros: 7 mil millones de parámetros, 13 mil millones de parámetros, 34 mil millones de parámetros.

Cada versión está entrenada con tokens de código 500B y datos relacionados con el código. La base de parámetros y los modelos de instrucción de 7 mil millones y 13 mil millones de parámetros también están entrenados con capacidades de llenado intermedio (FIM), lo que les permite conectar código al código existente, lo que significa que pueden admitir tareas como la finalización de código fuera del sistema. caja.

Estos tres modelos cumplen con diferentes requisitos de servicio y latencia. Por ejemplo, se pueden ejecutar 7 mil millones de modelos en una sola GPU. El modelo de 34 mil millones arroja los mejores resultados y ofrece una mejor asistencia de codificación, pero los modelos más pequeños de 7 mil millones y 13 mil millones son más rápidos y más adecuados para tareas que requieren baja latencia, como la finalización de código en tiempo real.

El modelo Code Llama proporciona una generación estable con hasta 100.000 tokens de contexto. Todos los modelos se entrenan en secuencias de 16.000 tokens y muestran mejoras en entradas de hasta 100.000 tokens.

Además de ser un requisito previo para generar programas más largos, tener secuencias de entrada más largas puede desbloquear nuevos e interesantes casos de uso para Code LLM. Por ejemplo, los usuarios pueden proporcionar modelos con más contexto desde su código base para hacer que las generaciones sean más relevantes. También ayuda en escenarios de depuración en bases de código más grandes, donde puede resultar difícil para los desarrolladores comprender todo el código relacionado con un problema específico. Cuando los desarrolladores se enfrentan a la depuración de grandes cantidades de código, pueden pasar toda la longitud del código al modelo.

Meta también afina dos versiones adicionales de Code Llama: Code Llama - Python y Code Llama - Instruct.

  • Code Llama: Python es una variante específica del lenguaje de Code Llama, optimizada aún más en el token 100B del código Python.
  • Code Llama: Instruct es una versión afinada y alineada de las instrucciones de Code Llama. Los ajustes de instrucción continúan el proceso de capacitación, pero con diferentes objetivos. El modelo acepta "instrucciones en lenguaje natural" como entrada y salida esperada. Esto le permite comprender mejor lo que la gente espera del mensaje. Recomendamos utilizar la versión Code Llama - Instruct cuando se utiliza Code Llama para la generación de código, porque Code Llama - Instruct se ha perfeccionado para generar respuestas útiles y seguras en lenguaje natural.

Pero no se recomienda utilizar Code Llama o Code Llama - Python para tareas generales de lenguaje natural porque ninguno de los modelos está diseñado para seguir instrucciones de lenguaje natural. Code Llama está diseñado para tareas específicas de código y no es adecuado como modelo base para otras tareas.

¿Cómo funciona Code Llama?

La programación humana y la programación Python mayoritariamente básica (MBPP) son dos puntos de referencia comúnmente utilizados para el dominio de la codificación: Human prueba la capacidad de un modelo para completar el código a partir de una cadena de documentación y MBPP prueba la capacidad de un modelo para escribir código a partir de una descripción. Las pruebas de Code Llama frente a estos dos puntos de referencia muestran que Code Llama supera al Llama de código abierto y específico, y supera al propio Llama 2. Por ejemplo, Code Llama 34B obtiene una puntuación del 53,7% en Humano y del 56,2% en MBPP, superando a ChatGPT pero aún inferior a GPT-4 en Humano.

Fuente del gráfico: Meta

  • ¿El modelo perfeccionado de CodeLlama-34B ha superado al GPT-4? *

Aunque Code Llama no ganó la prueba, esto no es todo Code Llama, otro punto destacado es el ajuste nuevamente. Los usuarios pueden volver a ajustar el código abierto Code Llama para crear la mejor versión que satisfaga sus necesidades.

Phind recientemente ajustó CodeLlama-34B y CodeLlama-34B-Python basándose en su propio conjunto de datos, y sus versiones afinadas alcanzaron el 67,6% y el 69,5% en Humano, lo que superó el GPT-4 anunciado por OpenAI en marzo en un 67% de el total.

Enlaces relacionados:

Comparación del uso real ChatGPT vs. Code Llama

En primer lugar, en esta comparación se utilizaron la versión GPT-3.5 de ChatGPT y Code Llama compatible con la plataforma Perplexity. Haremos 8 preguntas para comparar si los dos generan código correctamente.

Pregunta 1:

"Usando Python. Dadas dos cadenas palabra1 y palabra2. Fusione las cadenas agregando letras en orden alterno, comenzando con palabra1. Si una cadena es más larga que la otra, agregue letras adicionales a las cadenas fusionadas. fin.

Devuelve la cadena fusionada.

Ejemplo 1: • Entrada: palabra1="abc", palabra2="pqr" • Salida: "apbqcr"

🟢 ChatGPT: +1 por éxito 🔵 Código de llama: 成功+1

Pregunta 2:

"Usando Python. Dada una cadena s, simplemente invierta todas las vocales en la cadena y devuélvala.

Las vocales son "a", "e", "i", "o" y "u", que pueden aparecer varias veces tanto en minúsculas como en mayúsculas.

Ejemplo 1:

Entrada: s="hola" Salida: "Salón"

🟢 ChatGPT: +1 por éxito 🔵 Código Llama: Fallido +0

Pregunta 3:

"Usando Python. Dada una matriz de números enteros, mueva todos los 0 al final mientras mantiene el orden relativo de los elementos distintos de cero. Tenga en cuenta que debe hacer esto in situ, sin hacer una copia de la matriz.

Ejemplo 1:

Entrada: números = [0,1,0,3,12] Salida: [1,3,12,0,0]"

🟢 ChatGPT: +1 por éxito 🔵 Código Llama: Fallido +0

Pregunta 4:

"Usando Python. Tienes un macizo de flores largo donde algunas parcelas están plantadas y otras no. Sin embargo, las parcelas adyacentes no se pueden plantar con flores. Dada una matriz de números enteros de 0 y 1 para un macizo de flores, donde 0 significa vacío y 1 significa no vacío, y un número entero n, devuelve verdadero si se pueden plantar n nuevas flores en el macizo de flores sin violar la regla de no flores adyacentes, De lo contrario, devuelve falso.

Ejemplo 1: Entrada: macizo de flores = [1,0,0,0,1], n = 1 Salida: verdadero Ejemplo 2: Entrada: macizo de flores = [1,0,0,0,1], n = 2 salida: falso

🟢 ChatGPT: +1 por éxito 🔵 Código de llama: 成功+1

Pregunta 5:

"Usando Python. Dada una cadena de entrada s, invierta el orden de las palabras.

Una palabra se define como una secuencia de caracteres que no son espacios en blanco. Las palabras en s estarán separadas por al menos un espacio.

Devuelve una cadena de palabras unidas por espacios simples en orden inverso.

Tenga en cuenta que s puede contener espacios iniciales o finales o varios espacios entre dos palabras. La cadena devuelta debe tener solo un espacio para separar palabras. No incluya espacios adicionales.

Ejemplo 1: Entrada: s = "El cielo es azul" Salida: "El azul es el cielo""

🟢 ChatGPT: +1 por éxito 🔵 Código de llama: 成功+1

Pregunta 6:

"Usando Python. Dada una cadena s y un número entero k, devuelve el número máximo de vocales en cualquier subcadena de longitud k en s. Las vocales en inglés son "a", "e", "i", "o" y "u".

Ejemplo 1: Entrada: s = "código leet", k = 3 Salida: 2 Explicación: "lee", "eet" y "ode" contienen 2 vocales.

🟢 ChatGPT: +1 por éxito 🔵 Código de llama: 成功+1

Pregunta 7:

"Usando Python. Dada una cadena s que contiene asteriscos *.

Con una sola operación podrás:

Elige una estrella en s.

Elimina el carácter que no sea un asterisco más cercano a su izquierda y elimina el asterisco.

Devuelve la cadena después de eliminar todas las estrellas.

Ejemplo 1: Entrada: s="leet**cod*e" Salida: "lecoe""

🟢 ChatGPT: +1 por éxito 🔵 Código Llama: Fallido +0

Pregunta 8:

"Usando Python. Dada una serie de temperaturas enteras que representan temperaturas diarias, devuelve una serie de respuestas donde la respuesta [i] es el número de días tras día que tienes que esperar para que lleguen temperaturas más cálidas. Si no hay un día en el futuro para hacer esto, guarda la respuesta. [i] == 0。

Ejemplo 1: Entrada: Temperatura = [73,74,75,71,69,72,76,73] Salida: [1,1,4,2,1,1,0,0]"

🟢 Chat GPT: +1 🔵 Código Camello: +1

Resultados finales:

🟢ChatGPT: 8/8 🔵 Código Llama: 5/8

En resumen, Code Llama no muestra ventajas obvias en comparación con ChatGPT en el efecto de uso real, pero las pruebas anteriores no pueden usarse completamente como base para emitir un juicio. Además, Code Llama de código abierto es más fácil que ChatGPT para que los usuarios lo personalicen según sus necesidades, lo que puede brindar más posibilidades.

Referencias:

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)