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とPyTorchで作る推論サーバー
Search
Yudai Hayashi
November 19, 2024
12
7.3k
RustとPyTorchで作る推論サーバー
UV Study : Rust LT会で発表した内容になります
https://uniquevision.connpass.com/event/335781/
Yudai Hayashi
November 19, 2024
Tweet
Share
More Decks by Yudai Hayashi
See All by Yudai Hayashi
ジョブマッチングプラットフォームにおける推薦アルゴリズムの活用事例
yudai00
0
38
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
630
MCP Clientを活用するための設計と実装上の工夫
yudai00
1
1.1k
人とシゴトのマッチングを実現するための機械学習技術
yudai00
1
48
MCPを理解する
yudai00
17
12k
データバリデーションによるFeature Storeデータ品質の担保
yudai00
1
190
「仮説行動」で学んだ、仮説を深め ていくための方法
yudai00
8
1.9k
相互推薦システムでのPseudo Label を活用したマッチ予測精度向上の取り組み
yudai00
1
910
Wantedly Visitにおけるフリーワード検索時の推薦のオンライン化事例紹介
yudai00
1
290
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Building an army of robots
kneath
306
46k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Music & Morning Musume
bryan
46
6.8k
Speed Design
sergeychernyshev
32
1.1k
How GitHub (no longer) Works
holman
315
140k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Cost Of JavaScript in 2023
addyosmani
53
9k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
A better future with KSS
kneath
239
17k
The Power of CSS Pseudo Elements
geoffreycrofte
78
6k
Transcript
© 2024 Wantedly, Inc. RustとPyTorchで作る推論サーバー UV Study: Rust LT会 Nov.
19 2024 - Yudai Hayashi
© 2024 Wantedly, Inc. INTERNAL ONLY 自己紹介 林 悠大 • 経歴:
◦ 東京大学工学系研究科でPh.D取得 ◦ 2022年にウォンテッドリーにデータ サイエンティストとして新卒入社。 推薦システムの開発を行う • X: @python_walker • Rust初心者
© 2024 Wantedly, Inc. INTERNAL ONLY なぜデータサイエンティストがRustの話をする?
© 2024 Wantedly, Inc. INTERNAL ONLY PythonコミュニティーにとってのRust 色々なRustで書かれたライブラリやツールが広くPythonで使われるようになってきている https://github.com/pola-rs/polars https://docs.astral.sh/uv/
https://docs.astral.sh/ruff/ • Polars ◦ 構造化データを扱うためのライブラリ • Ruff ◦ linter & code formatter • uv ◦ パッケージマネージャー Rustで書かれた高機能かつ高速なツール がどんどん登場している
© 2024 Wantedly, Inc. INTERNAL ONLY RustとPythonの親和性 RustとPythonは親和性が高い(と自分は思っている) PyO3を使ってpythonでも使える ようなバインディングを生成、
matrurinを使ってbuild→pypiにパ ブリッシュ… みたいなことが簡単にできる RustとPythonを使って機械学習モデルのサービングはどれくらい簡単にできるのだろう?
© 2024 Wantedly, Inc. INTERNAL ONLY 作ったもの Request Response Data
Model file Train Model Serve Model モデルの学習はPython側で行い、モデルを使った推論をRustで行う構成
© 2024 Wantedly, Inc. INTERNAL ONLY 使うライブラリ コードはREADMEから抜粋 • tch-rsを使ってRust側からPyTorchのモデルを利用
• PythonのPyTorchを似たような使用感 • libtorchを入れてパスを通せば使えるようになる ◦ 自分はDockerコンテナ内で “system-wide libtorch” を入れて動かして いたが、Python側で入れたPytorchを利用することもできるらしい
© 2024 Wantedly, Inc. INTERNAL ONLY モデルの学習とtch-rsでの利用 Python側 Rust側 学習したモデルはJITコ
ンパイル テンソルにしてモデルに入力
© 2024 Wantedly, Inc. INTERNAL ONLY モデルの学習とtch-rsでの利用 Python側 Rust側 学習したモデルはJIT
コンパイル 出力は後段で 扱いやすいよ うにベクトル などに変換
© 2024 Wantedly, Inc. INTERNAL ONLY 実験結果 実行環境 レスポンスタイム Rust
(actix-web) 1.75 ms Python (FastAPI) 2.87 ms curl -w “${time_total} ...” で実行時間を計測 Rustのサーバーの方が40 %高速! → 入力データの前処理の部分で差がついた と考えられる パフォーマンス 感じた課題 入力値の前処理では、ちゃんとした変換処 理を書くにはPython側からパラメーター を伝搬させる方法を考える必要がありそう
© 2024 Wantedly, Inc. INTERNAL ONLY まとめ GitHub https://github.com/Hayashi-Yudai/rust-inference-server •
RustでPyTorchのモデルをロードして推論する方法を紹介 • Rustで推論からレスポンスまで返すことで、Pythonで書いた 時よりも40 %の性能改善を実現できる • モデルに入力する前のデータの処理は、現状Rust側では実装 コストが高い部分もありそう