0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何优雅地使用bert处理长文本

深度学习自然语言处理 来源:深度学习自然语言处理 作者:wangThr 2020-12-26 09:17 次阅读

这是今年清华大学及阿里巴巴发表在NIPS 2020上的一篇论文《CogLTX: Applying BERT to Long Texts》,介绍了如何优雅地使用bert处理长文本。作者同时开源了不同NLP任务下使用COGLTX的代码:

论文题目:

CogLTX: Applying BERT to Long Texts

论文链接:

http://keg.cs.tsinghua.edu.cn/jietang/publications/NIPS20-Ding-et-al-CogLTX.pdf

Github:

https://github.com/Sleepychord/CogLTX

bert在长文本处理一般分为三种方法[1]:

截断法;

Pooling法;

压缩法。

该论文就是压缩法的一种,是三种方法中最好的。我们在科研和工作中都会遇到该问题,例如我最近关注的一个文本分类比赛:

面向数据安全治理的数据内容智能发现与分级分类 竞赛 - DataFountain[2].

其文本数据长度就都在3000左右,无法将其完整输入bert,使用COGLTX就可以很好地处理该问题,那么就一起来看看该论文具体是怎么做的吧。

1.背景

基于以下情形:

bert作为目前最优秀的PLM,不用是不可能的;

长文本数据普遍存在,且文本中包含的信息非常分散,难以使用滑动窗口[3]截断。

而由于bert消耗计算资源和时间随着token的长度是平方级别增长的,所以其无法处理太长的token,目前最长只支持512个token,token过长也很容易会内存溢出,所以在使用bert处理长文本时需要设计巧妙的方法来解决这个问题。

b48db3fa-4690-11eb-8b86-12bb97331649.jpg

2.提出模型

COGLTX模型在三类NLP任务中的结构如下:

b5408b9c-4690-11eb-8b86-12bb97331649.jpg

b5acc258-4690-11eb-8b86-12bb97331649.jpg

首先假设:存在短文本 可以完全表达原长文本 的语义:

那么令 代替 输入原来的模型即可,那么怎么找到这个 呢

1、使用动态规划算法将长文本 划分为文本块集合 ;

2、使用MemRecall对原长句中的子句进行打分,MemRecall结构如图,而表现如下式:

从而选择出分数最高的子句组成 再进行训练,这样一来的话,COGLTX相当于使用了了两个bert,MemRecall中bert就是负责打分,另一个bert执行原本的NLP任务。

可以发现刚才找到 例子将问题Q放在了初始化 的开头,但是并不是每个NLP任务都可以这么做,分类的时候就没有类似Q的监督,这时候COGLTX采用的策略是将每个子句从原句中移除判断其是否是必不可少的(t是一个阈值):

作者通过设计不同任务下的MemRecall实现了在长文本中使用bert并通过实验证明了方法的有效性。

3.实验

b63a5dd4-4690-11eb-8b86-12bb97331649.jpg

通过多维度地对比,证明了本文提出算法的有效性。

参考文献

[1]https://zhuanlan.zhihu.com/p/88944564

[2]https://www.datafountain.cn/competitions/471

[3]Z. Wang, P. Ng, X. Ma, R. Nallapati, and B. Xiang. Multi-passage bert: A globally normalized bert model for open-domain question answering. arXiv preprint arXiv:1908.08167, 2019.

责任编辑:xj

原文标题:【NIPS 2020】通过文本压缩,让BERT支持长文本

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 文本
    +关注

    关注

    0

    文章

    118

    浏览量

    16919
  • nlp
    nlp
    +关注

    关注

    1

    文章

    463

    浏览量

    21818

原文标题:【NIPS 2020】通过文本压缩,让BERT支持长文本

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单日获客成本超20万,国产大模型开卷200万字以上的长文本处理

    更精准的推理和高并发流量以外,似乎已经没有太多值得厂商大肆宣传的特性了,直到最近超长文本处理的爆火。   国产大模型的新卷法,长文本处理   当下将大模型长文本处理炒热的,无疑是来自月之暗面的Kimi。作为去年发布的大模型,Ki
    的头像 发表于 03-27 00:53 2740次阅读
    单日获客成本超20万,国产大模型开卷200万字以上的<b class='flag-5'>长文本处理</b>

    Kimi爆火背后的技术奥秘 大模型长文本能力的技术难点

    当用户认为在国内的大模型中,长文本=kimi的时候,除非竞争对手能以绝对的实力碾压几个量级,但凡与kimi打平或者是微弱超越,都很难威胁到kimi在用户心目中的地位。
    发表于 04-17 10:11 137次阅读
    Kimi爆火背后的技术奥秘 大模型<b class='flag-5'>长文本</b>能力的技术难点

    阿里通义千问重磅升级,免费开放1000万字长文处理功能

    近日,阿里巴巴旗下的人工智能应用通义千问迎来重磅升级,宣布向所有人免费开放1000万字的长文处理功能,这一创新举措使得通义千问成为全球文档处理容量第一的AI应用。
    的头像 发表于 03-26 11:09 306次阅读

    快速全面了解大模型长文本能力

    那关于LLM的长文本能力,目前业界通常都是怎么做的?有哪些技术点或者方向?今天我们就来总结一波,供大家快速全面了解。
    发表于 02-22 14:04 286次阅读
    快速全面了解大模型<b class='flag-5'>长文本</b>能力

    优雅停机是什么?SpringBoot+Nacos+k8s实现优雅停机

    优雅停机是什么?网上说的优雅下线、无损下线,都是一个意思。
    的头像 发表于 02-20 10:00 498次阅读
    <b class='flag-5'>优雅</b>停机是什么?SpringBoot+Nacos+k8s实现<b class='flag-5'>优雅</b>停机

    如何用AI聊天机器人写出万字长文

    如何用AI聊天机器人写出万字长文
    的头像 发表于 12-26 16:25 468次阅读

    基于BERT算法搭建一个问答搜索引擎

    鼎鼎大名的 Bert 算法相信大部分同学都听说过,它是Google推出的NLP领域“王炸级”预训练模型,其在NLP任务中刷新了多项记录,并取得state of the art的成绩。 但是有很多深度
    的头像 发表于 10-30 11:46 336次阅读
    基于<b class='flag-5'>BERT</b>算法搭建一个问答搜索引擎

    港中文贾佳亚团队联手MIT发布超长文本扩展技术,打破LLM遗忘魔咒

    它代表着业界对长文本大语言模型的重新思考和关注,有效扩展了大语言模型的上下文窗口,允许模型考虑和处理较长的文本序列,是大语言模型的革新性发明。
    的头像 发表于 10-18 15:54 311次阅读
    港中文贾佳亚团队联手MIT发布超<b class='flag-5'>长文本</b>扩展技术,打破LLM遗忘魔咒

    达观曹植大模型正式对外公测!专注于长文本、多语言、垂直化发展

    大模型时代到来,国内出现“百模大战”的局面。达观数据自23年3月宣布研发大语言模型以来,一直积极探索大语言模型的专业化、特长化和产品化。通过多年的高质量数据积累,不断精进算法创新,结合多年的文本处理
    的头像 发表于 07-12 15:04 601次阅读
    达观曹植大模型正式对外公测!专注于<b class='flag-5'>长文本</b>、多语言、垂直化发展

    PyTorch教程-16.7。自然语言推理:微调 BERT

    节)。现在我们通过微调 BERT 重新审视这个任务。正如16.6 节所讨论的 ,自然语言推理是一个序列级文本对分类问题,微调 BERT 只需要一个额外的基于 MLP 的架构,如图
    的头像 发表于 06-05 15:44 996次阅读
    PyTorch教程-16.7。自然语言推理:微调 <b class='flag-5'>BERT</b>

    PyTorch教程-16.6. 针对序列级和令牌级应用程序微调 BERT

    和 MLPs。当存在空间或时间限制时,这些模型很有用,但是,为每个自然语言处理任务制作一个特定模型实际上是不可行的。在 15.8 节中,我们介绍了一种预训练模型 BERT,它需要对各种自然语言处理任务进行
    的头像 发表于 06-05 15:44 265次阅读
    PyTorch教程-16.6. 针对序列级和令牌级应用程序微调 <b class='flag-5'>BERT</b>

    PyTorch教程-15.9。预训练 BERT 的数据集

    15.9。预训练 BERT 的数据集¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab Colab
    的头像 发表于 06-05 15:44 550次阅读

    PyTorch教程15.9之预训练BERT的数据集

    电子发烧友网站提供《PyTorch教程15.9之预训练BERT的数据集.pdf》资料免费下载
    发表于 06-05 11:06 0次下载
    PyTorch教程15.9之预训练<b class='flag-5'>BERT</b>的数据集

    PyTorch教程15.10之预训练BERT

    电子发烧友网站提供《PyTorch教程15.10之预训练BERT.pdf》资料免费下载
    发表于 06-05 10:53 0次下载
    PyTorch教程15.10之预训练<b class='flag-5'>BERT</b>

    ETH提出RecurrentGPT实现交互式超长文本生成

    RecurrentGPT 则另辟蹊径,是利用大语言模型进行交互式长文本生成的首个成功实践。它利用 ChatGPT 等大语言模型理解自然语言指令的能力,通过自然语言模拟了循环神经网络(RNNs)的循环计算机制。
    的头像 发表于 05-29 14:34 606次阅读
    ETH提出RecurrentGPT实现交互式超<b class='flag-5'>长文本</b>生成