论文地址:arxiv.org/pdf/2305.13048v2
项目地址:github
论文题目为:《RWKV: Reinventing RNNs for the Transformer Era》
自 Vaswani 等人于 2017 年首次提出 Attention Is All You Need 之后,基于 transformer 的强大的模型一直在不断地涌现,它们在 NLP 相关任务上的表现远远超过基于 RNN (Recurrent Neural Networks, 递归神经网络) 的 SoTA 模型,甚至多数认为 RNN 已死。而本文将介绍一个集 RNN 和 transformer 两者的优势于一身的全新网络架构 –RWKV!现已在 HuggingFace transformers 库中支持。
1 背景与动机
1.1 背景:简单介绍RNN和Transformer
RNN(Recurrent Neural Network,循环神经网络)
RNN(Recurrent Neural Network,循环神经网络)是一种专门用于处理序列数据的神经网络。它能够处理前后数据点之间的依赖关系,这使得RNN特别适合于处理时间序列数据或者任何形式的序列,如文本、语音或视频。RNN的核心特点是它具有循环连接,这允许网络在处理序列的每个元素时保持一定的“记忆”。
RNN的工作原理是,它在序列的每个时间步骤接收输入,并产生输出,同时将一部分信息传递到下一个时间步骤。这种传递的信息通常被称为“隐藏状态”(hidden state),它能够捕捉序列中过去的信息。RNN的这种结构使得它能够处理可变长度的序列,并且能够处理长期依赖关系。
Token
Token在自然语言处理(NLP)中是一个重要的概念,它指的是文本中的一个基本单位。在不同的上下文中,token可以有不同的含义:
- 单词或词汇单元:在一些NLP任务中,token可以是一个单词或者一个字符,这是文本分析的最小单位。
- 子词单元:在一些现代的NLP模型中,为了更好地处理词汇的变体和形态变化,会将单词进一步分割成更小的单元,这些单元被称为subword tokens。
- 标记化:在文本处理中,将原始文本转换成token序列的过程称为标记化(tokenization)。这是文本预处理的重要步骤,它使得机器学习模型能够理解和处理文本数据。
在RNN中,序列数据通常会先被标记化,转换成一系列的token,然后这些token被用作RNN的输入。RNN通过处理这些token序列,学习序列中的模式和依赖关系,进而用于各种NLP任务,如语言建模、机器翻译、情感分析等。
Transformer
Transformer 是一种深度学习模型,由 Vaswani 等人在 2017 年的论文《Attention Is All You Need》中首次提出。它主要用于处理序列数据,尤其在自然语言处理(NLP)领域取得了革命性的进展。Transformer 模型完全基于注意力机制(Attention Mechanism),摒弃了之前序列模型中常用的循环神经网络结构。
主要特点:
-
自注意力机制(Self-Attention):Transformer 通过自注意力机制使模型能够在序列中的每个位置都同时考虑其他位置,这有助于捕捉序列内部的长距离依赖关系。自注意力机制的核心是计算序列中每个元素对其他所有元素的注意力分数,然后根据这些分数对元素进行加权求和。
-
并行化处理:由于自注意力机制不依赖于序列中元素之间的循环或递归调用,Transformer 可以高效地并行