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

ops/2024/9/19 1:19:44/ 标签: 人工智能, transformer, bert

在这里插入图片描述


文章目录

  • 前言
  • 一、揭秘注意力机制: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.ppmy.cn/ops/99709.html

相关文章

Java 入门指南:Map 接口

Map 接口是 Java 集合框架中的一个接口,它表示了一种键值对的映射关系。Map 接口提供了一种以键为索引的数据结构,通过键可以快速查找对应的值。在 Map 中,每个键只能对应一个值,键是唯一的,但值可以重复。 常用的实现…

vs code中编写html的配置,插件安装

首先安装vs code 插件安装下面三个: 功能分别是: html css support :就是支持html环境,因为vs code就是一个文本编辑器 live server:自动更新编写的文件在浏览器刷新 auto rename tag:自动修改另一半标签…

DAY52-图论BFS

kama101.孤岛的总面积 /*** 在外循环遇到没有标记过的岛屿1* param args*/public static void main(String[] args) {Scanner scan new Scanner(System.in);int nscan.nextInt();int mscan.nextInt();int[][] isoland new int[n][m];boolean[][] path new boolean[n][m];fo…

linux常用命令(部分)

1. ls - 列出目录内容 基本用法:ls [选项] [目录]示例:ls -l # 显示详细列表 ls -a # 包括隐藏文件 ls /etc # 列出 /etc 目录的内容2. cd - 改变当前工作目录 基本用法:cd [目录]示例:cd /var/log # 进入 /var/log 目录 cd .. # 上一级目录 cd ~ # 回到用…

每天一个数据分析题(四百九十一)- 主成分分析与因子分析

因子载荷矩阵是主成分载荷矩阵()的结果 A. 最小方差斜交旋转 B. 最大方差斜交旋转 C. 最小方差正交旋转 D. 最大方差正交旋转 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖…

Ai+若依(系统接口--Swagger):04篇

Swagger,能够自动生成 API 的同步在线文档,并提供Web界面进行接口调用和测试。 可以直接去测试:--有的接口测试需要权限 我们可以去这样操作 F12 报错404 是因为多了个前缀 /dev-api 我们去后台删掉: 重启刷新:

大数据技术之Flume应用案例(2)

目录 监控端口数据官方案例 步骤 1: 准备环境 步骤 2: 配置 Flume Agent 步骤 3: 启动 Flume Agent 步骤 4: 发送数据到 Flume 步骤 5: 查看 HDFS 中的数据 注意事项 示例说明 实时监控单个追加文件案例 需求分析 实现步骤 (1)确保环境变量配…

Vue2的16种传参通信方式

前言 先直入主题列出有哪些传参方式,下面再通过事例一一讲解。 props(父传子) $emit与 v-on (子传父) EventBus (兄弟传参) .sync与 update: (父子双向) v-model (父子双向) ref $children与 $parent $attrs与 $listeners (爷孙双向) provide与 inject (多层传参) …

【机器学习】 1. 总览介绍

Machine Learning 两类主要任务 监督学习(supervised learning) 分类 (classification)回归 (regression) 无监督学习 (unsupervised learning) 聚类 (clustering) 其他 [包括数据挖掘] 关联规则挖掘 (association rule mining)强化学习 (reinforce…

牛客小白月赛99

文章目录 A.材料打印B. %%%C.迷宫又是一年毕业季题目链接 A.材料打印 签到题&#xff0c;直接按照题意输出就行。赛时写的有点慢了&#xff0c;这种题应该一分钟之内写完的 void solve () {int n;cin>>n;for (int i1;i<n;i) {int a,b,c,d;cin>>a>>b>…

03、Redis实战:商户查询缓存、缓存更新策略、缓存穿透、缓存雪崩、缓存击穿

2、商户查询缓存 2.1 什么是缓存? 什么是缓存? 就像自行车,越野车的避震器 举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样; 同样,实际开发中,系统也需要"避震器&qu…

【数据结构-距离和】力扣2602. 使数组元素全部相等的最少操作次数

给你一个正整数数组 nums 。 同时给你一个长度为 m 的整数数组 queries 。第 i 个查询中&#xff0c;你需要将 nums 中所有元素变成 queries[i] 。你可以执行以下操作 任意 次&#xff1a; 将数组里一个元素 增大 或者 减小 1 。 请你返回一个长度为 m 的数组 answer &#x…

软件测试前言

1.什么是测试 1.1基本概念大家要知道的基础知识 &#xff08;1&#xff09;为了保证产品在上线之前更好的保证质量&#xff08;也就是保证软件的各方面的特性是否满足用户的需求&#xff0c;满足那么就会让产品更好的盈利&#xff09;。 &#xff08;2&#xff09;软件测试的…

抽象类和接口的区别

抽象类和接口是Java语言中实现抽象机制的两种方式&#xff0c;它们都用于定义一组规范或模板&#xff0c;但它们之间有一些关键的区别&#xff1a; 1. 成员变量的声明 &#xff08;1&#xff09; 接口&#xff1a;只能声明public static final类型的常量&#xff0c;即静态常…

OpenCV c++ 实现图像马赛克效果

VS2022配置OpenCV环境 关于OpenCV在VS2022上配置的教程可以参考&#xff1a;VS2022 配置OpenCV开发环境详细教程 图像马赛克 图像马赛克&#xff08;Image Mosaic&#xff09;的原理基于将图像的特定区域替换为像素块&#xff0c;这些像素块可以是纯色或者平均色&#xff0c…

《向量数据库 Faiss 搭建与使用全攻略》

一、Faiss 概述 Faiss 是由 Facebook AI 团队开发的一款强大工具&#xff0c;在大规模数据处理和相似性搜索领域占据着重要地位。 在当今信息爆炸的时代&#xff0c;数据规模呈指数级增长&#xff0c;如何从海量数据中快速准确地找到相似的数据成为了关键挑战。Faiss 应运而生…

React 学习——React.memo

1、默认情况下&#xff1a;子跟着父一起渲染 2、memo 缓存,只有props发生变化的时候才会重新渲染 import { memo, useState } from react; // 默认情况下&#xff1a;子跟着父一起渲染 //memo 缓存,只有props发生变化的时候才会重新渲染 const MemoSon memo(function Son()…

【算法】时间复杂度(快速排序,归并排序,堆排序)

1 归并排序先分解再合并 2 归并排序演示 3 时间复杂度(快速排序&#xff0c;归并排序&#xff0c;堆排序) 1 归并排序先分解再合并 2 归并排序演示 """ 归并排序&#xff08;Merge Sort&#xff09;是一种基于分治思想的排序算法。 它将一个大的问题递归地分解…

设计模式(一):单例模式

一&#xff0c;什么是单例模式 单例模式&#xff08;Singleton Pattern&#xff09; 是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问这个实例。 适用场景——该程序运行过程中只能生成一个实例&#xff0c;以避免对同一资…

ReadAgent,一款具有要点记忆的人工智能阅读代理

人工智能咨询培训老师叶梓 转载标明出处 现有的大模型&#xff08;LLMs&#xff09;在处理长文本时受限于固定的最大上下文长度&#xff0c;并且当输入文本越来越长时&#xff0c;性能往往会下降&#xff0c;即使在没有超出明确上下文窗口的情况下&#xff0c;LLMs 的性能也会随…