【AI大模型】解锁AI智能:从注意力机制到Transformer,再到BERT与GPT的较量

news2024/11/16 19:50:06

在这里插入图片描述


文章目录

  • 前言
  • 一、揭秘注意力机制:AI的焦点如何塑造智能
    • 1.什么是注意力机制?
    • 2.为什么需要注意力机制?
  • 二、变革先锋:Transformer的突破与影响力
    • 1.什么是Transformer?
    • 2.为什么Transformer如此重要?
  • 三、路径分岔:GPT与BERT的策略与应用对比
    • 1.BERT
    • 2.BERT vs GPT 差异
    • 3.BERT vs GPT 共识
  • 四、一些概念的简单概述
    • RNN
    • Embeddings
  • 五、参考论文:


前言

    在AI技术的迅猛发展中,注意力机制成为了关键驱动力,赋予机器高效处理复杂信息的能力。本文深入探索注意力机制及其核心应用——Transformer架构,解析其如何通过自注意力机制革新自然语言处理。同时,对比分析GPT与BERT两大热门模型,揭示它们在策略上的差异与共识,探讨其在未来智能技术中的潜力。此外,本文还将简要提及RNN与Embeddings等基础概念,为读者构建一个关于注意力机制及其应用的初步框架。期待通过本文,读者能对AI领域的这一重要技术有更深入的了解和启发。
在这里插入图片描述


一、揭秘注意力机制:AI的焦点如何塑造智能

1.什么是注意力机制?

两种不同的神经网络架构
首先,我们先了解一下下图中两种不同的神经网络架构:传统的编码器-解码器(Encoder-Decoder)架构带有注意力机制的编码器-解码器架构。这两种架构常用于序列到序列(Sequence-to-Sequence,Seq2Seq)任务,如机器翻译。
在这里插入图片描述
以学生向教师传递信息举例:

  • 传统的编码器-解码器(Encoder-Decoder)架构
    • 传递信息时,类似->击鼓传花,A->B->C => 教师
  • 带有注意力机制的编码器-解码器架构
    • 传递信息时,(A,B,C)=>教师 (教师听每个人说什么,自己分析每人所说的重点)

对比传统编码器-解码器和带有注意力机制的编码器-解码器
在这里插入图片描述
a.左侧表格对比了传统编码器-解码器和带有注意力机制的编码器-解码器的函数和步骤:

  1. Encode
    • 传统编码器:每个输入元素 x i x_i xi更新隐藏状态 h j h_j hj
    • 带注意力的编码器:同上,但额外计算了注意力权重 α i j α_{ij} αij并用于生成上下文向量 c j c_j cj
  2. Context
    • 传统编码器:将最后一个隐藏状态 h T h_T hT 作为上下文向量。
    • 带注意力的编码器:通过加权平均所有隐藏状态 h i h_i hi 来生成上下文向量 c j c_j cj
  3. Decode
    • 传统解码器:使用上下文向量 c c c 和解码器的前一步隐藏状态 s j − 1 s_{j-1} sj1 更新解码器隐藏状态 s j s_j sj
    • 带注意力的解码器:同上,但使用的是加权的上下文向量 c j c_j cj
  4. Generate
    • 传统解码器:根据解码器隐藏状态 s j s_j sj 和上下文向量 c c c 生成输出 y j y_j yj
    • 带注意力的解码器:同上,但使用加权的上下文向量 c j c_j cj

b.右侧图形展示了两种架构的详细流程

  1. 传统编码器-解码器(左半部分):
    • 编码器将输入序列 x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3 转换为隐藏状态 h 1 , h 2 , h 3 h_1, h_2, h_3 h1,h2,h3
    • 最后一个隐藏状态 h 3 h_3 h3 作为上下文向量 c c c 传给解码器。
    • 解码器根据 c c c 和前一个输出 y j − 1 y_{j-1} yj1 生成下一个输出 y j y_j yj
  2. 带注意力的编码器-解码器(右半部分):
    • 编码器同样将输入序列转换为隐藏状态 h 1 , h 2 , h 3 h_1, h_2, h_3 h1,h2,h3
    • 注意力机制计算出每个隐藏状态的注意力权重 α i 1 α_{i1} αi1, α i 2 α_{i2} αi2, α i 3 α_{i3} αi3
    • 根据注意力权重 α i j α_{ij} αij 计算加权的上下文向量 c j c_j cj
    • 解码器根据 c j c_j cj和前一个输出 y j − 1 y_{j-1} yj1生成下一个输出 y j y_j yj

c.关键区别:

  • 传统编码器-解码器仅使用最后一个隐藏状态作为上下文向量。
  • 带注意力的编码器-解码器使用加权的上下文向量,其中权重取决于解码器的当前状态。

Encoder-decoder Architecture with Attention Model
在这里插入图片描述

  1. 输入序列:
    • 输入序列经过编码器转换为隐藏状态。
  2. 注意力机制:
    • 解码器的隐藏状态与编码器的隐藏状态相比较,计算注意力权重,这是由一个名为“alignment function”的函数完成的。
    • 注意力权重是通过比较查询(query)和键(key)的相似度得出的。
    • 注意力权重通常通过softmax函数进行归一化,以确保总和为1。
  3. 加权上下文向量:
    • 加权上下文向量是通过将隐藏状态乘以其对应的注意力权重然后求和得到的。
  4. 解码器:
  • 解码器根据加权上下文向量和前一个输出生成下一个输出。
  1. 学习注意力权重:
    • 注意力权重的学习是一个迭代的过程,解码器通过反向传播算法调整权重,使其更加聚焦于输入序列中相关的信息。
  2. 额外的值向量:
    • 在某些情况下,注意力机制还考虑额外的值向量,这可能会提供更多的信息来帮助解码器生成输出。

不同类型的对齐函数,进一步分析带注意力机制的编码器-解码器架构
在这里插入图片描述

2.为什么需要注意力机制?

注意力机制的特点和优势:

  1. 注意力机制有助于克服循环神经网络(RNNs)的一些挑战,例如输入序列长度增加时性能下降和顺序处理输入导致的计算效率低下。
  2. 在自然语言处理(NLP)、计算机视觉(Computer Vision)、跨模态任务和推荐系统等多个领域中,注意力机制已成为多项任务重的最先进模型,取得了显著的性能提升。
  3. 注意力机制不仅可以提高主要任务的性能,还具有其它优势。它们被广泛应用于提高神经网络的可解释性,帮助解释模型的决策过程,使得原本被认为是黑盒模型的神经网络变得更易解释。这对于人们对机器学习模型的公平性、可追溯性和透明度的关注具有重要意义。

克服循环神经网络(RNNs)的一些挑战

  • 解决传统编码器-解码器模型的挑战,避免信息损失和无法建模输入输出对齐的问题。
  • 允许解码器访问整个编码的输入序列,通过注意力权重选择性地关注相关信息。
  • 自动学习注意力权重,捕捉编码器和解码器之间的相关性。
  • 构建上下文向量,使解码器能够全面访问输入序列并重点关注相关部分。
  • 提高模型性能,改善输出质量,并提供更好的解释性。

二、变革先锋:Transformer的突破与影响力

1.什么是Transformer?

注意力建模技术的关键组成部分:
在这里插入图片描述

Encode-Decoder架构 与 Transformer架构
在这里插入图片描述
Transformer 架构

  • Multi-Head Attention: Transformer的核心模块之一,它允许模型同时关注输入的不同方面。
  • Feed Forward: 用于非线性变换的全连接层。
  • Add & Norm: 添加残差连接和层归一化操作,有助于梯度流经深层网络。
  • Positional Encoding: 添加到输入嵌入中的信号,使模型能够理解输入元素的位置信息。
  • Linear: 线性变换,可能用于合并多头注意力的结果或其他目的。
  • Softmax: 输出概率分布。

对比:

  • seq-aligned RNNs使用RNN作为编码器和解码器,而Transformer完全基于注意力机制。
  • Transformer引入了多头注意力和残差连接,使得模型更易于训练和扩展。
  • Transformer中的注意力机制不再局限于序列对齐,而是可以在整个输入序列上自由地分配注意力。

自注意力机制

Scaled Dot-Product Attention =>a 一种对齐函数在这里插入图片描述


在这里插入图片描述

Transformer:Encoder-Decoder
在这里插入图片描述

2.为什么Transformer如此重要?

  • Attention is all you need:
    • Transformer是第一个完全依赖自我注意力机制来计算输入和输出表示的转换模型,没有使用序列对齐的RNN或卷积运算。这意味着它能更好地处理长距离依赖关系,因为它可以直接关注输入序列中的任何部分,而不需要按照顺序处理。
  • GPU-friendly parallel computation:
    • Transformer的层高度并行化,导致更低的计算成本。由于注意力机制可以并行计算,因此在GPU上运行时速度更快,这对于大规模文本处理任务至关重要。
  • Sentence-level representations:
    • Transformer结合了位置编码,可以通过考虑标记的相对位置来捕获长程依赖关系。这意味着它不仅能捕捉单词间的直接联系,还能理解句子级别的语境信息。

在这里插入图片描述

三、路径分岔:GPT与BERT的策略与应用对比

在这里插入图片描述

1.BERT

    BERT (Bidirectional Encoder Representations from Transformers) 是一种深度学习预训练模型,由Google的研究人员在2018年提出,并且在自然语言处理(NLP)领域产生了重大影响。
    BERT 的创新之处在于它使用了双向的Transformer编码器来生成词的上下文嵌入,这意味着它可以同时考虑一个词前后的上下文信息,从而获得更准确的语言理解能力。

BERT : Pre-training + Fine-Tuning Paradigm
在这里插入图片描述

BERT 独特价值

1. 全方位上下文理解: 与以前的模型(例如 GPT )相比,BERT 能够双向理解上下文,即同时考虑一个词的左右边的上下文。这种全方位的上下文理解使得 BERT 能够更好地理解语言,特别是在理解词义、消歧等复杂任务上有明显优势。
2. 预训练+微调(Pre-training + Fine-tuning)的策略: BERT 模型先在大规模无标签文本数据上进行预训练,学习语言的一般性模式,然后在具体任务的标签数据上进行微调。这种策略让 BERT 能够在少量标签数据上取得很好的效果,大大提高了在各种 NLP 任务上的表现。
3. 跨任务泛化能力: BERT 通过微调可以应用到多种 NLP 任务中,包括但不限于文本分类、命名实体识别、问答系统、情感分析等。它的出现极大地简化了复杂的 NLP 任务,使得只需一种模型就能处理多种任务。
4. 多语言支持: BERT 提供了多语言版本(Multilingual BERT),可以支持多种语言,包括但不限于英语、中文、德语、法语等,使得 NLP 任务能够覆盖更广的语言和地区。
5. 性能优异:BERT 模型提出以来,它在多项 NLP 基准测试中取得了优异的成绩,甚至超过了人类的表现。它的出现标志着 NLP 领域进入了预训练模型的新时代。
6. 开源和可接入性: BERT 模型和预训练权重由 Google 公开发布,让更多研究者和开发者可以利用 BERT 模型进行相关研究和应用开发,推动了整个 NLP 领域的发展。

2.BERT vs GPT 差异

特性BERTGPT
训练方式自编码(Autoencoding自回归(Autoregressive
预测目标给定上下文,预测其中一个或多个缺失单词在给定前面的单词时,预测下一个单词
输入处理双向,可以同时考虑一个词的左右上下文单向(从左到右或者从右到左)
适用场景适合理解上下文,有助于信息提取、问答系统、情感分析等适合生成式任务,如文章生成、诗歌创作等
架构基于Transformer的编码器基于Transformer的解码器
语言模型判别式(Discriminative生成式(Generative
优点对上下文理解能力强预测的连贯性强
缺点生成的文本连贯性较弱对上下文理解能力相对较弱

3.BERT vs GPT 共识

模型架构Transformer
数据预处理都需要对数据进行Tokenization,一般使用词片方法(Subword Tokenization
模型训练均使用了大量的无标签数据进行预训练
任务迁移都可以通过Fine-tuning方式进行任务迁移
训练目标都试图通过预训练理解语言的一般模式,如语法、语义、上下文关系等
多语言支持均支持多语言模型训练

四、一些概念的简单概述

RNN

    循环神经网络(RNN) 是一种专为序列数据设计的神经网络模型,它通过在隐藏层中引入循环连接来保持对先前输入的记忆,从而能够处理可变长度的数据序列。 RNN广泛应用于自然语言处理、语音识别和时间序列预测等领域,但由于梯度消失/爆炸问题,在实际应用中常被LSTMGRU等更先进的变种所取代。

Embeddings

    Embeddings 是一种将文本中的单词或短语转换为连续向量的技术,这些向量能够捕捉词汇间的语义和句法关系,从而帮助解决数据稀疏性问题并量化词汇间的相似性和差异性,在自然语言处理任务如文本分类、命名实体识别、机器翻译等场景中有广泛应用。常见的创建方法包括 Word2VecGloVeFastTextBERT 等,可以通过预训练或与具体任务模型联合训练的方式获得。

五、参考论文:

  • An attentive survey of attention models
  • Attention Is All You Need
  • Visual Attention Methods in Deep Learning An In-Depth Survey

在这里插入图片描述

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

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

相关文章

《给所有人的生成式 AI 课》学习笔记(一)

前言 本文是吴恩达(Andrew Ng)的视频课程《Generative AI for Everyone》(给所有人的生成式 AI 课)的学习笔记。由于原课程为全英文视频课程(时长约 3 个小时),且国内访问较慢,阅读…

零基础转行学网络安全怎么样?

在当今数字化飞速发展的时代,网络安全已成为备受瞩目的领域。那么,对于零基础的人来说,转行学习网络安全究竟怎么样呢? 网络安全行业正处于蓬勃发展的阶段。随着互联网的普及和信息技术的不断进步,网络安全问题日益凸显。政企单位…

本地私有化部署PDF处理神器Stirling PDF并实现无公网IP远程在线访问

文章目录 前言1. 安装Docker2. 本地安装部署StirlingPDF3. Stirling-PDF功能介绍4. 安装cpolar内网穿透5. 固定Stirling-PDF公网地址 前言 本篇文章我们将在Linux上使用Docker在本地部署一个开源的PDF工具——Stirling PDF,并且结合cpolar的内网穿透实现公网随时随…

文心一言 VS 讯飞星火 VS chatgpt (328)-- 算法导论22.5 4题

四、证明:对于任意有向图 G G G来说, ( ( G T ) S C C ) T G S C C ((G^T)^{SCC})^TG^{SCC} ((GT)SCC)TGSCC。也就是说,转置图 G T G^T GT的分量图的转置与图 G G G的分量图相同。如果要写代码,请用go语言。 文心一言&#xff1…

葡萄叶片病虫害数据集。葡萄数据集。葡萄病虫害数据集。

葡萄叶片病虫害数据集。葡萄数据集。葡萄病虫害数据集。 数据集有两种规格,请仔细阅读下面信息以免拍错 [1]规格一:适用于分类任务的数据集,标准的ImageNet数据集格式。注意不是txt格式的更不是xml格式的。数据集已经按照train、val划分好&am…

上海亚商投顾:沪指窄幅震荡 华为海思、猴痘概念股集体爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 市场全天窄幅震荡,三大指数涨跌不一。华为海思概念股持续爆发,世纪鼎利、天邑股份、汇…

ProGrad:Prompt-aligned Gradient for Prompt Tuning

文章汇总 存在的问题 问题1 如图(a),(b):CoOp随着训练的继续,泛化能力可能会下降,甚至低于zero-shot基线。 如图©,(d):在shot比较小的情况,即数据量比较少的情况(1-shot,2-shot),CoOp的性能可能还不…

和鲸携手山东大学数字人文实验室,推动新文科与人工智能融合发展

为深入推进产教融合与校企合作,推动人工智能在人文学科中的广泛应用与深入发展,8 月 15 日,山东大学数字人文实验室与和鲸科技 101 计划推进会暨新文科人工智能实验室标杆案例打造讨论会于威海顺利召开。山东大学数字人文实验室副主任陈建红、…

基于Docker部署最新版本Jenkins

一、创建jenkins挂载路径 mkdir /var/jenkins_home chmod 777 /var/jenkins_home二、运行Jenkins最新lts镜像 docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home --restartalways jenkins/jenkins:latest将/var/jenkins_ho…

若依小程序使用及遇到的问题

1、首先去官网拉取小程序代码,从HBuildx运行到小程序 这个时候项目起来了,但是小程序发生了报错; 解决方法 在 project.config.json 新增指定 app.json 路径 ★一定要有 unpackage文件夹 如果没有的需要到HBuilder X 编译一下,编…

一文说清楚数据集成中的流处理与批处理的区别

流数据处理和批数据处理之间的区别主要在于数据的处理方式、时间性、架构设计和适用场景。虽然批处理系统和流处理系统都可以处理数据,但它们处理数据的方式和目的不同,以我们来对“流数据处理”和“批数据处理”进行差异分析。 1. 流数据处理 vs. 批数…

MySQL索引的性能优化

1.数据库服务器的优化步骤 在数据库调优中,我们的目标就是响应时间更快,吞吐量更大。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候,该如何思考呢&#xf…

常见的排序算法汇总(详解篇)

目录 排序的概念以及运用 排序的概念 1. 插入排序 1.1 直接插入排序 1.1.1 基本思想 1.1.2 代码实现 直接插入排序的特征总结: 1.1.3 希尔排序(缩小增量排序)🚀 1.1.4基本思想🚀 1.1.5 代码实现🚀 …

Redis 集群三主三从配置

1:安装 Redis安装Linux ubuntu_ubuntu离线安装redis7.2.5-CSDN博客 2:主从复制配置 参考 Redis主从同步配置-CSDN博客 3:哨兵配置 参考 Redis 哨兵模式配置-CSDN博客 4:集群配置 Redis 集群三主三从配置-CSDN博客 5&…

JavaScript初级——对象和函数

一、对象的简介 1、JS中的数据类型 —— String 字符串 —— Number 数值 —— Boolean 布尔值 —— Null 空值 —— Undefined 未定义 ——以上五种类型属于基本数据类型,以后我们看到的值只要不是上面这五种,则为对象 —— Object 对象 2…

仓颉编程语言-001-第一个入门程序helloworld

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境 三、使用cjc方式开发三、使用cjpm方式 一、概述 本文档是针对仓颉编程语言编写的第一个入门程序,通过两种方式,第一种方式是cjc,第二种方式是cjpm。关于cjc和cjpm的使用,请参…

【html+css 绚丽Loading】 - 000006 四象轮回镜

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f495…

履带式排爆机器人技术详解

履带式排爆机器人是现代反恐、救援及危险环境处理领域中的重要工具。它们结合了先进的机械设计、智能感知、精确控制及高效算法,能够在复杂、危险的环境中执行排爆、侦察、取样等多种高风险任务,极大地保障了人员安全。履带式排爆机器人以其卓越的地面适…

IP地址申请SSL证书实现https教程

IP地址如果想实现HTTPS访问,则需要部署专门针对IP地址的SSL证书。为IP地址申请SSL证书并实现HTTPS加密连接是一个涉及多个步骤的过程。 下面是一份基本的教程(以国产服务商JoySSL为例): 1 注册账号 打开JoySSL官网,…

第11章 第4节 软件异常的分类及其关系(软件评测师)

V模型指出,(系统测试)对概要设计进行验证,(集成测试)对详细设计进行验证,(验收测试)当追溯到用户需求说明。 1.以下关于基于V&V原理的W模型的叙述中,&am…