chatglm系列知识

一、目录

  1. chatglm 是什么语言模型与transformer decoder 的区别
  2. 解释prefix LM与Cause LM
  3. chatglm(prefix LM)与decoder-only LM 核心区别
  4. glm 架构
  5. chatglm 预训练方式
  6. chatglm 微调
  7. chatglm与chatglm2、chatglm3的区别
  8. chatglm 激活函数采用gelu, 为什么chatglm2 采用swish 激活函数?
  9. prefixLm 与decoder-only LM的优缺点?
    10 glm4 与chatglm3 的区别?

二、实现

  1. chatglm 是什么语言模型与transformer decoder 的区别
    1. GLM 预训练方式:自回归的空白填充,并通过 GLM 通过添加 2D 位置编码和打乱片段顺序来改进空白填充预训练。
    2. chatglm 为前缀语言模型(自回归空白填充的通用语言模型(GLM),prefix-LM。结构为:Prefix-LM中前半段深黑色的连线为双向语言模型的标准架构,而在后半段通过
    mask attetnion矩阵使其成为递归生成的单向语言模型。
    3. 模型架构为prefix decoder-only 模型架构,在输入上采用双向的注意力机制,在输出上采用单向注意力机制。在这里插入图片描述
    注意力为前缀注意力, 如输入x1 -x5, 第一时刻输出y1时,实际输入信息为x1-x3,第二第三时刻输出y2,y3 ,实际输入信息为x1-x3。第四时刻输出y4时,输入信息为x1-x4。在这里插入图片描述
  2. decoder-only 架构,也称Cause架构。
    在这里插入图片描述
    该类模型全程都是单向语言信息传输,其做法也是将attention后向信息部分mask掉在这里插入图片描述

2 解释prefix LM与Cause LM
prefix LM,前缀语言模型,在输入序列的开头添加一个可学习的任务相关的前缀,然后使用该前缀和输入序列一起生成输出。用于一道模型生成适应特定任务的输出。
causal LM,因果语言模型,也成为自回归语言模型,根据之前生成的token预测下一个token,在生成文本时,模型只能根据已经生成的部分生成后续部分,不能访问未来的信息。
3. chatglm(prefix LM)与decoder-only LM 核心区别
核心区别:多头注意力mask 不同。 prefix LM 有前缀。 cause LM 没有前缀。

  1. glm 架构在这里插入图片描述
    GLM使用Transformer,并对其架构进行了一些修改:
    (1)重新安排了层归一化和残差连接的顺序 (将Post-LN改成Pre-LN),这对于大规模语言模型避免数值误差至关重要;
    (2)使用单个线性层进行输出token预测;
    (3)用GeLUs替换ReLU激活函数。

  2. chatglm 预训练方式
    GLM(General Language Model)提出了一种新的训练架构,旨在吸收自回归和自编码两种方法的优势。主要思想是用生成式预测的方式来完形填空。在这里插入图片描述
    如图3所示,前面掩码,后面预测。(自回归填充)
    输入文本构成: 前半部分:有mask的文本,后半部分:被mask的词的真正预测。
    长文本生成具体包含以下两个目标:
    sentence-level (句子级):从文档中随机掩码若干文本片段,每个文本片段必须为完整的句子,被掩码的词数量为整个文档长度的15%。这一目标是能针对seq2seq任务,其预测往往是完整的整个句子或者段落。
    document-level (文档级):采样一个长度从原始文本长度的50%到100%的均匀分布中采样的片段。这预训练目标针对的是无条件的长文本生成。

  3. chatglm 微调
    在这里插入图片描述
    对于文本生成任务,给定的上下文构成了输入的 Part A,末尾附加了一个 mask 符号。模型自回归地生成 Part B 的文本。可以直接应用预训练的 GLM 进行无条件的生成,或者在下游的条件生成任务上对其进行微调。

  4. chatglm与chatglm2、chatglm3的区别

    1. chatglm 与chatglm2、chatglm3不同,chatglm2与chatglm3 架构相同。
      在 chatglm版本中,attention mask 分为两部分:Part A 和 Part B。Part A 部分是双向 Attention,Part B 部分是 Causal Attention。但在chatglm2 版本中,我们全部换成了 Causal Attention,不再区分是 Part A 还是 Part B,完全变成了 decoder-only 的架构。
    2. chatglm2改进点:1. 词表大小从15万528 缩小为6万5024 。
    3. 位置编码从每个模块编码升级为全局一份。
    4. 标准化有LayerNorm 改为RMSNorm。 采用FlashAttention, 长度2k -->32k,对话支持8k 数据。
    5. chatglm2 效果比chatglm 评分高,chatglm3 反而降低一些。
      chatglm–>chatglm2: 改进点:
      1. 训练数据: 1T -->1.4T
      词表缩小:150528–>65024
      2. 模型算子改进:
      更强大的性能:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型(Prefix-LM->Decoder-Only)。
      更长的上下文:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。
      更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。
      layerNorm—>RMSNorm
      chatglm2–>chatglm3:改进点:
      全新设计的 Prompt 格式
      一些工具的开发。
      训练数据更丰富。
  5. chatglm 激活函数采用gelu, 为什么chatglm2 采用swish 激活函数?
    使用Swish作为GLU块的激活函数可以增强模型的非线性能力,并在某些情况下提供更好的性能和更快的收敛速度。

  6. prefixLm 与decoder-only LM的优缺点?
    prefixLM 是Encoder-Decoder模型的一个变型,在标准的encoder-decoder 中,encoder和decoder 各自使用一个独立的transformer。
    而在PrefixLM中,Encoder和Decoder则共享了同一个Transformer结构,在Transformer内部通过Attention Mask机制来实现 。如图在这里插入图片描述
    decoder -only 采用自回归模式,就是根据历史的token来预测下一个token,也是在Attention Mask这里做的手脚。 在这里插入图片描述
    在多轮对话中,PrefixLM 会带来数据膨胀问题,影响模型训练效率。
    在处理多轮对话的过程中,设有3轮对话,Q1A1,Q2A2,Q3A3,PrefixLM需要构建三条样本:
    Q1->A1
    Q1A1Q2->A2
    Q1A1Q2A2Q3->A3
    而这种数据构建方式带来了严重的数据膨胀问题,影响模型训练的效率。
    Decoder-Only模型则可以利用Causal Mask的特性(每一个Token可以看到前面所有Token的真实输入),在一条样本中实现多轮对话:
    样本构建:Q1 A1 Q2 A2 Q3 A3
    Loss计算:只需要计算 A1 A2 和 A3 部分

  7. glm4 与chatglm3 的区别?
    待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/34632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

06 - matlab m_map地学绘图工具基础函数 - 绘制海岸线

06 - matlab m_map地学绘图工具基础函数 - 绘制海岸线 0. 引言1. 关于m_coast2. 关于m_gshhs3. 关于m_gshhs_c、m_gshhs_I、m_gshhs_i、m_gshhs_h、m_gshhs_f4. 关于m_shaperead5. 结语 0. 引言 本篇介绍下m_map中添加绘制海岸线的一系列函数及其用法,主要函数包括m…

【HTML03】HTML表单语法笔记,附带案例-作业

文章目录 表单概述一、表单容器(form)二、控件相关单词获取本次课程作业和案例 表单概述 允许用户输入信息,和提交信息的-收集用户信息。 表单:表单容器表单控件组成。 控件:输入框、单选按钮、多选、下拉框、多行文…

分布式数据库系统MyCat

MyCat简介 MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JD…

FreeRTOS实时操作系统

1.认识实施操作系统 1.1 裸机和实时操作系统 裸机: 早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,比如用51单片机基本就没有操作系统的概念。 通常把程序设计为前后台系统,主要分为两部分&a…

Redis(超详细)

Redis Redis概念: Redis是开源的,遵循BSD的,基于内存数据存储,被用于作为数据库、缓存机制、消息中间件; Redis的特点: 1.高性能key/valu内存xing数据库; 2.支持丰富的数据类型 3.支持持久化&am…

信息系统分析与设计:重点内容|UML在线绘制|数据库技术

目录 UML在线绘图工具信息系统分析与设计第1章 系统思想第2章 信息、管理与信息系统第3章 信息系统建设概论🌟第4章 系统规划🌟第5章 系统分析概述第6章 流程建模🌟业务流程图DFD数据流图🌟数据字典 第7章 用例建模(用例图)&#…

Docker搭建yolov8并训练、验证、推理化学仪器数据集

目录 1、安装docker 2、创建yolov8镜像 3、下载代码包 4、下载模型预训练权重 5、制作数据集 6、训练、验证及推理 (1)训练 (2)验证 (3)推理 中文标签显示问题 本文通过docker的方式搭建yolov8运…

OnlyOffice:现代办公的最佳选择

目录 安装 使用 评价 对比(与WPS) 总结 在当今的数字化办公时代,选择一款功能全面且易于使用的办公软件至关重要。OnlyOffice作为一款现代化的办公软件,凭借其强大的功能和友好的用户体验,逐渐成为了众多企业和个…

无线麦克风哪个品牌音质最好,一文告诉你无线领夹麦克风怎么挑选

随着直播带货和个人视频日志(Vlog)文化的兴起,以及自媒体内容创作的蓬勃发展,我们见证了麦克风行业的迅猛发展。在这一浪潮中,无线领夹麦克风以其无与伦比的便携性和操作效率,迅速赢得了广大视频制作者的喜…

前端HTML/CSS知识点系列

1. 什么是块级格式化上下文?【BFC(Block formatting context)】 BFC(Block FormattingContext,块级格式化上下文)是一个独立的渲染区域,其中的元素的布局不会受到外部元素的影响,反之亦然。BFC的创建有助于…

docker环境部署ruoyi系统前后端分离项目

创建局域网 docker network create net-ry 安装Redis 1 安装 创建两个目录 mkdir -p /data/redis/{conf,data} 上传redis.conf文件到/data/redis/conf文件夹中 cd /data/redis/conf 3.2 配置redis.conf文件 配置redis.conf文件: redis.conf文件配置注意&…

轻松两步,借助向量数据库 VectorDB 与千帆 Appbuilder 构建个性化本地问答知识库

在我们日常的工作和生活中,经常会遇到需要快速获取和管理大量信息的情况。无论是解答客户的问题,还是整理公司内部的资料,一个高效的知识库系统都能帮我们省下大量时间和精力。 为了帮助大家快速构建 RAG 应用,我们之前发布了一个…

虚拟机中VSCode+gcc环境配置

一、安装VSCode 1、在官网下载软件包: 地址:Documentation for Visual Studio Code 2、下载后在放置deb包的文件夹直接打开终端,然后输入sudo dpkg -i code_1.90.2-1718751586_amd64.deb 3、安装成功提示,并显示该图标 二、配…

nginx+keepalived+tomcat集群实验

如遇星河 | nginx+keepalived高可用集群实验 木子87 | Keepalived+Nginx+Tomcat 实现高可用Web集群 环境 192.168.40.204 tomcat-1 192.168.40.138 tomcat-2 安装tomcat [root@bogon local]# vim /etc/profile 添加环境变量 JAVA_HOME=/usr/local/java PATH=$J…

mac 常用工具命令集合

一、vim 快捷键 1、移动光标 h j k l 左 下 上 右 箭头上 上移一行 箭头下 下移一行 0 跳至行首,不管有无缩进,就是跳到第0个字符 ^ 跳至行首的第一个字符 $ 跳至行尾 gg 跳至文首 G 调至文尾 5gg/5G 调至第5行w 跳到下一个字首,按标点或…

微信小程序学习(十):生命周期

1、应用生命周期 生命周期说明onLaunch监听小程序初始化,全局只会执行 1 次onShow监听小程序启动或切前台onHide监听小程序切后台 🔗应用生命周期官方文档 App({/*** 当小程序初始化完成时,会触发 onLaunch(全局只触发一次&…

固特超声波清洗机怎么样?三大超声波清洗机美的、固特、希亦谁更好?

眼镜是我们日常生活中不可或缺的用具,但随着使用时间的增长,眼镜上的灰尘和污垢也会逐渐积累,传统的清洗方法往往难以彻底清洁。为了解决这一难题,超声波清洗机出现了!它利用超声波振动原理,可以轻松、快速…

加载资源文件失败

背景 自己以前装了一个海康的深度学习算法平台,试用期是一个月,过了一个月之后,因为没有有效注册码或者加密狗的支持了导致无法使用,于是打算卸载掉,在卸载一个软件的时候,无论是使用控制面板还是软件自带的…

AI写文章生成器,这些工具都可以一键智能生成文章

在AI技术快速发展的今天,AI写作生成器成为我们创作内容的重要工具,它可以提高我们的写作效率,节省时间和精力。下面小编就来和大家分享几款优秀的AI写作生成器,帮助你快速生成高质量的文章。 1.专业AI写作工具-文章在线生成器 专…

计算机网络 访问控制列表以及NAT

一、理论知识 1. 单臂路由 单臂路由是一种在路由器上配置多个子接口的方法,每个子接口代表不同的 VLAN,用于在一个物理接口上支持多 VLAN 通信。此方法使得不同 VLAN 之间可以通过路由器进行通信。 2. NAT (网络地址转换) NAT 是一种在私有网络和公共…