赞
踩
ChatGLM-6B作为首个针对中英双语训练并对中文进行优化的开源大规模语言模型,自3月14日开源以来,全球下载量已达300万,成为国内最火的开源语言大模型。5月份,科技部在中关村论坛上发布的《中国人工智能大模型地图研究报告》显示 ChatGLM-6B 位列大模型开源影响力第一名。ChatGLM-6B是基于GLM架构对中文问答和对话进行了优化。
1.目标:
NLU(自然语言理解:分类、实体识别)
Unconditional generation(无条件文本生成:随机写诗等任务)
Conditional generation(条件文本生成:摘要生成等任务)
2.解决方案
○具体流程
⭐️(核心)自回归空白填充(Autoregressive Blank Infilling)
(a)输入文本,对不同长度的文本跨度进行泊松采样,得到两个文本跨度
(b)每个跨度用[MASK]标记,原文本分为两部分:A为损坏的文本,B为不同的文本跨度。B中不同跨度的顺序可以随机排列
(c)GLM自回归生成B中的内容,每个跨度以[S]开始,[E]结束。
2D位置编码:两个向量都被添加到输入标记嵌入中。该编码方法确保模型在预测时不知道被屏蔽跨度的长度。这种设计适合下游任务,因为通常生成的文本的长度是事先未知的。(如果1D位置编码,被mask的部分,通过位置编码是知道mask文本的长度)
(d)自注意力掩码,A的token可以关注自身,但不能关注B,B的token可以关注A和B的前向
○损失函数(条件概率)
○多任务预训练
短跨度预测,为NLU任务,为了在一个模型中同时具备文本生成:
1.文档级别:对单一跨度进行采样,其长度从原始长度的50%-100%的均匀分布中抽出。该目标为生成长文本。
2.句子级别:限制被mask的跨度必须是完整的句子。多个跨度(句子)被取样,以覆盖15%的原始token。目标是针对seq2seq任务,其预测往往是完整的句子或段落。
○模型结构
GLM使用单一的Transformer,并对架构进行了一些修改:
(1)调整了层归一化和残差连接的顺序(post_LN ——> pre_LN);
(2)使用单一的线性层进行输出token预测;
(3)用GeLU替换ReLU激活函数
○微调GLM
NLU任务:为了避免训练与预测不一致,在微调NLU任务时,将标签y(position)映射成词good,输入为 x+[MASK]的prompt,进行文本生成,将生成结果在映射到y。
损失函数则变为分类任务的交叉熵:
(1)GLM-130B
3.前馈网络:Gated Linear Unit(GLU) + GeLU作为激活函数
2、ChatGLM
3、ChatGLM-6B
4、ChatGLM2-6B
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。