研究室の先輩と一緒に11/5,11/6の2日間,名大のスパコン「不老」を使った課題持ち込み型ハッカソン(詳細は以下URL)に参加した.
持ち込んだ課題は先輩の研究に関するもので,自分は研究の引き継ぎを兼ねたお手伝いをしてた.
主には先輩が作業しつつ,分からないところを僕がハッカソン用Slackで質問するという感じだった.
リンク先のページを見てもらうと分かるようにメンターにはNVIDIAの方々が居て,色々と質問に答えて頂いた.
やったこと
ハッカソンでは,ハイパーパラメータ最適化のための Python ライブラリ「Optuna」を研究対象のプログラムに適用し,分散並列最適化を行った.
今までは1ノード実行で学習させていたのを3ノードで分散並列実行させるように変更し,精度も向上したのでまずまずの成果.
更にOptuna では枝刈りのロジックも組み込むことができ,見込みの薄い訓練を途中で打ち切ることで,同じepoch数で試行できるパラメータ数が増やせるらしい.
ので,試しに資料を参考にしつつ実装してみたがこちらは少し時間が足りなかったため,上手くいったかどうか分からない(動きはした).
今後やること(やりたいこと)
とりあえずは枝刈りの続きをやってみたいなぁという感じ.
というかそもそも,どこをチューニングするか問題(先輩曰くドロップアウト率などのパラメータだけでなくネットワークの層の数などもチューニングしてみたいらしい)があるのでそこを見極めるのが先な気がしてる.
あと今回は精度しか見ていなかったが,分散並列最適化の際に実行時間がどれほど変化したのかの測定も行いたい.
ハッカソンの感想
初日に寝坊して自己紹介の時間に居なかったり,最後の集合写真の前に別の予定で抜けざるを得なくなってたりして,完全オンライン開催ということもありハッカソンに参加した感がまるでないが,ハッカソン開催中のみスパコン「不老」使い放題の状況で色々試せたのは楽しかった.
具体的にいうと,今まで名前しか聞いたことがなかったSingularity(高性能計算の分野に特化したコンテナ技術,GPUが扱いやすい)を使って, Optuna の環境を作ってみたり分散並列最適化の際にパラメータを保存しておくためのPostgreSQL環境を作ってみたり出来たのは良かった.
ついでに研究のコードも引き継いだので来年以降も色々出来そう.
また機会があれば今度はもっとスムーズにジョブを投げまくってスパコンを使い倒したい.