TinyLlama

TinyLlama

3万亿token训练的小型1.1B参数语言模型

TinyLlama是一个使用3万亿token预训练的1.1B参数语言模型。它与Llama 2架构兼容,可集成到现有Llama项目中。TinyLlama体积小巧,适用于计算和内存受限的场景。该项目开源了预训练和微调代码,具有高效的训练和推理性能。TinyLlama可应用于推测解码、边缘计算和实时对话等领域。

TinyLlama语言模型AI预训练开源项目模型评估Github
<div align="center">

TinyLlama-1.1B

English | 中文

聊天演示 | Discord

</div>

TinyLlama项目旨在预训练一个1.1B参数的Llama模型,训练数据量为3万亿个token。通过一些适当的优化,我们可以在"仅仅"90天内使用16个A100-40G GPU完成这一目标🚀🚀。训练已于2023年9月1日开始。

<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/2f437da0-584e-4e25-ad18-485dc8da343c.png" width="300"/> </div>

我们采用了与Llama 2完全相同的架构和分词器。这意味着TinyLlama可以即插即用于许多基于Llama的开源项目。此外,TinyLlama仅有1.1B参数,非常紧凑。这种紧凑性使其能够满足许多对计算和内存占用有严格限制的应用需求。

新闻

  • 2023-12-18:添加了两个说明 12 解释了训练曲线的变化、项目进度和错误修复。
  • 2023-10-03:添加了使用llama.cpp进行推测解码的示例。请查看 speculative_decoding/README.md
  • 2023-10-02:1. 刚刚发布了1T token的检查点。2. 我们在这里记录了所有中间检查点。
  • 2023-09-28:添加了Discord服务器。
  • 2023-09-18:1. 我们添加了一个聊天演示,让您可以立即试用TinyLlama-Chat-V0.1。
  • 2023-09-16:1. 我们发布了在503B token上训练的中间检查点。2. 我们发布了一个在OpenAssistant上微调的聊天模型,并添加了简单的微调脚本。3. 在EVAL.md中添加并记录了更多评估基准。

评估

您可以在EVAL.md中找到TinyLlama的评估结果。

发布计划

我们将按照以下计划发布中间检查点。

基础模型:

日期HF 检查点Token数步骤常识平均分
2023-09-01Pythia-1.0B300B143k48.30
2023-09-04TinyLlama-1.1B-intermediate-step-50k-105b105B50k46.11
2023-09-16TinyLlama-1.1B-intermediate-step-240k-503b503B240K48.28
2023-10-01TinyLlama-1.1B-intermediate-step-480k-1T1T480k50.22
2023-11-04TinyLlama-1.1B-intermediate-step-715k-1.5T1.5T715k51.28
2023-11-20TinyLlama-1.1B-intermediate-step-955k-2T2T955k51.64
2023-12-11TinyLlama-1.1B-intermediate-step-1195k-2.5T2.5T1195k53.86
2023-12-28TinyLlama-1.1B-intermediate-step-1431k-3T3T1431k52.99

我们正在撰写一份说明,提供从2T到2.5T检查点显著改进的可能解释(这与bos_id问题有关)

聊天模型:

日期HF 检查点Token数步骤常识平均分
2023-09-16TinyLlama-1.1B-Chat-V0.1503B240K49.57
2023-10-1TinyLlama-1.1B-Chat-V0.31T480K51.36
2023-11-04TinyLlama-1.1B-Chat-V0.41.5T715K52.30

请注意,基础模型的学习率尚未降低,因此我们建议您也使用微调后的聊天模型。

同时,您可以在这里实时跟踪交叉熵损失。

潜在用途

小而强大的语言模型在许多应用中都很有用。以下是一些潜在用途:

  • 辅助更大模型的推测解码。(参见Andrej Karpathy的教程
  • 部署在内存和计算能力受限的边缘设备上,用于诸如无需互联网连接的实时机器翻译等功能(4位量化的TinyLlama-1.1B的权重仅占用637 MB)。
  • 在视频游戏中实现实时对话生成。

此外,我们的代码可以作为对预训练5亿以下参数语言模型感兴趣的爱好者的参考,无需过早深入研究Megatron-LM

训练细节

以下是我们训练设置的一些详细信息:

设置描述
参数1.1B
注意力变体分组查询注意力
模型大小层数: 22, 头数: 32, 查询组数: 4, 嵌入大小: 2048, 中间大小 (Swiglu): 5632
序列长度2048
批量大小200万个token (2048 * 1024)
学习率4e-4
学习率调度余弦退火,2000步预热。参见Issue 27了解一个小bug
训练数据Slimpajama & Starcoderdata
数据预处理排除了Slimpajama的GitHub子集;从Starcoderdata中抽样所有代码
合并数据集大小约950B个token
训练期间的总token数3万亿(略多于3个周期/1430k步)
自然语言与代码比例7:3
硬件16个A100-40G GPU

极速快

我们的代码库支持以下功能:

  • 使用FSDP进行多GPU和多节点分布式训练。
  • flash attention 2。
  • 融合层归一化。
  • 融合swiglu。
  • 融合交叉熵损失。
  • 融合旋转位置编码。

致谢:flash attention 2、融合层归一化、融合交叉熵损失和融合旋转位置编码来自FlashAttention仓库。融合swiglu来自xformers

得益于这些优化,我们在每个A100-40G GPU上实现了每秒24k个token的吞吐量,这相当于56%的模型浮点运算利用率,且不使用激活检查点(我们预计在A100-80G上MFU会更高)。这意味着您可以在32小时内用8个A100训练一个符合chinchilla最优的TinyLlama(1.1B参数,22B token)。这些优化还大大减少了内存占用,让我们能够将1.1B参数的模型塞进40GB的GPU内存,并以每GPU 16k token的批量大小进行训练。您也可以在3090/4090 GPU上预训练TinyLlama,只需使用更小的每GPU批量大小。 下面是我们代码库与Pythia和MPT训练速度的比较。

模型在300B token上花费的A100 GPU小时数
TinyLlama-1.1B3456
Pythia-1.0B4830
MPT-1.3B7920

<small> Pythia的数据来自他们的论文。MPT的数据来自这里,其中他们说MPT-1.3B"在440个A100-40GB上训练了大约半天",处理了200B个token。 </small>

TinyLlama是一个相对较小的模型,使用分组查询注意力,这意味着它在推理时也很快。以下是我们测量的一些吞吐量:

框架设备设置吞吐量(token/秒)
Llama.cppMac M2 16GB RAM批量大小=1; 4位推理71.8
vLLMA40 GPU批量大小=100, n=107094.5

预训练

有关如何预训练TinyLlama的说明,请参阅PRETRAIN.md

微调

我们在 sft 中包含了一个简单的全参数微调和推理脚本。我们的 V0.1 聊天模型就是使用这个脚本进行微调的。我们使用的微调数据集是 openassistant-guanaco。 对于 RAM 小于 4GB 的微调,我们建议您参考 Qlorabitsandbytes 仓库。 我们没有进行广泛的超参数调优,也没有选择更高性能的微调数据集。我们希望社区能够探索 TinyLlama 的微调,并开发出更好的聊天模型。我将在此仓库中包含社区微调的模型。

待办事项

本项目仍在积极开发中。我们是一个非常小的团队。非常感谢社区的反馈和贡献。以下是我们计划进行的一些工作:

  • 添加在其他数据集上预训练的脚本。
  • 序列长度外推。
  • 测试 Llama-2-7B 的推测性解码。
  • 测试 RTX 3090/4090 的吞吐量。
  • 添加微调脚本。
  • 对下游任务进行适当的模型评估。
  • 在手机上运行的演示。
  • 探索检索增强。

致谢

本仓库基于 lit-gptflash-attention 构建。如果您还不了解这些优秀的开源项目,一定要去探索一下!

@online{lit-gpt,
  author    = {Lightning AI},
  title     = {Lit-GPT},
  url       = {https://github.com/Lightning-AI/lit-gpt},
  year      = {2023},
}
@article{dao2023flashattention2,
  title     ={Flash{A}ttention-2: Faster Attention with Better Parallelism and Work Partitioning},
  author    ={Dao, Tri},
  year      ={2023}
}

引用

本项目目前由新加坡科技设计大学 StatNLP 研究组的 Peiyuan Zhang *、Guangtao Zeng *、Tianduo WangWei Lu 共同贡献。

如果您认为我们的工作有价值,请引用:

@misc{zhang2024tinyllama,
      title={TinyLlama: An Open-Source Small Language Model}, 
      author={Peiyuan Zhang and Guangtao Zeng and Tianduo Wang and Wei Lu},
      year={2024},
      eprint={2401.02385},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}

常见问题

1. 为什么对一个 1.1B 的模型进行如此长时间的预训练是有意义的?这是否与 Chinchilla 缩放定律相矛盾?

上图是 Llama 2 论文中的训练损失曲线。这里我引用该论文的一段话:"我们观察到,在 2T 个 Token 的预训练之后,模型仍然没有显示出任何饱和的迹象"。这就是为什么我们认为对一个 1.1B 的模型进行 3T 个 Token 的预训练是合理的。即使损失曲线最终不会下降,我们仍然可以研究饱和现象并从中学到一些东西。

2. "饱和"是什么意思?

这张图来自 Pythia 论文,显示了 LAMBADA 准确率随总训练 Token 数(300B)的变化。"饱和"一词特指 70M 和 160M 模型。值得注意的是,即使是 410M 模型在 300B Token 时也没有饱和,它仍然呈现上升趋势,类似于更大模型的趋势。

Star 历史

Star 历史图表

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多