模型简介
模型特点
模型能力
使用案例
🚀 AraBERT v1 & v2:用于阿拉伯语理解的BERT预训练模型
AraBERT 是一个基于 谷歌的BERT架构 的阿拉伯语预训练语言模型,采用了与BERT - Base相同的配置。更多详细信息可查看 AraBERT论文 和 AraBERT线上研讨会。
该模型有两个版本,AraBERTv0.1和AraBERTv1,区别在于AraBERTv1使用预分割文本,其中前缀和后缀使用 Farasa分割器 进行分割。
我们在不同的下游任务中对AraBERT模型进行评估,并将其与 mBERT 以及其他最先进的模型进行比较(就我们所知)。这些任务包括在6个不同数据集上的情感分析(HARD、ASTD - Balanced、ArsenTD - Lev、LABR)、使用 ANERcorp 进行命名实体识别,以及在 Arabic - SQuAD和ARCD 上进行阿拉伯语问答。
🚀 快速开始
安装与预处理
建议在任何数据集上进行训练/测试之前应用我们的预处理函数。
pip install arabert
示例代码
from arabert.preprocess import ArabertPreprocessor
model_name="aubmindlab/bert-large-arabertv2"
arabert_prep = ArabertPreprocessor(model_name=model_name)
text = "ولن نبالغ إذا قلنا إن هاتف أو كمبيوتر المكتب في زمننا هذا ضروري"
arabert_prep.preprocess(text)
>>>"و+ لن نبالغ إذا قل +نا إن هاتف أو كمبيوتر ال+ مكتب في زمن +نا هذا ضروري"
✨ 主要特性
多版本选择
AraBERTv2
- 新增4种变体:取代旧的v1版本,提供更多选择以满足不同需求。 | 模型 | HuggingFace模型名称 | 大小 (MB/参数) | 预分割 | 数据集 (句子/大小/单词数) | |------|------|------|------|------| | AraBERTv0.2 - base | bert - base - arabertv02 | 543MB / 136M | 否 | 200M / 77GB / 8.6B | | AraBERTv0.2 - large | bert - large - arabertv02 | 1.38G / 371M | 否 | 200M / 77GB / 8.6B | | AraBERTv2 - base | bert - base - arabertv2 | 543MB / 136M | 是 | 200M / 77GB / 8.6B | | AraBERTv2 - large | bert - large - arabertv2 | 1.38G / 371M | 是 | 200M / 77GB / 8.6B | | AraBERTv0.2 - Twitter - base | bert - base - arabertv02 - twitter | 543MB / 136M | 否 | 与v02相同 + 60M多方言推文 | | AraBERTv0.2 - Twitter - large | bert - large - arabertv02 - twitter | 1.38G / 371M | 否 | 与v02相同 + 60M多方言推文 | | AraBERTv0.1 - base | bert - base - arabertv01 | 543MB / 136M | 否 | 77M / 23GB / 2.7B | | AraBERTv1 - base | bert - base - arabert | 543MB / 136M | 是 | 77M / 23GB / 2.7B |
所有模型都可在 HuggingFace
模型页面的 aubmindlab 下找到,检查点有PyTorch、TF2和TF1格式。
更好的预处理和新词汇表
- 解决词汇问题:识别出AraBERTv1的词块词汇表存在的问题,即学习词块词汇表时标点和数字仍与单词相连。现在在数字和字符之间以及标点字符周围插入空格。
- 支持快速分词器:新词汇表使用
tokenizers
库中的BertWordpieceTokenizer
学习,支持transformers
库的快速分词器实现。
更大的数据集和更多的计算资源
- 数据量增加:使用了约3.5倍的数据,并进行了更长时间的训练。 | 模型 | 硬件 | 序列长度为(128 / 512)的示例数量 | 128 (批量大小/步数) | 512 (批量大小/步数) | 总步数 | 总时间 (天) | |------|------|------|------|------|------|------| | 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 |
📦 安装指南
安装arobert包
pip install arabert
下载TensorFlow 1.x模型
通过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
)
💻 使用示例
基础用法
from arabert.preprocess import ArabertPreprocessor
model_name="aubmindlab/bert-large-arabertv2"
arabert_prep = ArabertPreprocessor(model_name=model_name)
text = "ولن نبالغ إذا قلنا إن هاتف أو كمبيوتر المكتب في زمننا هذا ضروري"
processed_text = arabert_prep.preprocess(text)
print(processed_text)
📚 详细文档
数据集
预训练新的AraBERT模型所使用的数据也用于阿拉伯语的 GPT2和ELECTRA。 数据集包含77GB、200,095,961行、8,655,948,860个单词或82,232,988,358个字符(应用Farasa分割之前)。 新数据集在之前AraBERTv1使用的数据集基础上,添加了经过彻底过滤的未打乱的OSCAR语料库,但不包括之前爬取的网站:
- 未打乱并经过过滤的OSCAR语料库。
- 2020/09/01的阿拉伯语维基百科转储
- 15亿单词的阿拉伯语语料库
- OSIAN语料库
- Assafir新闻文章。非常感谢Assafir提供数据。
预处理
建议在任何数据集上进行训练/测试之前应用我们的预处理函数。安装 arobert
包后,可按如下方式使用:
from arabert.preprocess import ArabertPreprocessor
model_name="aubmindlab/bert-large-arabertv2"
arabert_prep = ArabertPreprocessor(model_name=model_name)
text = "ولن نبالغ إذا قلنا إن هاتف أو كمبيوتر المكتب في زمننا هذا ضروري"
arabert_prep.preprocess(text)
🔧 技术细节
模型架构
基于 谷歌的BERT架构,采用BERT - Base配置。
训练设置
不同版本的模型在不同的硬件上进行训练,使用不同的批量大小和步数,以充分利用计算资源并提高模型性能。
📄 许可证
文档未提及相关许可证信息。
📖 引用格式
如果使用了此模型,请按以下格式引用:
@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)免费提供Cloud 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



