Press "Enter" to skip to content

5 search results for "Vaswani et al. (2017)"

利用预训练的语言模型检查点来构建编码器-解码器模型

基于Transformer的编码器-解码器模型最初在Vaswani等人(2017)的论文中提出,并最近引起了广泛的关注,例如Lewis等人(2019),Raffel等人(2019),Zhang等人(2020),Zaheer等人(2020),Yan等人(2020)。 与BERT和GPT2类似,大规模预训练的编码器-解码器模型已经显示出在各种序列到序列任务上显著提升性能(Lewis等人,2019;Raffel等人,2019)。然而,由于预训练编码器-解码器模型所需的巨大计算成本,这类模型的开发主要局限于大型公司和研究机构。 在《利用预训练检查点进行序列生成任务》(2020)一文中,Sascha Rothe、Shashi Narayan和Aliaksei Severyn使用预训练的编码器和/或解码器检查点(如BERT、GPT2)初始化编码器-解码器模型,跳过了昂贵的预训练过程。作者表明,这种热启动的编码器-解码器模型在训练成本的一小部分情况下,能够产生与T5和Pegasus等大规模预训练编码器-解码器模型相竞争的结果,适用于多个序列到序列任务。 在本笔记本中,我们将详细解释如何热启动编码器-解码器模型,并根据Rothe等人(2020)提供实用提示,最后通过一个完整的代码示例展示如何使用🤗Transformers来热启动编码器-解码器模型。 本笔记本分为4个部分: 介绍 – 简要介绍NLP中的预训练语言模型以及热启动编码器-解码器模型的需求。 热启动编码器-解码器模型(理论) – 对编码器-解码器模型如何进行热启动进行说明。 热启动编码器-解码器模型(分析) – 《利用预训练检查点进行序列生成任务》的总结 哪些模型组合对于热启动编码器-解码器模型有效?它在不同任务中有何不同? 使用🤗Transformers热启动编码器-解码器模型(实践) – 完整的代码示例,详细展示如何使用EncoderDecoderModel框架来热启动基于Transformer的编码器-解码器模型。 强烈推荐(可能甚至是必须的)阅读有关基于Transformer的编码器-解码器模型的博客文章。 让我们从对热启动编码器-解码器模型的背景介绍开始。 介绍 最近,预训练语言模型1…

Leave a Comment

多变量概率时间序列预测与Informer

介绍 几个月前,我们介绍了时间序列变换器,它是将传统的Transformer(Vaswani等人,2017年)应用于预测,并展示了单变量概率预测任务的示例(即单独预测每个时间序列的一维分布)。在本文中,我们介绍了Informer模型(Zhou, Haoyi等人,2021年),这是AAAI21最佳论文,现在已经在🤗 Transformers中可用。我们将展示如何使用Informer模型进行多变量概率预测任务,即预测未来时间序列目标值的向量分布。需要注意的是,这也适用于传统的时间序列变换器模型。 多变量概率时间序列预测 就概率预测的建模而言,当处理多变量时间序列时,Transformer/Informer不需要进行任何更改。在单变量和多变量设置中,模型将接收一个向量序列,因此唯一的变化在于输出或发射方面。 对于高维数据的完整条件分布建模可能会导致计算开销过大,因此方法会采用一些分布的近似方法,最简单的方法是将数据建模为来自同一族分布的独立分布,或者对完整协方差进行低秩近似等。在这里,我们只采用独立(或对角)发射,这在我们实现的分布族中是支持的。 Informer – 内部原理 Informer基于传统的Transformer(Vaswani等人,2017年),引入了两个主要改进。为了理解这些改进,让我们回顾一下传统Transformer的缺点: 经典自注意力的二次计算:传统Transformer的计算复杂度为O(T^2D),其中T是时间序列长度,D是隐藏状态的维度。对于长序列时间序列预测(也称为LSTF问题),这可能会导致计算开销非常大。为了解决这个问题,Informer采用了一种称为ProbSparse注意力的新的自注意机制,其时间和空间复杂度为O(T log T)。 堆叠层时的内存瓶颈:当堆叠N个编码器/解码器层时,传统Transformer的内存使用量为O(NT^2),这限制了模型处理长序列的能力。Informer使用了一种称为Distilling操作的方法,将层之间的输入大小减小到其一半。通过这样做,可以将整体内存使用量减小为O(N⋅T log T)。 正如您所看到的,Informer模型的动机类似于Longformer(Beltagy等人,2020年),Sparse Transformer(Child等人,2019年)和其他自然语言处理论文,用于减少自注意机制的二次复杂度,特别是在输入序列较长时。现在,让我们深入了解ProbSparse注意力和Distilling操作,并附带代码示例。 ProbSparse注意力 ProbSparse的主要思想是经典自注意力分数形成了一个长尾分布,其中“活跃”的查询位于“头部”分数中,而“懒惰”的查询位于“尾部”区域中。通过“活跃”查询,我们指的是一个查询qi,使得点积⟨qi, ki⟩对主要注意力产生贡献,而“懒惰”的查询形成的点积生成的注意力是微不足道的。这里,qi和ki分别是Q和K注意力矩阵中的第i行。 在理解“活跃”和“懒惰”查询的思想之后,ProbSparse注意力选择“活跃”查询,并创建一个缩减的查询矩阵Qreduced,用于在O(T log T)的时间内计算注意力权重。让我们通过代码示例更详细地了解这一点。…

Leave a Comment

Can't find what you're looking for? Try refining your search: