ニューラル機械翻訳の実践と理論(その1)
本当は、「ニューラル機械翻訳の理論と実装」という題にしたかったのだけど理論がついてこないだろうから、理論は後回し。。
そして、実装まで踏み込めればよいのだけれど、難しいからまずは実践ということでこの題にしてみました。
ということでは、まずは、ニューラル機械翻訳のオープンソースである「OpenNMT」を動かしてみたいと思う。
ニューラルネットワークを構築することになるので、行列計算をたくさん行う必要があり、GPUがあった方が都合がよい。ちょうどコロナで特別定額給付金が入ったから、グラボでも買うかと思ったが、Google様が無料で使えるGPUクラウドを用意してくれている。
UIが「jupyter notebook」ぽいので、食わず嫌いしていたが背に腹は変えられない。。
ということで、以下を参考にして動かしてみる。
しかし、UIでPythonを動かすのが気に食わない。。
コマンドも実行できるがめんどくさい。
学習データやモデルデータのパスを確認するのにいちいちUIからコマンド入れるのダルい。あぁ、黒い画面が欲しい。。
ということで、以下を参考にして、「Google Colaboratory」にssh接続してしまう。
まずは、「https://ngrok.com」でアカウントを作成しておく必要がある。
ngorkは、ローカルネットワーク上にあるサービスを外部公開できるようにするサービスである。最近テレワークとかで、会社のPCを自宅から触れるようにしている方が多いと思うがその類のサービスである。
これをGoogle Colaboratoryの無料GPUインスタンスに仕込んで、sshするのだ。
やり方は、さっきのページ通りでOKで、ngorkの
Your Authtoken
のページでアクセストークンを取得しておく。
そして、Google Colaboratoryにアクセスして、
接続しただけでは、GPUインスタンスになっていない場合があるため、以下の要領で確認と設定をしておく。
あとは、Google Colaboratoryのセルに以下をコピペして実行すればよい。
!pip install git+https://github.com/demotomohiro/remocolab.git import remocolab remocolab.setupSSHD()
ngrokのauthtokenをコピペするようメッセージが表示されるので、先程のアクセストークンとregionを入力する。regionは、jpを選んでおく。
しばらく待っていると(2分ぐらい)、sshサーバがインストールされipとパスワードを教えてくれる。
あとは、接続してやるだけだ。