主页 > 开源代码  > 

ChatGLM

ChatGLM

ChatGLM 实现思想模型结构配置迭代版本

ChatGLM-6B : 清华大学的一个开源、支持中英双语的对话语言模型,基于 General Language Model(GLM)架构,具有 62 亿参数

特点 :

优点 : INT4下,只要 6GB 显存 ; ChatGLM2-6B 序列长度达 32K ; 人类类意图对齐训练缺点 : 模型容量小, 模型记忆和语言能力较弱 ; 多轮对话能力较弱

衍生应用 :

LangChain : ChatGLM 应用 , 实现基于可扩展知识库的问答闻达 : 基于 ChatGLM-6B 实现类 ChatPDF 功能 实现思想

GLM : 基于自回归空白填充目标的通用预训练框架

原理 : 输入文本中随机挖去一些连续的文本片段,然后训练模型按照任意顺序重建这些片段

具体实现思想:

原始文本 x=[x_1,x_2,...,x_6] 随机进行连续 mask,如 : mask掉[x_3]和[x_5,x_6]将[x_3]和[x_5,x_6]替换为[MASK],并打乱 PartB 顺序。为了捕捉跨度之间的内在联系,才随机交换跨度的顺序GLM 自回归地生成 PartB。每个片段在输入时 , 前面加上[S],在输出时 , 后面加上[E]。表示不同片段之间的位置关系自注意力掩码 (灰色区域被掩盖) : PartA 词语能自我看到 (图蓝色框) ,但不能看到 PartB。PartB 词语能看到 PartA 和 PartB 中的前面的词语 (图黄色 , 绿色框对应两个片段)

模型结构

ChatGLM : 采用 Transformer 的改进 Decoder 模块,又名 Prefix-Decoder

改动点 :

embedding : embedding 层的梯度缩小10倍,减小了梯度的范数 , 提升训练稳定性layer normalization : 基于 DeepNorm 的 post layer norm激活函数 : 用 GeGLU 替换 ReLU 激活函数位置编码 : 用 旋转位置编码 ROPE 替换 绝对位置编码 配置

ChatGLM-6B 参数 :

配置数值参数6.2B隐藏层维度4096层数28注意力头数32训练数据1T词表大小130528最大长度2048

硬件要求 :

量化等级最低GPU显存 (推理)最低GPU显存 (高效参数微调)FP16(无量化)13GB14GBINT810GB9GBINT46GB7GB 迭代版本

ChatGLM2-6B : 比第一代 , 改进 :

更强大的性能 : 在各项对话任务中性能提升了整整571%更长的上下文 : 支持 32K 的上下文长度,而 ChatGLM-6B 只能支持2K更高效的推理 : 采用 FlashAttention 技术,在更低的显存资源下以更快的速度进行推理

ChatGLM3-6B : 比前两代 , 改进 :

多模态理解能力 : 在 10 余个国际标准图文评测集上取得 SOTA代码增强模块 : 根据用户需求生成代码并执行,自动完成数据分析、文件处理等复杂任务网络搜索增强 : 能自动根据问题在互联网上查找相关资料并在回答时提供参考相关文献或者文章链接
标签:

ChatGLM由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“ChatGLM