SDU软件创新实训(三)

三、使用chatglm-6B进行训练和微调(一)

ChatGLM-6B 是一个开放的双语(中英)语言模型,拥有 62 亿个参数。它基于通用语言模型 (GLM) 架构针对中文对话进行了优化。GLM 是一个预训练框架,旨在结合自动编码器模型(如 BERT)和自回归模型(如 GPT)的优势。GLM 框架会从输入文本中随机删除连续的标记跨度(自动编码方法),并训练模型按顺序重建跨度(自回归预训练方法)。ChatGLM-6B 是在 1 万亿个 token 上进行训练的,内容包括中文和英文。训练数据中英文与中文的确切比例可能因模型的具体版本而异。尽管如此,ChatGLM 的作者表示,它专门针对中文问答和对话进行了优化。由于参数数量相对较少,您可以在消费级显卡上本地试用。但是,为了在生产中实现更好的延迟和吞吐量,我们建议在性能更高的显卡上部署此模型。

查找论文GLM 架构,包括如何对采样的文本跨度进行打乱和屏蔽,有关这方面的更多信息。

下图(从高层次)展示了如何基于自回归预训练来训练 ChatGLM。下图更详细地展示了 GLM 架构,包括如何对采样的文本跨度进行打乱和屏蔽。

这篇文章提出了一种基于自回归空白填充的预训练框架,名为 GLM(通用语言模型)。按照自动编码的思想,从输入文本中随机删除连续的标记跨度,并按照自回归预训练的思想训练模型以顺序重建跨度。相比于使用空白填充进行文本到文本的预训练,作者提出了两项改进,即跨度改组和2D位置编码。

图 2 说明了 GLM 的实现。GLM 使用单个 Transformer,并对架构进行了几项修改:(1) 重新排列了层规范化和残差连接的顺序,这对于大规模语言模型避免数值错误至关重要;(2) 我们使用单个线性层进行输出标记预测;(3) 用 GeLU 替换ReLU。

2D Positional Encoding

自回归空白填充任务的挑战之一是如何对位置信息进行编码。Transformer 依靠位置编码来注入 token 的绝对位置和相对位置。我们提出 2D 位置编码来应对这一挑战。具体来说,每个 token 都用两个位置 id 进行编码。第一个位置 id 表示损坏文本 xcorrupt 中的位置。对于掩码跨度,它是相应 [MASK] token 的位置。第二个位置 id 表示跨度内位置。对于 A 部分中的 token,它们的第二个位置 id 为 0。对于 B 部分中的 token,它们的范围从 1 到跨度的长度。两个位置 id 通过可学习的嵌入表投影到两个向量中,这两个向量都添加到输入 token 嵌入中。我们的编码方法确保模型在重建它们时不知道掩码跨度的长度。设计适合下游任务,因为通常生成的文本的长度是事先未知的。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值