らんだむな記憶

blogというものを体験してみようか!的なー

ゼロつく 2 (10)

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 まで完了。