语言:
- 阿拉伯语
许可证: apache-2.0
标签:
- 阿拉伯语
- 方言
- 埃及方言
- 海湾方言
- 黎凡特方言
- 古典阿拉伯语
- 现代标准阿拉伯语
- MSA
小组件:
CAMeLBERT:面向阿拉伯语NLP任务的预训练模型集
模型描述
CAMeLBERT 是一系列基于阿拉伯语文本预训练的不同规模和变体的BERT模型集合。我们发布了针对现代标准阿拉伯语(MSA)、方言阿拉伯语(DA)和古典阿拉伯语(CA)的预训练语言模型,以及一个混合这三种变体的模型。此外,我们还提供了基于MSA变体缩减规模(半、四分之一、八分之一和十六分之一)的额外模型。详细信息见论文《阿拉伯语预训练语言模型中变体、规模与任务类型的交互作用》。
本模型卡描述的是CAMeLBERT-Mix(bert-base-arabic-camelbert-mix
),一个在MSA、DA和CA混合变体上预训练的模型。
|
模型 |
变体 |
规模 |
词数 |
✔ |
bert-base-arabic-camelbert-mix |
CA,DA,MSA |
167GB |
173亿 |
|
bert-base-arabic-camelbert-ca |
CA |
6GB |
8.47亿 |
|
bert-base-arabic-camelbert-da |
DA |
54GB |
58亿 |
|
bert-base-arabic-camelbert-msa |
MSA |
107GB |
126亿 |
|
bert-base-arabic-camelbert-msa-half |
MSA |
53GB |
63亿 |
|
bert-base-arabic-camelbert-msa-quarter |
MSA |
27GB |
31亿 |
|
bert-base-arabic-camelbert-msa-eighth |
MSA |
14GB |
16亿 |
|
bert-base-arabic-camelbert-msa-sixteenth |
MSA |
6GB |
7.46亿 |
预期用途
您可以将发布的模型用于掩码语言建模或下一句预测。但主要目的是针对NER、词性标注、情感分析、方言识别和诗歌分类等NLP任务进行微调。我们在此处发布了微调代码。
使用方法
您可以直接使用管道进行掩码语言建模:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='CAMeL-Lab/bert-base-arabic-camelbert-mix')
>>> unmasker("生活的目标是[MASK]。")
[{'sequence': '[CLS] 生活的目标是成功。[SEP]',
'score': 0.10861027985811234,
'token': 6232,
'token_str': '成功'},
{'sequence': '[CLS] 生活的目标是..[SEP]',
'score': 0.07626965641975403,
'token': 18,
'token_str': '.'},
{'sequence': '[CLS] 生活的目标是生活。[SEP]',
'score': 0.05131986364722252,
'token': 3696,
'token_str': '生活'},
{'sequence': '[CLS] 生活的目标是死亡。[SEP]',
'score': 0.03734956309199333,
'token': 4295,
'token_str': '死亡'},
{'sequence': '[CLS] 生活的目标是工作。[SEP]',
'score': 0.027189988642930984,
'token': 2854,
'token_str': '工作'}]
注意:下载我们的模型需要transformers>=3.5.0
。否则,您可以手动下载模型。
以下是在PyTorch中获取给定文本特征的方法:
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained('CAMeL-Lab/bert-base-arabic-camelbert-mix')
model = AutoModel.from_pretrained('CAMeL-Lab/bert-base-arabic-camelbert-mix')
text = "你好,世界。"
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
在TensorFlow中:
from transformers import AutoTokenizer, TFAutoModel
tokenizer = AutoTokenizer.from_pretrained('CAMeL-Lab/bert-base-arabic-camelbert-mix')
model = TFAutoModel.from_pretrained('CAMeL-Lab/bert-base-arabic-camelbert-mix')
text = "你好,世界。"
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
训练数据
- MSA(现代标准阿拉伯语)
- DA(方言阿拉伯语)
- CA(古典阿拉伯语)
训练过程
我们使用Google的原始实现进行预训练。除非另有说明,否则我们遵循原始英文BERT模型的超参数设置。
预处理
预训练
- 模型在单个云TPU(
v3-8
)上共训练100万步。
- 前90,000步使用1,024的批量大小,其余使用256。
- 序列长度限制为128个标记(占90%步数)和512(占10%)。
- 使用全词掩码和10倍的重复因子。
- 对于最大序列长度为128标记的数据集,每序列最大预测数设为20;512标记的数据集设为80。
- 使用随机种子12345,掩码语言模型概率0.15,短序列概率0.1。
- 优化器为Adam,学习率1e-4,\(\beta_{1} = 0.9\)和\(\beta_{2} = 0.999\),权重衰减0.01,前10,000步学习率预热,之后线性衰减。
评估结果
- 我们在五个NLP任务上评估预训练语言模型:NER、词性标注、情感分析、方言识别和诗歌分类。
- 使用12个数据集进行微调和评估。
- 使用Hugging Face的transformers微调CAMeLBERT模型。
- 使用transformers
v3.1.0
和PyTorch v1.5.1
。
- 微调时在最后隐藏状态添加全连接线性层。
- 所有任务使用\(F_{1}\)分数作为指标。
- 微调代码见此处。
结果
任务 |
数据集 |
变体 |
Mix |
CA |
DA |
MSA |
MSA-1/2 |
MSA-1/4 |
MSA-1/8 |
MSA-1/16 |
NER |
ANERcorp |
MSA |
80.8% |
67.9% |
74.1% |
82.4% |
82.0% |
82.1% |
82.6% |
80.8% |
词性标注 |
PATB (MSA) |
MSA |
98.1% |
97.8% |
97.7% |
98.3% |
98.2% |
98.3% |
98.2% |
98.2% |
|
ARZTB (EGY) |
DA |
93.6% |
92.3% |
92.7% |
93.6% |
93.6% |
93.7% |
93.6% |
93.6% |
|
Gumar (GLF) |
DA |
97.3% |
97.7% |
97.9% |
97.9% |
97.9% |
97.9% |
97.9% |
97.9% |
情感分析 |
ASTD |
MSA |
76.3% |
69.4% |
74.6% |
76.9% |
76.0% |
76.8% |
76.7% |
75.3% |
|
ArSAS |
MSA |
92.7% |
89.4% |
91.8% |
93.0% |
92.6% |
92.5% |
92.5% |
92.3% |
|
SemEval |
MSA |
69.0% |
58.5% |
68.4% |
72.1% |
70.7% |
72.8% |
71.6% |
71.2% |
方言识别 |
MADAR-26 |
DA |
62.9% |
61.9% |
61.8% |
62.6% |
62.0% |
62.8% |
62.0% |
62.2% |
|
MADAR-6 |
DA |
92.5% |
91.5% |
92.2% |
91.9% |
91.8% |
92.2% |
92.1% |
92.0% |
|
MADAR-Twitter-5 |
MSA |
75.7% |
71.4% |
74.2% |
77.6% |
78.5% |
77.3% |
77.7% |
76.2% |
|
NADI |
DA |
24.7% |
17.3% |
20.1% |
24.9% |
24.6% |
24.6% |
24.9% |
23.8% |
诗歌分类 |
APCD |
CA |
79.8% |
80.9% |
79.6% |
79.7% |
79.9% |
80.0% |
79.7% |
79.8% |
结果(平均)
|
变体 |
Mix |
CA |
DA |
MSA |
MSA-1/2 |
MSA-1/4 |
MSA-1/8 |
MSA-1/16 |
变体平均[1] |
MSA |
82.1% |
75.7% |
80.1% |
83.4% |
83.0% |
83.3% |
83.2% |
82.3% |
|
DA |
74.4% |
72.1% |
72.9% |
74.2% |
74.0% |
74.3% |
74.1% |
73.9% |
|
CA |
79.8% |
80.9 |
|
|
|
|
|
|