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

BERT, GPT, Transformer之间的关系

1. Transformer 是什么?简单介绍

1.1 通俗理解

想象你是一个翻译员,要把一句话从中文翻译成英文。你需要同时看句子里的每个词,理解它们之间的关系。Transformer就像一个超级翻译助手,它用“自注意力机制”(Attention)一次处理所有词,快速找出重要联系,比老式的翻译机(RNN)更快更聪明。

1.2 技术定义

Transformer 是 2017 年由 Vaswani 等人提出的神经网络架构(论文:《Attention is All You Need》),主要用于自然语言处理(NLP)。它由以下核心部分组成:

  • 自注意力机制(Self-Attention):让模型关注句子中不同词之间的关系。
  • 多头注意力(Multi-Head Attention):同时从多个角度分析词的关系。
  • 前馈神经网络(Feed-Forward Networks)残差连接(Residual Connections):提高训练效率。
  • 编码器-解码器结构:编码器处理输入,解码器生成输出。

Transformer 的创新在于抛弃了传统的循环神经网络(RNN),用并行计算加速训练,特别适合长序列任务。


2. GPT 是什么?与 Transformer 的关系

2.1 通俗理解

**GPT(Generative Pre-trained Transformer)**就像一个会写故事的智能作家。它基于 Transformer 的“解码器”部分,学会从大量文本中预测下一个词,写出连贯的句子。OpenAI 在 2018 年推出第一个 GPT,之后不断升级(如 GPT-2、GPT-3)。

2.2 技术细节
  • 架构:GPT 是 Transformer 的单向解码器堆叠。它只用解码器部分(因为生成任务需要逐步预测),去掉了编码器。
  • 训练方式
    • 预训练:在大规模语料库(如维基百科)上用“自回归语言模型”训练,目标是最大化 P(x1,x2,...,xn)=∏iP(xi∣x1,...,xi−1) P(x_1, x_2, ..., x_n) = \prod_{i} P(x_i | x_1, ..., x_{i-1}) P(x1​,x2​,...,xn​)=∏i​P(xi​∣x1​,...,xi−1​)。
    • 微调:在特定任务(如对话)上调整参数。
  • 关联:GPT 直接继承了 Transformer 的自注意力机制和多头注意力,核心计算公式如: Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)VAttention(Q,K,V)=softmax(dk​​QKT​)V 其中 Q,K,V Q, K, V Q,K,V 是查询、键和值矩阵。
2.3 演变
  • GPT-1:基础模型,12 层 Transformer。
  • GPT-2:更大规模,15 亿参数,生成能力更强。
  • GPT-3:1750 亿参数,支持零样本学习(无需微调)。

3. BERT 是什么?与 Transformer 的关系

3.1 通俗理解

**BERT(Bidirectional Encoder Representations from Transformers)**像一个超级阅读理解专家。它基于 Transformer 的“编码器”部分,能从句子两边同时理解词义,帮你回答问题或分类文本。Google 在 2018 年推出 BERT,引发 NLP 革命。

3.2 技术细节
  • 架构:BERT 用 Transformer 的编码器堆叠(多层自注意力),去掉了解码器。
  • 训练方式
    • 双向预训练:用“掩码语言模型(Masked Language Model, MLM)”和“下一句预测(Next Sentence Prediction, NSP)”任务。
      • MLM:随机掩盖词(如“猫[MASK]跑”),预测被掩盖词。
      • NSP:判断两句话是否连续。
    • 微调:用于具体任务(如情感分析)。
  • 关联:BERT 继承了 Transformer 的编码器结构,同样用自注意力机制,但方向是双向(而 GPT 是单向)。
3.3 变体
  • BERT-base:12 层,110M 参数。
  • BERT-large:24 层,340M 参数。

4. BERT 和 GPT 之间的关联

4.1 共同点
  • Transformer 基础:两者都基于 Transformer 架构,共享自注意力、多头注意力和层归一化(Layer Normalization)。
  • 预训练理念:都采用在大规模无标签数据上预训练,然后微调到特定任务。
  • 应用:都用于 NLP 任务,如文本生成(GPT)、问答(BERT)。
4.2 不同点

特性GPTBERT
架构单向解码器(左到右)双向编码器(双向)
训练目标自回归预测下一个词掩码语言模型 + 下一句预测
生成能力强(生成连贯文本)弱(主要用于理解)
方向性单向(因果)双向(上下文双向)
典型应用文本生成、聊天分类、问答、NER
4.3 关联性
  • 技术进化:BERT 和 GPT 都是 Transformer 的衍生,反映了不同任务需求(生成 vs. 理解)。
  • 互补性:BERT 擅长理解上下文,GPT 擅长生成文本,两者结合(如在对话系统中)可以互补。
  • 灵感来源:BERT 的双向思想受 Transformer 编码器启发,GPT 的自回归思想受解码器启发。

5. 用费曼学习法总结

假设我要向一个完全不懂的人解释:

想象 Transformer 像一个超级翻译机,能同时看句子所有词。GPT 像一个会写故事的翻译机,只从头到尾猜词,写出新句子。BERT 像一个会读懂整句话的翻译机,从两边一起看,帮你回答问题。它们都是从同一个翻译机学来的,但分工不同:GPT 写故事,BERT 解题,合作让语言更聪明!


6. 实际意义和进一步学习

  • 关联性:BERT 和 GPT 都是 Transformer 的成功应用,推动了 NLP 的发展(如 BERT 用于搜索优化,GPT 用于 ChatGPT)。
  • 优化器:两者常用 Adam 优化器,学习率需调优。
  • 延伸:可以探索其他 Transformer 变体(如 T5、RoBERTa)。

相关文章:

BERT, GPT, Transformer之间的关系

1. Transformer 是什么?简单介绍 1.1 通俗理解 想象你是一个翻译员,要把一句话从中文翻译成英文。你需要同时看句子里的每个词,理解它们之间的关系。Transformer就像一个超级翻译助手,它用“自注意力机制”(Attentio…...

Spring Cloud Alibaba Seata安装+微服务实战

目录 介绍核心功能三层核心架构安装微服务实战创建三个业务数据库编写库存和账户两个Feign接口订单微服务 seata-order-service9701库存微服务 seata-store-service9702账户微服务 seata-account-service9703测试结果 总结 介绍 Spring Cloud Alibaba Seata 是一款开源的分布式…...

FMC STM32H7 SDRAM

如何无痛使用片外SDRAM? stm32 已经成功初始化了 STM32H7 上的外部 SDRAM(32MB) 如何在开发中无痛使用SDRAM 使它像普通 RAM 一样“自然地”使用? [todo] 重要 MMT(Memory Management Tool) of STM32CubeMx The Memory Management Tool (MMT) disp…...

部署DNS从服务器

部署DNS从服务器的目的 DNS域名解析服务中,从服务器可以从主服务器上获得指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。 注意&#xf…...

Ubuntu 系统.sh脚本一键部署内网Java服务(组件使用docker镜像,宕机自启动)

#!/bin/bash# 更新系统并安装必要的依赖 sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common# 安装 Docker curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository …...

用 n8n 提取静态网页内容:从 HTTP Request 到 HTML 节点全解析

n8n 的 HTTP Request HTML 节点组合是个实用又高效的工具。这篇文章就带你一步步搞懂如何用它们提取静态网页内容,重点解析 HTML 节点参数和 CSS 选择器,让你轻松上手 。 一、整体流程概览 我们的目标是从静态网页中提取特定内容,流程分两…...

Android Camera Hal中通过Neon指令优化数据拷贝

背景描述: Camera apk普通相机模式录像操作时,一般是同时请求两个流,即预览流和录像流。对于两个流输出图像格式和分辨率相同的情况下,是不是可以通过一个流拷贝得到另一个流的数据,进而节省掉一个Sensor输出处理两次…...

C# winform教程(二)----button

一、button的使用方法 主要使用方法几乎都在属性内,我们操作也在这个界面 二、作用 用户点击时触发事件,事件有很多种,可以根据需要选择。 三、常用属性 虽然属性很多,但是常用的并不多 3.常用属性 名称内容含义AutoSize自动调…...

AcWing 3417:砝码称重——位集合

【题目来源】 3417. 砝码称重 - AcWing题库 【题目描述】 你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1,W2,⋅⋅⋅,WN。 请你计算一共可以称出多少种不同的正整数重量? 注意砝码可以放在天平两边。 【输入格式】 输入的第一行包含一个整数 N。 …...

我认为STM32输入只分为模拟输入 与 数字输入

核心概念解析 模拟输入 (Analog Input) 设计目的:直接连接模拟信号(如ADC采集电压、温度传感器输出) 硬件行为: ✅ 断开内部数字电路(施密特触发器禁用) ✅ 信号直通模拟外设(如ADC、运放&…...

Python编码格式化之PEP8编码规范

文章目录 概要PEP8编码风格py文本组织规范命名规范编码风格 PEP8编码检查工具pylintflake8PyCharm中配置检查工具 PEP8编码格式化工具blackautopep8PyCharm配置格式化工具本地git配置hook 总结 概要 在Python项目开发过程中,代码的可读性和一致性对于项目的长期维护…...

【Zephyr 系列 14】使用 MCUboot 实现 BLE OTA 升级机制:构建安全可靠的固件分发系统

🧠关键词:Zephyr、MCUboot、OTA 升级、BLE DFU、双分区、Bootloader、安全固件管理 📌面向读者:希望基于 Zephyr 为 BLE 设备加入安全 OTA 升级功能的开发者 📊预计字数:5200+ 字 🧭 前言:为什么你需要 OTA? 随着设备部署数量增多与产品生命周期延长,远程升级(…...

K8S认证|CKS题库+答案| 8. 沙箱运行容器 gVisor

目录 8. 沙箱运行容器 gVisor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、官网找模板 3)、创建 RuntimeClass 4)、 将命名空间为 server 下的 Pod 引用 RuntimeClass 5&#xff09…...

【Redis】数据库与缓存一致性

目录 1、背景2、核心问题3、常见解决方案【1】缓存更新策略[1]旁路缓存模式(Cache-Aside)[2]写穿透模式(Write-Through)[3]写回模式 【2】删除与更新策略[1]先更新数据库再删除缓存[2]先删除缓存再更新数据库 【3】一致性保障机制…...

Selenium4+Python的web自动化测试框架

一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefo…...

【论文解读】MemGPT: 迈向为操作系统的LLM

1st author: Charles Packer paper MemGPT[2310.08560] MemGPT: Towards LLMs as Operating Systems code: letta-ai/letta: Letta (formerly MemGPT) is the stateful agents framework with memory, reasoning, and context management. 这个项目现在已经转化为 Letta &a…...

vb监测Excel两个单元格变化,达到阈值响铃

需求 在Excel中实现监控两个单元格之间的变化范围,当达到某个设定的值的范围内时,实现自动响铃提示。 实现: 首先设置Excel,开启宏、打开开发者工具,点击visual Basic按钮,然后在左侧双击需要监测的shee…...

跨域请求解决方案全解析

跨域请求可以通过多种技术方案实现,核心是绕过浏览器的同源策略限制。以下是主流解决方案及具体实现方式: 一、CORS(跨域资源共享) 最常用的标准化方案,通过服务器设置HTTP响应头实现: Access-Control-Al…...

【前端】vue3性能优化方案

以下是Vue 3性能优化的系统性方案,结合核心优化策略与实用技巧,覆盖渲染、响应式、加载、代码等多个维度: ⚙️ 一、渲染优化 精准控制渲染范围 v-if vs v-show: v-if:条件为假时销毁DOM,适合低频切换场景&…...

node 进程管理工具 pm2 的详细说明 —— 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录 7

前言 我以 Ubuntu Server 打造的 NodeJS 服务器为主题的系列文章,经过五篇博客,我们顺利的 安装了 ubuntu server 服务器,并且配置好了 ssh 免密登录服务器,安装好了 服务器常用软件安装, 配置好了 zsh 和 vim 以及 通过 NVM 安装…...

Flask与Celery 项目应用(shared_task使用)

目录 1. 项目概述主要功能技术栈 2. 项目结构3. 环境设置创建虚拟环境并安装依赖主要依赖 4. 应用配置Flask应用初始化 (__init__.py)Celery应用初始化 (make_celery.py) 5. 定义Celery任务 (tasks.py)任务说明 6. 创建API端点 (views.py)API端点说明 7. 前端界面 (index.html)…...

Fetch API 使用详解:Bearer Token 与 localStorage 实践

Fetch API:现代浏览器内置的用于发送 HTTP 请求的 API,Bearer Token:一种基于令牌的身份验证方案,常用于 JWT 认证,localStorage:浏览器提供的持久化存储方案,用于在客户端存储数据。 token是我…...

vue3 vite.config.js 引入bem.scss文件报错

[sass] Can’t find stylesheet to import. ╷ 1 │ use “/bem.scss” as *; │ ^^^^^^^^^^^^^^^^^^^^^^ ╵ src\App.vue 1:1 root stylesheet 分析 我们遇到了一个在Vue3项目中使用Vite时,在vite.config.js中引入bem.scss文件报错的问题。错误信息指出在App.vue…...

二叉树-226.翻转链表-力扣(LeetCode)

一、题目解析 翻转可以理解为树的左右子树交换,从根到叶子节点,但是这里交换的是链接的指针,而不是单纯的交换值,当出现nullptr时,也是可以交换链接的,交换值的话就不行了。 二、算法原理 依旧的递归&…...

HarmonyOS Next 弹窗系列教程(3)

HarmonyOS Next 弹窗系列教程(3) 选择器弹窗 (PickerDialog) 介绍 选择器弹窗通常用于在用户进行某些操作(如点击按钮)时显示特定的信息或选项。让用户可以进行选择提供的固定的内容。 以下内容都属于选择器弹窗: …...

编程笔记---问题小计

编程笔记 qml ProgressBar 为什么valuemodel.progress / 100 在QML中,ProgressBar的value属性用于表示进度条的当前进度值,其范围通常为0到1(或0%到100%)。当使用model.progress / 100来设置value时,这样做的原因是为…...

【docker】Windows安装docker

环境及工具(点击下载) Docker Desktop Installer.exe (windows 环境下运行docker的一款产品) wsl_update_x64 (Linux 内核包) 前期准备 系统要求2: Windows 11:64 位系统&am…...

无人机避障——感知部分(Ubuntu 20.04 复现Vins Fusion跑数据集)胎教级教程

硬件环境:NVIDIA Jeston Orin nx 系统:Ubuntu 20.04 任务:跑通 EuRoC MAV Dataset 数据集 展示结果: 编译Vins Fusion 创建工作空间vins_ws # 创建目录结构 mkdir -p ~/vins_ws/srccd ~/vins_ws/src# 初始化工作空间&#xf…...

人工智能--大型语言模型的存储

好的,我现在需要回答用户关于GGUF文件和safetensors文件后缀的差别的问题。首先,我得先确认这两个文件格式的具体应用场景和它们各自的优缺点。用户可能是在处理大模型时遇到了这两种文件格式,想了解它们的区别以便正确使用。 首先&#xff…...

OD 算法题 B卷【删除字符串中出现次数最少的字符】

文章目录 删除字符串中出现次数最少的字符 删除字符串中出现次数最少的字符 实现删除字符串中出现次数最少的字符,若(最少的)有多个字符出现次数一样,则都删除。输出删除后的字符串,其他字符保持原有顺序;…...