大模型训练之模型篇EBET易博

  新闻资讯     |      2023-09-04 11:49

  在训练期间,数据集不按其大小进行采样,而是质量较高的数据集采样更频繁,因此CommonCrawl和Books2数据集在训练期间采样不到一次,但其他数据集采样2-3次。这基本上是接受一小部分过拟合,以换取更高质量的训练数据。

  PaLM比较了三种不同的模型规模:540B、62B和8B。每个标记的FLOPs数量大约等于参数数量,因为这些模型是标准的密集Transformer。这些模型使用表中的超参数构建。这三个模型使用相同的数据和词汇表进行相同的训练(除了批量大小),feed-forward size dff始终为dmodel的4倍,注意力头大小始终为256。

  SwiGLU激活 - 作为MLP中间激活,已被证明与标准ReLU,GeLU或Swish激活相比显着提高了效果

  并行层 - 我们在每个Transformer块中使用“并行”形式,而不是标准的“串行”形式。具体而言,标准形式可以写成: y = x + MLP(LayerNorm(x + Attention(LayerNorm(x))) 而并行形式可以写成: y = x + MLP(LayerNorm(x))+ Attention(LayerNorm(x)) 并行形式在大规模情况下训练速度约快15%

  消融实验显示,在8B规模上略有质量下降,但在62B规模上没有下降,作者推断并行层在540B上无影响

  多查询注意力 - 标准Transformer公式使用k个注意力头,其中每个时间步的输入向量被线性投影到形状为[k,h]的“查询”,“键”和“值”张量中,其中h是注意力头大小。而在这里,关键字/值投影对于每个头是共享的,即“键”和“值”被投影到[1,h],但“查询”仍被EBET易博app投影到形状[k,h]。这对模型质量和训练速度的影响是中性的,但在自回归解码时间中会产生显着的成本节省。这是因为标准多头注意力在自回归解码期间对加速器硬件的效率较低,因为键/值张量在示例之间不共享,每次只解码一个标记

  RoPE嵌入 - 使用RoPE嵌入而不是绝对或相对位置嵌入,因为RoPE嵌入在长序列长度上的性能表现更好。

  无偏差 - 在任何dense kernels 或 layer norms中都没有使用偏差,这会增加大型模型的训练稳定性

  词汇表 - 使用具有256k个标记的SentencePiece词汇表,这是为了支持训练语料库中的大量语言而不会产生过多的标记化。词汇表是从训练数据生成的,这可以提高训练效率。词汇表完全无损且可逆,这意味着在词汇表中完全保留了空格,并且超出词汇表的Unicode字符会被拆分为UTF-8字节,每个字节都有一个词汇表标记。数字总是分成单个数字标记(例如,“123.5→1 2 3 . 5”)