模型概述
模型特點
模型能力
使用案例
🚀 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



