Fine-Tune Code Llama with Ertas

    Familia de modelos especializados en generación de código de Meta, basada en Llama 2, disponible en tamaños de 7B, 13B, 34B y 70B con variantes optimizadas para completado de código, seguimiento de instrucciones y desarrollo en Python.

    7B13B34B70BMeta

    Overview

    CodeLlama es la familia de modelos de lenguaje especializados en código de Meta, lanzada en agosto de 2023. Construidos mediante entrenamiento adicional de Llama 2 con datasets con alto contenido de código, CodeLlama viene en cuatro tamaños (7B, 13B, 34B y 70B) y tres variantes por tamaño: el CodeLlama base para completado de código, CodeLlama Instruct para tareas de código con seguimiento de instrucciones, y CodeLlama Python para desarrollo específico en Python.

    Los modelos fueron entrenados con aproximadamente 500 mil millones de tokens de datos predominantemente de código, incluyendo repositorios de código públicos, discusiones relacionadas con código y documentación. Este extenso entrenamiento enfocado en código produce modelos que comprenden profundamente los conceptos de programación — desde sintaxis y semántica hasta patrones de diseño, complejidad algorítmica y mejores prácticas en docenas de lenguajes de programación.

    CodeLlama soporta la capacidad de relleno (fill-in-the-middle), donde el modelo puede generar código para llenar un espacio entre un prefijo y un sufijo. Esto es esencial para la integración con IDEs, donde los desarrolladores necesitan completados que se ajusten naturalmente al contexto del código existente. Los modelos de 7B y 13B soportan una ventana de contexto de 16K tokens, mientras que los de 34B y 70B se extienden a 100K tokens mediante el escalado de frecuencia RoPE.

    Todos los modelos CodeLlama se publican bajo la Licencia Comunitaria de Llama 2, permitiendo uso comercial. Aunque modelos más nuevos como Qwen 2.5 Coder y DeepSeek Coder han igualado o superado a CodeLlama en algunos benchmarks, CodeLlama sigue ampliamente desplegado y se beneficia de un ecosistema maduro de herramientas e integraciones.

    Key Features

    La capacidad de fill-in-the-middle (FIM) es la característica más distintiva de CodeLlama para el desarrollo práctico de código. A diferencia de la generación estándar de izquierda a derecha, FIM permite al modelo generar código que conecta un prefijo con un sufijo, produciendo completados contextualmente apropiados en ambos lados. Esto es crucial para integraciones con IDEs como completado de código, refactorización automatizada y tareas de relleno donde el contexto del código circundante restringe la solución.

    La variante especializada en Python (CodeLlama Python) fue entrenada adicionalmente con 100 mil millones de tokens adicionales de datos específicos de Python, haciéndola particularmente fuerte para tareas de desarrollo en Python. Supera al modelo base CodeLlama en benchmarks de Python por un margen significativo mientras mantiene un rendimiento razonable en otros lenguajes.

    CodeLlama demuestra fuertes capacidades de contexto largo, especialmente en los tamaños de 34B y 70B. La ventana de contexto de 100K tokens permite procesar bases de código completas, archivos grandes y contextos de múltiples archivos — esencial para tareas reales de código que requieren comprensión de la estructura del proyecto, jerarquías de importación y dependencias entre archivos.

    Fine-Tuning with Ertas

    CodeLlama es uno de los modelos más gratificantes para ajustar en Ertas Studio para aplicaciones relacionadas con código. Las variantes de 7B y 13B son puntos de partida ideales, requiriendo 8-12GB y 10-16GB de VRAM respectivamente con QLoRA. El fine-tuning con los repositorios de código internos de tu organización, estándares de codificación y documentación de API crea un modelo que genera código alineado con las convenciones y frameworks de tu equipo.

    Para fine-tuning enfocado en código, Ertas Studio soporta formatos de dataset especializados: pares de instrucción-respuesta para tareas de generación de código, triples de prefijo-sufijo-medio para entrenamiento fill-in-the-middle, y pares de revisión de código para aplicaciones de revisión automatizada. Sube tu dataset en formato JSONL con los campos apropiados, y la plataforma se encarga de la tokenización y el formato de plantilla de chat.

    El modelo de 34B ofrece un excelente salto de calidad para organizaciones que necesitan mayor calidad de código, requiriendo aproximadamente 20-24GB de VRAM con QLoRA. Después del fine-tuning, exporta a GGUF e integra con tu flujo de trabajo de desarrollo vía Ollama (para acceso por API) o llama.cpp (para integración directa en herramientas de desarrollo). Muchos equipos usan modelos CodeLlama ajustados como backend para extensiones personalizadas de VS Code y plugins de JetBrains.

    Use Cases

    El caso de uso principal de CodeLlama es como asistente de código inteligente: generar código a partir de descripciones en lenguaje natural, completar implementaciones parciales, explicar código existente y sugerir mejoras. La capacidad fill-in-the-middle lo hace particularmente efectivo para la integración con IDEs, donde puede proporcionar completados contextuales que tienen en cuenta tanto el código anterior como el posterior.

    Los modelos CodeLlama ajustados destacan como asistentes de desarrollo internos para organizaciones. Al entrenar con bases de código propietarias, bibliotecas internas y guías de codificación, el modelo puede generar código que sigue las convenciones del equipo, usa correctamente las API internas y se adhiere a los estándares de codificación organizacionales. Esto es especialmente valioso para equipos grandes donde la consistencia del código es importante.

    CodeLlama también es muy adecuado para automatización de revisiones de código, generación de documentación, creación de casos de prueba y modernización de código heredado. Las variantes con ajuste de instrucciones pueden explicar código complejo a desarrolladores junior, identificar posibles errores y sugerir optimizaciones. La variante de Python es particularmente popular en equipos de ciencia de datos para generar pipelines de procesamiento de datos, código de visualización y scripts de entrenamiento de ML.

    Hardware Requirements

    CodeLlama 7B en Q4_K_M requiere aproximadamente 4.4GB de RAM, ejecutándose en prácticamente cualquier máquina de desarrollo moderna. El de 13B necesita unos 7.8GB, el de 34B unos 20GB y el de 70B unos 40GB en Q4_K_M. Para uso en desarrollo, los modelos de 7B y 13B proporcionan respuestas instantáneas en hardware de consumo, haciéndolos ideales para integración con IDEs.

    La inferencia completa en FP16 requiere aproximadamente 14GB (7B), 26GB (13B), 68GB (34B) y 140GB (70B). Para despliegues en equipos de desarrollo, el modelo de 34B en una A6000 de 48GB proporciona un excelente equilibrio entre calidad y velocidad, generando típicamente 25-35 tokens por segundo.

    Para fine-tuning en Ertas Studio, el modelo de 7B necesita 8-12GB de VRAM, el de 13B necesita 10-16GB, el de 34B necesita 20-24GB y el de 70B necesita 40-48GB con QLoRA. Los modelos de 7B y 13B son los más populares para fine-tuning debido a sus tiempos de entrenamiento rápidos y bajos requisitos de recursos, permitiendo iteración rápida en datasets específicos de código.

    Supported Quantizations

    Q4_0Q4_K_MQ5_K_MQ6_KQ8_0F16

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.