[「Pascal算法摆渡人」]「公众号」、「知乎」、「小红书」等感谢关注。Hi,大家好!我是Pascal_M。
我们一起读起来!!!了解过往历史文献的方法和不足之处,展望最新的文献和技术。
「标题」:LLaMA: Open and Efficient Foundation Language Models
「时间」:2023
LLaMA模型是开源新的语言大模型。
1 遇到问题
由于OpenAI的GPT不开源,Meta开源出整个语言大模型是如下训练全过程。
「问题来了」,LLaMA模型网络结构是如何设计?是如何训练?测试效果如何?
都是我们要关注的。
2 前期提要
1)语言大模型
大型语言模型 (LLM) 是在自然语言处理 (NLP)和自然语言生成 (NLG)任务中利用深度学习的基础模型。
为了帮助他们学习语言的复杂性和联系,大型语言模型在大量数据上进行了预训练。
2)预训练数据集
English CommonCrawl 抓取从 2017 年至 2020 年的五个普通数据进行了预处理。
C4 数据集的预处理还包含去重和语言识别步骤
使用 Google BigQuery 上可用的公共 GitHub 数据集
添加了 2022 年 6 月至 8 月期间的维基百科转储,涵盖 20 种语言,使用拉丁文或西里尔文脚本:bg、ca、cs、da、de、en、es、fr、hr、hu、it、nl、pl , pt, ro, ru, sl, sr, sv, uk。
在训练数据集中包含两个图书语料库:古腾堡项目,其中包含公共领域的书籍,以及 ThePile 的 Books3 部分,这是一个用于训练大型语言模型的公开数据集。
处理 arXiv Latex 文件以将科学数据添加到我们的数据集中
包括一个批Stack Exchange 的抓取数据,这是一个提供高质量问题和答案的网站,涵盖从计算机科学到化学的各种领域。
使用字节对编码 (BPE) 算法对数据进行标记,使用 Sentence Piece 的实现(Kudo 和 Richardson,2018 年)。
总体而言,我们的整个训练数据集在标记化后包含大约 1.4T token。
3)原始 Transformer 架构
每个解码器(右边)由1个位置编码层与N个解码层( Decoder Layer )以及1个以全连接层和Sotfmax为激活函数组成。
重点关注:「解码器」
3 解决方案
1)网络结构
与 GPT-3 一样,LLaMA 仅使用 Transformer 的解码器架构来生成文本。
它还受益于其他模型的增强功能,例如 GPT-3、GPT-Neo、PaLM 等,以提高其性能。
1.1)Pre-normalization [GPT3]
原始的 Transformer 架构在自注意力层和前馈层之后应用层归一化。
LLaMA 将自注意力层和前馈层的输入归一化(预归一化)。
如今,预归一化在基于 transformer 的 LLM 中是相当标准的。使用 RMSNorm (均方根层归一化),它比层归一化更简单、更有效,但实现了相似的性能。
1.2)SwiGLU 激活函数 (PaLM)
原始的 Transformer 架构使用 ReLU 作为前馈层中的激活函数。
LLaMA 使用GLU (门控线性单元)的变体SwiGLU来提高前馈层的性能。
SwiGLU 是 GLU 的变体,用 Swish 代替了 sigmoid 激活函数
1.3)旋转嵌入(GPTNeo、ReFormer)
原始的 Transformer 架构使用(绝对)位置嵌入来编码序列中每个标记的位置。
LLaMA 使用RoPE(旋转位置嵌入),首先出现在RoFormer论文中。
它使用旋转矩阵对绝对位置进行编码,并在自注意力中结合相对位置依赖性。
1.4)高效因果多头注意力(xformer)
最初的 Transformer 架构使用了一个因果多头注意力层,它屏蔽了序列中的未来标记。然而,它是低效的,因为它在屏蔽未来的标记之前计算序列中所有标记的注意力分数。
LLaMA 使用更高效的因果多头注意力层,它只计算当前和过去标记的注意力分数。他们没有使用PyTorch 的autograd函数,而是实现了一个更高效的反向函数来减少内存占用。
2)训练策略
使用超参数的 AdamW 优化器、 2000 步:
β1 = 0.9,β2 = 0.95。
余弦学习率时间表(最终学习率是最大学习率的 10%)
权重衰减 0.1
梯度裁剪为 1.0
基于模型大小的各种学习率和批量大小:
在 2048 x A100 80GB 的服务器上, 训练 65B 的模型可以达到 380 tokens/sec/GPU, 训练 1.4T 个 tokens 大概需要 1.4e12 / (380 * 60 * 60 * 24 * 2048) = 20.82 天
4 实验结论
1)零样本
LLaMA 在各种基准测试中的零样本性能:
尽管 LLaMA-13B 小 10 倍,但在大多数基准测试中都优于 GPT-3。
LLaMA-33B 在所有报告的基准测试中都优于 Chinchilla-70B,但 BoolQ 除外。
除了 BoolQ 和 WinoGrande 之外,LLaMA-65B 在所有地方都超过了 PaLM-540B。
2)闭卷问答任务
在两个闭卷问答任务上将 LLaMA 与其他 LLM 进行了比较:TriviaQA 和 Natural Questions
LLaMA-13B 在这些基准测试中也与 GPT-3 和 Chinchilla 具有竞争力,尽管它要小 5-10 倍。它在推理期间在单个 V100 GPU 上运行。
LLaMA-65B 在零镜头和少镜头设置中实现了最先进的性能。
5 Pascal曰
1)LLaMA 是一个 LLM 家族,在公开可用的数据集上接受训练,并在各种基准测试中实现了最先进的性能。他们也比其他LLMs更有效率。
2)LLaMA 开源后,人们现在可以在他们的机器上微调如此强大的模型。这种训练改变了 NLP 研究的游戏规则,使研究人员能够更快地迭代并尝试更多的想法。
3)有些版本的 LLaMA 可以在智能手机上运行推理。它将为我们的智能设备上的智能助手开辟一个无限可能的领域。
我们期待在未来看到更高效的 LLMs 向公众开放。
针对人群:
不知道如何「入门算法 「,对于」初学者」这里有完整的学习路径图(历史中「经典」模型文献和论文复现),完成后将成为合格「初级算法工程师」。
不知道「行业解决方案」,对于「算法工程师」这里有具体的行业中落地方案和呈现出商业价值,阅读后提供新的解决方法想法和成为「算法专家」。
蓦然回首,自己从算法(数学)专业学习以及工作已十年有余。
同时希望大家成为算法经历者、分享者和创造者。
入群
领取专属 10元无门槛券
私享最新 技术干货