Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RustとCADDi AI LabとML
Search
vaaaaanquish
June 10, 2022
Technology
1
870
RustとCADDi AI LabとML
Rust、何もわからない... #2
https://estie.connpass.com/event/246429/
登壇資料です
vaaaaanquish
June 10, 2022
Tweet
Share
More Decks by vaaaaanquish
See All by vaaaaanquish
Pythonのパッケージ管理の中級者の壁を超える stapy#98
vaaaaanquish
18
20k
Tech LT #4 人を選ぶ技術
vaaaaanquish
3
3.9k
CADDi AI LabにおけるマネージドなMLOps
vaaaaanquish
2
3.3k
機械学習OSSの変遷と未来
vaaaaanquish
2
3.5k
文字列(ダジャレを言いシャレ)
vaaaaanquish
1
15k
xonshとかいうshellの話
vaaaaanquish
1
1.7k
gokartの運用と課題について
vaaaaanquish
5
13k
【ML@Loft #6】ゼロベースからの論文レコメンドシステムの構築
vaaaaanquish
5
7.6k
【PyCon2019】 Python製シェルXonshの紹介
vaaaaanquish
6
8.4k
Other Decks in Technology
See All in Technology
再考 アクターモデル/ reconsider actor model
ytake
0
230
DroidKaigi 2024 たすけて!ViewModel
mhidaka
5
860
なにもしてないのにNew Relicのデータ転送量が増えていたときに確認したこと
tk3fftk
2
210
フロントエンド・オブザーバビリティを支える要素技術を学ぼう
sadnessojisan
2
160
Creative UIs with Compose: DroidKaigi 2024
chrishorner
1
450
スタッフエンジニアの道: The Staff Engineer’s Path
snoozer05
PRO
44
14k
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
4
450
どこよりも遅めなWinActor Ver.7.5.0 新機能紹介
tamai_63
0
190
たった1人からはじめる【Agile Community of Practice】~ソース原理とFearless Changeを添えて~
ktc_corporate_it
1
410
AI活用したくてもできなかった不動産SaaSの今とこれから
nealle
0
330
DevRelの始め方
moongift
PRO
1
380
Javaにおける関数型プログラミンへの取り組み
skrb
7
320
Featured
See All Featured
Clear Off the Table
cherdarchuk
91
320k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.3k
For a Future-Friendly Web
brad_frost
174
9.3k
Thoughts on Productivity
jonyablonski
66
4.2k
Docker and Python
trallard
39
3k
Scaling GitHub
holman
458
140k
Building Flexible Design Systems
yeseniaperezcruz
325
37k
Build The Right Thing And Hit Your Dates
maggiecrowley
30
2.3k
We Have a Design System, Now What?
morganepeng
48
7.1k
Navigating Team Friction
lara
183
13k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
KATA
mclloyd
27
13k
Transcript
RustとCADDi AI LabとML Rust、何もわからない... #2 2022/05/19 CADDi AI Lab Tech
Lead Shunsuke Kawai
I AM • CADDi, inc. AI Lab Tech Lead M3,
inc. Engineering Fellow Developers Guild Bolder’s Owner • OSS • XGBoost、LightGBM、Rust wrapper • gokart • xonsh Shunsuke Kawai (@vaaaaanquish)
AGENDA 1. CADDi AI LabでのRust 2. RustとCV/ML 3. まとめ
CADDi AI Lab × Rust
CADDi, inc. • Webアプリケーション開発 async-graphql, axum, diesel, tonic ...etc •
アルゴリズム開発 tract-onnx, rayon, tokio, wasm-bindgen ...etc • speakerdeckをチェック! https://caddi.connpass.com/event/239652/ https://caddi.connpass.com/event/243143/
WHY CADDi AI Lab × Rust • 図面における画像処理 • 2Dでも非常に大きい
A1,2サイズも、8000*6000pxとか • 非常にスパース • 速度、並列化、計算量意識がMust • 情報が潰れないよう捜査、ベクタライズ • 3Dデータについては言わずもがな
MEMBERS PdM/EM ex-PFN, NTT, Venture CTO DataEng ex-Yahoo! DataAnalyst AlgorithmEng
2D/3D Image Processing AtCoder Ranker MLEng ex-DeNA, M3, Mackinsey Kaggle Master Grand Master
from: Tech Talk slide for external audiences https://speakerdeck.com/caddi_eng/deiputoarugogatatuguwozu-mu-kiyadeitu-mian-jie-xi-falsetekufalserozinipo-ru-caddi Deep Learning
CASE: Image Processing to DNN • 図面を捜査し”矢印”候補を検出する • precisionが高くなるよう調整 • DeepLearningモデルでの0/1判定へ • Rustでの実現 • Pythonで学習したモデルをONNX形式へ • tract-ONNXでの推論 • rayonで全体を並列化
CASE • 他にもCASE色々 • nalgebra等を用いた画像処理アルゴリズム • Next.js, wasm-bindgenを利用したアノテーションツール、Viwer • CLIツール
• tokio APIサーバ 「はじめてのディープラーニング」をモブプロでRustで再実装してみたり 言語としてMLE/DEも学ぶ環境を用意している
RustとML
AWESOME RUST MACHINE LEARNING • Rustにおける機械学習モデルや画像処理、 自然言語処理に関する実装、論文、ブログ をまとめたrepogitory • 470starくらい
• 応用事例は大体書いてあると思う https://github.com/vaaaaanquish/Awesome-Rust-MachineLearning
VOGUE • CV、NLP、検索エンジンが盛り上がっている • CV/MLは大きくDeep Learningの流行が続く • tch-rs, tensorflow/rust •
推論系のフレームワーク開発が継続/活発 • tract, orkhon, wonnx, onnxruntime-rs • こと”学習”においてはDeep Learning周辺の多くがPythonないし Pythonをターゲットにしたツール(DNNフレームワーク, GPU回り, ...) • C/C++、OpenCL、OpenGLがあり学習面では恩恵を受けづらい • 推論の高速化、省メモリ化、wasmによるプラットフォームの拡大
HOW • 独自のモデルファイル形式を通す • tch-rs • tensorflow/rust • ONNXを介す •
ONNX: Microsoft、Facebookが提案した DeepLearningモデル用の ファイルフォーマット及び周辺ツール • CADDiでも利用 (tract-ONNX) https://vaaaaaanquish.hatenablog.com/entry/2021/09/07/141531 https://github.com/dskkato/rust-machine-learning-api-example
ONNX in Rust • tract ◦ CPUに特化したONNXでの推論フレームワーク群 ◦ 独自のNNEF拡張な中間表現であるtract-oplを定義 ▪
trainingに関連する機能の削除 (decluttering) ▪ scan operatorによるユニットの繰り返し処理の削減 • orkhon ◦ ONNX or PythonランタイムをPyO3経由で叩く形式をサポートした推論フレームワーク ◦ tract, rayonにより高速な推論を実現 • onnxruntime-rs ◦ microsoft/onnxruntimeのrust wrapper ◦ Multi platform、WebGLによるGPU上での推論 • wonnx ◦ GPUをターゲットにしたPure RustなONNX推論ランタイム ◦ Vulkan/Metal/DX12を利用して各PlatformのGPU上で推論 https://github.com/sonos/tract https://www.reddit.com/r/rust/comments/s0vi54/ wonnx_deep_learning_on_webgpu_using_the_onnx/
tract / wonnx tract wonnx
まとめ
SUMMARY • CADDi AI Labが今面白い • Rust x MLの活用事例の多くが推論に寄っている •
ONNX関連のツールを紹介 .o0(rust wasmでwebGL CAD作る実験を個人的にしてるので、そこに載ると面白いだろうなあ…誰か手伝ってくれないかなあ…)
~ 未来を作ろう ~ Twitterを今すぐフォロー!