aMLP-japanese
Japanese aMLP Pretrained Model
aMLPとは、Liu, Daiらが提案する、Transformerモデルです。
ざっくりというと、BERTの代わりに使えて、より性能の良いモデルです。
詳しい解説は、こちらの記事などを参考にしてください。
このプロジェクトは、スポンサーを募集しています。
aMLP 日本語モデル
New
- 2021/11/13 – 事前学習済みbaseモデルおよびSQuADモデルを公開しました
aMLP (Pay Attention to MLPs) とは
gMLPは、Liu, Daiらが、論文「Pay Attention to MLPs」で提案した、Self-Attention機構を排除したTransformerモデルです
BERTのTransformerモデルよりも、1層あたりのパラメーター数が少なく、その代わりに多数の層を重ねることで、同じパラメーター数あたりの性能で見て、BERTを超える性能を発揮します
ざっくりと「BERTと同じように使えてBERTより性能の良いモデル」と捉えて良いでしょう
aMLPは、gMLPにさらにSoft-Attention機構を追加することで、SQuAD等質疑応答タスクにおいてもBERTを超える性能を発揮すると報告されているモデルです
aMLP-japaneseとは、Tensorflow2で実装したaMLPモデルに、40GB超の日本語コーパスを事前学習させた、学習済みモデルです
日本語のエンコードにはJapanese-BPEEncoder_V2を使用し、トークン数は24Kです
TODO
✓baseモデルの公開(2021/11/13)
✓SQuADモデルの公開(2021/11/13)
公開モデル
- 事前学習モデル
モデル名 | ダウンロードURL | パラメーター数 | 学習データサイズ |
---|---|---|---|
aMLP-base-ja | https://nama.ne.jp/models/aMLP-base-ja.tar.bz2 (予備URL) | 67,923,648 | 40GB~ |
- 質疑応答モデル
モデル名 | ダウンロードURL | パラメーター数 | 学習データサイズ |
---|---|---|---|
aMLP-SQuAD-base-ja | https://nama.ne.jp/models/aMLP-SQuAD-base-ja.bz2(予備URL) | 67,924,674 | 200K文章 |
質疑応答モデル
使い方
GitHubからコードをクローンします
$ git https://github.com/tanreinama/aMLP-japanese
$ cd aMLP-japanese
学習済みモデルファイルをダウンロードして展開します
$ wget https://www.nama.ne.jp/models/aMLP-SQuAD-base-ja.tar.bz2
$ tar xvfj aMLP-SQuAD-base-ja.tar.bz2
以下のように「run-squad.py」を実行します
学習済みモデルを「–restore_from」に、SQuAD形式のJSONファイルを「–pred_dataset」で指定すると、質問文に対する回答が表示されます
全ての解答の候補は、「squad-predicted.json」という名前で保存されます
$ python run-squad.py --restore_from aMLP-SQuAD-base-ja --pred_dataset squad-testdata.json
Question Answer
ロッキード・マーティン社とボーイング社が共同開発したステルス戦闘機は? F-22戦闘機
F-22戦闘機の愛称は? 猛禽類の意味のラプター
F-22戦闘機一機あたりの価格は? 1億5千万ドル
F-22戦闘機の航続距離は? 3200km
F-22戦闘機の巡航速度は? マッハ1.82
F-22の生産数が削減された理由は? 調達コスト
SQuAD型の質疑応答モデルなので、JSONファイルにコンテキストが含まれている必要があります
ファインチューニング
ファインチューニング用の質疑応答データセットを用意して、SQuAD形式のJSONファイルで保存しておきます
そして、以下のように「run-squad.py」を実行します
学習済みモデルを「–restore_from」に、SQuAD形式のJSONファイルを「–dataset」で指定します
評価用のデータセットがあるときは、「–val_dataset」で指定すると、学習の途中で評価スコアが表示されます
$ python run-squad.py --restore_from aMLP-SQuAD-base-ja --dataset squad-testdata.json
一から学習させる場合は、事前学習済みモデルを「–base_model」に指定します
学習済みモデルは、「checkpoint」以下の、「–run_name」で指定したディレクトリ内に保存されます
なお、公開モデルの学習に使用した質疑応答データセットについては、著作権の関係から公開出来ません
クラス分類モデル
準備
GitHubからコードをクローンします
$ git https://github.com/tanreinama/aMLP-japanese
$ cd aMLP-japanese
事前学習済みモデルファイルをダウンロードして展開します
$ wget https://www.nama.ne.jp/models/aMLP-base-ja.tar.bz2
$ tar xvfj aMLP-base-ja.tar.bz2
学習
クラス分類タスクでは、
<div class="snippet-clipboard-content position-relative overflow-auto" data-snippet-clipboard-copy-content="dir//textA.txt
dir//textB.txt
dir//textC.txt
・・・
“>
dir/<classA>/textA.txt
dir/<classA>/textB.txt
dir/<classB>/textC.txt
・・・