英文

AraBERT v1 & v2 :基于BERT的阿拉伯语语言理解预训练模型

AraBERT是一种基于 Google's BERT architechture 的阿拉伯语预训练语言模型。AraBERT使用相同的BERT-Base配置。更多详细信息可在 AraBERT Paper AraBERT Meetup 中找到

该模型有两个版本,AraBERTv0.1和AraBERTv1,区别在于AraBERTv1使用了经过预处理的文本,其中前缀和后缀使用了 Farasa Segmenter 进行分割。

我们对AraBERT模型在不同下游任务中进行评估,并将其与 mBERT 和其他最先进的模型进行比较(在我们的知识范围内)。这些任务包括6个不同数据集上的情感分析( HARD ASTD-Balanced ArsenTD-Lev LABR ),使用 ANERcorp 进行的命名实体识别,以及 Arabic-SQuAD and ARCD 上的阿拉伯语问答。

AraBERTv2

有什么新内容!

AraBERT现在有4个新变体来替代旧的v1版本:

在AraBERT文件夹和 README 以及 AraBERT Paper 中有更多详细信息

Model HuggingFace Model Name Size (MB/Params) Pre-Segmentation DataSet (Sentences/Size/nWords)
AraBERTv0.2-base 12317321 543MB / 136M No 200M / 77GB / 8.6B
AraBERTv0.2-large 12318321 1.38G 371M No 200M / 77GB / 8.6B
AraBERTv2-base 12319321 543MB 136M Yes 200M / 77GB / 8.6B
AraBERTv2-large 12320321 1.38G 371M Yes 200M / 77GB / 8.6B
AraBERTv0.1-base 12321321 543MB 136M No 77M / 23GB / 2.7B
AraBERTv1-base 12322321 543MB 136M Yes 77M / 23GB / 2.7B

所有模型都可以在 HuggingFace模型页面上使用 aubmindlab 名称找到。检查点以PyTorch、TF2和TF1格式可用。

更好的预处理和新的词汇表

我们发现了AraBERTv1的wordpiece词汇表存在问题。问题来自标点符号和数字,在学习wordpiece词汇表时仍然附加到单词上的情况。我们现在在数字和字符之间以及标点字符周围插入一个空格。

新的词汇表是使用 tokenizers 库中的 BertWordpieceTokenizer 学习的,现在应支持 transformers 库中的 Fast tokenizer 实现。

顺便说一句:所有旧的BERT代码都应与新的BERT一起工作,只需更改模型名称并检查新的预处理函数,请阅读有关如何使用预处理函数的部分

更大的数据集和更多计算

我们使用了大约多一倍的数据进行更长时间的训练。有关数据集来源,请参阅数据集部分。

Model Hardware num of examples with seq len (128 / 512) 128 (Batch Size/ Num of Steps) 512 (Batch Size/ Num of Steps) Total Steps Total Time (in Days)
AraBERTv0.2-base TPUv3-8 420M / 207M 2560 / 1M 384/ 2M 3M -
AraBERTv0.2-large TPUv3-128 420M / 207M 13440 / 250K 2056 / 300K 550K 7
AraBERTv2-base TPUv3-8 420M / 207M 2560 / 1M 384/ 2M 3M -
AraBERTv2-large TPUv3-128 520M / 245M 13440 / 250K 2056 / 300K 550K 7
AraBERT-base (v1/v0.1) TPUv2-8 - 512 / 900K 128 / 300K 1.2M 4

数据集

用于新AraBERT模型的预训练数据也用于阿拉伯语AraGPT2和AraELECTRA。

该数据集包含77GB或200,095,961行或8,655,948,860个单词或82,232,988,358个字符(在应用 Farasa Segmentation 之前)。

对于新的数据集,我们将经过彻底筛选的未打乱的OSCAR语料库添加到了之前在AraBERTv1中使用的数据集中,但去除了之前我们爬取的网站:

预处理

强烈建议在对任何数据集进行训练/测试之前应用我们的预处理函数。安装 farasapy 以进行AraBERT v1 & v2的文本分词。

from arabert.preprocess import ArabertPreprocessor

model_name="bert-base-arabertv2"
arabert_prep = ArabertPreprocessor(model_name=model_name)

text = "ولن نبالغ إذا قلنا إن هاتف أو كمبيوتر المكتب في زمننا هذا ضروري"
arabert_prep.preprocess(text)
>>>"و+ لن نبالغ إذا قل +نا إن هاتف أو كمبيوتر ال+ مكتب في زمن +نا هذا ضروري"

可接受的模型

bert-base-arabertv01
bert-base-arabert
bert-base-arabertv02
bert-base-arabertv2
bert-large-arabertv02
bert-large-arabertv2
araelectra-base
aragpt2-base
aragpt2-medium
aragpt2-large
aragpt2-mega

TensorFlow 1.x模型

TF1.x模型可在HuggingFace模型库中找到。您可以按照以下方式下载它们:

  • 通过git-lfs:克隆存储库中的所有模型
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 Research Cloud(TFRC)提供免费访问云TPU的机会,没有这个计划我们将无法完成。感谢 AUB MIND Lab 成员的持续支持。同时感谢 Yakshof 和Assafir提供数据和存储访问。再次感谢Habib Rahal( https://www.behance.net/rahalhabib ),为AraBERT提供了一个面孔。

联系方式

Wissam Antoun : Linkedin | Twitter | Github | wfa07@mail.aub.edu | wissam.antoun@gmail.com

Fady Baly : Linkedin | Twitter | Github | fgb06@mail.aub.edu | baly.fady@gmail.com