【大模型】LLaMA: Open and Efficient Foundation Language Models

链接:https://arxiv.org/pdf/2302.13971

论文:LLaMA: Open and Efficient Foundation Language Models

Introduction

  1. 规模和效果
    7B to 65B,LLaMA-13B 超过 GPT-3 (175B)
  2. Motivation
    如何最好地缩放特定训练计算预算的数据集和模型大小,并不是模型参数越大越好,给定一个目标级别的性能,首选模型不是训练最快的而是推理最快的

Approach

  1. 预训练数据
    表中数据的混合:
  • CommonCrawl数据:对数据进行重复数据删除,使用 fastText 线性分类器执行语言识别以删除非英语页面并使用 ngram 语言模型过滤低质量的内容。
  • C4:发现使用不同的预处理 CommonCrawl 数据集可以提高性能。对于质量使用启发式方法,比如标点符号和单词句子数量
  • Github:根据字母数字字符的线长或比例过滤低质量的文件,并删除带有正则表达式的样板,例如标题;在文件级别对结果数据集进行重复数据删除
  • Wikipedia:20种语言,删除超链接、评论和其他格式样板。
  • Gutenberg and Books3:两个书籍数据,书籍级别执行重复数据删除,删除内容重叠超过 90% 的书籍。
  • ArXiv:科学数据,在第一部分和书目之前删除了所有内容,删除了评论、tex 文件、以及用户编写的内联扩展定义和宏,以增加论文之间的一致性。
  • Stack Exchange:涵盖各种领域的高质量问题和答案网站,范围从计算机科学到化学,从 28 个最大的网站保留数据,从文本中删除 HTML 标签并按分数对答案进行排序
  • Tokenizer:BPE,将所有数字拆分为单个数字,并回退到字节以分解未知的 UTF-8 字符。共计1.4T tokens。
  • 训练集使用:除了 Wikipedia 和 Books 域之外,每个token在训练期间仅使用一次,执行大约两个 epoch。
  1. 结构
  • Pre-normalization(GPT-3):提高训练稳定性(后归一化是针对输出,前归一化是在每个sub-layer的输入),RMSNorm「对于 Post-LN 方式,Layer Norm 放置在 Self-Attn sub layer 和 FFN sub layer 的 output 上,实证发现会导致 output 上的梯度过大,训练时不稳定,loss 不能稳定下降;Pre-LN 方式下,梯度值则比较稳定」

  • SwiGLU activation function(PaLM)

    原始的 Transformer 中 FFN layer 使用 ReLU 激活函数,如下:

    对 FFN 的实现方式进行改进,可以提升 Transformer 在语言模型上的表现,主要思路是借鉴 Gated Linear Units (GLU) 的做法,并将 GLU 中的 sigmoid 激活函数更换为 Swish 激活函数。原始 GLU 的形式:

    将其中的 sigmoid 激活函数σ更改为Swishβ​ 激活函数 (f(x)=x⋅sigmoid(β⋅x)),则有:

    FFN 可使用 SwiGLU 替换为 (此处省略了 Bias 项):

  • Rotary Embeddings [GPTNeo]:rotary positional embeddings (RoPE)

    Rope和相对位置编码相比油更好的外推性(外推性是指大模型在训练时和预测时的输入长度不一致,导致模型的泛化能力下降的问题)

    对于 token 序列中的每个词嵌入向量,首先计算其对应的 query 和 key 向量,然后对每个 token 位置都计算对应的旋转位置编码,接着对每个 token 位置的 query 和 key 向量的元素按照 两两一组 应用旋转变换,最后再计算 query 和 key 之间的内积得到 self-attention 的计算结果。

  1. 优化器
    AdamW,β1 = 0.9, β2 = 0.95,cosine learning rate schedule,weight decay of 0.1 and gradient clipping of 1.0
  2. 高效实现
  • 使用因果多头注意力的有效实现来减少内存使用和运行时间,xformers library;不存储注意力权重,也不加算被mask的key/query的分数【Causal Multi-Head Attention:由于是解码器,为了保持 Left-to-Right 自回归特点而 Mask 掉的那些位置,不计算 Attention weights.】
  • 减少了在后向传递期间重新计算的激活量
  • 使用模型和序列并行性来减少模型的内存使用
  • 重叠网络上的激活和 GPU 之间的通信(由于 all_reduce 操作)
  • 训练 65B 模型,2048个80GB A100 ,380 个token/s/GPU。 1.4T token的数据集训练 21 天

Results

包括zero-shot 和 few-shot 任务,20个benchmark

  1. Common Sense Reasoning
  2. 闭卷问答


    模型推理可以在单个v100运行
  3. 阅读理解
  4. 数学推理
    Minerva 是一系列 PaLM 模型,在从 ArXiv 和 Math Web Page 中提取的 38.5B 标记上进行微调,而 PaLM 或 LLAMA 都没有在数学数据上进行微调

    maj1@k 表示我们为每个问题生成 k 个样本并执行多数投票的评估
  5. 代码生成
  6. 大规模多任务语言理解

预训练数据中使用了有限数量的书籍和学术论文

  1. 训练期间性能的演变

指令微调

非常少量的微调提高了 MLU 的性能,进一步提高了模型遵循指令的能力

偏见、有毒性和错误信息

大型语言模型已被证明可以重现和放大训练数据中存在的偏差

  1. RealToxicityPrompts基准

    RealToxicityPrompts 由模型必须完成的大约 100k 个提示组成;然后通过向 PerspectiveAPI 3 请求自动评估毒性分数(分数越高,有毒越多)

  2. CrowS-Pairs

    该数据集允许测量 9 个类别中的偏见:性别、宗教、种族/颜色、性取向、年龄、国籍、残疾、身体外观和社会经济地位

    分数越高Bias越大

  3. WinoGender(性别偏见)

  1. TruthfulQA

该基准可以评估模型生成错误信息或虚假声明的风险

与 GPT-3 相比,LLaMA在这两个类别中得分都更高,但正确答案的比率仍然很低

总结

贡献点一:"以少胜多"

  • LLaMA-13B outperforms GPT-3-175B on most benchmarks, despite being 10× smaller;
  • LLaMA-65B is competitive with PaLM-540B;
    贡献点二:open-sourcing
  • 训练数据全都 publicly available;
  • 参数公开;

Toread:Chinchilla and PaLM

相关推荐
青橘MATLAB学习19 分钟前
机器学习核心知识:从基础概念到关键算法
人工智能·算法·机器学习·逻辑回归·监督学习·梯度下降法·分类算法
贝塔西塔19 分钟前
生成对抗网络(GAN)原理详解
人工智能·深度学习·生成对抗网络
体育分享_大眼28 分钟前
足球AI模型:一款用数据分析赛事的模型
人工智能·数据挖掘·数据分析
loinleeai42 分钟前
【PyTorch】PyTorch中的非线性激活函数详解:原理、优缺点与实战指南
人工智能·pytorch·python·神经网络·目标检测·机器学习·计算机视觉
2401_878624791 小时前
opencv图片颜色识别
人工智能·opencv·计算机视觉
云布道师1 小时前
基于PAI+专属网关+私网连接:构建全链路 Deepseek 云上私有化部署与模型调用架构
人工智能·阿里云·云计算·云布道师
OpenVINO生态社区1 小时前
【机器人创新创业应需明确产品定位与方向指南】
人工智能·机器人
云惠科技(SEO)1 小时前
泛目录站群技术架构演进观察:2025年PHP+Java混合方案实战笔记
java·人工智能·搜索引擎
Jamence1 小时前
多模态大语言模型arxiv论文略读(二十四)
人工智能·计算机视觉·语言模型
QQ_7781329742 小时前
从文本到视频:基于扩散模型的AI生成系统全解析(附PyTorch实现)
人工智能·pytorch·python