首页 文章 精选 留言 我的

精选列表

搜索[Agent训练],共10000篇文章
优秀的个人博客,低调大师

Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN

使用递归神经网络(RNN)序列建模业务已有很长时间了。但是RNN很慢因为他们一次处理一个令牌无法并行化处理。此外,循环体系结构增加了完整序列的固定长度编码向量的限制。为了克服这些问题,诸如CNN-LSTM,Transformer,QRNNs之类的架构蓬勃发展。 在本文中,我们将讨论论文“拟递归神经网络”(https://arxiv.org/abs/1611.01576)中提出的QRNN模型。从本质上讲,这是一种将卷积添加到递归和将递归添加到卷积的方法。 LSTM LSTM是RNN最著名的变体。红色块是线性函数或矩阵乘法,蓝色块是无参数元素级块。LSTM单元应用门控功能(输入,遗忘,输出)以获得输出和称为隐藏状态的存储元素。此隐藏状态包含整个序列的上下文信息。由于单个向量编码完整序列,因此LSTM无法记住长期依赖性。而且,每个时间步长的计算取决于前一个时间步长的隐藏状态,即LSTM一次计算一个时间步长。因此,计算不能并行进行。 CNN CNN可以捕获空间特征(主要用于图像)。红色块是卷积运算,蓝色块是无参数池化运算。CNN使用内核(或过滤器)通过滑动窗口捕获要素之间的对应关系。这克服了固定长度的隐藏表示形式(以及由此带来的长期依赖问题)以及RNN缺乏并行性限制的问题。但是,CNN不显示序列的时间性质,即时间不变性。池化层只是在不考虑序列顺序信息的情况下降低了通道的维数。 Quasi-Recurrent Neural Networks (QRNN) QRNN解决了两种标准架构的缺点。它允许并行处理并捕获长期依赖性,例如CNN,还允许输出依赖序列中令牌的顺序,例如RNN。 因此,首先,QRNN体系结构具有2个组件,分别对应于CNN中的卷积(红色)和池化(蓝色)组件。 卷积分量 卷积组件的操作如下: 形状的输入序列:(batch_size,sequence_length,embed_dim) 每个“ bank”的形状为“ hidden_dim”的内核:(batch_size,kernel_size,embed_dim)。 输出是一个形状序列:(batch_size,sequence_length,hidden_dim)。这些是序列的隐藏状态。 卷积运算在序列以及小批量上并行应用。 为了保留模型的因果关系(即,只有过去的标记才可以预测未来),使用了一种称为遮罩卷积(masked-convolutions)的概念。也就是说,输入序列的左边是“ kernel_size-1”零。因此,只有'sequence_length-kernel_size + 1'过去的标记可以预测给定的标记。为了更好理解,请参考下图: 接下来,我们基于池化功能(将在下一节中讨论)使用额外的内核库,以获取类似于LSTM的门控向量: 这里,*是卷积运算;Z是上面讨论的输出(称为“输入门”输出);F是使用额外的内核库W_f获得的“忘记门”输出;O是使用额外的内核库W_o获得的“输出门”输出。 如上所述,这些卷积仅应用于过去的“ sequence_length-kernel_size + 1”令牌。因此,如果我们使用kernel_size = 2,我们将得到类似LSTM的方程式: 池化组件 通常,合并是一种无参数的函数,可捕获卷积特征中的重要特征。对于图像,通常使用最大池化和平均池化。但是,在序列的情况下,我们不能简单地获取特征之间的平均值或最大值,它需要有一些循环。因此,QRNN论文提出了受传统LSTM单元中元素级门控体系结构启发的池化功能。本质上,它是一个无参数函数,它将跨时间步混合隐藏状态。 最简单的选项是“动态平均池化”,它仅使用了“忘记门”(因此称为f-pooling): ⊙是逐元素矩阵乘法。它以忘记门为参数,几乎等于输出的“移动平均值”。 另一种选择是使用忘记门以及输出门(所以被称作,fo-pooling): 除此以外,池化可能另外具有专用的输入门(ifo-pooling): 正则化 在检查了各种递归退出方案之后,QRNN使用了一种扩展方案,称为“区域退出”(‘zone out),它本质上是在每个时间步选择一个随机子集来退出,对于这些通道,它只是将当前通道值复制到下一次 步骤,无需任何修改。 这等效于将QRNN的“忘记门”通道的子集随机设置为1,或在1-F上进行dropout -- QRNN Paper 来自DenseNet的想法 DenseNet体系结构建议在每一层与其前面的每一层之间都具有跳过连接,这与在后续层上具有跳过连接的惯例相反。因此,对于具有L个层的网络,将存在L(L-1)个跳过连接。这有助于梯度流动和收敛,但要考虑二次空间。 使用QRNN构建seq2seq 在基于RNN的常规seq2seq模型中,我们只需使用编码器的最后一个隐藏状态初始化解码器,然后针对解码器序列对其进行进一步修改。我们无法对循环池层执行此操作,因为在这里,编码器状态无法为解码器的隐藏状态做出很大贡献。因此,作者提出了一种改进的解码器架构。 将编码器的最后一个隐藏状态(最后一个令牌的隐藏状态)线性投影(线性层),并在应用任何激活之前,将其添加到解码器层每个时间步长的卷积输出中(广播,因为编码器矢量较小): V是应用于最后一个编码器隐藏状态的线性权重。 注意力机制 注意力仅应用于解码器的最后隐藏状态。 其中s是编码器的序列长度,t是解码器的序列长度,L表示最后一层。 首先,将解码器的未选通的最后一层隐藏状态的点积与最后一层编码器隐藏状态相乘。这将导致形状矩阵(t,s)。将Softmax替代s,并使用该分数获得形状(t,hidden_dim)的注意总和k_t。然后,将k_t与c_t一起使用,以获取解码器的门控最后一层隐藏状态。 性能测试 与LSTM架构相比,QRNN可以达到相当的准确度,在某些情况下甚至比LSTM架构略胜一筹,并且运算速度提高了17倍。 最近,基于QRNN的模型pQRNN在序列分类上仅用1.3M参数就取得了与BERT相当的结果(与440M参数的BERT相对): 结论 我们深入讨论了新颖的QRNN架构。我们看到了它如何在基于卷积的模型中增加递归,从而加快了序列建模的速度。QRNN的速度和性能也许真的可以替代Transformer。 作者:Rohan Jagtap deephub翻译组 本文分享自微信公众号 - DeepHub IMBA(deephub-imba)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

开源 Flink + 实时计算 Flink 版训练营学习资料汇总

Apache Flink:全球领先的开源大数据计算引擎 Apache Flink 是一个开源的分布式大数据处理引擎, 可对有限数据流和无限数据流进行有状态计算。作为 Apache 软件基金会 (ASF) 顶级项目之一,Flink 在流处理方面具有绝对的优势,提供高吞吐、低延时的计算能力, Exactly-once 语义保证数据的准确性,亚秒级别的处理延迟确保业务的快速响应。 作为快速发展的新一代大数据引擎,Flink 本身的架构优势也吸引着越来越多的开源爱好者投入到社区的建设来。 截止到 2020 年 7 月,社区的 star 数达到 13600+ ,contributor 数达到 718,有 22989 次 commits。伴随着社区的快速发展,Flink 也成为类似阿里巴巴、腾讯、字节跳动、滴滴、美团点评等知名公司建设流处理平台的首选。 【推荐阅读】 Flink 社区技术发展风向标 重磅!Apache Flink 1.11 功能前瞻抢先看! 更易用!Hive 集成弯道超车 Hive 终于等来了 Flink Flink PMC 联合各大厂用人主管助你升职加薪 Flink 面试指南 【企业案例】 • OPPO 实时数仓揭秘:从顶层设计实现离线与实时的平滑迁移:单日总数据处理量超 10 万亿,峰值超每秒 3 亿• bilibili 实时平台的架构与实践:基于 Flink 的 bilibili Saber 实时计算平台• 美团点评基于 Flink 的实时数仓平台实践:深度解析美团点评实时数仓案例 【电子书】 • 《零基础入门:从 0 到 1 学会 Apache Flink》:30 天成长为 Flink 大神• 《Apache Flink 年度最佳实践》:国内外一线大厂超大规模最佳实践案例合集 阿里云实时计算 Flink 版 实时计算 Flink版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica))是阿里云提供的基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由Apache Flink创始团队官方出品。在 PB 级别的数据集上可以支持亚秒级别的处理延时,赋能用户标准实时数据处理流程和行业解决方案;在支持 Datastream API 作业开发的同时,提供了完整的SQL语义,使得 BI 场景下的开发变得更加简单;丰富的上下游 connector 保证了与用户已使用的大数据组件无缝对接;智能作业调优和诊断功能进一步简化了用户的开发和使用。 实时计算 Flink版在 Apache Flink 核心功能的基础上还增强了企业用户所关注的集群稳定、性能优化、安全控制、系统监控和作业管理等。阿里云实时计算团队目前是全球最大、拥有 Committer 数量最多、专业性最强的 Flink 团队,为实时计算用户提供企业级的管理和咨询服务。2019 年 6 月,由数据中心联盟发起的大数据产品能力评测结果权威发布,阿里云实时计算 Flink版通过最新制定的分布式流处理平台基础能力评测,成为国内首批通过流计算产品能力评测的产品,并被数据中心联盟圈定为国内大数据流计算基础平台第一梯队。2020 年在国际知名咨询调研公司Forrester 的测评中,实时计算 Flink版成为中国唯一进入Forrester象限的实时流计算产品。 【独享月度特惠】开通实时计算产品: master型号4核16GB+master数量1+slave型号4核16GB+slave数量2,计费周期1个月,详情: https://common-buy.aliyun.com/?spm=a2c0j.14094430.1053885.bnt1.307976feKRl1Au&commodityCode=blinkonecs#/buy Tips:开通成功算打卡成功 解决方案 实时计算 Flink:基于 Apache Flink 构建的大数据计算平台(附白皮书) Tips:完成PDF阅读,算打卡成功 最佳实践 实时计算 Flink 版 最佳实践 Tips:完成文章阅读,算打卡成功

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册