Introducción
La IA Generativa está al borde de automatizar completamente la generación de código, aunque aún no ha alcanzado ese hito. Sin embargo, ¡la siguiente mejor herramienta es Code Llama! Lanzado en 2023, el último generador de código de Meta, Code Llama, está diseñado para ayudar a los programadores en diversas tareas de programación. Code Llama se centra en mejorar los flujos de trabajo de los desarrolladores, generar y completar código, y ayudar con las pruebas. Exploremos Code Llama como un activo independiente y luego comparémoslo con otras herramientas de IA Generativa especializadas en codificación.
Cómo funciona Code Llama
Code Llama es una variante especializada en código de Llama 2, desarrollada mediante el entrenamiento adicional de Llama 2 con conjuntos de datos específicos de código y muestreando más datos de estos conjuntos durante períodos prolongados. Este proceso ha dotado a Code Llama de capacidades de codificación mejoradas, basándose en los cimientos de Llama 2. Puede generar código y descripciones en lenguaje natural del código a partir de instrucciones tanto de código como de lenguaje natural (por ejemplo, “Escríbeme una función que genere la secuencia de Fibonacci”). Además, se puede utilizar para completar código y depurar. Code Llama admite muchos lenguajes de programación populares, incluidos Python, C++, Java, PHP, TypeScript (JavaScript), C# y Bash.
Fuente: Meta AI
Meta está lanzando cuatro tamaños de Code Llama, con modelos de 7B, 13B, 34B y 70B parámetros respectivamente. Cada uno de estos modelos, excepto la versión de 70B, está entrenado con 500B tokens de código y datos relacionados, mientras que el modelo de 70B está entrenado con 1T tokens. Los modelos base e instruct de 7B y 13B también incluyen capacidad de relleno en el medio (FIM), lo que les permite insertar código en código existente y admitir tareas como la finalización de código desde el primer momento.
Estos modelos se adaptan a diferentes requisitos de servicio y latencia. El modelo de 7B, por ejemplo, puede ejecutarse en una sola GPU. Mientras que los modelos de 34B y 70B ofrecen los mejores resultados y brindan una asistencia de codificación superior, los modelos más pequeños de 7B y 13B 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.
Capacidades de Code Llama
Los modelos Code Llama proporcionan generaciones estables con hasta 100.000 tokens de contexto. Todos los modelos están entrenados con secuencias de 16.000 tokens y muestran mejoras con entradas de hasta 100.000 tokens.
Esta capacidad de manejar secuencias de entrada más largas no solo facilita la generación de programas más largos, sino que también desbloquea nuevos casos de uso para un modelo de lenguaje de código (LLM). Por ejemplo, los usuarios pueden proporcionar al modelo más contexto de su base de código, haciendo que el código generado sea más relevante. Además, es útil en escenarios de depuración dentro de bases de código más grandes, donde puede ser difícil para los desarrolladores realizar un seguimiento de todo el código relacionado con un problema específico. Al permitir que los desarrolladores ingresen un fragmento completo de código, el modelo puede ayudar a depurar secciones extensas de código.
Además, Meta ha ajustado adicionalmente dos variaciones más de Code Llama: Code Llama — Python y Code Llama — Instruct.
Code Llama — Python es una versión especializada en el lenguaje, ajustada adicionalmente con 100B tokens de código Python. Dado que Python es el lenguaje más utilizado como referencia para la generación de código y desempeña un papel importante en la comunidad de IA junto con PyTorch, este modelo especializado ofrece una utilidad adicional.
Code Llama — Instruct es una variación ajustada por instrucciones y alineada. El ajuste por instrucciones continúa el proceso de entrenamiento con un objetivo diferente, donde se proporciona al modelo una entrada de “instrucción en lenguaje natural” y la salida esperada. Esto mejora su capacidad para comprender las expectativas humanas a partir de las indicaciones. Se recomienda usar las variantes Code Llama — Instruct para la generación de código, ya que están ajustadas para producir respuestas útiles y seguras en lenguaje natural.
No se recomienda usar Code Llama o Code Llama — Python para tareas generales de lenguaje natural, ya que estos modelos no están diseñados para seguir instrucciones en lenguaje natural. Si deseas realizar tareas de PLN, puedes elegir los modelos Llama2 o Llama3, a los que puedes acceder integrándolos con la API LLM de novita.ai:

Con precios económicos y modelos escalables, la API de inferencia LLM de Novita AI le brinda a tu LLM una estabilidad increíble y una latencia bastante baja, inferior a 2 segundos. El rendimiento del LLM se puede mejorar enormemente con la API de inferencia LLM de Novita AI.
Code Llama está especializado en tareas específicas de código y no es adecuado como modelo base para otras aplicaciones.
Los usuarios de los modelos Code Llama deben cumplir con la licencia de Meta y la política de uso aceptable.
Evaluación del rendimiento de Code Llama
Para evaluar el rendimiento de Code Llama frente a las soluciones existentes, Meta utilizó dos referencias de codificación populares: HumanEval y Mostly Basic Python Programming (MBPP). HumanEval evalúa la capacidad del modelo para completar código basándose en cadenas de documentación, mientras que MBPP prueba la capacidad del modelo para escribir código basándose en una descripción.
Las pruebas comparativas demostraron que Code Llama superó a otros modelos de lenguaje de código abierto especializados en código y excedió el rendimiento de Llama 2. Por ejemplo, Code Llama 34B obtuvo una puntuación del 53,7% en HumanEval y del 56,2% en MBPP, la más alta entre las soluciones abiertas de última generación y comparable a ChatGPT.
Como ocurre con toda tecnología de punta, Code Llama conlleva ciertos riesgos. Es crucial construir modelos de IA de manera responsable, por lo que se implementaron numerosas medidas de seguridad antes de lanzar Code Llama. Como parte de los esfuerzos de red teaming, se realizó una evaluación cuantitativa para evaluar el riesgo de que Code Llama genere código malicioso. Se utilizaron indicaciones diseñadas para solicitar código malicioso con intención clara, y las respuestas de Code Llama se compararon con las de ChatGPT (GPT-3.5 Turbo). Los resultados indicaron que Code Llama proporcionó respuestas más seguras.
Cómo usar Code Llama
Code Llama no es accesible directamente a través de un sitio web o plataforma. En cambio, está disponible en GitHub y se puede descargar para uso local. Aquí hay algunas formas en que se puede acceder a Code Llama:
1. Integración con chatbot: Perplexity-AI, una IA basada en texto similar a ChatGPT, ha integrado la versión de 34B parámetros de Code Llama. Esto permite a los usuarios generar código a través de indicaciones de texto. Perplexity-AI ofrece múltiples variantes centradas en lenguajes de programación específicos como Python, Java, C++ y JavaScript.
2. Integración de modelos: Hugging Face, una plataforma de código abierto, proporciona modelos predeterminados que se pueden usar para generar código fácilmente.
3. Entorno de desarrollo integrado (IDE): Ollama es una biblioteca de Code Llama que se puede descargar e integrar directamente en los IDE. Esto permite a los usuarios utilizar modelos de lenguaje grandes localmente.
En este tutorial, mostraremos las capacidades de Code Llama usando Perplexity AI. Comenzaremos definiendo y creando funciones de ordenamiento. Primero, crearemos una función de ordenamiento binario, que es similar al ordenamiento por inserción pero utiliza búsqueda binaria para determinar la posición del elemento. A continuación, preguntaremos a Perplexity si hay otros algoritmos comparables al ordenamiento binario. Por último, solicitaremos a Perplexity que genere una clase de Ordenamiento que contenga algunas de esas funciones.
Indicación:
Tengo una clase de Python que se beneficiaría de un algoritmo de ordenamiento binario. ¿Podrías crear una clase de Python que tome una lista de valores, los ordene usando ordenamiento binario y devuelva la lista ordenada?
Respuesta:

Indicación:
¿Existe otro algoritmo comparable o mejor que el ordenamiento binario?
Respuesta:

Indicación:
Me gustaría tener opciones de ordenamiento para mis necesidades. ¿Puedes crear una clase de Ordenamiento con funcionalidades de ordenamiento binario, ordenamiento rápido y ordenamiento por fusión?
Respuesta:



Quién se beneficia de Code Llama
Los programadores ya están utilizando modelos de lenguaje grandes (LLM) para ayudar con diversas tareas, desde escribir nuevo software hasta depurar código existente. El objetivo es mejorar los flujos de trabajo de los desarrolladores, permitiéndoles centrarse en los aspectos más humanos de su trabajo en lugar de tareas repetitivas.
En Meta, se cree que los modelos de IA, especialmente los LLM para codificación, se benefician significativamente de un enfoque abierto, fomentando tanto la innovación como la seguridad. Los modelos específicos de código disponibles públicamente pueden impulsar el desarrollo de nuevas tecnologías que mejoren la vida de las personas. Al lanzar modelos como Code Llama, toda la comunidad puede evaluar sus capacidades, identificar problemas y abordar vulnerabilidades.
Uso responsable de Code Llama
El artículo de investigación de Meta proporciona información detallada sobre el desarrollo de Code Llama, las pruebas de referencia realizadas, las limitaciones del modelo y los desafíos encontrados, junto con las mitigaciones adoptadas y los desafíos futuros a abordar.
Además, la Guía de uso responsable se ha actualizado para incluir orientación sobre el desarrollo responsable de modelos derivados, cubriendo aspectos como:
- Definición de políticas de contenido y mitigaciones
- Preparación de datos
- Ajuste del modelo
- Evaluación y mejora del rendimiento
- Abordar riesgos a nivel de entrada y salida
- Creación de transparencia y mecanismos de reporte en las interacciones con los usuarios
Se recomienda a los desarrolladores evaluar sus modelos utilizando puntos de referencia de evaluación específicos de código y realizar estudios de seguridad en casos de uso específicos de código, como la generación de malware, virus informáticos o código malicioso. También se recomienda utilizar conjuntos de datos de seguridad para evaluaciones automáticas y humanas, y realizar red teaming con indicaciones adversarias.
El futuro de la IA Generativa para la codificación
Code Llama está diseñado para apoyar a los ingenieros de software en todos los sectores, incluidos la investigación, la industria, los proyectos de código abierto, las ONG y las empresas. Sin embargo, todavía hay muchos casos de uso más allá de lo que nuestros modelos base e instruct pueden soportar actualmente.
Esperamos que Code Llama inspire a otros a aprovechar Llama 2 para crear nuevas herramientas innovadoras para la investigación y productos comerciales.
Conclusión
Code Llama es una herramienta única diseñada para ayudar con proyectos de programación, permitiendo a los desarrolladores cambiar su enfoque de la generación de código a los objetivos del proyecto. Admite la finalización de código, escribe comentarios legibles por humanos y genera código.
Como herramienta de programación con IA, Code Llama se destaca por su capacidad sin conexión. Se puede importar a un IDE, eliminando la necesidad de una conexión a internet. Entrenado con 100 GB de datos, sobresale en la finalización y generación de código. Hay varias versiones de Code Llama disponibles, incluidas versiones de 7B, 13B y 34B parámetros, así como versiones especializadas como -Python e -Instruct. Elige la que mejor se adapte a tus necesidades y ¡buena suerte con tus proyectos de programación!
novita.ai, la plataforma integral para la creatividad sin límites que te da acceso a más de 100 APIs. Desde generación de imágenes y procesamiento de lenguaje hasta mejora de audio y manipulación de video, con precios de pago por uso económicos, te libera de las molestias del mantenimiento de GPU mientras construyes tus propios productos. Pruébalo gratis.
Lecturas recomendadas
Motor de inferencia LLM de Novita AI: el mayor rendimiento y la inferencia más económica disponible
