模型简介
模型特点
模型能力
使用案例
🚀 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 上进行阿拉伯语问答。
⚠️ 重要提示
该模型有新版本可用!AraBERTv2
🚀 快速开始
安装依赖
pip install farasapy
数据预处理示例
from arabert.preprocess import ArabertPreprocessor
model_name="bert-base-arabert"
arabert_prep = ArabertPreprocessor(model_name=model_name)
text = "ولن نبالغ إذا قلنا إن هاتف أو كمبيوتر المكتب في زمننا هذا ضروري"
arabert_prep.preprocess(text)
>>>"و+ لن نبالغ إذا قل +نا إن هاتف أو كمبيوتر ال+ مكتب في زمن +نا هذا ضروري"
✨ 主要特性
模型版本丰富
有AraBERTv0.1、AraBERTv1、AraBERTv0.2-base、AraBERTv0.2-large、AraBERTv2-base、AraBERTv2-large等多个版本可供选择,不同版本在预分割处理、数据集使用等方面存在差异。
预处理和词汇表优化
解决了AraBERTv1词片词汇表的问题,在数字和字符之间以及标点字符周围插入空格。新词汇表使用 tokenizers
库中的 BertWordpieceTokenizer
学习,支持 transformers
库的快速分词器实现。
更大的数据集和更多的计算资源
使用了约3.5倍的数据,并进行了更长时间的训练。
多格式支持
所有模型都可以在 HuggingFace
模型页面的 aubmindlab 下找到,检查点提供PyTorch、TF2和TF1格式。
📦 安装指南
安装 farasapy
进行文本分割
pip install farasapy
下载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="bert-base-arabert"
arabert_prep = ArabertPreprocessor(model_name=model_name)
text = "ولن نبالغ إذا قلنا إن هاتف أو كمبيوتر المكتب في زمننا هذا ضروري"
processed_text = arabert_prep.preprocess(text)
print(processed_text)
📚 详细文档
AraBERTv2
新增内容
AraBERT现在有4种新变体来取代旧的v1版本,更多细节可在AraBERT文件夹、README 和 AraBERT论文 中查看。
模型 | 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.1-base | bert-base-arabertv01 | 543MB / 136M | 否 | 77M / 23GB / 2.7B |
AraBERTv1-base | bert-base-arabert | 543MB / 136M | 是 | 77M / 23GB / 2.7B |
预处理和新词汇表
解决了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 | - |
AraBERTv2-base | TPUv3-8 | 520M / 245M | 13440 / 250K | 2056 / 300K | 550K | - |
AraBERTv2-large | TPUv3-128 | 520M / 245M | 13440 / 250K | 2056 / 300K | 550K | - |
AraBERT-base (v1/v0.1) | TPUv2-8 | - | 512 / 900K | 128 / 300K | 1.2M | 4 |
数据集
预训练数据也用于阿拉伯语 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提供数据。
预处理
建议在任何数据集上进行训练/测试之前应用预处理函数。
支持的模型
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
)
🔧 技术细节
模型架构
基于 谷歌的BERT架构,采用BERT-Base配置。
词汇表学习
新词汇表使用 tokenizers
库中的 BertWordpieceTokenizer
学习,解决了AraBERTv1词片词汇表的问题。
训练数据
使用了多个阿拉伯语数据集,包括维基百科、OSIAN、15亿单词的阿拉伯语语料库、未打乱的OSCAR阿拉伯语语料库和Assafir新闻文章等。
训练硬件和参数
不同模型使用不同的硬件(如TPUv3-8、TPUv3-128等)进行训练,训练参数(如批量大小、步数等)也有所不同。
📄 许可证
如果使用此模型,请按以下方式引用:
@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
Fady Baly



