Fine-Tune TinyLlama with Ertas

    一个 11 亿参数的紧凑模型,在 3 万亿个 token 上训练——远超同等规模的典型训练量——为边缘部署、移动应用和资源受限环境提供了令人惊喜的性能。

    1.1BTinyLlama Team

    Overview

    TinyLlama 是由 TinyLlama 开源项目开发的 11 亿参数语言模型,项目由新加坡科技设计大学的 Peiyuan Zhang 主导。TinyLlama 的独特之处不在于架构,而在于训练方法:该模型在约 3 万亿个 token 上训练,与训练 Llama 2 7B 使用的数据量大致相同,尽管它小了近 7 倍。这种相对于模型规模的大量训练遵循了 Chinchilla 最优缩放理念,推动了微型模型能力的极限。

    TinyLlama 使用与 Llama 2 相同但缩小的架构:22 个 Transformer 层、2048 的隐藏维度、32 个注意力头和 4 个键值头的分组查询注意力。模型支持 2K token 的上下文窗口,使用 Llama 分词器和 32K 词表。尽管规模小巧,TinyLlama 展示了连贯的文本生成、基本推理和经过微调后有用的指令遵循能力。

    该项目旨在实用和可访问。训练在 16 块 A100-40GB GPU 上约 90 天内完成,团队在整个训练过程中发布了中间检查点,使研究人员能够研究训练动态。模型的小巧尺寸意味着它可以在几乎任何计算设备上运行,从智能手机到微控制器。

    TinyLlama 在 Apache 2.0 许可下发布。TinyLlama Chat 变体在对话数据集混合上微调,提供了一个在最低硬件上运行的紧凑聊天机器人。该项目激发了一波关于使用大数据预算训练微型模型的研究浪潮。

    Key Features

    TinyLlama 最值得注意的特性是其数据与参数比率。3 万亿个 token 对应 11 亿参数,模型在训练期间每个参数大约处理了 2700 个 token——远超大多数模型中典型的每参数 20-100 个 token。这种大量训练推动模型从有限的参数量中提取最大效用,产生了一个在许多任务上远超其体量级别的模型。

    模型的极致紧凑性支持了更大模型不可能实现的部署场景。在完整 FP16 精度下,TinyLlama 仅需 2.2GB 内存。使用 INT4 量化,降至约 700MB。这意味着 TinyLlama 可以在 Raspberry Pi 设备、配备 2GB 以上内存的智能手机、浏览器中的 WebAssembly 环境,甚至某些带有外部 RAM 的微控制器平台上运行。

    TinyLlama 作为研究缩放定律的重要研究制品。大量训练和公开发布的中间检查点允许研究人员在学术实验室计算可及的规模上研究模型能力如何在训练过程中涌现和演变。该项目证明了最优训练需要的数据远超大多数小模型所接受的量。

    Fine-Tuning with Ertas

    TinyLlama 是 Ertas Studio 中最易于微调的模型。使用 QLoRA,微调仅需 2-4GB VRAM——几乎可在任何 GPU 上运行,包括 GTX 1060 6GB 等较老型号或具有足够共享内存的集成显卡。不带量化的完整 LoRA 仅需 3-5GB VRAM,在配备 8GB 以上 VRAM 的消费级 GPU 上甚至可以进行完整微调。

    模型的小巧尺寸支持极快的迭代。在单块消费级 GPU 上处理 10,000 个示例的完整微调运行通常在 15-30 分钟内完成。这允许对不同数据集、超参数和训练策略进行快速实验。您可以在一天内运行数十个实验,在确定最佳配置前测试不同方法。

    微调完成后,Ertas Studio 导出为 GGUF 格式。Q4_K_M 量化的 TinyLlama 仅约 670MB——小到可以作为桌面应用的一部分分发、嵌入移动应用或包含在 Docker 容器中而不造成显著大小开销。通过 Ollama 部署进行 API 访问或 llama.cpp 直接集成到应用中。

    Use Cases

    TinyLlama 的主要用例是模型大小为首要约束的设备端部署。需要离线 AI 能力的移动应用、物联网设备中的嵌入式系统、通过 WebAssembly 的浏览器端 AI 功能以及边缘计算场景都受益于 TinyLlama 的最低资源需求。模型可以与其他应用并行运行而不争夺资源。

    该模型作为大型系统中的快速预处理或分类层表现出色。用于意图检测、简单实体提取、文本分类、情感分析和查询路由。虽然它缺乏复杂推理的精细度,但能以最低成本高效执行这些聚焦任务。许多生产系统使用 TinyLlama 作为轻量级的初步过滤器。

    TinyLlama 在教育目的上也是无价的。学习语言模型的学生可以在个人笔记本电脑上进行微调、实验和部署 TinyLlama,无需任何特殊硬件。从数据准备到微调再到部署的完整训练管道可以在数小时而非数天内体验完成,使其成为理想的教学工具。

    Hardware Requirements

    TinyLlama 在 Q4_K_M 量化下约需 670MB 内存。小到可以在 Raspberry Pi 4(4GB)、大多数智能手机甚至通过 WebAssembly 的浏览器环境中运行。在 Q8_0 下约需 1.2GB。全精度 FP16 约需 2.2GB。这些是任何连贯语言模型中最低的需求之一。

    由于模型极小,推理速度非常快。在 RTX 4090 上 Q4_K_M 下预计每秒 100 个以上 token。在配备 8GB 的 Apple M1 上预计每秒 30-50 个 token。即使在现代笔记本电脑上的 CPU 推理也能达到每秒 15-30 个 token,使 TinyLlama 无需任何 GPU 即可用于交互式应用。

    在 Ertas Studio 中微调时,QLoRA 需要 2-4GB VRAM,完整微调需要 4-8GB VRAM。极低的需求意味着 TinyLlama 可以在几乎任何配备独立 GPU 的机器上微调,甚至某些集成 GPU 配置也可以。训练在典型数据集大小下可在数分钟到数十分钟内完成。

    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.