ChatGLM学习

  • GLM paper:https://arxiv.org/pdf/2103.10360.pdf
  • chatglm 130B:https://arxiv.org/pdf/2210.02414.pdf

前置知识补充

双流自注意力

Two-stream self-attention mechanism(双流自注意机制)是一种用于自然语言处理任务的注意力机制。它是基于自注意力机制(self-attention)的扩展,通过引入两个独立的注意力流来处理不同类型的信息。

  • 在传统的自注意力机制中,输入序列中的每个位置都会计算一个注意力权重,用于对其他位置的信息进行加权聚合。而在双流自注意力机制中,会引入两个注意力流,分别用于处理不同类型的信息。

  • 双流自注意力,一个注意力流用于处理位置信息(position-based),另一个注意力流用于处理内容信息(content-based)。位置信息可以帮助模型捕捉序列中的顺序和结构,而内容信息可以帮助模型理解不同位置的语义关联

    • 具体来说,双流自注意力机制会为每个注意力流维护一个独立的注意力矩阵,用于计算注意力权重。然后,通过将两个注意力流的输出进行加权融合,得到最终的注意力表示。
    • 通过引入两个注意力流,双流自注意力机制可以更好地捕捉不同类型信息之间的关系,提高模型在语义理解和推理任务中的性能。它在机器翻译、文本分类、问答系统等任务中都有应用,并取得了一定的效果提升。

Transformer修改

层归一化是一种归一化技术,用于在网络的每一层对输入进行归一化处理。它可以帮助网络更好地处理梯度消失和梯度爆炸问题,提高模型的训练效果和泛化能力。

残差链接是一种跳跃连接技术,通过将输入直接添加到网络的输出中,使得网络可以学习残差信息。这有助于网络更好地传递梯度和学习深层特征,提高模型的训练效果和收敛速度。

在一般情况下,层归一化应该在残差链接之前应用。这是因为层归一化对输入进行归一化处理,而残差链接需要将输入直接添加到网络的输出中。如果将残差链接放在层归一化之前,会导致输入的归一化被破坏,从而影响模型的训练和性能。


关键术语

MLM:条件独立性假设,预测每个mask的时候是并行的,没有考虑mask之间的关系
Mask:一个单词一个mask,mask可以知道长度信息
Span:几个单词(或者更多个)一起mask掉,span不知道长度信息

把标签映射成词语,进行分类:

  • 标成mask,放在最后一个位置,X和Y可以形成一个流畅的语句,接近于自然语言

GLM

GLM是一种基于Transformer的语言模型,它以自回归空白填充为训练目标。

对于一个文本序列 x = [ x 1 , ⋅ ⋅ ⋅ , x n ] x=[x1, · · · ,xn] x=[x1,⋅⋅⋅,xn],从其中采样文本span{s1,· · ·,sm},其中每个si表示连续令牌的跨度,并用单个掩码替换si,要求模型对它们进行自回归恢复。

与GPT类模型不同的是,它在不Mask的位置使用双向注意力,因此它混合了两种Mask,以支持理解和生成:

[MASK]:句子中的短空白,长度加总到输入的某一部分
[gMASK]:随机长度的长空白,加在提供前缀上下文的句子末尾


GLM130B

1)架构选择

通用语言模型GLM

组件改进:旋转位置编码、DeepNorm、GeGLU

2)工程实现

并行策略:数据、张量、流水线3D并行

多平台高效适配

3)训练策略改进

梯度爆炸的问题,采用了嵌入层梯度缩减策略

解决注意力数值溢出问题,采用了FP32的softmax计算策略,训练稳定性有提升


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

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

相关文章

Feign负载均衡写法

Feign主要为了面向接口编程 feign是web service客户端,是接口实现的,而ribbon是通过微服务名字访问通过RestTemplate调用的,如下: 在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置它(类似…

AcWing 4405. 统计子矩阵(每日一题)

如果你觉得这篇题解对你有用,可以点点关注再走呗~ 题目描述 给定一个 NM 的矩阵 A,请你统计有多少个子矩阵 (最小 11,最大 NM) 满足子矩阵中所有数的和不超过给定的整数 K ? 输入格式 第一行包含三个整数 N,M 和 K。 之后 N 行每行包含 …

代码随想录算法训练营day58 | LeetCode 739. 每日温度 496. 下一个更大元素 I

739. 每日温度(题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台) 思路:新学习的单调栈做法,实质就是用一个栈存储中间结果。在针对数组某个元素的结果没找出来之前,将数…

OTFS-ISAC雷达部分最新进展(含matlab仿真+USRP验证)

OTFS基带参数设置 我将使用带宽为80MHz的OTFS波形进行设计,对应参数如下: matlab Tx仿真 Tx导频Tx功率密度谱 帧结构我使用的是经典嵌入导频帧结构,Tx信号波形的带宽从右图可以看出约为80Mhz USRP验证 测试环境 无人机位于1m处 Rx导频Rx…

kubernetes 之 minikube折腾记

参考官网教程,链接: https://minikube.sigs.k8s.io/docs/start/ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube安装完启动minikube:…

算法通关村第十八关——排列问题

LeetCode46.给定一个没有重复数字的序列,返回其所有可能的全排列。例如: 输入:[1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 元素1在[1,2]中已经使…

监控系统典型架构

监控系统典型架构如下: 从左往右看: 采集器是负责采集监控数据的,采集到数据之后传输给服务端,通常是直接写入时序库。 对时序库的数据进行分析和可视化。 告警引擎产生告警事件之后交给告警发送模块做不同媒介的通知。 可视化比…

【CUDA OUT OF MEMORY】【Pytorch】计算图与CUDA OOM

计算图与CUDA OOM 在实践过程中多次碰到了CUDA OOM的问题,有时候这个问题是很好解决的,有时候DEBUG一整天还是头皮发麻。 最近实践对由于计算图积累导致CUDA OOM有一点新的看法,写下来记录一下。包括对计算图的一些看法和一个由于计算图引发…

Unity 时间定时调度系统

C# Unity 时间定时调度系统 之前的文章也有写过时间调度系统,但是没有支持异步调度只有回调调度,而且效率和代码可读性不是很好,下面介绍一种更优质的时间调度系统 1.TimerAction 首先需要定义一个时间行为,每次延时后需要干什…

机器学习处理问题的基本路线

基本路线: 1.搭建环境/数据读入 2.数据分析 3.特征工程 4.建模调参 5.模型融合 异常处理: 通过箱线图(或 3-Sigma)分析删除异常值;BOX-COX 转换(处理有偏分布);长尾截断&…

Redis基本了解

Redis 基于内存进⾏存储,⽀持 key-value 的存储形式,底层是⽤ C 语⾔编写的。 基于 key-value 形式的数据字典,结构⾮常简单,没有数据表的概念,直接⽤键值对的形式完成数据的管理,Redis ⽀持 5 种数据类型…

[machine Learning]推荐系统

其实严格来说推荐系统也是一种监督学习,我们需要根据已有数据进行预测,但是这种训练数据不是单纯的输入和输出问题,所以被归类为"超越监督学习"的一种? 今天去旁听了隔壁专业的机器学习课程,感觉自己的知识确实不是很系统,所以后面会找个机会把前面的代码给补充上.…

Qt打开及创建项目,运行程序(1)

安装之后, 1.文件->新建文件或项目 2.Application->Qt Widgets Application 3.自己设置名称和路径 4.这一步非常非常重要,要选择编译器,(MinGW是可以在Qt里用,如果想与VS交互,要选择MSVC&#xff09…

iOS开发Swift-类型转换

1.Int或Double转字符串 let x 20 let y "\(x)" let z String(x)2.Double转Int(去掉小数点后面的) Int(1.9)3.Int转Double Double(1)4.向上转型 class A{//A父类 }class B: A{//B子类继承A }let a A() let b B()b as A //子类转化成父类5.向下转型 class A{//A…

uniapp 路由不要显示#

在Uniapp中,路由默认使用的是hash模式,即在URL中添加#符号。如果你不想在URL中显示#,可以切换为使用history模式。 要在Uniapp中使用history模式,可以按照以下步骤进行操作: 打开manifest.json文件。在"app&qu…

解决charles只能使用30分钟

问题描述 Charles 30分钟会自动关闭,弹出一个弹窗。 解决步骤 1.网上查找后发现是需要注册一下。 2.打开Charles,如图的操作顺序 3.框内输入 Registered Name: https://zhile.io License Key: 48891cf209c6d32bf4 4.重启即可

在css中设计好看的阴影

在css中设计好看的阴影 在本文中,我们将学习如何将典型的盒子阴影转换为更好看的的阴影。 统一角度 当我们想要一个元素有阴影时,会添加box-shadow属性并修改其中的数字,直到满意为止。 问题是,通过像这样单独创建每个阴影&…

vue的第2篇 开发环境vscode的安装以及创建项目空间

一 环境的搭建 1.1常见前端开发ide 1.2 安装vs.code 1.下载地址:Visual Studio Code - Code Editing. Redefined 2.进行安装 1.2.1 vscode的中文插件安装 1.在搜索框输入“chinese” 2.安装完成重启,如下变成中文 1.2.2 修改工作区的颜色 选中[浅色]…

python实现某音自动登录+获取视频数据

前言 Dy这个东西想必大家都用过,而且还经常刷,今天就来用代码,获取它的视频数据 环境使用 Python 3.8 Pycharm 模块使用 requests selenium json re 一. 数据来源分析 1. 明确需求 明确采集网站以及数据内容 网址: https://www.dy.com/…

【LeetCode-中等题】40. 组合总和 II

文章目录 题目方法一:递归回溯去重 题目 本题需要注意的就是去重操作因为nums数组里面的元素可能存在重复: 不重复的版本:【LeetCode-中等题】39. 组合总和 不去重版 方法一:递归回溯去重 参考讲解视频—回溯算法中的去重&#…