$30 off During Our Annual Pro Sale. View Details »

オレオレKaggle開発環境

K.T.
October 20, 2023
2.8k

 オレオレKaggle開発環境

関西Kaggler会 交流会 in Osaka 2023#3 オレオレKaggle開発環境発表資料

リポジトリ
https://github.com/ktakita1011/my_kaggle_docker

VSCode Remote Development
https://code.visualstudio.com/docs/remote/remote-overview

VSCode Docker Extention
https://code.visualstudio.com/docs/containers/overview

kaggle-gpu docker
https://console.cloud.google.com/gcr/images/kaggle-gpu-images/GLOBAL/python?pli=1

pytorch installコマンドの参考
https://pytorch.org/get-started/previous-versions/

jupyter notebook 7新機能
https://jupyter-notebook.readthedocs.io/en/stable/notebook_7_features.html

K.T.

October 20, 2023
Tweet

Transcript

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

    View Slide

  2. 自己紹介

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. Thanks !

    View Slide

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

    View Slide

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

    View Slide

  26. 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

    View Slide

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

    View Slide