久しぶりにpatch作りしようかと思いきやその必要が無かった時のがっくり感

Share on:

Neural editorなる生成ツールが面白そうだという話を阿波連さんから聞き、良くわからないけど動かないので動作確認できてないという状態らしい。

論文概要眺める限りでも面白そうなので動かしてみようかと。(タスクに目を背けつつ)丁度年内の授業が終わる時期で時間取りやすいし。ということであれこれ試してみることにしました。

Issues眺めて見る限りでも、動かなくて困ってる人が、他にもいるらしい。状況的には、リポジトリクローン作って、データセットを別途用意して、Dockerで環境用意したらPythonスクリプト動かすだけなはずですが、暫く動いたら勝手にプロセスが死んでしまう。おぉ Neural Editorよ、死んでしまうとは情けない。

素直にデバッグしてみようと、インタプリタさんとpdbにご登場願うことに。スクリプト実行時に設定ファイルを引数で渡す必要があるのだけど、そこはインタプリタ起動後にsys.argvを上書きしてしまえばOK。

どのあたりで死んでるのか良くわからない状態(単にKilledと出力されるだけで、どのファイルのどの行で死んだのか不明)だったので、最初はファイル内のコードコピペで動作確認しながら大雑把な場所を把握してみると、3506331行からなるテキストファイルの処理途中で死んでるらしい。でも、コードを追いかける限りでは単に TSV をタブ分割して、スペース区切りで単語分割したのをリストにappendしてるだけなんだよな。具体的にどの行で死ぬのか確かめようとするも、実行する度に死ぬ場所が変わる。乱数使ってるわけでもないのにー。

ここまできてPython自体のメモリ設定か、Dockerのメモリ設定が怪しそうだと目星をつけ、両方共設定変更してみると、Dockerの設定が原因だったことが分かりました。デフォルトで2GB割り当てで、これを越えようとするとDockerがプロセスを強制終了してる感じなのかな。ま、気持ちは分かる。

Docker自体は便利だというのはわかってるんだけど、そっち側で例外処理的なことやってるならせめてそういうログを出して欲しいかな。ということでパッチ作成は不要らしい。ちょっと残念。