🚀 AraBERT v1 & v2:用于阿拉伯语理解的BERT预训练模型
AraBERT 是一个基于 谷歌的BERT架构 的阿拉伯语预训练语言模型。AraBERT采用了与BERT-Base相同的配置。更多细节可在 AraBERT论文 和 AraBERT线上活动 中查看。
该模型有两个版本,即AraBERTv0.1和AraBERTv1,区别在于AraBERTv1使用的是预分割文本,其中前缀和后缀是使用 Farasa分割器 进行分割的。
我们在不同的下游任务上对AraBERT模型进行了评估,并将其与 mBERT 以及其他先进模型进行了比较(就我们所知)。这些任务包括在6个不同数据集上进行情感分析(HARD、ASTD-Balanced、ArsenTD-Lev、LABR)、使用 ANERcorp 进行命名实体识别,以及在 Arabic-SQuAD和ARCD 上进行阿拉伯语问答。
✨ 主要特性
AraBERTv2
新增特性
AraBERT现在有4个新变体,用以取代旧的v1版本:
更多细节可在AraBERT文件夹、README 和 AraBERT论文 中查看。
所有模型都可以在 HuggingFace
模型页面的 aubmindlab 名下找到。检查点有PyTorch、TF2和TF1格式。
更优的预处理和新词汇表
我们发现了AraBERTv1的词块(wordpiece)词汇表存在一个问题。该问题源于在学习词块词汇表时,标点符号和数字仍然与单词相连。现在,我们会在数字和字符之间以及标点符号周围插入空格。
新的词汇表是使用 tokenizers
库中的 BertWordpieceTokenizer
学习得到的,现在应该支持 transformers
库中的快速分词器实现。
注意:所有旧的BERT代码应该都能与新的BERT兼容,只需更改模型名称并查看新的预处理函数即可。
请阅读 预处理函数使用说明 部分。
更大的数据集和更多的计算资源
我们使用了约3.5倍的数据,并进行了更长时间的训练。
有关数据集来源,请参阅 数据集部分。
模型 |
硬件 |
序列长度为(128 / 512)的示例数量 |
128(批量大小/步数) |
512(批量大小/步数) |
总步数 |
总时间(天) |
AraBERTv0.2-base |
TPUv3-8 |
4.2亿 / 2.07亿 |
2560 / 100万 |
384 / 200万 |
300万 |
- |
AraBERTv0.2-large |
TPUv3-128 |
4.2亿 / 2.07亿 |
13440 / 25万 |
2056 / 30万 |
55万 |
7 |
AraBERTv2-base |
TPUv3-8 |
4.2亿 / 2.07亿 |
2560 / 100万 |
384 / 200万 |
300万 |
- |
AraBERTv2-large |
TPUv3-128 |
5.2亿 / 2.45亿 |
13440 / 25万 |
2056 / 30万 |
55万 |
7 |
AraBERT-base (v1/v0.1) |
TPUv2-8 |
- |
512 / 90万 |
128 / 30万 |
120万 |
4 |
数据集
用于新AraBERT模型的预训练数据也用于阿拉伯语 GPT2和ELECTRA。
该数据集包含77GB数据,即2亿零95,961行、86亿5594万8860个单词或822亿3298万8358个字符(在应用Farasa分割之前)。
对于新数据集,我们在之前用于AraBERTv1的数据集基础上,添加了未打乱顺序的OSCAR语料库(经过彻底过滤),但不包括之前爬取的网站:
📦 安装指南
建议在对任何数据集进行训练/测试之前应用我们的预处理函数。
安装arbert Python包,以便为AraBERT v1和v2分割文本或清理数据 pip install arabert
💻 使用示例
基础用法
from arabert.preprocess import ArabertPreprocessor
model_name="aubmindlab/bert-large-arabertv02"
arabert_prep = ArabertPreprocessor(model_name=model_name)
text = "ولن نبالغ إذا قلنا: إن هاتف أو كمبيوتر المكتب في زمننا هذا ضروري"
arabert_prep.preprocess(text)
>>> output: ولن نبالغ إذا قلنا : إن هاتف أو كمبيوتر المكتب في زمننا هذا ضروري
📚 详细文档
TensorFlow 1.x模型
TF1.x模型可在HuggingFace模型仓库中找到。
你可以按以下方式下载它们:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
git clone https://huggingface.co/aubmindlab/MODEL_NAME
tar -C ./MODEL_NAME -zxvf /content/MODEL_NAME/tf1_model.tar.gz
其中 MODEL_NAME
是 aubmindlab
名下的任何模型。
- 通过
wget
:
- 访问huggingface.co/models/aubmindlab/MODEL_NAME上的tf1_model.tar.gz文件。
- 复制
oid sha256
。
- 然后运行
wget https://cdn-lfs.huggingface.co/aubmindlab/aragpt2-base/INSERT_THE_SHA_HERE
(例如,对于 aragpt2-base
:wget https://cdn-lfs.huggingface.co/aubmindlab/aragpt2-base/3766fc03d7c2593ff2fb991d275e96b81b0ecb2098b71ff315611d052ce65248
)
引用说明
如果您使用了此模型,请按以下方式引用我们:
Google学术的Bibtex引用有误(缺少名称),请使用以下内容:
@inproceedings{antoun2020arabert,
title={AraBERT: Transformer-based Model for Arabic Language Understanding},
author={Antoun, Wissam and Baly, Fady and Hajj, Hazem},
booktitle={LREC 2020 Workshop Language Resources and Evaluation Conference 11--16 May 2020},
pages={9}
}
致谢
感谢TensorFlow研究云(TFRC)免费提供云TPU,没有这个项目我们无法完成这项工作;感谢 AUB MIND实验室 成员的持续支持。同时感谢 Yakshof 和Assafir提供的数据和存储访问权限。还要感谢Habib Rahal(https://www.behance.net/rahalhabib)为AraBERT设计了形象。
联系方式
Wissam Antoun:领英 | 推特 | GitHub | wfa07@mail.aub.edu | wissam.antoun@gmail.com
Fady Baly:领英 | 推特 | GitHub | fgb06@mail.aub.edu | baly.fady@gmail.com