LLaMA: Open and Efficient Foundation Language Models笔记

LLaMA: Open and Efficient Foundation Language Models

摘要

  • 一个基础语言模型的集合,参数范围从7B到65B
  • 在数万亿的token上训练的模型,不依赖于专有的和不可访问的数据集
  • 大多数基准测试中优于GPT-3 (175B)
  • LLaMA65B与最好的模型Chinchilla-70B和PaLM-540B具有竞争力
  • 全部模型开源!!

引言

  • 最近的工作表明,对于给定的计算预算,最佳性能不是由最大的模型实现的,而是由在更多数据上训练的较小模型实现的
  • 最近研究缩放定律的目标是确定如何为特定的训练计算开支最好地缩放数据集和模型大小。然而,这个目标忽略了推理预算,这在大规模服务语言模型时变得至关重要
  • 在200B token上训练10B模型,作者发现7B模型的性能即使在1Ttoken之后也会继续提高
  • 与Chinchilla、PaLM或GPT-3不同,只使用公开可用的数据
  • 对transformer架构所做的修改

方法

整个训练数据集在标记化后大约包含1.4T

预训练数据集LLaMA: Open and Efficient Foundation Language Models笔记_第1张图片

分词器

  • 使用字节对编码(BPE)算法对数据进行标记
  • 使用来自SentencePiece 的实现
  • 将所有数字分割为单独的数字,并退回到字节来分解未知的UTF-8字符

结构

网络是基于transformer架构的

利用了随后提出的各种改进,并在不同的模型中使用,如PaLM

以下是与原始架构的主要区别,以及我们在哪里找到了这一变化的灵感(括号中):

  • Pre-normalization [GPT3]:
    • 为了提高训练的稳定性,将每个transformer子层的输入归一化,而不是输出归一化
    • 使用由Zhang和Sennrich引入的RMSNorm归一化函数
  • SwiGLU激活函数[PaLM]:
    • SwiGLU激活函数来取代ReLU非线性
    • 我们使用2/3*4d的维度,而不是PaLM中的4d
  • Rotary Embeddings [GPTNeo]:
    • 去掉了绝对位置嵌入,取而代之的是旋转位置嵌入(RoPE)

优化器

  • AdamW优化器:超参数:β1 = 0.9, β2 = 0.95
  • 使用余弦学习率schedule:最终的学习率等于最大学习率的10%,使用0.1的权重衰减和1.0的梯度裁剪
  • 2000 warmup step:随着模型的大小而改变学习率和批处理大小

有效的实现

  • 该实现可在xformers库中获得
  • causal multi-head attention减少内存使用和运行时间
  • 不存储注意力权重,也不计算由于语言建模任务的causal性质而被掩盖的query/key分数
  • 减少激活量
  • 手动实现反向传播,而不是autograd

任务的causal性质而被掩盖的query/key分数

  • 减少激活量
  • 手动实现反向传播,而不是autograd

你可能感兴趣的:(#,自然语言,语言模型,自然语言处理,深度学习)