论文:https://arxiv.org/pdf/2302.13971
研究背景与动机
之前的效果模型要么不开源,要么用了私有数据训练,完全开源的效果都不理想。
研究方法
使用完全开源的数据(1.4 万亿 tokens),并没有构建过大的模型(7B 到 65B),做了一系列优化,如 RMSNorm 的 Pre-normalization 减少计算量,FFN 的激活函数替换为 SwiGLU 增强表现能力,旋转位置编码 RoPE 提升模型长度外推性。这些优化基本都成了后续大模型设计的标配。
主要发现
算是首个完全开源且效果和闭源模型相当的 LLM 模型,候选 qwen 也是基于这个模型改进得到的。
摘要
发布 LLaMA 系列模型,参数量从 7B 到 65B 量级,训练数据在 1.5 万亿 tokens,且全是开源的数据,13B 参数量的比 175B 的 GPT-3 性能还要好,65B 的模型达到当前最好的大语言模型效果。
1 引言
在算力固定的情况下,小模型 + 大数据比大模型 + 小数据效果更好,而且小模型 + 大数据可能训练时间很长,但是推理时长比较短。
2 方案
2.1 预训练数据
全是开源数据,大部分都是其他 LLM 训练用的数据。
- 英文爬虫获取数据(67%)。预处理之前别人通过爬虫获得的(2017-2020)文献,但做了以下处理:1)数据去重。2)用 fastText 线性分类器区分是否英文数据,把非英文的踢掉。3)ngram 语言模型滤除内容质量低下的数据。4)训练了一个分类器区分是否来自维基百科数据,把非维基百科的数据丢弃掉。
- C4 数据(15%)。预处理包括去重以及去非英文数据。
- github 数据(4.5%)。去重,去低质量数据。
- Wiki 百科(4.5%)。2022 年 1 月 -2022 年的数据。把超链接、评论、及废话去掉。
- Gutenberg and Books3 [4.5%]。来自书本的语料库,也做了去重。
- ArXiv [2.5%]。移除文章第一节前的所有内容,包括作者信息也被移除。
- Stack Exchange [2%]。有高质量问答数据的网站,类似 stackoverflow。
分词器:BPE。 最终获得共计 1.4T(1.4 万亿)个训练 tokens,大多数训练数据只会被训练一次,除了维基百科和书本里的数据训练了两次。
2.2 架构
基于 Transformer 架构,并混合了后续模型提出的各种优化方法。包括:
- Pre-normalization [GPT3]。使用 RMSNorm 在 transformer 子层输入之前先做归一化,而不是像标准的 transformer 一样在输出之后做 LayerNorm 归一化,可以提升训练的稳定性。注:LayerNorm 和 RMSNorm 的主要区别在于是否有中心化,LayerNorm 会减去特征均值,实现数据中心化,而 RMSNorm 没有这一步,故不会中心化。在大模型训练时,中心化不是必须的,而缩放是必要的,且 RMSNorm 计算量更小。

- SwiGLU activation function [PaLM]。SwiGLU 替换 FFN 层中 ReLU 层。SwiGLU 中的 G 即 gate,引入了门控(0~1)之间权重逐元素和线性变换后的原始值相乘。虽然增加了计算量,但在大模型中表现能力更好,基本是现代大模型的标配。












