Big Bird: Transformers for Longer Sequences论文详解

2024-05-14 11:38

本文主要是介绍Big Bird: Transformers for Longer Sequences论文详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • Big Bird大鸟模型
  • 论文要解决问题
  • 解决方法
    • 随机注意力
    • 固定窗口注意力
    • 全局注意力
    • 复杂度分析
  • 实验
    • 三种注意力的消融实验。
    • 语言模型对比roberta、longformer
    • QA问题中对比longformer
    • 长文本分类任务
    • 文章摘要任务
    • 基因语言模型实验
  • 如有问题欢迎指出,参考论文https://arxiv.org/abs/2007.14062

Big Bird大鸟模型

论文要解决问题

  • 如下图,Transformer模型中,注意力中Q、K点乘的内存、速度是序列长度的平方复杂度。长文本时,这个复杂度是不可接受的。一般做法是切成512的块,这种做法损失了块与块之间的信息,例如QA问题中Q必须看到所有A才行,文章摘要中必须看到全部文章。论文提出了一个O(n)复杂度的算法,能够解决以上问题,同时该论文还证明这种方法是图灵完备的。
    在这里插入图片描述

解决方法

  • 论文提出固定窗口、全局注意力、随机注意力。除了随机注意力外,这些方法几乎和longformer一样。longformer可以参考我的另外一篇文章longformer论文解析。和longformer相比,该文做了大量实验,且证明是图灵完备的。
  • 如下图,横坐标是Q,纵坐标是K,QK的数量都是序列长度,所以是正方形。图中有色面积代表Q*K的数量。图a是随机注意,图b是固定窗口,c是全局注意力,d是三种汇总。
  • 三种注意力都使用稀疏矩阵实现。
    在这里插入图片描述

随机注意力

  • 对于每个Q,都等概率随机关注r个Key,就像图中A所示。实验中r在200左右。

固定窗口注意力

  • 对于每个Q,都关注相邻的左边w/2个Key,右边w/2个key。这个主要是大多数nlp任务中,都可以发现,相邻文本影响比较大。实验中w在252左右。

全局注意力

  • 有部分特殊的Q关注全部的Key,论文中分两种。一种是BigBird-itc, 也就是在现有的token中选一部分Q关注全部的K。 一种是BigBird-etc,增加token,关注全部的token。全局注意力的数量在256左右。

复杂度分析

  • 三种注意力复杂度大概就是(200 + 252 + 256 )* n的复杂度。我们可以看出,虽然是线性复杂度,但是系数非常大。而且稀疏矩阵的乘法远远低于高度优化的原始attention的dense矩阵乘法。但是太长文本,dense矩阵无法存储也无法计算,也是硬伤。

实验

  • 文章中做了大量的长序列实验,甚至基因序列实验,证明的改方法的有效性。

三种注意力的消融实验。

  • 用512长度的bert-base对比,三种注意力结合使用,基本接近bert-base效果。
    在这里插入图片描述

语言模型对比roberta、longformer

  • 长文本(4096)的语言模型中,优于roberta,itc低于longformer,etc高于longformer。
    在这里插入图片描述

QA问题中对比longformer

  • QA问题是一个长文本分析的任务,每个Q都看到所以的A才能回答比较好。big bird-itc、etc都接近longformer。
    在这里插入图片描述

长文本分类任务

  • 在长文本分类任务中,Bigbird比robert提高5个点。
    在这里插入图片描述

文章摘要任务

  • 文章摘要是一个明显的长文本任务,摘要肯定不能只靠前512个token在生成。可以看到big-brid base large模型都明显提升。
    在这里插入图片描述

基因语言模型实验

  • 基因是明显非常长的片段,是一个非常好的长序列的任务。基因片段也是类似bert的方法,先用sentense piece方法切分成词,然后随机遮住片段(10% 的概率),训练模型预测遮住的片段,使用mlm模型。
    在这里插入图片描述
  • 实验结果展示,好于bert的效果。
    在这里插入图片描述

如有问题欢迎指出,参考论文https://arxiv.org/abs/2007.14062

这篇关于Big Bird: Transformers for Longer Sequences论文详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/988645

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

LabVIEW FIFO详解

在LabVIEW的FPGA开发中,FIFO(先入先出队列)是常用的数据传输机制。通过配置FIFO的属性,工程师可以在FPGA和主机之间,或不同FPGA VIs之间进行高效的数据传输。根据具体需求,FIFO有多种类型与实现方式,包括目标范围内FIFO(Target-Scoped)、DMA FIFO以及点对点流(Peer-to-Peer)。 FIFO类型 **目标范围FIFO(Target-Sc

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1