Fine-Tune TinyLlama with Ertas

    Un modelo compacto de 1.1 mil millones de parámetros entrenado con 3 billones de tokens — mucho más datos de lo típico para su tamaño — ofreciendo un rendimiento sorprendentemente capaz para despliegue en el edge, aplicaciones móviles y entornos con recursos limitados.

    1.1BTinyLlama Team

    Overview

    TinyLlama es un modelo de lenguaje de 1.1 mil millones de parámetros desarrollado por el proyecto de código abierto TinyLlama, liderado por Peiyuan Zhang en la Universidad de Tecnología y Diseño de Singapur. Lo que hace único a TinyLlama no es su arquitectura sino su enfoque de entrenamiento: el modelo fue entrenado con aproximadamente 3 billones de tokens, aproximadamente la misma cantidad de datos usados para entrenar Llama 2 7B a pesar de ser casi 7 veces más pequeño. Este extenso entrenamiento relativo al tamaño del modelo sigue la filosofía de escalado óptimo de Chinchilla y empuja los límites de lo que los modelos pequeños pueden lograr.

    TinyLlama usa la misma arquitectura que Llama 2 pero reducida: 22 capas transformer, una dimensión oculta de 2048, 32 cabezas de atención y atención de consultas agrupadas con 4 cabezas key-value. El modelo soporta una ventana de contexto de 2K tokens y usa el tokenizer de Llama con un vocabulario de 32K. A pesar de su pequeño tamaño, TinyLlama demuestra generación de texto coherente, razonamiento básico y seguimiento útil de instrucciones cuando se ajusta.

    El proyecto fue diseñado para ser práctico y accesible. El entrenamiento se completó en 16 GPUs A100-40GB durante aproximadamente 90 días, y el equipo publicó checkpoints intermedios durante todo el entrenamiento para que los investigadores pudieran estudiar las dinámicas de entrenamiento. El pequeño tamaño del modelo significa que puede ejecutarse en prácticamente cualquier dispositivo de computación, desde smartphones hasta microcontroladores.

    TinyLlama se publica bajo la licencia Apache 2.0. La variante TinyLlama Chat, ajustada con una mezcla de datasets conversacionales, proporciona un chatbot compacto que funciona con hardware mínimo. El proyecto ha inspirado una ola de investigación sobre el entrenamiento de modelos pequeños con grandes presupuestos de datos.

    Key Features

    La característica más notable de TinyLlama es su relación datos-parámetros. Con 3 billones de tokens para 1.1B parámetros, el modelo ha visto aproximadamente 2,700 tokens por parámetro durante el entrenamiento — mucho más que los típicos 20-100 tokens por parámetro vistos en la mayoría de modelos. Este extenso entrenamiento empuja al modelo a extraer la máxima utilidad de su limitado conteo de parámetros, produciendo un modelo que rinde significativamente por encima de su categoría de peso en muchas tareas.

    La extrema compacidad del modelo habilita escenarios de despliegue que son imposibles para modelos más grandes. A precisión completa FP16, TinyLlama requiere solo 2.2GB de RAM. Con cuantización INT4, esto baja a aproximadamente 700MB. Esto significa que TinyLlama puede ejecutarse en dispositivos Raspberry Pi, smartphones con 2GB+ de RAM, entornos WebAssembly en navegadores, e incluso algunas plataformas de microcontroladores con RAM externa.

    TinyLlama sirve como un importante artefacto de investigación para estudiar leyes de escalado. El extenso entrenamiento y los checkpoints intermedios publicados permiten a los investigadores estudiar cómo las capacidades del modelo emergen y evolucionan durante el entrenamiento a una escala que es computacionalmente accesible para laboratorios académicos. El proyecto demuestra que el entrenamiento óptimo requiere mucho más datos de los que la mayoría de modelos pequeños reciben.

    Fine-Tuning with Ertas

    TinyLlama es el modelo más accesible para ajustar en Ertas Studio. Con QLoRA, el fine-tuning requiere tan solo 2-4GB de VRAM — esto funciona en prácticamente cualquier GPU, incluyendo modelos antiguos como la GTX 1060 6GB o gráficos integrados con suficiente memoria compartida. LoRA completo (sin cuantización) requiere solo 3-5GB de VRAM, e incluso el fine-tuning completo es factible en GPUs de consumo con 8GB+ de VRAM.

    El pequeño tamaño del modelo permite una iteración únicamente rápida. Una ejecución completa de fine-tuning con 10,000 ejemplos típicamente se completa en 15-30 minutos en una sola GPU de consumo. Esto permite experimentación rápida con diferentes datasets, hiperparámetros y estrategias de entrenamiento. Puedes ejecutar docenas de experimentos en un día, probando diferentes enfoques antes de definir la mejor configuración.

    Después del fine-tuning, Ertas Studio exporta a formato GGUF. Un TinyLlama cuantizado en Q4_K_M es de solo aproximadamente 670MB — lo suficientemente pequeño para distribuir como parte de una aplicación de escritorio, integrar en una app móvil o incluir en un contenedor Docker sin sobrecarga significativa de tamaño. Despliega a través de Ollama para acceso API o llama.cpp para integración directa en tu aplicación.

    Use Cases

    El caso de uso principal de TinyLlama es el despliegue en dispositivo donde el tamaño del modelo es la restricción principal. Aplicaciones móviles que necesitan capacidad de IA sin conexión, sistemas embebidos en dispositivos IoT, características de IA basadas en navegador vía WebAssembly y escenarios de computación edge todos se benefician de los requisitos mínimos de recursos de TinyLlama. El modelo puede ejecutarse junto a otras aplicaciones sin competir por recursos.

    El modelo destaca como una capa rápida de preprocesamiento o clasificación en sistemas más grandes. Úsalo para detección de intención, extracción simple de entidades, clasificación de texto, análisis de sentimiento y enrutamiento de consultas. Aunque carece de la sofisticación para razonamiento complejo, realiza estas tareas enfocadas eficientemente a un costo mínimo. Muchos sistemas en producción usan TinyLlama como un filtro ligero de primer paso.

    TinyLlama también es invaluable para propósitos educativos. Los estudiantes que aprenden sobre modelos de lenguaje pueden ajustar, experimentar con y desplegar TinyLlama en laptops personales sin ningún hardware especial. El pipeline completo de entrenamiento — desde la preparación de datos pasando por el fine-tuning hasta el despliegue — puede experimentarse en horas en lugar de días, haciéndolo una herramienta de enseñanza ideal.

    Hardware Requirements

    TinyLlama con cuantización Q4_K_M requiere aproximadamente 670MB de RAM. Esto es lo suficientemente pequeño para ejecutarse en Raspberry Pi 4 (4GB), la mayoría de smartphones, e incluso entornos de navegador vía WebAssembly. En Q8_0, el requisito es aproximadamente 1.2GB. FP16 completo requiere aproximadamente 2.2GB. Estos están entre los requisitos más bajos para cualquier modelo de lenguaje coherente.

    La velocidad de inferencia es notablemente rápida debido al diminuto tamaño del modelo. En una RTX 4090, se esperan más de 100 tokens por segundo en Q4_K_M. En Apple M1 con 8GB, se esperan 30-50 tokens por segundo. Incluso la inferencia CPU en un laptop moderno produce 15-30 tokens por segundo, haciendo a TinyLlama responsivo para aplicaciones interactivas sin ninguna GPU.

    Para fine-tuning en Ertas Studio, QLoRA requiere 2-4GB de VRAM, y el fine-tuning completo requiere 4-8GB de VRAM. Los requisitos extremadamente bajos significan que TinyLlama puede ajustarse en prácticamente cualquier máquina con una GPU discreta, e incluso algunas configuraciones de GPU integrada. El entrenamiento se completa en minutos a decenas de minutos para tamaños de dataset típicos.

    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.