论文笔记--LLaMA: Open and Efficient Foundation Language Models
- 1. 文章简介
- 2. 文章概括
- 3 文章重点技术
- 3.1 数据集
- 3.2 模型训练
- 4. 数值实验
- 5. 文章亮点
- 6. 原文传送门
- 7. References
1. 文章简介
- 标题:LLaMA: Open and Efficient Foundation Language Models
- 作者:Touvron, Hugo, et al.
- 日期:2023
- 期刊:arxiv preprint
2. 文章概括
文章利用公开数据集训练并发布了一系列大语言模型LLaMA,在多个NLP下游任务中性能超过了GPT-3和PALM等模型。文章证明
3 文章重点技术
3.1 数据集
- English CommonCrawl(67%): 训练集的大部分构成为2017~2020年间的CommonCrawl数据。文章对其进行了行级别的去重->训练fastText分类模型移除非英文页面->用n-gram模型过滤低质量的页面->训练分类模型识别出没有被wiki引用的页面并将其移除
- C4(4.5%):选择Github上Apache/BSD/MIT license的项目。通过行长度、字母数字的比例过滤掉其中低质量的文件->移除标题、正则表达式等说明->文档级别去重
- Wikipedia(4.5%):增加2022年7~8月的wiki数据(包含20种语言)。移除超链接、评论和其它板式。
- Gutenberg和Book3(4.5%):增加两个书籍语料库。在文档级别进行去重,即移除有90%以上内容重叠的文档。
- ArXiv(2.5%):增加arXiv的latex文档从而使数据集包含科学语料库。移除文档第一节之前的内容和出传记->移除tex文档的评论->移除镜像和定义
- Stack Exchange(2%):Stack Exchange是一个高质量的问答网站,包含多个领域的问答数据。保留来自28个最大网站的数据->移除HTMLtags->将回答按照评分由高到低排序
3.2 模型训练
- 分词器:文章采用byte级别的BPE方法进行分词。总计得到1.4T的tokens,每个token在大部分训练任务中都只用一次(1epochs)
- pre-normalization:参考GPT-3[1],我们采用修正后的Transformer架构,即对每个transformer层的输入进行normalize。另外文章采用RMSNorm进行层正则。相比于Layer Normalization,RMSNorm不减去均值,只正则方差项(可提升速率)
- 激活函数:文章采用SwiGLU作为输出的激活函数, S w i G R U ( x ) = x ⊗ σ ( h ( x ) ) SwiGRU(x) = x \otimes \sigma(h(x)) SwiGRU(x)=x⊗σ(h(x))。
- 位置编码:文章采用了旋转式位置编码RoPE,具体可参考[2]
4. 数值实验
文章考虑了zero-shot和few-shot两种任务。相比于GPT-3, Chichilla, PALM, Gopher等大语言模型,LLaMA在两种任务上均表现出了出色的能力。特别地,在绝大多数zero-shot任务中,LLaMA 65B的性能优于PALM 540B:
由于LLaMA在部分专业领域数据量较少,模型表现不突出。比如MMLU任务中,PaLM同量级的模型效果和LLaMA几乎持平,PaLM 540B的效果要优于LLaMA。
为此,我们可以在部分领域对模型进行指令微调。实验表明,微调后的模型效果LLaMA-I超过其他数据量更大的大语言模型。
5. 文章亮点
文章给出了一系列大语言模型LLaMA 7B, 13B, 33B, 65B和LLaMA-I,开发者可以在不同的预算的条件下选择合适的模型进行使用。文章仅依赖公开数据集进行训练,且针对特定领域可以通过指令微调来增强模型。
6. 原文传送门
LLaMA: Open and Efficient Foundation Language Models
7. References
[1] 论文笔记–Language Models are Few-Shot Learners
[2] RoPE