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
Polarsを活用した機械学習ジョブの高速化
Search
Yudai Hayashi
February 22, 2024
1
65
Polarsを活用した機械学習ジョブの高速化
Yudai Hayashi
February 22, 2024
Tweet
Share
More Decks by Yudai Hayashi
See All by Yudai Hayashi
会社訪問アプリ「Wantedly Visit」における新規ユーザーの行動量に基づいた推薦方策の選択
yudai00
0
360
Voyagerを利用した宿画像の最近傍探索による候補生成
yudai00
1
120
推薦データ分析コンペに参加して得た知見
yudai00
2
250
論文紹介:Unbiased Delayed Feedback Label Correction for Conversion Rate Prediction
yudai00
0
180
機械学習プロジェクトでのPythonアップデートの難しさと得られた知見
yudai00
3
220
RecSys2023論文読み会 - Augmented Negative Sampling for Collaborative Filtering
yudai00
1
660
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
457
32k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
79
44k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Creatively Recalculating Your Daily Design Routine
revolveconf
211
11k
We Have a Design System, Now What?
morganepeng
43
6.8k
Unsuck your backbone
ammeep
664
57k
Scaling GitHub
holman
457
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
[RailsConf 2023] Rails as a piece of cake
palkan
28
4k
Adopting Sorbet at Scale
ufuk
69
8.6k
GitHub's CSS Performance
jonrohan
1025
450k
Transcript
© 2024 Wantedly, Inc. Polarsを活用した機械学習ジョブの 高速化 みんなのPython勉強会#101 Jan. 22 2024
- Yudai Hayashi
© 2024 Wantedly, Inc. INTERNAL ONLY 自己紹介 林 悠大 • 経歴:
◦ 東京大学工学系研究科でPh.D取得 ◦ 2022年にウォンテッドリーにデータサイ エンティストとして新卒入社。推薦シス テムの開発を行う • X: @python_walker • 趣味: ◦ 読書 ◦ 音楽聴くこと ◦ ウイスキー
© 2024 Wantedly, Inc. INTERNAL ONLY ジョブを高速化するモチベーション 実験 評価 改善
機械学習のPDCAサイクル • 機械学習ジョブの実行には長い時間が かかることが多い • ジョブの待ち時間を減らしてサイクルを 高速に回したい ここではpolarsを使ってテーブルデータの処理を高速化する手法を紹介 実験設計 > 1 h
© 2024 Wantedly, Inc. INTERNAL ONLY PolarsとPandas 主にPython Rust シングルコア
マルチコア 実装 処理 データの 持ち方 行指向 列指向 インメモリ インメモリ、遅延評価 polarsはpandasと同様、テーブルデータの処理をするためのライブラリ データ型 DataFrame, Series DataFrame, Series 10万 x 100 のDataFrameどうし のinner joinにかかる時間
© 2024 Wantedly, Inc. INTERNAL ONLY 実務におけるpolarsによる高速化の効果 日付をintに変換して差を計算 欠損時には欠損を残す when構文を使って条件分岐
結果を格納するカラム名を指定 Pandas Polars • 50 min → 1 min に 実行時間が短縮 • applyが不要になった ことで改善幅が大きく なった
© 2024 Wantedly, Inc. INTERNAL ONLY 遅延評価によるさらなる高速化・メモリ節約 公式ドキュメントより “...in the
lazy API the query is only evaluated once it is 'needed'.” Eager API ここで評価される Lazy API • 評価を遅らせることで処理速度を最適化 (↑の例だと6 %高速化(10万x100の大 きさのデータ)) • 必要なデータだけを読み込むので大規模データを扱う際にも有用 上から順番に処理
© 2024 Wantedly, Inc. INTERNAL ONLY まとめ • テーブルデータの処理にPolarsを使うことで高速化する手法を紹介 •
Pandasでapplyを使う必要がある処理はPolarsによる高速化の恩恵が大 きくなる可能性 • 遅延評価によって大規模データも効率的に扱える