ysakuramoto commited on
Commit
2d8cd28
1 Parent(s): 7eaa0f5

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +77 -0
README.md ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: ja
3
+ tags:
4
+ - mobilebert
5
+ license: cc-by-sa-3.0
6
+ datasets:
7
+ - wikipedia
8
+ ---
9
+
10
+ # MobileBERT 日本語事前学習済みモデルについて
11
+ AI関係の仕事をしている櫻本です。
12
+ 2020年に発表されたBERTの発展型モデルの一つである「MobileBERT」の日本語事前学習済みモデルを構築しました。
13
+ このページを見つけた方はかなりラッキーですから、ぜひ一度使ってみてください!!
14
+
15
+ # 利用方法
16
+ transformersを利用されている場合の方法です。
17
+ トークナイザを東北大学さんのモデルからお借りしました。
18
+ それ以外は、**BertFor**なんちゃら~のクラスを**MobileBertFor**なんちゃら~に直して、このリポジトリを指定するだけです!
19
+ (注意:文書分類などのタスクに利用するには、ファインチューニングが必要です)
20
+ ```from transformers import BertJapaneseTokenizer, MobileBertForSequenceClassification
21
+ tokenizer = BertJapaneseTokenizer.from_pretrained("cl-tohoku/bert-large-japanese")
22
+ model = MobileBertForSequenceClassification.from_pretrained("ysakuramoto/mobilebert-ja") # 文書分類の場合
23
+ ```
24
+
25
+ # BERTとの性能比較
26
+ 文書分類と固有表現抽出について、ファインチューニング・性能評価を行いました。
27
+ 参考程度にご覧ください。(ファインチューニング後の性能を常に保証するものではありません)
28
+
29
+ - 文書分類(MobileBertForSequenceClassification)
30
+ |メトリック|BERT|MobileBERT(高速化前)|MobileBERT(高速化後)|
31
+ |-----------|-----------| ------- | -------- |
32
+ |学習時間(s)|585.0|399.7|-|
33
+ |推論時間(s)|259.0|108.7|70.5|
34
+ |精度|86.4%|85.5%|86.4%|
35
+ - 条件
36
+ - ライブドアニュースコーパスのタイトルとカテゴリで学習・推論。
37
+ - BERTモデルに、'cl-tohoku/bert-base-japanese-whole-word-masking'を利用。
38
+ - 推論データ n=1,474。精度はAccuracy。
39
+ - エポック数=10, lr=1e-4
40
+ - 高速化として、枝刈り・量子化・jitコンパイルを実施。
41
+ - Google Colabにて、学習にGPU、推論にCPUを利用した。推論はバッチ処理でなく1件ずつ処理。
42
+
43
+ - 固有表現抽出(BertForTokenClassification)
44
+ |メトリック|BERT|MobileBERT(高速化前)|MobileBERT(高速化後)|
45
+ |-----------|-----------| ------- | -------- |
46
+ |学習時間(s)|428.0|294.0|-|
47
+ |推論時間(s)|163.5|78.4|40.9|
48
+ |精度|86.4%|82.5%|83.3%|
49
+ - 条件
50
+ - ストックーマークさんのwikipediaデータセットで学習・推論。(https://github.com/stockmarkteam/ner-wikipedia-dataset)
51
+ - BERTモデルに、'cl-tohoku/bert-base-japanese-whole-word-masking'を利用。
52
+ - 推論データ n=2,140。精度は完全一致のAccuracy。
53
+ - エポック数=10, lr=1e-4
54
+ - 高速化として、枝刈り・量子化・jitコンパイルを実施。
55
+ - Google Colabにて、学習にGPU、推論にCPUを利用した。推論はバッチ処理でなく1件ずつ処理。
56
+
57
+ # モデルの説明
58
+ - モデルの構造
59
+ - 論文中の"MobileBERT"構造に従いました。(論文中にはMobileBERT<sub>TINY</sub>というバージョンもありますがそちらではないです)
60
+ - 論文中のTable.1 をご確認ください。 https://arxiv.org/abs/2004.02984
61
+ - 学習に利用したデータ
62
+ - 東北大学さんが公開されている方法で、2021年8月時点のwikipediaデータを利用しました。
63
+ - 東北大学さんのgithub https://github.com/cl-tohoku/bert-japanese
64
+ - トークナイザ
65
+ - 東北大学さんのモデル"cl-tohoku/bert-large-japanese"からお借りしました。vocab sizeは32768です。
66
+ - 学習方法
67
+ - Google ColabからTPUを用いて学習しました。
68
+ 1. IB-BERT<sub>LARGE</sub>をlr=5e-4で1Mステップ学習しました。
69
+ 1. 240kステップの蒸留後、mobileBERTをlr=5e-4で2Mステップ学習しました。
70
+ - トータルで2ヶ月半くらいかかりました。。エラーも出まくってつらかったです。
71
+ - tensorflow liteでの利用
72
+ - こちらで説明されています。その名の通りモバイルで動かせるんですね。
73
+ - https://www.tensorflow.org/lite/examples/bert_qa/overview
74
+
75
+ # ライセンス
76
+ [CC-BY SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/deed.ja)
77
+ トークナイザについては東北大学さんのモデル"cl-tohoku/bert-large-japanese"からお借りしました。