【大模型结构】不同技术架构的区别

news2024/9/25 13:19:58

文章目录

  • 大语言模型技术概述
  • Encoder-only
  • Decoder-only
  • Encoder-Decoder
  • 为什么流行LLM都是Decoder only架构?
  • 参考资料

如果你投递的是NLP方向,大模型方向,多模态大模型方向,甚至是人工智能方向,当前大语言模型的技术架构这个基础问题,是面试官非常喜欢的一个问题,可以一下就能问出来你对这个领域有多少了解。下面,我们来深入了解当前大模型有哪些常用的技术架构,他们的优缺点是什么,以及面试典型问题:为什么流行LLM都是Decoder only架构?

大语言模型技术概述

近几年的大语言模型的技术起点,可以从Google发布的BERT开始算起。此前,最好的语言模型属于RNN一类,但是,由于RNN模型需要按次序处理输入数据,因此并行能力不够,计算成本很高。尽管在翻译领域效果很好,但是RNN也没有取得更好的突破。

BERT是一种Transformer架构的模型,它的出现,让语言模型突破了原有的限制,可以以更快的速度运行,并且可以记住更长久的输入数据。

Transformer相比RNN具有更长依赖建模的能力,更高的计算复杂度以及更好的并行处理能力。在许多任务中,Transformer已经取代RNN成为主流的序列建模方法,特别是在机器翻译、语言模型和文本生成等领域。但在其他一些任务中,RNN仍具有优势,如音频和时间序列建模。

但是,BERT属于一种Encoder-only类架构的Transformer模型,虽然它出现很早,但是当前领域以GPT系列为代表的模型则是Decoder-Only架构。类似BERT这种架构的技术已经基本消失。

在这里插入图片描述

论文名:Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond
GitHub:https://github.com/Mooler0410/LLMsPracticalGuide
arXiv:https://arxiv.org/abs/2304.13712

2023年4月,亚马逊联合其它高校科研人员发表了一篇 关于如何使用ChatGPT完成下游论文,其中使用了一个非常直观明了的大语言模型进化图总结了目前当前大语言模型的技术架构分类和开源现状。根据这张图,很清晰地可以看到大语言模型主要分为三个发展脉络

  • 首先红色的分支是指Encoder-Only类型,最早是Google的BERT模型,显然,到了2020年之后,这类技术基本已经不再发展
  • 中间绿色部分是Encoder-Decoder类型,近几年似乎也就是Google坚持这类路线的模型较多
  • 最后一类是右侧的Decoder-Only类型,也是最繁荣发展的一类Transformer模型。最早是OpenAI提出的GPT-1,此后包括MetaAI、百度、Google、EleutherAI等公司都提出了这种架构的模型

按照 模型类型 ,预训练方式,预训练任务 来划分,这三种架构的区别如下表所示:

模型架构模型类型预训练方式预训练任务代表模型
Encoder-only / Encoder-Decoder判别式(Discriminative)掩码语言建模预测Masked单词ELMo, BERT, RoBERTa, DistilBERT, BioBERT, XLM, Xlnet, ALBERT, ELECTRA, T5, XLM-E, ST-MoE, AlexaTM
Decoder -only生成式(Generative)自回归预测下一个单词(Next-token Prediction)GPT-3, OPT,PaLM, BLOOM, GLM, MT-NLG, GLaM,Gopher, chinchilla, LaMDA, GPT-J, LLaMA, GPT-4, BloombergGPT

Encoder-only

Encoder-only 架构,顾名思义,只使用编码器部分,主要用于理解输入数据,通常用于处理需要理解上下文的任务,如文本分类、命名实体识别等。

1. 典型模型

BERT (Bidirectional Encoder Representations from Transformers):BERT 是一个典型的 Encoder-only 模型,它通过双向 Transformer 编码器来捕捉输入文本的上下文信息。

2. 工作原理

  • 输入处理:输入文本被分割成 token,并通过嵌入层转换为向量表示。

  • 编码过程:这些向量通过多个 Transformer 编码器层进行处理,每一层都包含多头自注意力机制和前馈神经网络。

  • 输出:最终的输出向量可以用于各种下游任务,如分类、序列标注等。

3. 优势

  • 双向上下文理解:能够同时考虑左右两侧的上下文信息,适用于需要理解整个句子的任务。

  • 强大的表示能力:通过多层 Transformer 编码器,能够捕捉复杂的语义关系。

4. 适用场景:文本分类,命名实体识别,情感分析

Decoder-only

Decoder-only 架构主要用于生成任务,如文本生成、对话系统等。它通常用于自回归生成模型,即根据前面的 token 生成下一个 token。

1. 典型模型

GPT (Generative Pre-trained Transformer):GPT 系列模型是典型的 Decoder-only 模型,它们通过自回归的方式生成文本。

2. 工作原理

  • 输入处理:输入文本被分割成 token,并通过嵌入层转换为向量表示。

  • 解码过程:这些向量通过多个 Transformer 解码器层进行处理,每一层都包含多头自注意力机制和前馈神经网络。解码器在生成每个 token 时,只能看到前面的 token。

  • 输出:模型逐个生成 token,直到生成结束符或达到最大长度。

3. 优势

  • 自回归生成:能够逐个生成 token,适用于需要生成连续文本的任务。

  • 灵活性:可以根据不同的输入生成不同的输出,适用于对话系统、文本生成等任务。

4. 适用场景:文本生成,对话系统,机器翻译(部分场景)

Encoder-Decoder

Encoder-Decoder 架构结合了编码器和解码器的优势,既能够理解输入数据,又能够生成输出数据。它通常用于需要理解输入并生成输出的任务,如机器翻译、文本摘要等

1. 典型模型

T5 (Text-To-Text Transfer Transformer):T5 是一个典型的 Encoder-Decoder 模型,它将所有任务都视为文本到文本的转换问题。

2. 工作原理

  • 输入处理:输入文本被分割成 token,并通过嵌入层转换为向量表示。

  • 编码过程:这些向量通过多个 Transformer 编码器层进行处理,捕捉输入文本的上下文信息。

  • 解码过程:编码器的输出作为解码器的输入,解码器通过自回归的方式逐个生成输出 token。

  • 输出:解码器生成的 token 序列即为最终的输出。

3. 优势

  • 双向理解与生成:既能够理解输入文本的上下文,又能够生成符合上下文的输出。

  • 任务通用性:适用于多种任务,如机器翻译、文本摘要、问答系统等。

4. 适用场景:机器翻译,文本摘要,问答系统

为什么流行LLM都是Decoder only架构?

这里直接引用Sam多吃青菜大佬的问答:https://www.zhihu.com/question/588325646/answer/3357252612

  1. 为什么不用Encoder-only模型,因为它用Masked Language Modeling来做预训练,擅长理解但不擅长做生成任务。相比之下Decoder-only模型用Next-token Prediction做预训练,兼顾理解和生成,在各种下游任务上的zero-shot和few-shot泛化性能都很好。
  2. 为什么不用Encoder-Decoder模型? 这个问题就复杂很多,回答的角度也有很多

在这里插入图片描述

图片来源:https://arxiv.org/abs/2204.05832

  • 隐式位置编码:Decoder-only的单向Attention,也就是上图所示的Causal Decoder,具有隐式的位置编码功能,打破了Transformer的位置不变性,而带有双向Attention的模型,如果不带位置编码,双向Attention的部分token可以对换也不改变表示,对语序的区分能力天生较弱
  • 上下文学习:上下文学习(In Context Learning,ICL)为Decoder-only模型带来的更好的few-shot性能,因为prompt信息可以视为对模型参数的隐式微调,Decoder-only的模型相比Encoder-Decoder在ICL上会更有优势,因为prompt可以更加直接地作用于Decoder的每一层参数,微调的程度更深,效果更好
  • 注意力满秩:苏神强调的注意力满秩的问题,双向Attention的注意力矩阵容易退化为低秩状态(因为不是下三角矩阵),而Decoder-only的Causal Attention注意力矩阵是下三角矩阵,必然是满秩的,所以建模能力更强
  1. 预训练任务:纯粹的Decoder-only模型采用Next-token Predicition预训练方法,每个位置所能接触的信息比其他架构少,要预测下一个token难度更高,当模型足够大,数据足够多的时候,Decoder-only模型学习通用表征的上限更高
  2. 推理效率:Decoder-only支持KV-Cache,也就是复用已经生成的K和V,对多轮对话更友好,因为每个token的表示只和它自身的Q以及之前输入的K和V有关,而Encoder-Decoder就难以做到,因此Decoder-only的推理部署更友好
  3. 生态问题:最重要的一点是,OpenAI坚持把Decoder-only方法做大做强,摸索出了一套行之有效的训练方法和Scaling Law,后来者鉴于时间和计算成本,自然不愿意做太多结构上的大改动,继续沿用Decoder-only架构,尤其是在工程生态上,Decoder-only架构也形成了先发优势,Megatron,Fash-Attention,vLLM等重要工具对Decoder-only模型的训练和推理支持更好

参考资料

  • [1] https://www.datalearner.com/blog/1051682948802164
  • [2] https://www.zhihu.com/question/588325646/answer/3357252612

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

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

相关文章

基于人工智能的智能个人健康管理系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据采集与预处理模型训练与预测实时健康监控应用场景结论 1. 引言 个人健康管理在现代生活中变得尤为重要,随着人工智能技术的进步,智能健康管理系统可以通过监…

[AI书籍分享]<AI时代,学什么,怎么学 - 和渊>

本文由Markdown语法编辑器编辑完成。 1, 背景: 本书是一位清华大学毕业的生物学博士,和渊老师,现就职于人大附中, 是一名一线的高中生物教师. 她之前已经写过几本关于教育类的书籍,而这本书,则是她针对当前, AI时代迅猛发展的背…

CPU调度算法之FIFS(先来先服务)

摘要 CPU的先来先服务(FCFS, First-Come, First-Served)任务调度算法是一种最基础且直观的调度方法,它根据任务到达的顺序决定其执行的先后顺序。这种算法以其简单性和公平性在操作系统中占据重要地位,但也存在一些不足&#xff…

【数学建模国赛】前期准备

这里是阿川的博客,祝您变得更强 ✨ 个人主页:在线OJ的阿川 💖文章专栏:国赛数模准备到进阶 🌏代码仓库: 写在开头 现在您看到的是我的结论或想法,省略了思考过程,但在这背后凝结了大…

测试3个月,成功入职 “字节”,我的面试心得总结!

今天来给大家讲一下软件测试工程师的面试一些技巧、建议,以及你们在面试过程中需要做的一些准备、注意事项。 很多的小伙伴在刚刚学习完软件测试后就要面临一个问题:就业找工作。找工作要面临的第一件事儿就是面试,很多小伙伴对面试完全是模糊…

【C语言】八大排序实现及稳定性和总结

目录 一、八大排序剖析链接二、排序的稳定性2.1 稳定性作用2.2 如何判断排序算法是否稳定 总结三、八大排序实现及源代码3.1 插入排序3.2 希尔排序3.3 堆排序3.4 快速排序3.4.1 Hoare版(左右指针法)3.4.2 挖坑法3.4.3 前后指针法3.4.4 三数取中优化3.4.5…

CSP-CCF★★201809-2买菜★★

目录 一、问题描述 二、解答: 三、总结 一、问题描述 问题描述 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也…

MySQL系列—9.Innodb页

目录 磁盘与内存交互的基本单位—页 页结构概述 页的大小 页的上层结构 页的内部结构 1、File Header(文件头部) 2、File Trailer(文件尾部) 3、Free Space (空闲空间) 4、User Records (用户记录) 5、Infimum Supremu…

「漏洞复现」通天星CMSV6车载定位监控平台 getAlarmAppealByGuid SQL注入漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

AI基础 L15 Constraint Satisfaction Problems III约束满足问题

Local Search for CSPs Local search algorithms use a complete-state formulation where: — each state assigns a value to every variable, and — the search changes the value of one variable at a time • Min-conflicts heuristic: value that results in the min…

IEC103设备数据 转 IEC61850项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 配置VFBOX网关采集103设备数是 2 5 用IEC61850协议转发数据 4 6 网关使用多个逻辑设备和逻辑节点的方法 6 7 IEC103协议说明 8 8 案例总结 9 1 案例说明 设置网关采集IEC103设备数据把采集的数据转成IEC61850协议转发…

三.海量数据实时分析-FlinkCDC实现Mysql数据同步到Doris

FlinkCDC 同步Mysql到Doris 参考:https://nightlies.apache.org/flink/flink-cdc-docs-release-3.0/zh/docs/get-started/quickstart/mysql-to-doris/ 1.安装Flink 下载 Flink 1.18.0,下载后把压缩包上传到服务器,使用tar -zxvf flink-xxx…

华为认证 vs 红帽认证 怎么选?有什么区别?

随着技术的日新月异,IT认证成为衡量个人技能和专业知识的重要标准。在众多认证中,华为认证和红帽认证以其权威性和实用性,成为业界颇具含金量的标杆。华为认证,作为华为推出的认证,是网络技术领域的权威认证之一&#…

vscode 中使用 yarn 出错

问题 vscode 中使用 yarn 爆红,类似下图的错误: 原因 由于vscode中的集成终端使用的是powershell,所以需要设置下该权限才能正常使用yarn 解决 找到 powershell,以管理身份运行 输入:set-ExecutionPolicy Remot…

MySQL系列—8.物理结构

目录 1.系统表空间 ibdata 2.通用表空间 .ibd 3.独立表空间 4.Undo 表空间 5.临时表空间 6.Redo Log File 1.系统表空间 ibdata 系统表空间由参数innodb_data_file_path定义路径、初始化大小、自动扩展策略 如: innodb_data_file_path/dayta/mysql/ibdata1:…

感恩 各位老师们!和滋养你的人在一起,确实很重要——早读(逆天打工人爬取热门微信文章解读)

感恩 各位老师们 引言Python 代码第一篇 洞见 和滋养你的人在一起,确实很重要第二篇 一天 风云突变结尾 (不是 现在网上在呢么各种图都有 哈哈哈) 引言 今天是什么特殊的日子吗? 没错 教师节 说起这个教师节 我觉得大家更要记住…

【北京迅为】《STM32MP157开发板使用手册》-第十九章 Yocto系统开发

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

C++——list的实现

目录 0.前言 1.节点类 2.迭代器类 ①普通迭代器 ②const迭代器 ③模板迭代器 3.list类 3.1 clear、析构函数、swap ①clear ② 析构函数 ③ swap 3.2构造函数 ①无参构造 ②赋值构造 3.3 迭代器 3.4插入函数 ①insert插入 ②头插 ③尾插 3.5 删除函数…

【分治】归并排序

【分治】归并排序 1. 排序数组1. 1题目来源1.2 题目描述1.3 题目解析 2. LCR 170. 交易逆序对的总数2. 1题目来源2.2 题目描述2.3 题目解析 3. 计算右侧小于当前元素的个数3. 1题目来源3.2 题目描述3.3 题目解析 1. 排序数组 1. 1题目来源 912. 排序数组 1.2 题目描述 给你…