🚀 中文預訓練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 |
致謝
感謝東京工業大學 奧村·船越研究室 提供算力。