NLP高频面试题(六)——decoder-only、encoder-only和encoder-decoder的区别与联系
一、基本概念与代表模型
1. Encoder-only 架构
Encoder-only 架构最具代表性的模型是 BERT。BERT 使用 masked language modeling(MLM)进行预训练,即随机遮蔽部分输入词汇,让模型预测被遮蔽的词汇。由于这种架构能够同时看到输入序列的上下文信息,BERT 非常擅长文本理解)任务,如文本分类、命名实体识别等。
2. Decoder-only 架构
Decoder-only 架构的经典代表是 GPT 系列模型,如 GPT-3 和 GPT-4。GPT 模型使用 next token prediction 进行训练,在生成某个词的表征时,仅能看到该词及其之前的所有信息,而不能看到后续信息。这种单向注意力机制称为 causal mask。
3. Encoder-decoder 架构
Encoder-decoder 架构最早由 Transformer 提出,用于seq2seq任务,代表模型有 T5 和 BART。Encoder 部分处理输入序列并抽取特征,Decoder 部分根据 Encoder 提供的特征生成目标序列,典型应用是翻译和摘要生成。
二、架构对比与分析
1. 信息关注方向的不同
- Encoder-only 架构使用的是双向注意力,即在处理文本中任何一个词时,都能同时看到上下文信息,适合理解任务。
- Decoder-only 架构使用的是单向(causal)注意力,仅关注当前位置及其之前的词汇信息,因此天然适合文本生成任务。
- Encoder-decoder 架构则结合了二者的特点:Encoder 使用双向注意力进行充分的上下文理解,Decoder 则使用单向注意力机制进行序列生成。
2. 任务适应性与泛化性能
- Encoder-only 模型由于其双向注意力机制,更适合文本理解类任务,但生成能力有限。
- Decoder-only 模型,如 GPT,能够在仅使用无监督预训练(next token prediction)的情况下,实现出色的 zero-shot 和 few-shot 泛化能力,兼具理解和生成的特性,适合多种下游任务。
- Encoder-decoder 模型则擅长 seq2seq 任务,比如翻译、摘要生成等特定场景,但通常需要一定量的任务特定微调数据来达到最佳性能,zero-shot 泛化性能不如 Decoder-only 模型。
3. 效率与工程实现问题
在实际应用中,尤其是多轮对话场景,Decoder-only 架构由于其能复用 KV 缓存(每个 token 的表示与之前输入的信息有关),极大提高了推理效率。而 Encoder-decoder 和 PrefixLM 等变种架构则难以做到高效的 KV 缓存复用,因此效率较低。
此外,Decoder-only 架构在大规模自监督学习(如当前主流的百亿甚至千亿参数模型训练)中效率更高,工程实现更为简单。
4. 理论基础:低秩问题
有研究指出,Encoder 的双向注意力存在所谓的“低秩问题”,即由于双向注意力看到的信息过于丰富,可能导致模型的有效表达能力受到限制。而 Decoder-only 的单向注意力则天然避免了这个问题,使得其在文本生成任务中更具优势。
三、模型架构选择
- 如果你的任务以文本理解(NLU)为主,尤其是任务特定的微调数据丰富时,Encoder-only 架构(如 BERT)是优选。
- 如果你的任务强调文本生成,且你希望模型具备出色的泛化能力、无监督训练和 few-shot 学习的能力,那么 Decoder-only 架构(如 GPT 系列)无疑是最佳选择。
- 如果你面临典型的序列到序列任务,比如机器翻译、摘要生成等,且有一定量的任务特定数据进行微调,Encoder-decoder 架构(如 T5 或 BART)则更为合适。
相关文章:
NLP高频面试题(六)——decoder-only、encoder-only和encoder-decoder的区别与联系
一、基本概念与代表模型 1. Encoder-only 架构 Encoder-only 架构最具代表性的模型是 BERT。BERT 使用 masked language modeling(MLM)进行预训练,即随机遮蔽部分输入词汇,让模型预测被遮蔽的词汇。由于这种架构能够同时看到输入…...
DeepSeek(8):结合Kimi-PPT助手一键生成演示报告
1 生成内容 在Deepseek中生成内容: 帮我创建年度计划,描述《智能枕头》产品的如何在全国销售,计划切分到每个月。从而让我们的老板和团队对报告充满信息。输出的内容我需要放到ppt中进行展示。 使用Deepseek R1模型,如下&#x…...
【MySQL】MySQL如何存储元数据?
目录 1.数据字典的作用 2. MySQL 8.0 之前的数据字典 3. MySQL 8.0 及之后的数据字典 4.MySQL 8 中的事务数据字典的特征 5.数据字典的序列化 6. .sdi文件的作用: 7..sdi的存储方式 在 MySQL 中,元数据(Metadata) 是描述数…...
《基于自适应正负样本对比学习的特征提取框架》-核心公式提炼简洁版 2022年neural networks
论文源地址 以下是从文档中提取的关于“基于对比学习的特征提取框架(CL-FEFA)”中正负样本对比学习实现的技术细节,包括详细的数学公式、特征提取过程以及特征表示方式的说明。 1. 正负样本的定义与构造 在CL-FEFA框架中,正负样…...
8.4《同一直线上二力的合成》
教会什么:合力与分力、同一直线上二力的合成 培养什么:实验抓共同点为突破口 课标: (二)运动和相互作用 2.2 机械运动和力 2.2.4 能用示意图描述力。会测量力的大小。了解同一直线上的二力合成。 零、导入 提问: 在前面我们探究了物体处于匀速直线运动/静止状态时,即处于…...
用ASCII字符转化图片
代码 from PIL import Image# 定义 ASCII 字符集,从最暗到最亮 ASCII_CHARS "%#*-:. "def resize_image(image, new_width100):width, height image.sizeratio height / widthnew_height int(new_width * ratio)resized_image image.resize((new_wi…...
zookeepernacoskafka之间的联系
一、ZooKeeper与Kafka的协同工作原理 1. 核心关系:Kafka对ZooKeeper的依赖 在Kafka 2.8版本之前,ZooKeeper是Kafka集群的“大脑”,负责管理集群元数据、协调节点状态和故障恢复。两者的协同主要通过以下关键机制实现: Broker注册…...
力扣 797. 所有可能的路径 解析JS、Java、python、Go、c++
深度优先搜索解所有可能的路径问题 题目描述 力扣链接 给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序) graph[i] 是一个从节点 i 可以访问的所有节点的列…...
蓝桥与力扣刷题(蓝桥 组队)
题目:作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。 每位球员担任 1号位至 5号位时的评分如下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大可能是多少? 本题为填空题&…...
python函数的多种参数使用形式
目录 1. 位置参数(Positional Arguments) 2. 关键字参数(Keyword Arguments) 3. 默认参数(Default Arguments) 4. 可变参数(Variable Positional Arguments) 5. 关键字可变参数&…...
天梯赛 PTAL2-009 抢红包
很简单的一道模拟题,使用map统计每个用户的钱数和红包数,最后在使用结构体存储,重载小于号,sort排序即可。 #include <bits/stdc.h> using namespace std; #define endl \n #define int long long typedef long long ll; c…...
【京东API开发指南】三步获取商品详情页实时数据:SKU、价格、销量全解析
以下是使用京东 API 获取商品详情页实时数据(SKU、价格、销量)的一般步骤: 注册与认证 注册开发者账号:访问京东开放平台官网,完成企业实名认证(仅支持企业开发者)。这是使用京东 API 的前提&am…...
深入探讨TK矩阵系统:创新的TikTok运营工具
TK矩阵的应用场景 TK矩阵系统适用于多个场景,尤其是在以下几个方面有显著优势: 批量账号管理与内容发布:对于需要管理多个TikTok账号的内容创作者或营销人员,TK矩阵提供了高效的账号管理工具,支持批量发布视频、评论、…...
AI Agent系列(六) -基于ReAct架构搭建LLM Agent(Deepseek)
AI Agent系列【六】 一、 ReAct1.1 ReAct 的处理过程:1.1 代码结构 二、 Python代码实现2.1 通过Zero-shot 实现python代码实例Python代码示例1:python代码实现示例2 一、 ReAct ReAct 是 Reseaning 和 Action 两个词的前缀合成,代表着先推…...
零基础上手Python数据分析 (6):Python 异常处理,告别程序崩溃的烦恼!
回顾一下,前几篇博客我们学习了 Python 的基本语法、数据结构和文件操作。 现在,我们已经掌握了 Python 编程的基础知识,可以开始编写更复杂的数据分析代码了。 但是,在实际的数据分析工作中,程序并非总能一帆风顺地运行,总会遇到各种 意外情况,例如: 文件找不到: 程序…...
AnyTouch:跨多个视觉触觉传感器学习统一的静态动态表征
25年3月来自人大、武汉科技大学和北邮的论文“AnyTouch: Learning Unified Static-dynamic Representation Across Multiple Visuo-tactile Sensors”。 视觉触觉传感器旨在模拟人类的触觉感知,使机器人能够精确地理解和操纵物体。随着时间的推移,许多精…...
关于stm32mp157
目录 设备树: 内核移植: 编写一个驱动的过程: 编写i2c传感器驱动的过程: 从arm11后,命名改为cortex, 1.cortex A:高端应用型领域 2.cortex R:实时性要求 3.cortex M:…...
关于单项梯度冻结小记
单项权重冻结(Partial Weight Freezing)详解 单项权重冻结(Partial Weight Freezing) 是深度学习模型训练中的一种技巧,指的是在训练过程中,只冻结(固定)部分网络权重,而…...
Ubuntu20.04安装Nvidia显卡驱动
Ubuntu20.04安装Nvidia显卡驱动 安装环境为Dell R540服务器 官网下载Nvidia显卡驱动 https://www.nvidia.cn/geforce/drivers/ 安装显卡驱动 chmod x NVIDIA-Linux-x86_64-470.63.01.run sudo ./NVIDIA-Linux-x86_64-470.63.01.run 遇到nouveau报错 lsmod查看nouveau驱动…...
YOLOv11 目标检测
本文章不再赘述anaconda的下载以及虚拟环境的配置,博主使用的python版本为3.8 1.获取YOLOv11的源工程文件 链接:GitHub - ultralytics/ultralytics: Ultralytics YOLO11 🚀 直接下载解压 2.需要自己准备的文件 文件结构如下:红…...
VSCode C/C++ 环境搭建指南
一、前言 Visual Studio Code(简称 VSCode)是一款轻量级且功能强大的跨平台代码编辑器,凭借丰富的插件生态和高度的可定制性,深受开发者喜爱。对于 C/C 开发者而言,在 VSCode 中搭建开发环境,能够获得灵活…...
Python-docx库详解:轻松实现Word文档自动化生成与图片尺寸控制
Python-docx库详解:轻松实现Word文档自动化生成与图片尺寸控制 在现代办公自动化的浪潮中,文档处理是一项不可或缺的任务。Python作为一种强大的编程语言,提供了丰富的库来简化这些任务。其中,python-docx库是处理Word文档的有力…...
Python大疆导出csv文件转化大地2000的dxf文件
大疆导出三维模型里面有个models\pc\0\terra_grid\csv\terra_grid.csv文件,里面记录所有点的坐标和高程,但坐标是经纬度坐标,需要转化为大地2000坐标。 我参照了:经纬度坐标转换为CGCS2000大地坐标系对应XY值(PYTHON实…...
Python 中下划线 “_” 的多面性:从变量到约定
# Python中下划线“_”的多面性:从变量到约定 在Python的语法体系里,下划线“_”看似毫不起眼,实则扮演着极为重要且多样化的角色。它不仅能作为普通变量参与编程,更在多个特殊场景下有着独特的用途与约定。深入理解下划线的各种…...
Vue3项目开发:状态管理实践指南
# Vue3项目开发:状态管理实践指南 一、引言 背景介绍 在Vue项目中,状态管理是一个非常重要的话题。合理的状态管理能够帮助我们更好地组织和管理数据,提升项目的可维护性和可扩展性。本文将深入探讨Vue3项目中状态管理的最佳实践,…...
JVM-JAVA编译到执行全过程
源码文件(.java)到代码执行的全过程: 该过程主要分为四个阶段,“编译-》加载-》解释-》执行”。 在编译阶段需要将源码文件(.java)通过语法分析、语义分析、注解处理后得到class文件; 在加载…...
数据结构-------栈
顺序栈: 一、数据结构定义 数据元素 DATATYPE typedef struct person {char name[32];char sex;int age;int score; } DATATYPE;顺序栈结构 SeqStack typedef struct list {DATATYPE *head; // 栈空间首地址int tlen; // 栈总容量(total leng…...
机器学习概要
文章目录 一、什么是机器学习 二、机器学习的种类 1. 有监督学习 2. 无监督学习 3.强化学习 三、机器学习的应用 四、机器学习的步骤 1. 数据的重要性 2. 数据和学习的种类 3. 可视化 一、什么是机器学习 机器学习指的是计算机根据给定的问题、课题或环境进行学习&a…...
python:music21 与 AI 结合应用探讨
Python 的 music21 库与人工智能(AI)技术结合应用具有广泛的可能性,尤其是在音乐生成、分析和风格模拟等领域。以下是具体的结合方向与示例: 1. 音乐生成与 AI AI 模型驱动音乐生成: 使用深度学习模型(如 …...
【LangChain入门 2 Model组件】开始!LLM Models简单对话
文章目录 一、使用langchain_ollama二、采用DeepSeek的API三、Model 介绍3.1 OllamaLLM 预训练模型3.2 ChatOllama 聊天预训练模型3.3 OllamaEmbeddings 实现一个helloworld,跑通一个简单的对话。 后面章节会正式介绍LangChain的各个功能。 后台llm的端口可以任意选…...
