模型概述
模型特點
模型能力
使用案例
🚀 AraBERT v1 & v2:用於阿拉伯語理解的BERT預訓練模型
AraBERT 是一個基於 谷歌的BERT架構 的阿拉伯語預訓練語言模型。AraBERT採用了與BERT - Base相同的配置。更多細節可參考 AraBERT論文 和 AraBERT線上活動。
數據集信息
屬性 | 詳情 |
---|---|
訓練數據 | wikipedia、Osian、1.5B - Arabic - Corpus、oscar - arabic - unshuffled |
模型小部件示例
- 輸入文本:" عاصم +ة لبنان هي [MASK] ."
🚀 快速開始
本項目提供了用於阿拉伯語理解的預訓練模型AraBERT v1和v2。以下將詳細介紹模型的版本、改進、數據集、預處理等內容。
✨ 主要特性
模型版本
- 有兩個版本的模型,AraBERTv0.1和AraBERTv1,區別在於AraBERTv1使用了預分割文本,其中前綴和後綴使用 Farasa分割器 進行分割。
- AraBERT現在有4個新變體來取代舊的v1版本,具體信息如下: | 模型 | HuggingFace模型名稱 | 大小 (MB/參數) | 預分割 | 數據集 (句子數/大小/單詞數) | |------|------|------|------|------| | AraBERTv0.2 - base | [bert - base - arabertv02](https://huggingface.co/aubmindlab/bert - base - arabertv02) | 543MB / 136M | 否 | 200M / 77GB / 8.6B | | AraBERTv0.2 - large | [bert - large - arabertv02](https://huggingface.co/aubmindlab/bert - large - arabertv02) | 1.38G / 371M | 否 | 200M / 77GB / 8.6B | | AraBERTv2 - base | [bert - base - arabertv2](https://huggingface.co/aubmindlab/bert - base - arabertv2) | 543MB / 136M | 是 | 200M / 77GB / 8.6B | | AraBERTv2 - large | [bert - large - arabertv2](https://huggingface.co/aubmindlab/bert - large - arabertv2) | 1.38G / 371M | 是 | 200M / 77GB / 8.6B | | AraBERTv0.1 - base | [bert - base - arabertv01](https://huggingface.co/aubmindlab/bert - base - arabertv01) | 543MB / 136M | 否 | 77M / 23GB / 2.7B | | AraBERTv1 - base | [bert - base - arabert](https://huggingface.co/aubmindlab/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 |
📦 安裝指南
安裝 farasapy
以便為AraBERT v1和v2分割文本:
pip install farasapy
💻 使用示例
基礎用法
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
📚 詳細文檔
數據集
預訓練新的AraBERT模型所使用的數據也用於阿拉伯語的 AraGPT2和AraELECTRA。 數據集由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提供數據。
預處理
建議在任何數據集上進行訓練/測試之前應用我們的預處理函數。
from arabert.preprocess import ArabertPreprocessor
model_name="bert-base-arabertv2"
arabert_prep = ArabertPreprocessor(model_name=model_name)
text = "ولن نبالغ إذا قلنا إن هاتف أو كمبيوتر المكتب في زمننا هذا ضروري"
arabert_prep.preprocess(text)
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
)
引用說明
如果您使用了此模型,請按以下方式引用我們:
@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:[領英](https://www.linkedin.com/in/wissam - antoun - 622142b4/) | 推特 | Github | wfa07@mail.aub.edu | wissam.antoun@gmail.com
- Fady Baly:領英 | 推特 | Github | fgb06@mail.aub.edu | baly.fady@gmail.com
⚠️ 重要提示
所有舊的BERT代碼應該可以與新的BERT一起使用,只需更改模型名稱並檢查新的預處理函數。請閱讀 如何使用預處理函數 部分。
💡 使用建議
建議在任何數據集上進行訓練/測試之前應用預處理函數。安裝
farasapy
以便為AraBERT v1和v2分割文本。



