🚀 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
新增內容
AraBERT現在有4個新變體來取代舊的v1版本:
更多細節可在AraBERT文件夾、README和《AraBERT論文》中查看。
模型 |
HuggingFace模型名稱 |
大小 (MB/參數) |
預分割 |
數據集 (句子數/大小/單詞數) |
AraBERTv0.2 - base |
[bert - base - arabertv02](https://huggingface.co/aubmindlab/bert - base - arabertv02) |
543MB / 136M |
否 |
2億 / 77GB / 86億 |
AraBERTv0.2 - large |
[bert - large - arabertv02](https://huggingface.co/aubmindlab/bert - large - arabertv02) |
1.38G / 371M |
否 |
2億 / 77GB / 86億 |
AraBERTv2 - base |
[bert - base - arabertv2](https://huggingface.co/aubmindlab/bert - base - arabertv2) |
543MB / 136M |
是 |
2億 / 77GB / 86億 |
AraBERTv2 - large |
[bert - large - arabertv2](https://huggingface.co/aubmindlab/bert - large - arabertv2) |
1.38G / 371M |
是 |
2億 / 77GB / 86億 |
AraBERTv0.1 - base |
[bert - base - arabertv01](https://huggingface.co/aubmindlab/bert - base - arabertv01) |
543MB / 136M |
否 |
7700萬 / 23GB / 27億 |
AraBERTv1 - base |
[bert - base - arabert](https://huggingface.co/aubmindlab/bert - base - arabert) |
543MB / 136M |
是 |
7700萬 / 23GB / 27億 |
所有模型都可以在HuggingFace
模型頁面的aubmindlab名下找到。檢查點有PyTorch、TF2和TF1格式。
更好的預處理和新詞彙表
我們發現了AraBERTv1的詞塊詞彙表存在一個問題。該問題源於在學習詞塊詞彙表時,標點符號和數字仍然與單詞相連。現在,我們在數字和字符之間以及標點字符周圍插入了一個空格。
新的詞彙表是使用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、200,095,961行、8,655,948,860個單詞或82,232,988,358個字符(在應用Farasa分割之前)。
對於新數據集,我們在之前用於AraBERTv1的數據集基礎上添加了未打亂的OSCAR語料庫,但去掉了之前爬取的網站:
- 未打亂並經過過濾的OSCAR語料庫。
- [2020/09/01的阿拉伯語維基百科轉儲](https://archive.org/details/arwiki - 20190201)
- [15億單詞的阿拉伯語語料庫](https://www.semanticscholar.org/paper/1.5 - billion - words - Arabic - Corpus - El - Khair/f3eeef4afb81223df96575adadf808fe7fe440b4)
- [OSIAN語料庫](https://www.aclweb.org/anthology/W19 - 4619)
- Assafir新聞文章。非常感謝Assafir提供數據。
📦 安裝指南
建議在任何數據集上進行訓練/測試之前應用我們的預處理函數。
安裝farasapy以對AraBERT v1 & v2進行文本分割 pip install farasapy
💻 使用示例
基礎用法
from arabert.preprocess import ArabertPreprocessor
model_name="bert-large-arabertv02"
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模型倉庫中找到。
你可以按以下方式下載它們:
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
)
引用
如果你使用了這個模型,請按以下方式引用我們:
谷歌學術的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)免費提供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