Slide 1

Slide 1 text

Kaggle の Julia Kernel が動く Docker を1.0 に対応させる Workshop in VR #1 2018/09/15 れごん

Slide 2

Slide 2 text

自己紹介 ● バーチャル俳人データサイエンティスト ○ Twitter: @regonn_haizine ○ フリーランス ○ 2018/03より松江に移住(Iターン) ○ データサイエンス ■ Podcast: regonn&curry.fm ■ YouTube: 田中TOM ○ ストロングゼロ ■ Podcast: 今夜も Strong x Strong ○ クイズ&ゲーム ■ YouTube: やってみよう! ○ 俳句 ■ YouTube: 恋言(VTuber, VRアカデミア)

Slide 3

Slide 3 text

今回話すネタ データサイエンス絡みのKaggleとJuliaの話

Slide 4

Slide 4 text

Kaggle? ● 世界中のデータサイエンティストが参加するコミュニティ ○ 例) 一番猫の画像を探し出す AIを作って精度が一番高い人が優勝 ● 常にコンペティションが開催されており、日本人で参加している人も多い ○ kaggler-jaという日本人のSlackコミュニティもある ● ランキング上位者にはメダルがもらえてメダルが貯まると称号が手に入る ● 自分の解法を公開(Kernel)することができて、良い解法だとメダルもらえる

Slide 5

Slide 5 text

Julia? ● データサイエンスにおいては、PythonとRという言語が2強 ● Pythonのように書きやすく、動作も早い言語が求められてJuliaができた ● Pythonを早くするにはライブラリをCやC++実装で書く必要がある ● Juliaであれば、ライブラリもJuliaで書いても遅くなりにくい(JIT) ● 今後のデータサイエンス分野においても活躍が期待されている

Slide 6

Slide 6 text

Kaggle と Julia の関係 実はKaggleも以前はJulia(Kernel)に対応していたが、Juliaはで きて日が浅く言語仕様の破壊的変更が多かったためメンテされな くなっている。

Slide 7

Slide 7 text

普段Julia使っている自分としては他の人のJuliaでの解 法(Kernel)がみたい ● 最近Juliaが安定版の1.0.0をリリース ○ これは、チャンス!!!

Slide 8

Slide 8 text

Julia 0.6 => 1.0.0 へ プルリク出してる Update to 1.0.0 by regonn · Pull Request #6 · Kaggle/docker-julia https://github.com/Kaggle/docker-julia/pull/6/files 無反応

Slide 9

Slide 9 text

主な変更点 (Docker) docker pull ubuntu:16.04 docker pull julia:1.0.0 ● 今までubuntuイメージから作って、 juliaをビルドしていたが直接juliaの公 式dockerイメージを使うように ● 他のPythonとRでも別のイメージ使っ ているので問題なさそう

Slide 10

Slide 10 text

主な変更点 (パッケージ管理) metadata_packages = [ "BinDeps", "Bootstrap", …] for package=metadata_packages Pkg.add(package) end Pkg.add(metadata_packages) ● いままで Package 一覧の配列を for 文で回す必要があった ● 配列のまま渡しても大丈夫になってる ● 0.6 だと REQUIRE ファイルでパッ ケージ管理ができたが、1.0だとUUID も管理するようになったので、このよう にしたほうが良さそう

Slide 11

Slide 11 text

主な変更点 (パッケージキャッシュ) RUN julia -e "Base.compilecache(\"BinDeps\")" RUN julia -e "Base.compilecache(Base.identify_package(\"BinDeps\"))" ● パッケージのキャッシュを 事前に行う際にはUUIDで 指定する必要がでてきた ● identify_packageが公式ド キュメントにも載ってなく て、ここが一番詰んだポイ ント

Slide 12

Slide 12 text

残TODO ● 最近になって 1.0.0 がリリースされたので、まだすべてのパッケージが対応してい ない ● Gadfly.jl(グラフ描画)等の人気パッケージも1.0.0未対応だったりするので、これが 解決しないとプルリクは取り込まれなさそう ● けど、今までメンテされていなかったパッケージも1.0.0リリースでメンテされるように なってきている

Slide 13

Slide 13 text

Kaggle と Julia に明るい未来を! ありがとうございました