LSTM を重ねたり、間にドロップアウトを入れたり、学習率を perplexity に合わせて減らしたりすることで精度が上がるとのこと。このくらいまで来るととても CPU で訓練してられないので Colab 上で K80 を使う。それでも遅い。
| epoch 1 | iter 1001 / 1327 | time 299[s] | perplexity 216.30
くらいが 3 分時点での進捗。完了の見積もりをざっくりと計算すると
299 * 1327/1001 * 40 / 3600 4.404184704184704
なので、5 時間ほどで完了すると本に書いてあるのは正しそう。
図 6-37 に 2017 年時点までの PTB データセットに対する各モデルのパープレキシティの結果が引用されている。きっと現時点では BERT や GPT-3 が出ているのでもっと凄いはず・・・ということで調べる。
Penn Treebank (Word Level) Benchmark (Language Modelling) | Papers With Code
Rank | Model | Test perplexity | Validation perplexity | Params |
---|---|---|---|---|
16 | AWD-LSTM + continuous cache pointer | 52.8 | 53.9 | 24M |
が書籍執筆時点での一番良いモデルだったことが分かる。本によるとこのモデルは注意機構をベースにしているらしい。注意機構凄い・・・。そして「とても素晴らしい結果」「驚異的な数値」であったこの上に今では 15 も良いモデルがあるというのだ・・・。
Rank | Model | Test perplexity | Validation perplexity | Params |
---|---|---|---|---|
1 | GPT-3 (Zero-Shot) | 20.5 | 175000M | |
2 | BERT-Large-CAS | 31.3 | 36.1 | 395M |
つ、強いですね・・・としか。ただ、GPT-3 のモデルサイズでかすぎだろ・・・。ちゃんと調べてないけど、BERT の時点でゼロつく 2 の BetterRnnlm
の 15〜20 倍くらいのモデルサイズなのではないだろうか・・・。訓練時間どれくらいかかるんだろう・・・。GPT-3 になると、次の単語の予測として、20 単語くらいまで絞り込んでいるというのだから凄い・・・。これが注意機構を駆使した Transformer の力なのか・・・。
| epoch 4 | iter 1321 / 1327 | time 371[s] | perplexity 127.35 evaluating perplexity ... 209 / 210 valid perplexity: 112.23371
記事を書いているうちにこういう状況になっていた。1 エポックあたり、380 s くらいで回っている。モデルのサイズが肥大しているので、同じエポック 4 までで見ても、訓練にかかる時間は 2.5 倍くらいになっているが、約 25 分経過時点で改良前の Rnnlm
より良い perplexity になっていることになる。
BERT はゼロつく 2 の数ヶ月後に出たモデルなわけだが、この 2017〜2018 年での躍進は凄いな・・・。
気持ち的にゲッソリしながら p.276 まで完了。