【LLM系列之底座模型对比】LLaMA、Palm、GLM、BLOOM、GPT模型结构对比

LLama

  • [GPT3] 使用RMSNorm(即Root Mean square Layer
    Normalization)对输入数据进行标准化,RMSNorm可以参考论文:Root mean square layer
    normalization。
  • [PaLM]使用激活函数SwiGLU, 该函数可以参考PALM论文:Glu variants improve transformer。
  • [GPTNeo]使用Rotary Embeddings进行位置编码,该编码可以参考论文 Roformer: Enhanced
    transformer with rotary position embedding。
  • 使用了AdamW优化器,并使用cosine learning rate schedule,
  • 使用因果多头注意的有效实现来减少内存使用和运行时间。该实现可在xformers

Palm

  • 采用SwiGLU激活函数:用于 MLP 中间激活,采用SwiGLU激活函数:用于 MLP 中间激活,因为与标准 ReLU、GELU
    或 Swish 激活相比,《GLU Variants Improve Transformer》论文里提到:SwiGLU
    已被证明可以显著提高模型效果
  • 提出Parallel Layers:每个 Transformer 结构中的“并行”公式:与 GPT-J-6B
    中一样,使用的是标准“序列化”公式。并行公式使大规模训练速度提高了大约 15%。消融实验显示在 8B 参数量下模型效果下降很小,但在
    62B 参数量下没有模型效果下降的现象。
  • Multi-Query Attention:每个头共享键/值的映射,即“key”和“value”被投影到 [1,
    h],但“query”仍被投影到形状 [k, h],这种操作对模型质量和训练速度没有影响,但在自回归解码时间上有效节省了成本。
  • 使用RoPE embeddings:使用的不是绝对或相对位置嵌入,而是RoPE,是因为 RoPE 嵌入在长文本上具有更好的性能 ,
  • 采用Shared Input-Output Embeddings:输入和输出embedding矩阵是共享的,这个我理解类似于word2vec的输入W和输出W’:

GLM

  • Layer Normalization的顺序和残差连接被重新排列,
  • 用于输出标记预测的单个线性层;
  • ReLU s替换为GELU s
  • 二维位置编码

BLOOM

  • 使用 ALiBi 位置嵌入,它根据键和查询的距离直接衰减注意力分数。 与原始的 Transformer 和 Rotary 嵌入相比,它可以带来更流畅的训练和更好的下游性能。ALiBi不会在词嵌入中添加位置嵌入;相反,它会使用与其距离成比例的惩罚来偏向查询键的注意力评分。

  • Embedding Layer Norm 在第一个嵌入层之后立即使用,以避免训练不稳定。

  • 使用了 25 万个标记的词汇表。 使用字节级 BPE。 这样,标记化永远不会产生未知标记

  • 两个全连接层:

GPT

GPT 使用 Transformer 的 Decoder 结构,并对 Transformer Decoder 进行了一些改动,原本的 Decoder 包含了两个 Multi-Head Attention 结构,GPT 只保留了 Mask Multi-Head Attention,如下图所示:

猜你喜欢

转载自blog.csdn.net/yanqianglifei/article/details/130757394