俵言

しがない社会人が書く、勉強とかのこと。最近は機械学習や kaggle 関連がメイン。

CUDA 更新のついでに PyTorch と RAPIDS を poetry の同一環境にゴリ押しで共存させた件

はじめに

皆さんお久しぶりです。本当にいつぶりかわからないくらいですが、久々に CUDA の version を更新をするにあたって書きたいネタが出来たのでまとめることにしました。

更新のたびにやっている作業や関連リンクをまとめるというのが当初の目的でしたが、少し前に RAPIDS が pip への提供を試験的に再開したのを思い出し、

medium.com

じゃあ PyTorch と同じ環境に簡単に入れられるんじゃね?と手を出してしまったのが事の始まりでした(結構苦労した...😇)。

同じことをやりたがっている方を Twitter で見かけたのもあり、自分の 備忘録としても知見の共有としてもやり方を書き残そうと思います。

TL;DR

  • CUDA の version を上げるにあたり RAPIDS が PyPI への提供を試験的に始めていたことを思い出し、PyTorch との共存に挑戦
  • 依存関係に気を付ける必要はあるが PyTorch と RAPIDS を同じ poetry 環境に install することにゴリ押しで成功

  • 方法としては、RAPIDS 関連のライブラリの wheel を直に指定する以下の11行*1pyproject.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 を指定する必要があるかもしれません。

続きを読む

感想文:深層学習の原理に迫る ―数学の挑戦―

読んだのはちょっと前なのですがメモ程度に残します。

最初に言っておくと、この本を読んだからといって別に NN の学習をめっちゃうまく出来るようになるわけではないですし、実務ですぐに役立つとも限りません。しかしながら、読んでワクワクする本だと思います。

概要

第三次人工知能(AI)ブームの中核的役割を果たす深層学習(ディープ・ラーニング)は、その高い信頼性と汎用性ゆえに様々な領域に応用されていく一方で、「なぜうまくいくのか」すなわち「なぜ優れた性能を発揮するのか」ということは分かっていない。深層学習の原理を数学的に解明するという難題に、気鋭の研究者が挑む。

おおよその内容としては、1. 昨今の深層学習の隆盛(1章)、2. 深層学習の初歩的知識(2章)、3. 数学的な解明が不十分なトピックをいくつか紹介(3,4,5章) と来て、最後に 4. 原理を解明することの意義(6章) で締めくくります。

内容は非常に平易で*1、日進月歩な深層学習のかなり新しめ*2な数学的トピックについてわかりやすく説明してくれています。実験的に確認されている、既存の数学理論では説明できない現象が何なのか、それらに対してどのような新しい理論で説明を試みているのか、といった点が非常に見どころだと思います。

感想

最近はひたすら道具として機械学習・深層学習を使う日々だったので*3、久しぶりに数学的な理論の話に触れられて新鮮な気持ちになりました。理論系の論文は読もうとするとどうしても数式との戦いになって挫折してしまうため、このような誰にでも直観的にわかる形でまとめて頂けるのは非常にありがたかったです。
「まあ学習させれば何か知らんけどうまくいくしな」で自宅のマシンで学習させる日々を過ごしていますが、改めて既存の数学理論との矛盾を説明されると本当に不思議で面白いですよね。これまで信じられてきた既存の理論と矛盾する結果が出てきて、それに追いつくために理論が再構築されていくってとてもロマンがあります。

最後の章で触れられている通り、別に原理がわからなくても現状 NN は学習できちゃうんですが、理論面の発展は工学的な動作の保証であったり、新しい展開を与えたりするものです。僕自身はあくまで使うだけの人間にすぎませんが多くの場合知らないところでお世話になっているので、理論研究は発展して行って欲しいし応援したいと思っています。

おわりに

この本は一般向けに書かれた本ですが、著者曰く

らしいので、発売されたらそちらも読みたいですね。おそらくこの本に比べて数学的な難易度が跳ね上がるとは思いますが、バラバラと論文を追うよりは遥かに整理された形で学ぶことが出来ると思うので期待大です!

*1:少なくとも機械学習をかじったことがあるひとならまず詰まらないです。行列計算が一切できないとかだとつらいかもしれませんが。

*2:著者も本文中で述べているのですが、もしかしたら更なる進歩が既に起きているかもしれません。

*3:Kaggle とか Kaggle とか Kaggle とか

Kaggle * Master になりました

はじめに

この度、全てのカテゴリ(Competitions, Notebooks, Datasets, Discussion)で Master に昇格し、遂に Kaggle 4x Master になりました!

f:id:Tawara:20210607200053p:plain
どのカテゴリでも Master なので * 表記でいいかもしれない

Competitions Master になって以来 Community への貢献もして行こうと頑張ってきたので、それが目に見える形になって嬉しいです。

因みに、Ranking*1 で確認した限りでは全カテゴリで Master 以上の tier を持っている Kaggler は世界に6人しかいません*2。希少性と僕の ML の実力が釣り合っているかはさておき、これだけレアだと何か嬉しいですね。


一区切りと言うことでこの記事では各カテゴリについて軽く振り返ろうかと思います。


目次

  • はじめに
  • カテゴリごとの振り返り
    • Competitions Master (2020-03)
    • Datasets Master (2020-12)
    • Notebooks Master (2021-02)
    • Discussion Master (2021-06)
  • 終わりに

*1:https://www.kaggle.com/rankings?group=datasets

*2:2021-06-07 現在。主に Datasets のせいで異常に少ない。

続きを読む