🚀 nlp-waseda/bigbird-base-japanese
このモデルは、日本語のWikipedia、CC - 100の日本語部分、およびOSCARの日本語部分で事前学習された日本語のBigBirdベースモデルです。長い文章を扱う自然言語処理タスクに役立ちます。
🚀 クイックスタート
このモデルをマスク言語モデリングに使用するには、以下のようにします。
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("nlp-waseda/bigbird-base-japanese")
model = AutoModelForMaskedLM.from_pretrained("nlp-waseda/bigbird-base-japanese")
sentence = '[MASK] 大学 で 自然 言語 処理 を 学ぶ 。'
encoding = tokenizer(sentence, return_tensors='pt')
...
このモデルは下流タスクでファインチューニングすることもできます。
✨ 主な機能
- 日本語のWikipedia、CC - 100、OSCARの日本語部分を用いて事前学習されています。
- マスク言語モデリングや下流タスクのファインチューニングに利用可能です。
📦 インストール
このモデルはtransformers
ライブラリを通じて簡単に利用できます。以下のコードでトークナイザーとモデルをロードできます。
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("nlp-waseda/bigbird-base-japanese")
model = AutoModelForMaskedLM.from_pretrained("nlp-waseda/bigbird-base-japanese")
💻 使用例
基本的な使用法
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("nlp-waseda/bigbird-base-japanese")
model = AutoModelForMaskedLM.from_pretrained("nlp-waseda/bigbird-base-japanese")
sentence = '[MASK] 大学 で 自然 言語 処理 を 学ぶ 。'
encoding = tokenizer(sentence, return_tensors='pt')
...
高度な使用法
このモデルは下流タスクでのファインチューニングにも利用できます。具体的なファインチューニングの手順は、使用するタスクに応じて異なります。
📚 ドキュメント
トークナイゼーション
入力テキストは、事前にJuman++で単語に分割する必要があります。事前学習にはJuman++ 2.0.0 - rc3が使用されました。各単語はsentencepieceによってトークンにトークナイズされます。
語彙
語彙は、単語(JumanDIC)とsentencepieceのユニグラム言語モデルによって誘導されたサブワードを含む32000個のトークンで構成されています。
学習手順
このモデルは、日本語のWikipedia(20221101時点)、CC - 100の日本語部分、およびOSCARの日本語部分で学習されました。transformersとDeepSpeedを使用して、16台のNVIDIA A100 GPUで2週間かけて学習が行われました。
事前学習中に使用されたハイパーパラメータは以下の通りです。
ハイパーパラメータ |
値 |
learning_rate |
1e - 4 |
per_device_train_batch_size |
6 |
gradient_accumulation_steps |
2 |
total_train_batch_size |
192 |
max_seq_length |
4096 |
training_steps |
600000 |
warmup_steps |
6000 |
bf16 |
true |
deepspeed |
ds_config.json |
JGLUEでの性能
以下のモデルをファインチューニングし、JGLUEの開発セットで評価しました。各モデルとタスクに対して、JGLUE論文に従って学習率と学習エポック数を調整しました。
MARC - ja以外のタスクでは、最大長が短いため、attention_typeを"original_full"に設定してファインチューニングを行いました。MARC - jaでは、"block_sparse"と"original_full"の両方を使用しました。
モデル |
MARC - ja/acc |
JSTS/pearson |
JSTS/spearman |
JNLI/acc |
JSQuAD/EM |
JSQuAD/F1 |
JComQA/acc |
Waseda RoBERTa base |
0.965 |
0.913 |
0.876 |
0.905 |
0.853 |
0.916 |
0.853 |
Waseda RoBERTa large (seq512) |
0.969 |
0.925 |
0.890 |
0.928 |
0.910 |
0.955 |
0.900 |
BigBird base (original_full) |
0.959 |
0.888 |
0.846 |
0.896 |
0.884 |
0.933 |
0.787 |
BigBird base (block_sparse) |
0.959 |
- |
- |
- |
- |
- |
- |
🔧 技術詳細
- モデルタイプ:BigBirdベースモデル
- 学習データ:日本語のWikipedia(20221101時点)、CC - 100の日本語部分、OSCARの日本語部分
- トークナイゼーション:Juman++で単語分割後、sentencepieceでトークン化
- 語彙サイズ:32000トークン
📄 ライセンス
このモデルはCC - BY - SA - 4.0ライセンスの下で提供されています。
🎉 謝辞
この研究は、2022年第3回ABCIグランドチャレンジの「長シーケンスを扱う日本語大規模汎用言語モデルの構築」を通じて、AI Bridging Cloud Infrastructure (ABCI)によって支援されました。