语言:
- 阿拉伯语
许可证: apache-2.0
小部件:
- 文本: "生活的目标是[MASK]。"
CAMeLBERT:面向阿拉伯语NLP任务的预训练模型集
模型描述
CAMeLBERT是一系列基于阿拉伯语文本预训练的不同规模和变体的BERT模型集合。我们发布了针对现代标准阿拉伯语(MSA)、方言阿拉伯语(DA)和古典阿拉伯语(CA)的预训练语言模型,以及一个混合三种变体的模型。此外,我们还提供了在MSA变体缩减数据集上预训练的附加模型(半量、四分之一、八分之一及十六分之一)。具体细节详见论文《阿拉伯语预训练语言模型中变体、规模与任务类型的交互作用》。
本模型卡描述的是CAMeLBERT-MSA-sixteenth (bert-base-arabic-camelbert-msa-sixteenth
),即在完整MSA数据集十六分之一规模上预训练的模型。
|
模型 |
变体 |
规模 |
词数 |
|
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任务进行微调。微调代码已发布于此处。
使用方法
可直接通过pipeline进行掩码语言建模:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='CAMeL-Lab/bert-base-arabic-camelbert-msa-sixteenth')
>>> unmasker("生活的目标是[MASK]。")
[{'sequence': '[CLS] 生活的目标是改变。[SEP]',
'score': 0.08320745080709457,
'token': 7946,
'token_str': 'التغيير'},
...]
注意:需使用transformers>=3.5.0
版本下载模型,或手动下载。
PyTorch获取文本特征示例:
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained('CAMeL-Lab/bert-base-arabic-camelbert-msa-sixteenth')
model = AutoModel.from_pretrained('CAMeL-Lab/bert-base-arabic-camelbert-msa-sixteenth')
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-msa-sixteenth')
model = TFAutoModel.from_pretrained('CAMeL-Lab/bert-base-arabic-camelbert-msa-sixteenth')
text = "你好世界。"
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
训练数据
训练流程
采用Google原始实现进行预训练,除特别说明外均遵循原始英文BERT超参数设置。
预处理
- 使用CAMeL工具集去除变音符号和连接线
- 基于启发式规则分句
- 在167GB文本上训练30,000词表的WordPiece分词器
- 保留字母大小写和重音符号
预训练
- 单块v3-8云TPU训练100万步
- 前9万步批量1024,后续调整为256
- 90%步数使用128词长序列,10%使用512词长
- 采用全词掩码和10倍重复因子
- Adam优化器(学习率1e-4,β₁=0.9,β₂=0.999)
评估结果
在NER、词性标注等12个数据集上评估,使用F1分数作为指标。完整结果参见模型卡表格,其中MSA-1/16模型在多数任务上保持约80%以上的性能表现。
致谢
研究获Google TensorFlow研究云(TFRC)提供的Cloud TPU支持。
引用
@inproceedings{inoue-etal-2021-interplay,
title = "阿拉伯语预训练语言模型中变体、规模与任务类型的交互作用",
author = "井上刚 等",
booktitle = "第六届阿拉伯自然语言处理研讨会论文集",
year = "2021",
publisher = "计算语言学协会"
}