🚀 ParsBigBird: 長距離シーケンス用のペルシャ語BERT
ParsBigBirdは、スパースアテンションを用いて、ペルシャ語で最大4096のトークン長のテキストを処理できるモデルです。通常のBertやParsBertは最大512トークンまでのテキストしか扱えませんが、このモデルは要約や質問応答などの長いテキストを必要とするタスクにも対応しています。
🚀 クイックスタート
ParsBigBirdは、スパースアテンションを用いて、ペルシャ語で最大4096のトークン長のテキストを処理できます。通常のBertやParsBertは最大512トークンまでのテキストしか扱えませんが、このモデルは要約や質問応答などの長いテキストを必要とするタスクにも対応しています。
✨ 主な機能
- ペルシャ語で最大4096のトークン長のテキストを処理できる
- スパースアテンションを用いて、長いシーケンスを効率的に処理する
- 複数のタスクで良好な性能を発揮する
🔧 技術詳細
評価: 🌡️
モデルは、異なるシーケンス長の3つのタスクで評価されました。
- distill-bertと同程度の大きさでありながら、ParsBertと同等の性能を発揮し、PersianQAでははるかに良い結果を示します。
- この評価は
max_lentgh=2048
(最大4096まで変更可能)に基づいて行われました。
事前学習の詳細: 🔭
このモデルは、Oscarデータセットのペルシャ語セクションを用いて、マスク言語モデル(MLM)の目的で事前学習されました。元のBERTの学習に従い、15%のトークンがマスクされました。これは、この論文で最初に説明され、このリポジトリで公開されました。4096より長いドキュメントは複数のドキュメントに分割され、4096よりはるかに小さいドキュメントは[SEP]トークンを用いて結合されました。モデルはdistilbert-fa
のチェックポイントからウォームスタートされました。
- 詳細については、🤗 Model Hubのモデルカードのconfig.jsonを参照してください。
ファインチューニングの推奨事項: 🐤
モデルのメモリ要件のため、gradient_checkpointing
とgradient_accumulation
を使用して、適切なバッチサイズを維持する必要があります。このモデルはそれほど大きくないため、メインタスクを実装する前に、マスク言語モデルの目的でデータセット上で最初にファインチューニングする(中間ファインチューニングとも呼ばれる)ことをお勧めします。block_sparseモードでは、入力されるトークンの数は関係ありません。ただ256トークンにアテンションを向けます。さらに、512までのシーケンス長では、original_fullを使用する必要があります(block sparseの代わりに)。
ファインチューニングの例 👷♂️👷♀️
データセット |
ファインチューニングの例 |
Digikala Magazine Text Classification |
 |
💻 使用例
文脈化された単語埋め込みとして
from transformers import BigBirdModel, AutoTokenizer
MODEL_NAME = "SajjadAyoubi/distil-bigbird-fa-zwnj"
model = BigBirdModel.from_pretrained(MODEL_NAME, block_size=32)
model = BigBirdModel.from_pretrained(MODEL_NAME, attention_type="original_full")
text = "😃 モデルが役に立つことを願っています。学習にはとても時間がかかりました。"
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
tokens = tokenizer(text, return_tensors='pt')
output = model(**tokens)
ブランク埋めとして
from transformers import pipeline
MODEL_NAME = 'SajjadAyoubi/distil-bigbird-fa-zwnj'
fill = pipeline('fill-mask', model=MODEL_NAME, tokenizer=MODEL_NAME)
results = fill('テヘランは [MASK] の首都です。')
print(results[0]['token_str'])
>>> 'イラン'
🤝 お問い合わせ
モデル、事前学習、コード、または公開に関する技術的な質問がある場合は、リポジトリにイシューを作成してください。これが私たちに連絡する最速の方法です。
📄 ライセンス
この作業に関する論文は公開されていません。ただし、公開する場合は、以下のようなエントリで適切に引用してください。
@misc{ParsBigBird,
author = {Ayoubi, Sajjad},
title = {ParsBigBird: Persian Bert For Long-Range Sequences},
year = 2021,
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/SajjjadAyobi/ParsBigBird}},
}