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
1
290
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
Tech LT #4 人を選ぶ技術
vaaaaanquish
2
2k
CADDi AI LabにおけるマネージドなMLOps
vaaaaanquish
2
2.3k
機械学習OSSの変遷と未来
vaaaaanquish
2
1.8k
文字列(ダジャレを言いシャレ)
vaaaaanquish
1
12k
xonshとかいうshellの話
vaaaaanquish
1
1k
gokartの運用と課題について
vaaaaanquish
5
11k
【
[email protected]
#6】ゼロベースからの論文レコメンドシステムの構築
vaaaaanquish
5
7k
【PyCon2019】 Python製シェルXonshの紹介
vaaaaanquish
6
7.4k
宇宙誕生の歴史と人類が赤ポチという到達点に至るまで
vaaaaanquish
0
1.6k
Other Decks in Technology
See All in Technology
Google Cloud Workflows: API automation, patterns and best practices
glaforge
0
100
日経電子版だけじゃない! 日経の新規Webメディアの開発 - NIKKEI Tech Talk #3
sztm
0
340
マイクロサービス宣言から8年 振り返りとこれから / Eight Years After the Microservices Declaration A Look Back and A Look Ahead
eisuke
2
170
開発者と協働できるメトリクスダッシュボードを作ろう!/SRE Lounge 2023
lmi
3
520
PHPのimmutable arrayとは
hnw
1
170
Logbii(ログビー) 会社紹介
logbii
0
160
証明書って何だっけ? 〜AWSの中間CA移行に備える〜
minorun365
3
2.1k
DNS権威サーバのクラウドサービス向けに行われた攻撃および対策 / DNS Pseudo-Random Subdomain Attack and mitigations
kazeburo
5
1.3k
MLOps Workshopでの学びと弥生の研究開発基盤 / takeaways from MLOps workshop and YAYOI's research and development infrastructure
yayoi_dd
0
150
組織に対してSREを適用するとどうなるか
kuniim
9
3k
USB PD で迎える AC アダプター大統一時代
puhitaku
2
2k
re:Invent2022 前後の Amazon EventBridge のアップデートを踏まえつつ、情シスの仕事をより楽しくしたい話。 / EventBridge for Information Systems Department
_kensh
2
770
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
117
7.7k
Docker and Python
trallard
30
1.9k
How to name files
jennybc
47
73k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
197
10k
What’s in a name? Adding method to the madness
productmarketing
12
1.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
500
130k
Fantastic passwords and where to find them - at NoRuKo
philnash
32
1.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
239
19k
Web Components: a chance to create the future
zenorocha
304
40k
Principles of Awesome APIs and How to Build Them.
keavy
117
15k
Producing Creativity
orderedlist
PRO
335
38k
Writing Fast Ruby
sferik
613
58k
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を今すぐフォロー!