TinyLlama

义项:小型开源语言模型
TinyLlama

TinyLlama是新加坡科技设计大学(SUTD)StatNLP研究组于2023年发起并开源的一个小型语言模型项目,其核心模型TinyLlama-1.1B参数量约11亿,在大约3万亿个词元(token)上完成预训练[1][2]。该模型沿用Llama 2的架构与分词器,采用分组查询注意力等设计,并借助FlashAttention等优化手段,仅用16块A100-40G图形处理器在约90天内完成预训练[3]。项目公开了预训练代码、中间检查点和数据处理流程,常被用作研究小参数量模型在超量数据下表现的轻量实验平台[4]。

目录
  1. 定义
  2. 该项目同时包含基础模型与经指令微调的对话模型,前者用于通用文本续写,后者用于多轮问答;两者均以Apache 2.0许可证发布,权重托管在Hugging Face等模型平台。")]}, {"title
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

TinyLlama是一个以解码器架构为基础的自回归语言模型,参数量约11亿,属于小型语言模型(small language model)一类[2][1]。它由新加坡科技设计大学(SUTD)的StatNLP研究组开发,作者包括张培源、曾广涛、王天铎与卢伟,技术报告于2024年1月提交至预印本平台arXiv[5][1]。

TinyLlama继承Llama 2的架构与分词器,因此可以直接替换到大量基于Llama构建的开源工程中[3]。模型为仅含解码器的Transformer,隐藏层维度2048,中间层维度5632,共22层、32个注意力头,词表规模32000,上下文长度为2048个词元[2]。推理时它依据已有词元逐个预测下一个词元的概率分布,通过采样或贪心策略生成文本。

在结构细节上,位置信息由旋转位置编码(RoPE)注入,归一化采用前置RMSNorm,激活函数使用SwiGLU,注意力机制采用分组查询注意力,4个查询组共享键值头以降低显存带宽开销[2][3]。训练侧则使用FlashAttention等社区优化,并配合全分片数据并行、融合层归一化与融合交叉熵等手段提升吞吐[2][6]。

预训练数据由两部分按约7:3的比例混合:自然语言部分取自SlimPajama,代码部分取自StarCoder的训练集,并剔除了SlimPajama中的GitHub子集以避免重复,合并后总量约9500亿词元,训练轮数略多于3轮,累计处理约3万亿词元[2][3]。按官方公布的数据,代码库在单块A100-40G上的吞吐可达每秒2.4万个词元。

对话版本在基础模型之上先以UltraChat的合成对话数据做指令微调,再用TRL提供的DPO训练器在UltraFeedback数据集上对齐,该数据集包含约6.4万条由GPT-4排序的提示与回答[7][8]。

该项目同时包含基础模型与经指令微调的对话模型,前者用于通用文本续写,后者用于多轮问答;两者均以Apache 2.0许可证发布,权重托管在Hugging Face等模型平台。")]}, {"title

原理

发展历程

项目于2023年9月1日正式开始预训练,目标是用16块A100-40G图形处理器在约90天内完成3万亿词元的训练[3]。同年9月4日发布首批中间检查点,处理量约1050亿词元;9月16日在5030亿词元检查点基础上发布初版对话模型,并公布微调脚本[9]。

此后检查点大致按月推进:2023年10月1日达到1万亿词元,11月4日1.5万亿,11月20日2万亿,12月11日2.5万亿,12月28日完成3万亿词元的版本。2024年1月4日,团队发布技术报告,系统说明数据构成、超参数与评测结果;2024年1月3日起的一周内,该项目在Hugging Face超过46万个模型中位列热度第一[2][1]。

针对早期版本中发现的缺陷,团队随后重新训练并推出v1.1系列,训练流程改为先以SlimPajama的1.5万亿词元完成基础预训练,再分别用数学与代码数据、中文数据做继续预训练,最后以增大批量的方式做退火收敛,最终形成标准版、数学与代码版、中文版3个模型[8]。

应用

TinyLlama的主要定位是在算力与存储受限的边缘设备上本地运行。经4比特量化后,其权重体积约550MB,可装入移动设备的运行内存,从而支持无网络连接环境下的实时翻译与对话生成[1][3]。由于数据不必上传服务器,这一部署方式在隐私敏感场景中受到关注。

在研究与工程实践中,该模型还被用作<|endoftext|>更大模型的投机解码(speculative decoding)草稿模型,由小模型快速生成候选词元、再由大模型批量校验,以提升整体解码速度[3][9]。它也常被当作参数量50亿以下模型预训练流程的教学参考实现。

此外,项目公布的中间检查点和训练代码为语言模型研究提供了可复现的实验材料,被用于验证多阶段训练、数据配比调度等设想[4]。据开发团队介绍,Sea Limited与新加坡国防科技研究院等机构曾下载其源码用于研究[1]。

局限

受11亿参数量限制,TinyLlama在需要广博事实知识与多步推理的任务上表现有限。第三方评测显示,其对话版本在MMLU、MATH Level 5、GPQA等高难度基准上的得分分别约为1%至2%量级,明显低于同期更大规模的模型[10][11]。在同一套评测中,基础模型的MMLU准确率约为24%,GSM8K仅约2.3%[12]。

上下文长度为2048个词元,长文档处理与长对话记忆能力因此受限;中文等非英语语种的原生能力也较弱,官方直到v1.1系列才通过加入SkyPile语料单独训练中文版本[2][8]。

技术报告摘要中关于预训练语料规模表述为约1万亿词元、约3轮训练,与项目主页所述3万亿词元的总处理量口径不同,前者指合并数据集规模,后者指含重复在内的累计消耗[5][3]。引用该模型数据时需区分两种口径。

参见

  • Llama 2 —— TinyLlama采用其架构与分词器,二者在工程上可直接互换。

  • Transformer —— TinyLlama所基于的仅解码器神经网络结构。

  • 分组查询注意力 —— 用于降低推理显存带宽开销的注意力变体。

  • FlashAttention —— 提升训练与推理效率的注意力实现。

  • 小型语言模型 —— TinyLlama所属的模型类别。

  • 指令微调 —— 将基础模型转为对话模型所用的训练方法。

参考资料

  1. eurekalert.org 上的网页 [引用日期2026-10-29]
  2. TinyLlama: An Open-Source Small Language Model [引用日期2026-10-29]
  3. github [引用日期2026-10-29]
  4. TinyLlama: An Open-Source Small Language Model [引用日期2026-10-29]
  5. Tinyllama: An open-source small language model [引用日期2026-10-29]
  6. 2024属于小模型时代?TinyLlama 等小模型爆火:参数轻量级,性能重量级! [引用日期2026-10-29]
  7. TinyLlama-1.1B-Chat-v1.0(TinyLlama/TinyLlama-1.1B-Chat-v1.0) [引用日期2026-10-29]
  8. README [引用日期2026-10-29]
  9. TinyLlama [引用日期2026-10-29]
  10. benchmarklist.com 上的网页 [引用日期2026-10-29]
  11. tinyllama-tinyllama-11b-chat-v10 [引用日期2026-10-29]
  12. arxiv.org 上的网页 [引用日期2026-10-29]
词条评价
词条统计

浏览次数:0 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:30:56Z

历史版本

本条目引用的词条
新加坡科技设计大学 Llama 2 FlashAttention Transformer 分组查询注意力 小型语言模型 指令微调