機械学習向けの差分プライバシー実装の調査

差分プライバシー(Differential Privacy, DP)の概念が提案されてから時間も経ち、実装も複数展開されているのですが、国内だと研究やPoCフェーズでの成果報告がほとんどでプロダクションサービスで利用されている実例はまだまだ少ない現状にあるようです。現時点での状況も含めて技術調査をします。 差分プライバシー(Differential Privacy, DP)とは 概念と理論については日本語情報も豊富なのでそちらの専門サイトの説明を見るのが良いと思います。詳細はLayerXさんやA…

ESP32に入門しました

2015,16年頃のIoTブームがあった時にRaspberry Pi 3を買っていろいろ遊んでいたんですけど、簡単なセンサープログラミングを少しやっていつのまにか止めていました。 当時はwikiの方に作業メモを残していますが、おもちゃとしてラズパイで遊んでいた程度です。 IoT – Tech Note Raspberry Piという筐体は高スペックであるため、普通のWeb開発で使っている環境に近づけることは容易で、C言語以外でもアプリケーションは作れるし、各種センサーもSDK経由で使…

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公式サイト…

無料PaaSのDeta Cloudを試してみた

今回はDeta CloudというPaaSについて少し調べてみました。これはGoogle検索が日本語設定だとほとんど情報が引っかからないので日本人だと知らない人も多いかもしれませんが、以下の謳い文句でなかなかすごい感じがします。 Build & deploy your ideas on the universe’s most developer friendly cloud platform. Say goodbye to servers and bills. Deta is…

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…