ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools(2024.7.16)

ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools(2024.7.16)

Code:https://github.com/THUDM and https://huggingface.co/THUDM

以下是模型架构的主要改进点:

  1. 无偏置(No Bias Except QKV):为了提高训练速度,除了Query、Key、Value(QKV)的偏置外,模型中去除了所有其他偏置项。这样做在长度外推方面观察到了轻微的性能提升。

  2. RMSNorm和SwiGLU:模型采用了RMSNorm替代LayerNorm,以及SwiGLU替代ReLU。这些替代策略被观察到可以提升模型性能。

RMSNorm:
RMSNorm ( x ) = x RMS ( x ) ⊗ g \text{RMSNorm}(x) = \frac{x}{\text{RMS}(x)} \otimes g RMSNorm(x)=RMS(x)xg
RMS ( x ) = 1 d ∑ i = 1 d x i 2 \text{RMS}(x) = \sqrt{\frac{1}{d} \sum_{i=1}^{d} x_i^2} RMS(x)=d1i=1dxi2

  • ( ⊗ \otimes ) denotes element-wise multiplication.
  • ( g g g ) is a learned scaling parameter.
  • ( d d d ) is the dimension of the input vector ( x x x ).

SwiGLU:
SwiGLU ( x ) = σ ( x W 1 + b 1 ) ⊗ ( x W 2 + b 2 ) \text{SwiGLU}(x) = \sigma(xW_1 + b_1) \otimes (xW_2 + b_2) SwiGLU(x)=σ(xW1+b1)(xW2+b2)
where:

  • ( σ \sigma σ ) is a sigmoid activation function (or another non-linear activation function for the gating part).
  • ( W 1 W_1 W1 ) and ( W 2 W_2 W2 ) are weight matrices.
  • ( b 1 b_1 b1 ) and ( b 2 b_2 b2 ) are bias vectors.
  • ( ⊗ \otimes ) represents element-wise multiplication.
  1. 二维旋转位置嵌入(Rotary Positional Embeddings, RoPE):为了适应GLM中的二维位置编码,将RoPE扩展为二维形式。

  2. 组查询注意力(Group Query Attention, GQA):为了在推理过程中减少KV缓存大小,用GQA替代了多头注意力(MHA)。由于GQA使用的参数少于MHA,因此增加了前馈网络(FFN)的参数数量,将dffn设置为隐藏大小的10/3,以保持模型大小不变。

  3. 上下文长度扩展:模型的上下文长度从最初的2K(ChatGLM),扩展到32K(ChatGLM2和ChatGLM3),再到128K和1M(GLM-4)。这种扩展不仅通过位置编码扩展和对长文本的持续训练实现,还通过长上下文对齐,使GLM-4能够有效处理长文本。

  4. 对齐技术:预训练为LLMs建立了基础,而后训练进一步细化这些模型以符合人类偏好。对于GLM-4,对齐主要通过监督式微调(SFT)和从人类反馈中学习的强化学习(RLHF)实现。SFT中使用真实的人类提示和交互,而不是基于模板或模型生成的响应,这对对齐质量至关重要。RLHF则可以进一步帮助解决响应拒绝、安全性、双语标记生成混合和多轮连贯性等问题。

  5. 智能工具集成:GLM-4 All Tools模型特别对齐,以更好地理解用户意图,并自主选择最合适的工具来完成任务。例如,它可以通过Web浏览器访问在线信息,使用Python解释器解决数学问题,利用文本到图像模型生成图像,并调用用户定义的函数。

实验结果:

  • 数据预处理包含了去重,过滤和编码三个过程,最终有10T的数据。去重简单在全部数据中去除重复元素,过滤了具有攻击性语言、占位符文本、源代码的数据,采用了byte pair encoding(BPE)编码。
  • 在SFT训练中发现,真实人类prompt的交互会比设计template进行模型交互更有利于提升对齐质量(Alignment Quality)。
  • Pretrain Loss能够一定程度预见在下游人物的指标,并且loss的下降只有当超过一定阈值才对于模型能力有较大提升。
  • 19
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东风中的蒟蒻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值