首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

[LLMs - LLaMA - 2023]Meta开源的语言大模型LLaMA羊驼模型

[「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 向公众开放。

针对人群:

不知道如何「入门算法 「,对于」初学者」这里有完整的学习路径图(历史中「经典」模型文献和论文复现),完成后将成为合格「初级算法工程师」

不知道「行业解决方案」,对于「算法工程师」这里有具体的行业中落地方案和呈现出商业价值,阅读后提供新的解决方法想法和成为「算法专家」

蓦然回首,自己从算法(数学)专业学习以及工作已十年有余。

同时希望大家成为算法经历者、分享者和创造者。

入群

  • 发表于:
  • 原文链接https://page.om.qq.com/page/ORWYVSdpQEVUakraIFrwUTeQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券