AI RUSH2019(LINE主催の機械学習コンペ)に参加してきました

LINE/Naver社が主催する機械学習コンペに参加してきたので久々にブログを書きます。

なお、コンペのソリューションについては秘密保持義務に違反する可能性があるのでこちらの記事では特に言及しません。(故に7割方単なる韓国旅行記となります)

コンペ概要

https://ai-rush.com/

コンペの内容は上記のサイトに記載がありますが、こちらでも簡単に概要を書いておきます。

  • 1~3名のチームで参加
  • 予選と決勝の2 roundで構成
  • 予選はImage Classificationタスクで、100チーム中上位30チームが決勝に進出
  • 決勝はCTR予測タスクで、コンペ期間11日間のうち最後の4日間は韓国にあるNaverの研修施設でコンペに参加
  • 優勝賞金は1万ドル

我々のチームはtakuokoさん(Kaggle Master・激強人材)とYusakuさん(Kaggle Master・激強人材)そしてという3人構成でした。

コンペインフラ

今回のコンペではローカルにデータをダウンロードすることは出来ず、Naver社が保有するNSML(Naver Smart Machine Learning)という機械学習プラットフォーム上で全ての計算を実行します。

f:id:naohachi89:20190907153031p:plain
NSML: A Machine Learning Platform That Enables You to Focus on Your Modelsより引用

NSMLはざっくり言うと機械学習に必要なリソース(GPU/CPU等)の管理機能と、実験の管理に必要な諸々の機能(e.g. ソースコードのバージョン管理、モデルの保存、学習結果・過程の可視化等)を提供してくれるプラットフォームです。

私が知る限りだとcomet.mlMLflowあたりのツールが少し近いですが、NSMLの方がより多機能で、且つ学習の再現性を担保する為の仕組みが強力という印象です。

ただ、このNSMLが中々曲者で、コマンド一つポチるだけでよしなにリソースを割り当ててコードを実行してくれる点(=インフラの面倒を見なくて良い)と実験の再現性が高い点は良かったのですが、

  • pythonのnsml packageの学習コストがそれなりに高い
  • notebook/REPL環境が用意されていないためにトライアンドエラーを繰り返しにくい
  • 参加者数に対してリソースが不足気味で計算が思うように回せない

など、割と苦戦を強いられました。

Issue(コンペに関する質問や要望がある場合はgithub上でIssueを立てる)やコンペ終了後の懇親会で聞いた中でも似たような声は多く、NSML is ツライというのは恐らく参加者間の共通認識だったように思います。

今回のAI RUSHは基本的にとても良いコンペだっただけに、もし次回開催されることがあるならこの辺りが改善されているとよりコンペが有意義なものになるかと思いました。(と、コンペ終了後のアンケートにも書きました)

韓国滞在について

前述の通り最後の4日間は韓国に滞在しました。ちなみに往復の航空券や滞在費用は全てLINE/Naver社負担という太っ腹っぷりです。

滞在中はNaver社の研修施設に宿泊したのですが、この施設が本当に素晴らしかったです。

  • 建物が綺麗
  • 施設からの眺めも綺麗
  • 社内のカフェテリアで無料でご飯が食べられる(しかも全て美味しい)
  • 体育館・トレーニング設備・トランポリン・フットサルコート完備
  • (プレイしなかったけど)多種多様なボードゲーム完備

f:id:naohachi89:20190907235448j:plain
隈研吾みが迸る外観

f:id:naohachi89:20190907235723p:plain
カフェテリアで提供されたサムギョプサル(美味しい)

f:id:naohachi89:20190908000015j:plain
会場から見た風景(晴れた日に撮影できなかったが本当はもっと綺麗)

f:id:naohachi89:20190908000142j:plain
会場

f:id:naohachi89:20190908000634j:plain
会場に置いてあったタペストリー的なやつ

現地に行くまではどんな場所なのか不安を抱いていたのですが、いざ赴くと施設も綺麗で思っていた以上に準備に気合が入っていて不安が消し飛びました。 社員の方に聞いたところNaverの新入社員は最初の三ヶ月ほどの研修期間をこの施設で過ごすそうです。めっちゃ羨ましい。

滞在中のスケジュール

1日目

ほぼ移動日で、朝に家を出て大体20時頃にNaverの研修施設(会場兼宿泊施設)に到着。

到着後は夕食を食べて少しだけ作業をして就寝。

ちなみにチームメイトのYusakuさんは普段はアメリカで働いているのでここで初めてのご対面でした。

2日目

作業 & ご飯 & たまにミニゲームといった感じでした。

ミニゲームは運営の方々が主催してくれていて、大体2時間に1度、一日に5~6回程度の頻度で開催されました。

ミニゲームの内容はクイズ・王様ジャンケン・ビンゴ等で、勝つと景品を貰うことができます。

 

f:id:naohachi89:20190907160219j:plain
ゲットした景品たち(かわいい)

LINEのキャラクターは個人的にも大好きなのでグッズをゲット出来たのは普通に嬉しいです。東京は未だに暑いので携帯扇風機は我が家で大活躍してくれています。

3日目

2日目同様に作業 & ご飯 & たまにミニゲームでしたが、コンペはこの日の17:30に終了したのでその後表彰と懇親会がありました。

ちなみに我々のチームは1位でした。

2位は東大の修士の学生チームで、3位は韓国の(確か)大学院生のチームでした。

コンペ期間中はなんだかんだで余裕がないのと、ソリューションについては話せないのでコンペが終わったこのタイミングの懇親会でようやく他の参加者の方々とゆっくり自由に話すことが出来ました。

コンペ直後の懇親会で参加者が顔を合わせて話せるというのは、Kaggle等にはないオンサイトコンペの良さですね。

4日目

4日目は

  • 朝ごはんを食べる
  • レールバイクに乗る
  • 昼ごはんを食べる
  • 帰国する  

という感じでした。 最終日はコンペも終わっているので、LINE社/Naver社の方にアレンジして頂いたレールバイクというアクティビティを堪能しました。 これは複数人で大きめの自転車に乗って鉄道線路上を爽やかに駆け抜けるというアクティビティです。

これだけ聞くと単調で面白みのないもののように思えるかもしれませんが、豊かな自然をハイスピードで駆け抜けるのは中々に気持ちが良く、要所要所でネオン煌きクラブミュージック流れるトンネル等のアクセントも配置されており、非日常的な体験が出来て存外楽しめました。

韓国に行かれる機会がある方はぜひ行ってみてください。オススメです。

f:id:naohachi89:20190907231656j:plain
レールバイク

f:id:naohachi89:20190908024614p:plain
クラブと化したトンネル

おわりに

振り返ってみると今回のコンペはトータルでは非常に満足度が高かったです。 韓国滞在中の体験は控えめに言って最高でしたし、詳細は書けないのですが各roundのタスクもチャレンジングで解き甲斐のあるものでした。

懇親会等で社員の方と話したところコンペの準備はかなり大変だったそうで、運営の方々には感謝してもしきれません。本当にありがとうございました!

一方で、一参加者としては最高に楽しかったので、準備が大変というのは知りつつも次回の開催を心待ちにしています...!

おまけ

今回final roundでtakuokoさんのモデルのweightが100だったので記念にweight 100 Tシャツを作成しました。

現在UT me!で出品審査を出しているところで、審査が降りた暁には「我weight100ぞ?」というkagglerの方々、是非お買い求めください。(万が一売れたら売上金はどこかに良い感じに寄付でもします)

f:id:naohachi89:20190908024838j:plain
weight 100

追記

weight 100 Tシャツの出品審査通りました。 utme.uniqlo.com