PyTorch 2.0の新しいコンパイラで機械学習を速くする

12/02にPyTorch 2.0のアナウンスがありました。まだnightly版(α版)で正式リリースされるのは2023年3月頃のようですが、機能自体は試すことができるので早速使ってみました。 12/05現在、絶賛検証中なので結論のようなものは書けませんが、全体の傾向としては概ね公称通りに高速化の効果が認められました。 精度が低下することはない 小さなモデルに対して、学習は速くならず、コンパイルオーバヘッドのためepochsが少ない場合は全体として遅くなる、GPU使用率はAMPだと僅かに低くなる…

PyTorch LightningのLearning Rate Finderの使い方

ここ3ヶ月くらいPyTorch Lightning (以下 Lightning)を使ってていろいろ機能を調べてます。それでfast.aiでお馴染みのLearning Rate Finder(LR Finder: 最適な初期学習率を探索する仕組み)がLightningにもけっこう昔から実装されているのですが、日本語での紹介がほぼ無いみたいなので情報をまとめておきます。せっかくなのでこのエントリーでは細かいtipsや内部実装なども掘り下げて紹介したいと思います。 環境 * Pytorch 1.12.…

JAXライクなfunctorchで機械学習を速くする – part 2

今回も引き続きfunctorchを使っていろいろ試してみます。前回のエントリーはfunctorchの基本機能を紹介しました。今回はfunctorchによる機械学習のユースケースについて考えてみたいと思います。gradやvmapなどの基本機能の説明は前回のエントリーを参照してください。 JAXライクなfunctorchで機械学習を速くする – part 1 いろいろ試してみて気付いたのですが、結論から言うと、functorchは適切に使えば性能を発揮できます。ただし、従来のオブジェクト指向や手続き…

JAXライクなfunctorchで機械学習を速くする – part 1

PyTorch 1.11からβ版として追加された functorch と呼ばれる機能を試してみました。PyTorch 1.9くらいのときから試験版として本体に組み込まれて提供されていましたが、どうやらfunctorchという別モジュールに切り出して提供されるようになったようです。 pytorch/functorch: functorch is JAX-like composable function transforms for PyTorch. functorchとは PyTorch公式サイト…

Kaggle振り返り – Help Protect the Great Barrier Reef

数年ぶりにKaggle復帰してみようということで。 若い頃はKaggleに時間を奪われすぎていたのと、家庭を持ってからは個人活動の優先度が著しく下がったこともあり、実は2,3年前に一度退会して足を洗っていました。ただ、最近はKaggle Notebook環境がまぁまぁ使えて環境格差が昔よりはマシになったとか画像コンペが多くて楽しいとかそういう話をいろいろ聞いて、また一から始めてみようかなぁと。煙草とか酒とか麻薬と同じなんでしょうか。子育ての時間を削るのは良いことだとは全然思いませんが、本当にすみ…

Web Machine Learningについて

W3Cが推進しているWeb Machine Learning (WebML)という取り組みについて少し調べてみました。今回は解説記事というわけではなく個人用のメモに近いので正確性についてはあまり自信がありませんが。。 Web Machine Learning (WebML)とは Web Machine Learning | Making Machine Learning a first-class web citizen W3C Web Machine Learning Working Grou…

ONNX Runtime for Webで画像認識

前回はONNX Runtime for Web (ORT Web)をVue.jsアプリケーションで使ってみました。 ONNX Runtime for WebをVue.js+WebGL環境で試す 公式チュートリアルは単純な行列計算でしたので、今回はもう少し実践的に自前のモデルを使った画像認識を試してみたいと思います。 環境 前回の環境とほぼ同じですが、実装言語はTypeScriptに変更しました。数値計算系の部分は型があるとデバッグしやすいので。 Vue.js: 3.2.11 ONNX Runti…