Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
RustとCADDi AI LabとML
vaaaaanquish
June 10, 2022
Technology
0
26
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
CADDi AI LabにおけるマネージドなMLOps
vaaaaanquish
2
1.8k
機械学習OSSの変遷と未来
vaaaaanquish
1
1.6k
文字列(ダジャレを言いシャレ)
vaaaaanquish
0
11k
xonshとかいうshellの話
vaaaaanquish
1
890
gokartの運用と課題について
vaaaaanquish
4
10k
【ML@Loft #6】ゼロベースからの論文レコメンドシステムの構築
vaaaaanquish
5
6.8k
【PyCon2019】 Python製シェルXonshの紹介
vaaaaanquish
6
7.1k
宇宙誕生の歴史と人類が赤ポチという到達点に至るまで
vaaaaanquish
0
1.5k
機械学習エンジニアの実情とキャリアの話
vaaaaanquish
10
6.8k
Other Decks in Technology
See All in Technology
Goで実装するブランドネットワークとの接続ポイント
pongzu
2
280
〇〇みたいな検索作ってと言われたときに考えること / thinking before developing search system like that one
ryook
5
2.7k
DevRel組織についての考察
taijihagino
PRO
0
140
You're M̶u̶t̶e̶d̶ Rooted
patrickwardle
1
5.8k
DeepDive into Modern Development with AWS
mokocm
1
350
品質特性のすすめ
honamin09
0
180
20220803投資先CXO候補者向け 会社紹介資料_合同会社BLUEPRINT
hik
0
380
hey BOOK
heyinc
26
290k
サイバー攻撃を想定したクラウドネイティブセキュリティガイドラインとCNAPP及びSecurity Observabilityの未来
sakon310
4
470
サイバー攻撃を想定したクラウドネイティブセキュリティガイドラインとCNAPP及びSecurity Observabilityの未来
syoshie
1
1.4k
増田亨さんによる 「設計の考え方とやり方」勉強会オープニング
tsuyok
0
210
フィンテック養成勉強会#24
finengine
0
340
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
239
11k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
212
20k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
11
4.9k
Why You Should Never Use an ORM
jnunemaker
PRO
47
7.7k
What's in a price? How to price your products and services
michaelherold
229
9.4k
A Modern Web Designer's Workflow
chriscoyier
689
180k
How to Ace a Technical Interview
jacobian
267
21k
Code Reviewing Like a Champion
maltzj
506
37k
In The Pink: A Labor of Love
frogandcode
131
21k
Producing Creativity
orderedlist
PRO
334
37k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
10k
Designing for humans not robots
tammielis
242
24k
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を今すぐフォロー!