StatsBeginner: 初学者の統計学習ノート

統計学およびR、Pythonでのプログラミングの勉強の過程をメモっていくノート。たまにMacの話題。

英日翻訳Transformerを少しだけ大きくしてみた結果

研究でTransformerを使いたいので(去年ちょっと実際に使いましたが)、基本から勉強しようと思い、先日自分でTransformerに英日翻訳を学習させてみたのですが(エントリ1エントリ2)、GPUを複数枚並列で動かせる環境を手に入れたので、コーパスとモデルを少し大きくしてみました。
対訳ペア数は、128万から175万へ(Wikimatrixという新しいコーパスを追加)。
Transformerのブロック数を、両側3層から両側6層へ。
ただしByte-Pair Encodingの語彙数を、3万から2万に減らしました。なぜか新しい環境では3万でやるとクラッシュして動かなかったためです。なお、GoogleのAll You Need論文では、確か英独翻訳が数百万、英仏翻訳で数千万の対訳ペアが使われているのに対して、BPEの語彙数は3万ちょい(多言語横断でこのサイズ)だったと思うので、2万でも十分だとは思っています。BPEの語彙数はイメージより少なくて大丈夫だよというのは、よく言われているようです。
Transformerブロックを2倍にしたけど語彙数を小さくしたので、パラメータ数はあまり変わりません(前回が6900万、今回が7100万)。


50エポックまで学習させました。途中でGPUを4枚から8枚に増やしたら、グラフのとおりなぜか訓練誤差が跳ね上がったのですが、ちょうど2倍なので、どこかで平均か何かをとる操作が間違ってる気がします。検証誤差は下がっているので気にしないことにしましたw



以下が、前回と今回の機械翻訳の結果の比較ですが、大差はないという感じです(笑)
やはりコーパスをデカくしないとだめなのかも知れません。

Your time is limited, so don’t waste it living someone else’s life. (Steve Jobs)
【前回】時間は限られているので、他人の人生を浪費しないでください。
【今回】時間が限られているので、他人の人生を無駄にしないでください(スティーブ・ジョブズ)。
(拙訳:君たちの時間は限られている。他人の人生を生きるようなことをしてそれを無駄にするな。/スティーブ・ジョブズ)
 
I have a dream that my four little children will one day live in a nation where they will not be judged by the color of their skin but by the content of their character. (Martin Luther King Jr)
【前回】私は4人の小さな子供たちが、いつか、自分の肌の色ではなく、その性格の特徴によって判断されない国家に住む夢を持っています。
【今回】わたしには、ある日、わたしの4人の小さな子供が、肌の色ではなく、その性格の色によって判断されるであろう国に住んでいるという夢があります(マーティン・ルーサー・キングジュニア)
(拙訳:私には夢がある。私の4人の子供たちがいつの日か、肌の色ではなく彼らの人格によって判断される国に暮らせるようになるという夢が。/キング牧師)
 
You are fake news! (Donald Trump)
【前回】偽のニュースです!
【今回】ばかばかしいニュースだ!(ドナルド・トランプ)。
(拙訳:[CNNは]フェイクニュースだ!/トランプ大統領)
 
You may say I'm a dreamer. But I'm not the only one. I hope someday you'll join us. And the world will be as one. (John Lennon)
【前回】夢想家だって言うかもしれないけど、私だけじゃない。いつか、ぼくらと合流してくれるといいんだけど。そして世界は、ひとつのものになる。
【今回】夢想家だと言うかもしれません。でも、私はただ一人ではありません。いつかあなたたちが仲間になるといいですね。世界は1つになるでしょう。(ジョン・レノン)
(拙訳:夢想家だと君は言うかもしれないけれど、僕は一人じゃない。いつか君も一緒になれれば。そして世界は一つになる。/ジョン・レノン)
 
The madman is not the man who has lost his reason. The madman is the man who has lost everything except his reason. (G. K. Chesterton)
【前回】狂人は理性を失った人間ではない。狂人は、理性以外はすべてを失った男だ。
【今回】狂人は理性を失った人間ではない。狂人は理性以外のすべてを失った男である(G.K.チェスタトン)。
(安西徹雄訳:狂人とは理性を失った人のことではない。狂人とは、理性以外のあらゆる物を失った人のことである。/チェスタトン)
 
The safest general characterization of the European philosophical tradition is that it consists of a series of footnotes to Plato. (A. N. Whitehead)
【前回】ヨーロッパ哲学伝統の最も安全な一般的な特徴は、それがプラトンへの一連の脚注から構成されていることです。
【今回】ヨーロッパの哲学的伝統の最も安全な一般的な特徴は、プラトンへの一連の脚注から成り立っていることである(A.N.ホワイトヘッド)。
(拙訳:ヨーロッパ哲学の伝統について間違いなく言えるのは、その全てが、プラトン哲学へのひと続きの注釈に過ぎないということである。/ホワイトヘッド)
 
Violence sometimes may have cleared away obstructions quickly, but it never has proved itself creative. (Albert Einstein)
【前回】暴力は時々すぐに妨害を片付けるかもしれませんが、それは創造的に証明されたことはありません。
【今回】暴力沙汰はすぐに閉ざされたのかもしれないが、しかし、創造的自立は証明されていない(アインシュタイン)
(拙訳:暴力が、問題を手っ取り早く片付けるのに役立つことはある。しかし、暴力それ自身が創造的であったことは一度もない。/アインシュタイン)


キング牧師の文章を、「肌の色では判断されない」が「人格で判断される」という対比で訳すのがなかなか成功しないのですが、今回その点は出来ています。「性格の色」という訳は変なのですが、前回はこのbutの対比が1度も正しく訳せなかったので、すこしは進歩したのかも知れません。
ただ、さっき気づいたのですが、英文のJrのところにピリオドが抜けているので補ってJr.としてみたところ、訳文がまたおかしくなったので、これはたまたま訳せただけで、まだまだ安定してないです(笑)
まぁそれにしても、訳が正しいかどうかはともかく、この程度の規模の学習でも文法的に整った文がちゃんと生成されるという点で、Transformerはやはりすごいと思えますが。


ちなみにDeepLは完璧に訳してくれます。

私の4人の小さな子供たちが、いつの日か肌の色で判断されるのではなく、人格の中身で判断されるような国に住むことを夢見ている。(キング牧師)


なお、学習途中のモデルの性能を観察してみると、ある程度学習が進んだあとは、「この文はうまく訳せるようになったけど、こっちはむしろだめになった」みたいなことの繰り返しなので、もっと早めに打ち切ってもあまり変わらない気はしますね。


今回はどちらかというと、GPUを並列化した学習のテストのつもりだったので、後日、コーパスを400万件ぐらいに増やしてリトライするつもりです。