本模型选用PoNet模型结构,通过Masked Language Modeling(MLM)和Sentence Structural Objective(SSO)预训练任务在英文Bookcorpus+Wikitext数据预训练获得,可以用于完形填空任务,也可以作为初始化模型在下游自然语言理解任务上finetune来使用。
PoNet是一种具有线性复杂度(O(N))的计算模型,使用pooling网络替代Transformer模型中的self-attention来对句子词汇进行混合,具体包括在local、segment、global三个粒度上的pooling网络,从而捕捉上下文信息。
其结构如下图所示。
实验表明,PoNet在长文本测试Long Range Arena(LRA)榜上在准确率上比Transformer高2.28个点,在GPU上运行速度是Transformer的9倍,显存占用只有1/10。此外,实验也展示了PoNet的迁移学习能力,PoNet-Base在GLUE基准上达到了BERT-Base的95.7%的准确性。
详见论文PoNet: Pooling Network for Efficient Token Mixing in Long Sequences
本模型主要用于生成完形填空的结果。用户可以自行尝试各种输入文档。具体调用方式请参考代码示例。
在安装完成ModelScope-lib之后即可使用nlp_ponet_fill-mask_english-base的能力
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
pipeline_ins = pipeline(Tasks.fill_mask, model='damo/nlp_ponet_fill-mask_english-base')
input = 'Everything in [MASK] you call reality is really [MASK] a reflection of your [MASK]. Your [MASK] universe is just a mirror [MASK] of your story.'
print(pipeline_ins(input))
数据来源于bookcorpus和wikitext
在英文Bookcorpus+Wikitext的无监督数据上,通过MLM和SSO任务训练得到。
对于训练数据会采用如下预处理,对于MLM任务,掩蔽概率设置为15%。80%的掩蔽位置被[MASK]替换,10%被替换为随机抽样的单词,剩下的10%不变。对于SSO任务,包含多个段落的序列在随机位置被截断为两个子序列,其中
1/3概率用另一个随机选择的子序列替换其中一个子序列,1/3的概率交换两个子序列,1/3的概率不变。
在英文Bookcorpus+Wikitext上使用Adam优化器,初始学习率为1e-4,batch_size为192。
在下游任务finetune后,GLUE的开发集结果如下:
Dataset | MNLI(m/mm) | QQP | QNLI | SST-2 | CoLA | STS-B | MRPC | RTE | AVG |
---|---|---|---|---|---|---|---|---|---|
Accuracy | 76.99/77.21 | 87.55 | 84.33 | 89.22 | 45.36 | 84.57 | 81.76 | 64.26 | 76.80 |
长文本分类数据集结果如下:
Dataset | HND | IMDb | Yelp-5 | Arxiv |
---|---|---|---|---|
Accuracy | 96.2 | 93.0 | 69.13 | 86.11 |
更多结果详见论文PoNet: Pooling Network for Efficient Token Mixing in Long Sequences
如果我们的模型对您有帮助,请您引用我们的文章:
@inproceedings{DBLP:journals/corr/abs-2110-02442,
author = {Chao{-}Hong Tan and
Qian Chen and
Wen Wang and
Qinglin Zhang and
Siqi Zheng and
Zhen{-}Hua Ling},
title = {{PoNet}: Pooling Network for Efficient Token Mixing in Long Sequences},
booktitle = {10th International Conference on Learning Representations, {ICLR} 2022,
Virtual Event, April 25-29, 2022},
publisher = {OpenReview.net},
year = {2022},
url = {https://openreview.net/forum?id=9jInD9JjicF},
}