Slide 1

Slide 1 text

オレオレKaggle開発環境 関西Kaggler会 交流会 in Osaka 2023#3 2023. 10. 20

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

みなさん いつも流用して使っているような Kaggle環境ってありますか?

Slide 4

Slide 4 text

Kaggleするときの開発環境作成時に困ること

Slide 5

Slide 5 text

公開notebookを手元で動かそうとしたら あれもこれもライブラリが入ってない コードコンペティションで推論コード作ってたら ライブラリバージョンが合ってなくて困った そんな悩みを解消するような環境を作りたい!

Slide 6

Slide 6 text

コードコンペティションとは 問題:Kaggle環境だとGPU/TPUの利用時間制限があるため、 たくさんの実験が回せない。推論するための時間を確保できない 学習 推論 参加者がKaggleのCode環境上でソースコードを実行し 推論結果を提出するコンペ形式 学習したモデルをKaggleに保存/アップロードし、推論させる

Slide 7

Slide 7 text

学習をKaggle以外、推論をKaggleへ 学習 ローカルPC 推論 学習したモデルをKaggleにアップロードし、Kaggle上で推論させる 問題:学習環境と推論環境が異なると推論が動かなかったりする 自作環境だとライブラリが足りなく、手動で入れる必要がある Amazon EC2

Slide 8

Slide 8 text

理想に近づけた環境 学習 推論 と似た環境 これを作ります!

Slide 9

Slide 9 text

オレオレKaggle開発目標 学習 推論 Kaggleと似た環境で 快適な開発環境を整える

Slide 10

Slide 10 text

オレオレKaggle環境 オレオレKaggle開発全体像 アクセス Jupyter Notebook・ VSCode(Remote Development) 両方使える環境を目指す

Slide 11

Slide 11 text

Host OS 自分のオレオレKaggle開発の使い方 オレオレKaggle環境 port:8888 ssh port:22 アクセス 手元のノートPCから ローカルPCへアクセスして使っ てます

Slide 12

Slide 12 text

環境作るための前準備 - 以下のインストールがされており、 - 正しく設定されていることを確認してください。 - docker (version 24.0.6) - NVIDIA Driver - NVIDIA Container Toolkit - VSCode - VScode Extention - Remote Development - Docker Extension ※WSL2でも動作しますが、今回は割愛し Linuxでの方法をお伝えします。基本的に は同じで大丈夫です

Slide 13

Slide 13 text

オレオレKaggle開発環境GitHub https://github.com/ktakita1011/my_kaggle_docker

Slide 14

Slide 14 text

使い方概要 - Docker ImageのDockerをダウンロード&ビルド - Docker Image はkaggle-gpu-images/python v137(2023/10/20時点最新)を使 います - Jupyter Notebookへのアクセス - VSCodeのRemoteDevelopment(DevContainer)を使ったアクセス kaggle-gpu-images/python

Slide 15

Slide 15 text

ダウンロードとビルド $ git clone https://github.com/ktakita1011/my_kaggle_docker $ cd my_kaggle_docker $ docker compose up -d

Slide 16

Slide 16 text

ダウンロードとビルド 無事起動するとdocker拡張にて起動しているのがわかります

Slide 17

Slide 17 text

Jupyter notebookへアクセスする 方法1:http://127.0.0.1:8888へアクセスする 方法2:VSCodeのDocker拡張からアクセスする 2 1

Slide 18

Slide 18 text

VSCodeで使う VSCodeのDevContainer機能を使ってコンテナへアクセスする 2 1 3

Slide 19

Slide 19 text

VSCodeで使う コンテナに入ったあと、 kaggleディレクトリで開く 2 1 3 4

Slide 20

Slide 20 text

VSCodeで使う すると以下の画面になります。 いつものVScodeの環境でKaggle環境が使えるようになりました! MNISTテストコードがあるので、動 作確認チェックもできます。

Slide 21

Slide 21 text

まとめ - Kaggleとローカル環境の差異をなるべく減らした開発環境を作成した - 開発方法は、VSCodeのDevContainer機能を利用した開発と Jupyter Notebookで同時に開発できる環境ができた

Slide 22

Slide 22 text

最後に my_kaggle_dockerに☆Starよろしくお願いします!

Slide 23

Slide 23 text

Thanks !

Slide 24

Slide 24 text

Appendix このKaggle Dockerを作った経緯としては、 Kaggle始めたいのに環境構築で躓く時 間をなるべく減らしたいといったお気持ちで作りました。 個人的なおすすめは、最初はこのまま使ってみていただいて、 どんどん自分でこうしたらいいな~と思うところを変更していくのが良いと思ってま す。

Slide 25

Slide 25 text

Appendix 利用するGPUによってはinstallするpytorchが違いますので、そちらは確認してくだ さい。現状は3090,A4000,A6000にて動作確認済みです。 コマンドはpytorchの公式HPから確認できます。

Slide 26

Slide 26 text

Appendix 本環境はjupyter notebookのversion6から7にしております。 7で動くように色々設定してあります。 version 7系にすることで、以下のメリットがあります。 jupyter labでしか使えなかったextentionがnotebookでも使えるようになります。 デフォルトでdark themeに対応してます。 その他新機能は以下を参照 https://jupyter-notebook.readthedocs.io/en/stable/notebook_7_features.html

Slide 27

Slide 27 text

Appendix その他 - 追加でライブラリを入れたい場合は requirements.txtを編集してください。 - jupyterのpasswordを変更したい場合は run.shの中身を変更してください。 - multi gpuで利用する場合はcompose.yamlのgpuのcountを変更してください。