BERTのファインチューニング
時間に余裕ができたのでBERTを触ってみる。
日本語での性能が気になるのでyoheikikutaさんの学習済みモデルとリポジトリを基とする。
Livedoorニュースコーパスの分類タスクのファインチューニング
コーパス
Livedoorニュースコーパスは日本語テキストコーパスで9種類のソースから収集された記事からなる。 数えたところ合計7367記事であった。
ソース | 記事数 |
---|---|
dokujo-tsushin | 870 |
it-life-hack | 870 |
kaden-channel | 864 |
livedoor-homme | 511 |
movie-enter | 870 |
peachy | 842 |
smax | 870 |
sports-watch | 900 |
topic-news | 770 |
データセットの配布元:
検証内容
自宅のGTX1080でファインチューニングを行った。
事前学習モデルはyoheikikutaさんのモデルを使用させていただいた。
作業自体はほぼリポジトリのノートブック通りで出来た。
そのままだと芸がないので、学習データ数を全体の60%の100%, 50%, 20%, 10%, 5%に変化させ、学習データ数に関するF値の変化を調べることにした。 データ数に換算すると4421, 2210, 884, 442, 221テキスト。
なお、検証, テストデータ数は全てに共通でそれぞれ20%。
検証に用いたスクリプトはbert-japaneseをフォークして追加:
結果
転移学習は正常に進み(100%の場合は1時間半程度、5%の場合は5分弱)、次のようなグラフが得られた。
100%と5%は同一の学習データでそれぞれ2回と3回学習して平均をとっている。