🚀 中文预训练Longformer模型 | Longformer_ZH with PyTorch
本项目开源了预训练的中文Longformer模型参数。相比于Transformer的O(n^2)复杂度,Longformer能以线性复杂度处理最长4K字符级别的文档序列。其注意力机制结合了标准自注意力与全局注意力,便于模型学习超长序列信息。项目还提供了模型加载方法和预训练脚本,助力相关研究。
🚀 快速开始
下载模型
您可以使用谷歌云盘或百度网盘下载我们的模型:
- Google Drive: https://drive.google.com/file/d/1IDJ4aVTfSFUQLIqCYBtoRpnfbgHPoxB4/view?usp=sharing
- 百度云: 链接:https://pan.baidu.com/s/1HaVDENx52I7ryPFpnQmq1w 提取码:y601
我们同样提供了Huggingface的自动下载方式:
from Longformer_zh import LongformerZhForMaksedLM
LongformerZhForMaksedLM.from_pretrained('ValkyriaLenneth/longformer_zh')
✨ 主要特性
- 高效处理长序列:相比Transformer的O(n^2)复杂度,Longformer以线性复杂度处理最长4K字符级别的文档序列。
- 独特注意力机制:Longformer Attention结合了标准自注意力与全局注意力,有助于模型更好地学习超长序列信息。
- 适配中文特性:基于Roberta_zh模型,引入
Whole-Word-Masking
机制,更适应中文语言特点。
📦 安装指南
暂未提及具体安装步骤,可按照上述快速开始部分进行模型下载和加载。
💻 使用示例
基础用法
from Longformer_zh import LongformerZhForMaksedLM
LongformerZhForMaksedLM.from_pretrained('ValkyriaLenneth/longformer_zh')
📚 详细文档
注意事项
⚠️ 重要提示
- 直接使用
transformers.LongformerModel.from_pretrained
加载模型。
- 以下内容已经被弃用:区别于英文原版Longformer,中文Longformer的基础是Roberta_zh模型,其本质上属于
Transformers.BertModel
而非 RobertaModel
,因此无法使用原版代码直接加载。我们提供了修改后的中文Longformer文件,您可以使用其加载参数。如果您想将此参数用于更多任务,请参考Longformer_zh.py
替换Attention Layer。
关于预训练
- 预训练语料:来自 https://github.com/brightmart/nlp_chinese_corpus,根据Longformer原文的设置,采用了多种语料混合的预训练数据。
- 基础模型:基于Roberta_zh_mid (https://github.com/brightmart/roberta_zh),训练脚本参考了https://github.com/allenai/longformer/blob/master/scripts/convert_model_to_long.ipynb。
- 特殊机制:引入了
Whole-Word-Masking
机制,代码改写自TensorFlow版本的Roberta_zh,是首个开源的Pytorch版本WWM,以便更好地适应中文特性。
- 训练参数:模型
max_seq_length = 4096
,在 4 * Titan RTX 上预训练3K steps 大概用时4天。使用了 Nvidia.Apex
引入混合精度训练以加速预训练。数据预处理采用 Jieba
分词与JIONLP
进行数据清洗。
效果测试
CCF Sentiment Analysis
模型 |
Dev F |
Bert |
80.3 |
Bert-wwm-ext |
80.5 |
Roberta-mid |
80.5 |
Roberta-large |
81.25 |
Longformer_SC |
79.37 |
Longformer_ZH |
80.51 |
Pretraining BPC
模型 |
BPC |
Longformer before training |
14.78 |
Longformer after training |
3.10 |
CMRC(Chinese Machine Reading Comprehension)
模型 |
F1 |
EM |
Bert |
85.87 |
64.90 |
Roberta |
86.45 |
66.57 |
Longformer_zh |
86.15 |
66.84 |
Chinese Coreference Resolution
模型 |
Conll-F1 |
Precision |
Recall |
Bert |
66.82 |
70.30 |
63.67 |
Roberta |
67.77 |
69.28 |
66.32 |
Longformer_zh |
67.81 |
70.13 |
65.64 |
致谢
感谢东京工业大学 奥村·船越研究室 提供算力。