Kaggle Tokyo Meetup 2023 参加記
この記事は Kaggle Advent Calendar 2023 の2日目の記事です。
帰ってきた!Kaggle Tokyo Meetup!
コロナ禍で2019年以来開催できなかった Kaggle Tokyo Meetup が約4年半ぶりに開催されました!この間に幾人もの方が Kaggle を始め、あるいは Kaggle を去り、また幾人もの方が tier を上げたことでしょう。 (僕は Master にはなれたものの未だに GM になれず...*1 )
2か月前に行われた関東Kaggler会と同様に本当に久々に行われたオンサイトイベントであり、幸運にも参加することができました。非常に楽しくまた学びのある機会だったので、振り返りも兼ねて参加記(という名の感想)を書こうと思います。
因みに会場は奇しくも4年前に Kaggle Days Tokyo が行われたのと同じ Google 六本木オフィスであり、その時のノベルティのTシャツを着ていたので色んな思い出がぶわっと溢れ出しました。また、会場が本格的過ぎてセッションのガチ感が半端なかったです。
Kaggle Days の会場と同じだから懐かしさが溢れ出してる(ついでに言うと今日はKaggle Days の Tシャツを着ている) #kaggle_tokyo
— 俵 (@tawatawara) November 26, 2023
というか会場のせいでセッションのガチ感が半端ない #kaggle_tokyo pic.twitter.com/tZC2hirRKh
— 俵 (@tawatawara) November 26, 2023
また本イベントはありがたいことにアーカイブでの視聴が可能です!興味のある方は当日の Tweet まとめと併せてライブ感を楽しみつつ是非ご覧ください!
目次
- メインセッション
- オープニングトーク by smly さん
- 資料: TBA
- 概要
- 招待講演1「火山コンペ準優勝ソリューション」by yukke42さん、tattakaさん、mipypfさん (Vesuvius Challenge 準優勝チーム)
- 概要
- 招待講演2「5 x 3」by yiemon773さん, charmqさん, kenshinさん (Identify Contrails 3位チーム)
- 資料: TBA
- 概要
- 招待講演3「CommonLit Solutionの紹介と考え方- Fulltrain戦略と(Seed/Model)Ensembleの可視化 -」by chumajin さん (CommonLit 入賞チーム)
- 資料
- 概要
- 招待講演4「LLM参戦記」 by mitmulさん, yahataさん, kakuさん, yiemon773さん (LLMコンペ入賞チーム)
- 資料: TBA
- 概要
- オープニングトーク by smly さん
- スポンサーセッション
- LT
- LT発表1「GPT APIを使った広告テキスト生成コンペ@YANS2023に参加した話」by NSKさん
- 資料
- 概要
- LT発表2「Kaggle Notebookの計算資源だけ使って画像コンペでソロ金を取る秘訣」by たっかーさん
- 資料
- 概要
- LT発表3「BigQueryで参加するレコメンドコンペ 」by shimacos さん
- 資料
- 概要
- LT発表4「今年参加したコンペで学んだ教訓」by Anonamenameさん
- 資料
- 概要
- LT発表1「GPT APIを使った広告テキスト生成コンペ@YANS2023に参加した話」by NSKさん
- 懇親会
- 終わりに
*1:2019年の Kaggle Tokyo Meetup #6 参加時は Expert でした
poetry で直接指定する wheel file を url ではなく local path にすることで依存関係解決の度に download されるのを防げた件
背景
前回の記事では、poetry でライブラリの wheel file を直接 URL で指定することで依存関係の解決が長すぎる 問題*1を解消し、同一の poetry 環境に PyTorch と RAPIDs を共存させました。
これ自体は大成功だったのですが、wheel file の URL を指定すると依存関係の解決が走るたびに file が donwload されてしまいます。おそらく多くの poetry + PyTorch ユーザが同じ経験をしているのではないでしょうか。
「ローカルにあるファイルさえ指定できれば...!」と思っていた方も多かったと思います、というか僕が思っていました。
解決策
なんと、普通に公式に解決策が載っていました。シラナカッタ...
[tool.poetry.dependencies] # directory my-package = { path = "../my-package/", develop = false } # file my-package = { path = "../my-package/dist/my-package-0.1.0.tar.gz" }]
pyproject.toml
において、path
引数によって local においた file (またはディレクトリ) を指定できます。
僕の場合は home directory 下にある chache ディレクトリ (/home/tawara/.cache
) にとりあえず poetry_wheels
というディレクトリを作り、そこに PyTorch と RAPIDs のファイルを wget で全てぶち込んで*2 path を指定しました。以下のような感じです。
torch = { path = "/home/tawara/.cache/poetry_wheels/torch-1.13.0+cu117-cp39-cp39-linux_x86_64.whl"} torchaudio = { path = "/home/tawara/.cache/poetry_wheels/torchaudio-0.13.0+cu117-cp39-cp39-linux_x86_64.whl"} torchvision = { path = "/home/tawara/.cache/poetry_wheels/torchvision-0.14.0+cu117-cp39-cp39-linux_x86_64.whl"} rmm-cu11 = { path = "/home/tawara/.cache/poetry_wheels/rmm_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} ptxcompiler-cu11 = { path = "/home/tawara/.cache/poetry_wheels/ptxcompiler_cu11-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} cubinlinker-cu11 = { path = "/home/tawara/.cache/poetry_wheels/cubinlinker_cu11-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} cudf-cu11 = { path = "/home/tawara/.cache/poetry_wheels/cudf_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} dask-cudf-cu11 = { path = "/home/tawara/.cache/poetry_wheels/dask_cudf_cu11-22.10.0-py3-none-any.whl"} pylibraft-cu11 = { path = "/home/tawara/.cache/poetry_wheels/pylibraft_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} ucx-py-cu11 = { path = "/home/tawara/.cache/poetry_wheels/ucx_py_cu11-0.28.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} raft-dask-cu11 = { path = "/home/tawara/.cache/poetry_wheels/raft_dask_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} cuml-cu11 = { path = "/home/tawara/.cache/poetry_wheels/cuml_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} pylibcugraph-cu11 = { path = "/home/tawara/.cache/poetry_wheels/pylibcugraph_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} cugraph-cu11 = { path = "/home/tawara/.cache/poetry_wheels/cugraph_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"}
結果として、例えば新しいライブラリを add とかした際にいちいち download されることがなくなりました。やったね!
因みに、local の path を指定すると、insall したライブラリを poetry show で確認した際にその path が表示されるようになりました*3。おそらくは同じライブラリ名でも違う local wheel file を使い場合を想定してるのかなって思いました。
おわりに
poetry に PyTorch を wheel の URL 直接指定で入れるようになってからずっと「いちいち download 待つの面倒だなぁ」と思っていたのですが、普通に解決方法があってリサーチ不足を思い知らされました。やっぱドキュメントはちゃんと読まなきゃですね。
調べるきっかけを下さった @colum2131 さん、@ryomak333 さん、ありがとうございました!
wheelから依存関係読み取れるぽいので、見てくれてるんでしょうかね...?ベストプラクティス知りたいですね笑
— Ryoma.K (@ryomak333) December 1, 2022
CUDA 更新のついでに PyTorch と RAPIDS を poetry の同一環境にゴリ押しで共存させた件
はじめに
皆さんお久しぶりです。本当にいつぶりかわからないくらいですが、久々に CUDA の version を更新をするにあたって書きたいネタが出来たのでまとめることにしました。
更新のたびにやっている作業や関連リンクをまとめるというのが当初の目的でしたが、少し前に RAPIDS が pip への提供を試験的に再開したのを思い出し、
じゃあ PyTorch と同じ環境に簡単に入れられるんじゃね?と手を出してしまったのが事の始まりでした(結構苦労した...😇)。
同じことをやりたがっている方を Twitter で見かけたのもあり、自分の 備忘録としても知見の共有としてもやり方を書き残そうと思います。
TL;DR
- CUDA の version を上げるにあたり RAPIDS が PyPI への提供を試験的に始めていたことを思い出し、PyTorch との共存に挑戦
依存関係に気を付ける必要はあるが PyTorch と RAPIDS を同じ poetry 環境に install することにゴリ押しで成功
方法としては、RAPIDS 関連のライブラリの wheel を直に指定する以下の11行*1 を
pyproject.toml
に追加する(要 CUDA >= 11.5)
rmm-cu11 = { url = "https://developer.download.nvidia.com/compute/redist/rmm-cu11/rmm_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} ptxcompiler-cu11 = { url = "https://developer.download.nvidia.com/compute/redist/ptxcompiler-cu11/ptxcompiler_cu11-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} cubinlinker-cu11 = { url = "https://developer.download.nvidia.com/compute/redist/cubinlinker-cu11/cubinlinker_cu11-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} cudf-cu11 = { url = "https://developer.download.nvidia.com/compute/redist/cudf-cu11/cudf_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} dask-cudf-cu11 = { url = "https://developer.download.nvidia.com/compute/redist/dask-cudf-cu11/dask_cudf_cu11-22.10.0-py3-none-any.whl"} pylibraft-cu11 = { url = "https://developer.download.nvidia.com/compute/redist/pylibraft-cu11/pylibraft_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} ucx-py-cu11 = { url = "https://developer.download.nvidia.com/compute/redist/ucx-py-cu11/ucx_py_cu11-0.28.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} raft-dask-cu11 = { url = "https://developer.download.nvidia.com/compute/redist/raft-dask-cu11/raft_dask_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} cuml-cu11 = { url = "https://developer.download.nvidia.com/compute/redist/cuml-cu11/cuml_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} pylibcugraph-cu11 = { url = "https://developer.download.nvidia.com/compute/redist/pylibcugraph-cu11/pylibcugraph_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"} cugraph-cu11 = {url = "https://developer.download.nvidia.com/compute/redist/cugraph-cu11/cugraph_cu11-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"}
目次
- はじめに
- TL;DR
- machine の 環境
- 準備
- CUDA の入れ替え
- PyTorch の poetry での install
- RAPIDS の poetry での install
- 正当な手順 (断念)
- ゴリ押し手順(成功)
- おわりに
*1:私の環境での話なので、別の環境では異なる wheel file を指定する必要があるかもしれません。
Correct is not Gentle
という標語を勝手に考えたよってポエムです。
先に言っておくと以下では当たり前のことしか言っておらず、また個人の主観で語っています。それをご承知の上で暇つぶし程度に楽しんで頂けたら幸いです🙏
続きを読む