我们知道BERT的令牌最大长度限制为512,因此如果一篇文章的长度超过了512个令牌,比如文本中有10000个令牌,那么如何使用BERT呢?
我们知道BERT的令牌最大长度限制为512,因此如果一篇文章的长度超过了512个令牌,比如文本中有10000个令牌,那么如何使用BERT呢?
我最近(2021年4月)发表了一篇关于这个主题的论文,你可以在arXiv上找到它 (https://arxiv.org/abs/2104.07225)。表格1允许查看有关问题的先前方法,整篇手稿是关于长文本分类并提出了一种名为Text Guide的新方法。这种新方法声称相对于 paper (https://arxiv.org/abs/1905.05583) 中提到并使用的朴素和半朴素文本选择方法,可以提高性能。
简而言之,关于您的选项:
低计算成本:使用朴素/半朴素的方法选择原始文本实例的一部分。例如选择前n个标记,或者编译一个由原始文本实例的开头和结尾组成的新文本实例。
中高计算成本:使用最近的变形金刚模型(如Longformer),其具有4096个令牌限制而不是512个。在某些情况下,这将允许覆盖整个文本实例,并且修改后的注意机制会减少计算成本。
高计算成本:将文本实例分成适合像BERT这样的模型的块,每个部分单独部署模型,然后连接生成的向量表示。
现在,在我最近发表的论文中提出了一种名为“Text Guide”的新方法。Text Guide是一种文本选择方法,与天真或半天真的截断方法相比,可以实现更好的性能。作为一种文本选择方法,Text Guide不会干扰语言模型,因此它可用于改进具有“标准”令牌限制(例如变压器模型的512个令牌)或“扩展”限制(例如Longformer模型的4096个令牌)的模型的性能。总之,Text Guide是一种低计算成本的方法,可以改善性能,优于天真和半天真的截断方法。如果文本实例超过专门为长文本分类开发的模型的限制,例如Longformer(4096个令牌),它还可以改善它们的性能。
这篇论文《防御神经网络虚假新闻》(https://arxiv.org/abs/1905.12616)采用了一种方法。
他们的生成模型输出1024个标记,并且想要使用BERT来区分人类和机器生成的结果。他们通过初始化512个嵌入并在微调BERT时进行训练,扩展了BERT使用的序列长度。
在下载BERT模型到您的内核时,可以使用配置中的max_position_embeddings参数。使用此参数,您可以选择512、1024或2048作为最大序列长度。
max_position_embeddings(int,可选,默认为512)-此模型可能使用的最大序列长度。通常将其设置为较大的值以防万一(例如512或1024或2048)。