LLM主流框架:Causal Decoder、Prefix Decoder和Encoder-Decoder

news2024/11/16 8:30:44

本文将介绍如下内容:

  • transformer中的mask机制
  • Causal Decoder
  • Prefix Decoder
  • Encoder Decoder
  • 总结

一、transformer中的mask机制

在Transformer模型中,mask机制是一种用于在self-attention中的技术,用以控制不同token之间的注意力交互。具体来说,Transformer中使用两种类型的mask:padding masksequence mask**。**

1、Padding mask(填充掩码)

Padding mask(填充掩码):在自注意力机制中,句子中的所有单词都会参与计算。但是,在实际的句子中,往往会存在填充符(比如-1),用来填充句子长度不够的情况。Padding mask就是将这些填充符对应的位置标记为0,以便在计算中将这些位置的单词忽略掉。
例如,假设我们有一个batch_size为3、句子长度为5的输入序列:

[
    [1, 2, 3, -1, -1], 
    [2, 3, -1, -1, -1], 
    [1, -1, -1, -1, -1]
]

其中-1表示填充符,用于填充长度不到5的位置。则padding mask为:

[
    [1, 1, 1, 0, 0], 
    [1, 1, 0, 0, 0], 
    [1, 0, 0, 0, 0]
]

其中1表示可以参与计算的位置,0表示需要被忽略的位置。例如,第一句话前三个位置有具体的词,对应设为1;而最后两个位置是padding,对应设为0。huggingface的BertTokenizer分词所返回的attention mask指的就是padding mask:https://huggingface.co/docs/transformers/glossary#attention-mask

2、Sequence mask(序列掩码)

sequence mask用于在Decoder端的self-attention中,以保证在生成序列时不会将未来的信息泄露给当前位置的单词。

例如,假设我们要生成一个长度为5的序列。在第i个位置上生成的单词,需要将前i-1个单词作为输入,但是不能将第i个位置以后的单词作为输入。这就需要使用sequence mask将第i个位置以后的单词掩盖掉。具体而言,sequence mask会将第i个位置以后的所有位置标记为0,表示在计算中需要忽略这些位置的信息。

本文要比较不同LLM架构,其实是在比较sequence mask。事实上,用户所使用的LLM所做的都是seq2seq任务,用户输入一个文本prompt,LLM对应输出一个文本completion。为了方便以后的讨论,采用A Survey of Large Language Models这篇综述中的例子,用户输入的prompt为A Survey of,期望语言模型的输出为Large Language Models。

二、Causal Decoder

Causal LM是因果语言模型,目前流行的大多数模型都是这种结构,别无他因,因为GPT系列模型内部结构就是它,还有开源界的LLaMa也是。Causal Decoder架构的典型代表就是GPT系列模型,**使用的是单向注意力掩码,**以确保每个输入token只能注意到过去的token和它本身,输入和输出的token通过Decoder以相同的方式进行处理。在下图中,灰色代表对应的两个token互相之间看不到,否则就代表可以看到。例如,”Survery”可以看到前面的“A”,但是看不到后面的“of”。Causal Decoder的sequence mask矩阵是一种典型的下三角矩阵。
在这里插入图片描述
Causal LM只涉及到Encoder-Decoder中的Decoder部分,采用Auto Regressive模式,直白地说,就是根据历史的token来预测下一个token,也是在Attention Mask这里做的手脚。

参照着Prefix LM,可以看下Causal LM的Attention Mask机制(左)及流转过程(右)。
在这里插入图片描述

三、Prefix Decoder

Prefix LM,即前缀语言模型,Prefix Decoder架构也被称为non-causal Decoder架构,该结构是Google的T5模型论文起的名字,望文知义来说,这个模型的”前缀”有些内容,但继续向前追溯的话,微软的UniLM已经提及到了。

Prefix LM其实是Encoder-Decoder模型变体,为什么这样说?解释如下:

(1) 在标准的Encoder-Decoder模型中,Encoder和Decoder各自使用一个独立的Transformer

( 2) 而在Prefix LM,Encoder和Decoder则共享了同一个Transformer结构,在Transformer内部通过Attention Mask机制来实现。

Prefix LM是输入部分采用双向注意力,而输出部分采用单向注意力;和Encoder-Decoder不同的是,处理输入和输出的模型参数是完全共享的,从这一点看,它又和causal Decoder比较接近,都属于Decoder-Only架构:
在这里插入图片描述
与标准Encoder-Decoder类似,Prefix LM在Encoder部分采用Auto Encoding (AE-自编码)模式,即前缀序列中任意两个token都相互可见,而Decoder部分采用Auto Regressive (AR-自回归)模式,即待生成的token可以看到Encoder侧所有token(包括上下文)和Decoder侧已经生成的token,但不能看未来尚未产生的token。

下面的图很形象地解释了Prefix LM的Attention Mask机制(左)及流转过程(右)。
在这里插入图片描述
Prefix LM的代表模型有UniLM、T5、GLM(清华滴~)

四、Encoder Decoder

Transformer最初被提出来的时候采用的就是Encoder-Decoder架构,模型包含两部分Encoder和Decoder,两部分参数独立。其中Encoder将输入序列处理为一种中间表示,而Decoder则基于中间表示自回归地生成目标序列,典型的LLM是Flan-T5。Encoder部分采用双向注意力,对应的prompt的每个token都可以互相看到;而Decoder部分仍然采用单向注意力,对应的completion仍然保证前面的token看不到后面的token:
在这里插入图片描述

五、总结

前缀语言模型可以根据给定的前缀生成后续的文本,而因果语言模型只能根据之前的文本生成后续的文本。
在这里插入图片描述

A Survey of Large Language Models 中有几种LLM更详细的对比:
在这里插入图片描述
注意力机制相关的对比如下:

模型架构代表LLM注意力机制是否属于Decoder-Only
Causal DecoderGPT3/ChatGPT纯单向YES
Encoder-DecoderFlan-T5输入双向NO
Prefix DecoderGLM-130B/ChatGLM-6B输入双向,输出单向YES

参考:

  • LLM面面观之Prefix LM vs Causal LM
  • 管中窥豹:从mask入手对比不同大语言模型的架构

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

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

相关文章

JS加密/解密之js加密小工具

JS加密的原理和方法 什么是JS加密 JS加密是一种将js代码转换成不易被阅读和修改的形式的技术JS加密的目的是保护js代码的版权,防止被恶意篡改或盗用JS加密的难度和效果取决于加密算法的复杂性和安全性 JS加密的常见方法 压缩和混淆:将js代码的空格&a…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)HttpRequest模块 解析http请求协议

一、HTTP响应报文格式 HTTP/1.1 200 OK Bdpagetype: 1 Bdqid: 0xf3c9743300024ee4 Cache-Control: private Connection: keep-alive Content-Encoding: gzip Content-Type: text/html;charsetutf-8 Date: Fri, 26 Feb 2021 08:44:35 GMT Expires: Fri, 26 Feb 2021 08:44:35 GM…

Day27 回溯算法理论 77组合 216组合总和

回溯算法理论 回溯是一种效率并不高的穷举算法,因为用暴力算法都解决不了一些问题,所以才会考虑这个方法,它可以解决一系列问题: 组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规…

太平洋产险海南分公司:春季爱车保养,就看这几点!

一年之计在于春,春天不仅是万物复苏的好时节,也是一年中非常适合汽车养护的季节。 刚刚过去的春节,汽车的使用频率大大增加,很多车主都准备对爱车进行一次全面保养。加上立春过后,天气渐暖,许多车主也计划开…

提高iOS App开发效率的方法

引言 随着智能手机的普及,iOS App开发成为越来越受欢迎的技术领域之一。许多人选择开发iOS应用程序来满足市场需求,但是iOS App开发需要掌握一些关键技术和工具,以提高开发效率和质量。本文将介绍一些关键点,可以帮助你进行高效的…

基于SpringBoot的康复中心管理系统 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员模块 三、系统展示四、核心代码4.1 查询康复护理4.2 新增康复训练4.3 查询房间4.4 查询来访4.5 新增用药 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的康复中…

Uncaught ReferenceError: videojs is not defined

项目场景: 项目背景: 开发 vue 项目时,调试时浏览器前端控制台 出现红色 报错信息: Uncaught ReferenceError: videojs is not defined 问题描述 遇到的问题: 开发 vue 项目时, 浏览器控制台出现如下所…

Vue-15、Vue条件渲染

1、v-show 在Vue中&#xff0c;v-show是一个指令&#xff0c;用于根据表达式的值来控制元素的显示与隐藏。当指令的值为true时&#xff0c;元素显示&#xff1b;当指令的值为false时&#xff0c;元素隐藏。 v-show的用法如下&#xff1a; <!DOCTYPE html> <html lan…

【REST2SQL】06 GO 跨包接口重构代码

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 对所有关系数据的操作都只有CRUD&#xff0c;采用Go 的接口interface{}重构代码…

黑群晖6.x 7.x ABB Active Backup for Business 套件激活方法

注意事项&#xff1a; 要先下载安装好Active Backup for Business套件再操作。SN码在【控制面板】 - 【信息中心】 -【产品序列号】。建议复制到记事本内修改内容。群晖的https是默认的5001端口&#xff0c;如果你的https端口号换过请自行修改&#xff1a;5001 为当前的端口号…

应用在热能表领域中的数字温度传感芯片

热能表&#xff0c;是适用于测量在热交换环路中&#xff0c;被称作载热液体的液体所吸收或转换热能的仪器&#xff0c;它由流量传感器、温度传感器和热能积算仪三部分组成。热量表&#xff08;热表&#xff09;又称热能表、热能积算仪&#xff0c;既能测量供热系统的供热量又能…

Zabbix6.0全套落地方案-基于RHEL9系列源码编译安装-Linux+Nginx+Mysql+Redis生产级模板Agent2客户端一键部署

实践说明&#xff1a;基于RHEL9系列(CentOS9,AlmaLinux9,RockyLinux9等)&#xff0c;但适用场景不限于此&#xff0c;客户端一键部署安装包基于RHEL8和RHEL9。 文档形成时期&#xff1a;2023年 因系统或软件版本不同&#xff0c;构建部署可能略有差异&#xff0c;但本文未做细分…

便携式灯具的UL测试标准UL153介绍

UL153标准&#xff1a;UL153标准主要是描述有关使用电源线及插头作为连接工具,使用120伏电压,15或20安培的电源,并符合美国国家电器规范的便携灯.此标准也适用于那些不用插头,而用一些兼容的接线端作为连接工具的便携灯&#xff0c;同时对于使用非120伏电压&#xff0c;15or20安…

Google I/O大会:Android 13

3个体验升级的方向 以智能手机为场景核心、 扩大智能终端的应用边界以及实现多设备间更好地协同。具体到系统体验层&#xff0c;安卓13将支持图标颜色随主题更换、为不同应用设定使用的语言、新的媒体中心界面等等&#xff0c;同时谷歌也推出了自家的钱包应用&#xff08;Goog…

C++程序员必备的面试技巧

“程序员必备的面试技巧&#xff0c;就像是编写一段完美的代码一样重要。在面试战场上&#xff0c;我们需要像忍者一样灵活&#xff0c;像侦探一样聪明&#xff0c;还要像无敌铁金刚一样坚定。只有掌握了这些技巧&#xff0c;我们才能在面试的舞台上闪耀光芒&#xff0c;成为那…

雪花代码-html版

雪花代码 动画效果 代码 <!DOCTYPE html><html><head><style>body {background-color: #000000;}.snowflake {position: absolute;font-size: 10px;color: #FFFFFF;text-shadow: 1px 1px 1px #000000;user-select: none;}</style></head>…

java基于ssm框架的少儿编程在线培训系统论文

目 录 目 录 I 1 课题背景及研究内容 4 1.1 课题背景 4 1.2 开发目的和意义 4 2 相关技术和应用 4 2.1 VUE技术 4 2.2 Mysql数据库简介 5 2.3 SSM框架简介 6 2.4 Eclipse简介 6 2.5 B/S系统架构 6 3 系统分析 8 3.1可行性分析 8 3.1.1技术可行性 8 3.1.2经济可行性 8 3.1.3操作…

【会议征稿通知】第二届数字化经济与管理科学国际学术会议(CDEMS 2024)

第二届数字化经济与管理科学国际学术会议&#xff08;CDEMS 2024&#xff09; 2024 2nd International Conference on Digital Economy and Management Science&#xff08;CDEMS 2024&#xff09; 2024年第二届数字经济与管理科学国际会议(CDEMS 2024) 定于2023年4月26-28日…

怎么做微信秒杀链接_开启用户的购物新体验

微信秒杀&#xff1a;开启你的购物新体验 在繁忙的生活节奏中&#xff0c;你是否厌倦了长时间排队等待购物&#xff0c;或者在电商平台上漫长而复杂的购物流程&#xff1f;今天&#xff0c;我要向你介绍一种全新的购物方式——微信秒杀。这不仅是一种全新的购物体验&#xff0…

基于SpringBoot的婚恋交友网站 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 会员管理模块2.3 新闻管理模块2.4 相亲大会管理模块2.5 留言管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 会员信息表3.2.2 新闻表3.2.3 相亲大会表3.2.4 留言表 四、系统展示五、核心代码5.…