当前位置: 首页 > news >正文

LLM 系列之 Transformer 组件总结

本系列为LLM 学习博客,会一一记录各个模块解读。
以下内容参考:大语言模型综述 https://github.com/RUCAIBox/LLMSurvey

主流架构

大语言模型,主要的核心组件是Transformer。不同的模型选择的架构不一样,目前主流架构有:

  1. 编码器-解码器架构: 传统Transformer模型是建立在编码器-解码器架构上的,由两个Transformer块分别作为编码器-解码器。目前只有少数LLM 是基于 该架构的 如:Flan-T5
  2. 因果解码器架构: 因果解码器架构采用单项注意力掩码,以确保每个输入标记只能关注过去的标记和它本身。输入和输出标记通过解码器以相同的方式进行处理。典型的model有 GPT1/23, OPT, BLOOM, Gopher.
  3. 前缀解码器架构:前缀解码器修正了因果解码器的掩码机制,以使其能够对前缀标记执行双向注意力,并仅对生成的标记执行单向注意力。这样与编码器-解码器架构类似,前缀解码器可以双向编码前缀序列并自回归地逐个预测输出标记,其中在编码和解码过程中共享相同的参数。实用的建议是不从头开始进行预训练,而是基于训练因果解码器,然后将其转换为前缀解码器以加上收敛。典型的model: U-PaLM (从PaLM 演化来的), GLM-130B.

总结:对于这三种类型的架构,也可以考虑通过专家混合MoE扩展他们,其中每个输入的一小部分神经网络权重被稀疏激活,如Switch Transformer 和 GLaM,已经证明 通过增加专家的数量或总参数大小,可以观察到显著的性能改进。

模型组件

Transformer的四个组件:标准化,位置编码,激活函数,注意力和偏置。

标准化

  • 目的是使得训练稳定。
  • 目前主要采用的有:
    1)LayerNorm:后置LN, 前置LN(损失一定的性能 带来更稳定的训练),Sandwich-LN (基于前置LN,在残差连接之前添加额外的LN 避免数值爆炸,有时无法稳定LLM的训练,可能导致崩溃)
    2)最近一些高级标准化技术被提出以作为LN的替代方案,由于RMS Norm 在训练速度和性能方面的优越性,在Gopher 和 Chinchilla中被采用。
    3)DeepNorm 已经表现出更好的训练稳定性 和 后标准化一起被GLM-130B采用。
    4)在嵌入层后添加额外的LN也可以稳定大语言模型的训练(然而这往往会导致显著的性能下降,在最近的一些LLM中已经被移除)。

激活函数

  • 目的:获得更好的性能
  1. 现有的LLM中,广泛使用GeLU.
  2. 在最新的LLM中(PaLM和 LaMDA)也使用了GLU激活函数的变体 特别是SwiGLU 和 GeGLUb 变体 在实践中通常可以获得更好的性能。与GeLU相比,他们在前馈网络中需要额外的参数(约50%)。

位置编码

  • 目的:由于Transformer中自注意模块是置换等变的,因此需要使用位置编码来注入绝对或相对位置信息以建模序列。
  • 主要有:1)绝对位置编码:正弦函数,学习位置编码。 2)相对位置编码:ALiBi, RoPE。
    1) 经典Transformer中有两种绝对位置编码的变体:正弦函数和学习的位置编码(后者经常在LLM中使用)。
    2) 相对位置编码根据 键和查询之间的偏移量生成嵌入。因此它可以在训练中看到长度范围之外的更长序列上表现良好,即外推。
    3)ALiBi 使用基于键和查询之间距离的惩罚来偏置注意力分数。它比其他位置编码具有更好的零样本泛化能力和更强的外推能力。
    4)RoPE: 通过绝对位置设置特定的旋转矩阵,键和查询之间的分数可以使用相对位置信息计算,这对建模长序列是有用的,RoPE已经被广泛应用于一些最新的大语言模型。

注意力和偏差

  • 目的: transform 就是通过注意力机制来实现上下文关系的捕获的。
    1)全自注意力机制:原始Transformer
    2) 分解注意力:GPT3 采用更低计算复杂度的稀疏注意力机制。
    3)特殊注意力机制: Random feature attention, Big bird: Transformers for longer sequences, 考虑GPU 内存访问(FlashAttention)
    4)与原始Transformer一样,大多数LLM 在每个线性层和层标准化中保留了偏置,然后PaLM 和 Galactica中 偏置被移除,研究表明,对于LLM来说,去除偏置可以增强训练的稳定性。(Training language models to
    follow instructions with human feedback)

预训练任务

预训练在将大规模语料库中的通用知识编码到巨大的模型参数中起着关键作用。对于训练LLMs,有两个常用的预训练任务,即语言建模和去噪自编码。

语言模型

语言模型任务(LM)是预训练仅包含解码器的大语言模型(如GPT3和PaLM)最常用的目标。给定
一个标记序列x={x1,…,xn},LM任务旨在基于序列中前面的标记x<i,自回归地预测目标标记xi。通常的训练目标是最大化以下似然函数:LLM(x) = SUM(log P(xi|x<i))

由于大多数语言任务可以基于输入的预测问题来解决,这些仅包含解码器的大语言模型可能具有优势,可以隐式地学习如何以统一的LM方式完成这些任务。一些研究还表明,仅包含解码器的大语言模型可以通过自回归地预测下一个标记而自然地转移到某些任务中,而无需微调。LM的一个重要变体是前缀语言模型任务,它是为预训练具有前缀解码器架构的模型设计的。在计算前缀语言模型的损失时,不使用随机选择的前缀内的标记。由于模型预训练涉及的序列中涉及的标记较少,因此在使用相同数量的预训练标记时,前缀语言模型的性能往往略低于传统语言模型任务。

去噪编码

除了传统的LM之外,去噪自编码任务(DAE)也被广泛用于预训练语言模型[24,72]。DAE任务的输入x\˜x是一些有随机替换区间的损坏文本。然后,语言模型被训练以恢复被替换的标记˜x。形式上,DAE的训练目标如下:LDAE(x) = logP(˜x|x\˜x)
然而,DAE任务在实现上似乎比LM任务更为复杂。因此,它并没有被广泛用于预训练大型语言模型。采用 DAE作为预训练目标的现有大语言模型包括 T5 和 GLM130B 。这些模型主要通过自回归地恢复替换区间来进行训练.

TODO

每个模型组件中 各个算法的实现方式和对比。

相关文章:

LLM 系列之 Transformer 组件总结

本系列为LLM 学习博客&#xff0c;会一一记录各个模块解读。 以下内容参考:大语言模型综述 https://github.com/RUCAIBox/LLMSurvey 主流架构 大语言模型&#xff0c;主要的核心组件是Transformer。不同的模型选择的架构不一样&#xff0c;目前主流架构有&#xff1a; 编码器…...

计算机等级考试—信息安全三级真题十

目录 一、单选题 二、填空题 三、综合题 一、单选题...

面试总结(mysql定精度/oom排查/spring三级缓存/stream流)

Mysql数据类型上的一个把握 1、MySQL Decimal为什么不会丢失精度 DECIMAL的存储方式和其他数据类型都不同&#xff0c;它是以字符串形式存储的。假设一个字段为DECIMAL(3,0)&#xff0c;当我们存入100时&#xff0c;实际上存入的1、0、0这三个字符拼接而成的字符串的二进制值&…...

uniapp四个元素点击那个哪个变色,其他的还变原来的颜色

在UniApp中&#xff0c;可以使用CSS伪类选择器和动态样式绑定来实现点击某个元素时改变其颜色的效果。假设有四个元素分别为A、B、C和D。 首先&#xff0c;为这四个元素添加一个共同的类名&#xff0c;例如"item"。 然后&#xff0c;在页面的样式中定义两种颜色&am…...

Springcloud笔记(2)-Eureka服务注册

Eureka服务注册 服务注册&#xff0c;发现。 在Spring Cloud框架中&#xff0c;Eureka的核心作用是服务的注册和发现&#xff0c;并实现服务治理。 Eureka包含两个组件&#xff1a;Eureka Server和Eureka Client。 Eureka Server提供服务注册服务&#xff0c;各个节点启动后…...

国庆 day 5

QT实现TCP服务器客户端搭建的代码&#xff0c;现象 服务器 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);server new QTcpServer(this);connect (server,&…...

计算机网络 | OSI 参考模型

计算机网络 | OSI 参考模型 计算机网络 | OSI 参考模型应用层表示层会话层传输层网络层数据链路层物理层 参考视频&#xff1a;王道计算机考研 计算机网络 参考书&#xff1a;《2022年计算机网络考研复习指导》 计算机网络 | OSI 参考模型 OSI 参考模型自下而上分为7层&…...

uniapp 实现地图头像上的水波纹效果

最近实现了uniapp 地图头像水波纹的效果&#xff0c;话不多说&#xff0c;先来看看视频效果吧&#xff1a;链接 在这里具体的代码就不放出来了&#xff0c;还是利用了uniapp的 uni.createAnimation 方法&#xff0c;因为cover-view 不支持一些css 的动画效果&#xff0c;所以这…...

Zabbix7.0 LTS新功能

一、简介 LTS是长期支持。LTS版本支持5年。如果更喜欢稳定性&#xff0c;未涉及到最新的功能&#xff0c;可以选次新的LTS或者更低解决方案。而Zabbix6.4是最新的主要版本不属于LTS版本。 二、新功能 从以下几个方面介绍部分新功能&#xff1a; 性能提升&#xff1a;内存储存…...

充电100%并非都是美事,有时少点更有溢出!如何正确为iPhone充电

iPhone是非凡的设备&#xff0c;但一旦电池耗尽&#xff0c;它们就会失去光泽。这就是为什么照看电池内部并确保始终正确充电很重要。 在这篇文章中&#xff0c;我们解释了如果你想让你的iPhone每天运行到深夜&#xff0c;并尽可能多地保持这种状态&#xff0c;你需要采取的步…...

【软件测试】JUnit详解

文章目录 一. Junit是什么?二.Junit中常见的注解1. Test2. BeforeAll & AfterAll3. BeforeEach & AfterEach4. ParameterizedTest参数化5. Disabled6. Order 三. 测试套件1. 通过class运行测试用例2. 通过包运行测试用例 四. 断言 一. Junit是什么? JUnit是一个用于…...

hive统计页面停留时间

1、背景&#xff1a;通过业务埋点数据&#xff0c;统计用户在页面的停留时间 样例数据&#xff0c;样例数据存入表tmp&#xff0c; 有如下字段用户uid、动作时间戳time、页面名称pn、动作名称action SELECT 12345 AS uid, 1695613731020 AS time, 搜索 AS pn, click AS acti…...

LeetCode 24.两两交换链表中的结点

题目链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目解析 首先可以特判一下&#xff0c;如果结点数目小于等于1&#xff0c;则直接返回即可&#xff0c;因为数目小于等于1就不需要交换了。 然后我们可以创建一个虚拟的头结点&#xff0c;然…...

【每日一记】OSPF区域划分详讲、划分区域的优点好处

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;喜欢编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;小新爱学习. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc…...

复旦管院启动科创战略,培养科技研发人才,引领未来发展!

今年夏天&#xff0c;600多位优秀的企业家成为复旦大学EMBA 2023级新生。在疫情结束后&#xff0c;他们选择百战归来再读书&#xff0c;重新回到久违的课堂&#xff0c;共同探索科创大时代下企业的商业本质&#xff0c;开启新的学习与人生旅程。复旦大学管理学院院长陆雄文教授…...

Infinity同步

...

C语言:转义字符

目录 话不多说&#xff0c;先上表 \n \? \ \" \\ \t \a \ddd 附一张ASCII表 \xdd 练习 话不多说&#xff0c;先上表 一一举例解释下哈 \n 读取到结尾标识符\0 printf("demo\n\0Zh"); // demo \? 在书写连续多个问号时使用&#xff0c;防止…...

为什么 0.1 + 0.1 !== 0.2

为什么 0.1 0.1 ! 0.2 总结了几个很有意思的基础题目&#xff0c;分享一下。 为什么 0.1 0.1 ! 0.2 看到这个问题&#xff0c;不得不想到计算机中的数据类型&#xff0c;其中浮点数表示有限的精度。那么它就无法精确的表示所有的十进制小数&#xff0c;所以在在某些情况下…...

超详细!主流大语言模型的技术原理细节汇总!

1.比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节&#xff1a;tokenizer、位置编码、Layer Normalization、激活函数等。 2. 大语言模型的分布式训练技术&#xff1a;数据并行、张量模型并行、流水线并行、3D 并行、零冗余优化器 ZeRO、CPU 卸载技术 ZeRo-offload、混合精度训…...

本人4年测试经验,211 本科计算机专业,由于互联网裁员,然后谈谈我最近测试面试的总结

本人4年测试经验&#xff0c;211 本科计算机专业&#xff0c;由于互联网裁员&#xff0c;最近在 bosss 上投了些简历&#xff0c;测试开发岗&#xff0c;看看目前市场情况。 虽然都在说大环境不好&#xff0c;失业的人很多&#xff0c;我最近约面试的还是比较多的&#xff0c;…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...