🚀 AraBERT v1 と v2 : アラビア語理解のためのBERT事前学習
AraBERT は、GoogleのBERTアーキテクチャに基づくアラビア語の事前学習言語モデルです。AraBERTは、BERT-Baseと同じ設定を使用しています。詳細は、AraBERT論文 および AraBERTミートアップ で確認できます。
このモデルには、AraBERTv0.1とAraBERTv1の2つのバージョンがあります。違いは、AraBERTv1がFarasaセグメンターを使用して接頭辞と接尾辞を分割した事前セグメント化されたテキストを使用することです。
私たちは、AraBERTモデルをさまざまな下流タスクで評価し、mBERT や他の最先端のモデル(私たちの知る限り)と比較しています。タスクは、6つの異なるデータセット(HARD、ASTD-Balanced、ArsenTD-Lev、LABR)でのセンチメント分析、ANERcorp を使用した固有表現認識、および Arabic-SQuADとARCD でのアラビア語の質問応答です。
✨ 主な機能
AraBERTv2の新機能
AraBERTには、古いv1バージョンに代わる4つの新しいバリエーションが追加されました。
詳細は、AraBERTフォルダ、README および AraBERT論文 を参照してください。
すべてのモデルは、HuggingFace
のモデルページで aubmindlab の名前で利用できます。チェックポイントは、PyTorch、TF2、TF1形式で利用可能です。
改善された前処理と新しい語彙
AraBERTv1のワードピース語彙に問題があることが判明しました。この問題は、ワードピース語彙を学習する際に、数字や句読点がまだ単語に付着していたことに起因しています。現在、数字と文字の間、および句読点文字の周りにスペースを挿入するようになりました。
新しい語彙は、tokenizers
ライブラリの BertWordpieceTokenizer
を使用して学習され、transformers
ライブラリのFastトークナイザー実装をサポートするようになりました。
注意: すべての古いBERTコードは、新しいBERTでも動作するはずです。モデル名を変更し、新しい前処理関数を確認してください。
前処理関数の使用方法 のセクションを必ず読んでください
より大きなデータセットとより多くのコンピューティング
私たちは、約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 |
📦 インストール
AraBERT v1およびv2のテキストをセグメント化するため、またはデータをクリーニングするために、arbert Pythonパッケージをインストールします。
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)
>>>"و+ لن نبالغ إذا قل +نا إن هاتف أو كمبيوتر ال+ مكتب في زمن +نا هذا ضروري"
📚 ドキュメント
データセット
新しいAraBERTモデルの事前学習データは、アラビア語の GPT2およびELECTRA にも使用されています。
データセットは、77GB、または200,095,961行、または8,655,948,860単語、または82,232,988,358文字(Farasaセグメンテーションを適用する前)で構成されています。
新しいデータセットでは、AraBERTv1で使用されていた以前のデータセットに、完全にフィルタリングされた未シャッフルのOSCARコーパスを追加していますが、以前にクロールしたウェブサイトは除外しています。
前処理
任意のデータセットでトレーニング/テストする前に、前処理関数を適用することをお勧めします。
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
)
引用
このモデルを使用した場合は、以下のように引用してください。
Google Scholarの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 Research Cloud (TFRC) がCloud TPUを無料で提供してくれたこと、このプログラムがなければできなかったことに感謝します。また、AUB MIND Lab のメンバーには、継続的なサポートを提供してくれたことに感謝します。また、Yakshof とAssafirには、データとストレージへのアクセスを提供してくれたことに感謝します。最後に、Habib Rahal (https://www.behance.net/rahalhabib) には、AraBERTに顔を与えてくれたことに感謝します。
連絡先
Wissam Antoun: Linkedin | Twitter | Github | wfa07@mail.aub.edu | wissam.antoun@gmail.com
Fady Baly: Linkedin | Twitter | Github | fgb06@mail.aub.edu | baly.fady@gmail.com