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
100
Polarsを活用した機械学習ジョブの高速化
Yudai Hayashi
February 22, 2024
Tweet
Share
More Decks by Yudai Hayashi
See All by Yudai Hayashi
プロダクトのコードをPandasからPolarsへ書き換えた話
yudai00
6
1.5k
データサイエンティストになって得た学び
yudai00
1
44
社内での継続的な機械学習勉強会の開催のコツ
yudai00
2
560
会社訪問アプリ「Wantedly Visit」における新規ユーザーの行動量に基づいた推薦方策の選択
yudai00
0
1k
Voyagerを利用した宿画像の最近傍探索による候補生成
yudai00
1
140
推薦データ分析コンペに参加して得た知見
yudai00
2
320
論文紹介:Unbiased Delayed Feedback Label Correction for Conversion Rate Prediction
yudai00
0
220
機械学習プロジェクトでのPythonアップデートの難しさと得られた知見
yudai00
3
250
RecSys2023論文読み会 - Augmented Negative Sampling for Collaborative Filtering
yudai00
1
880
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
44
4.7k
Learning to Love Humans: Emotional Interface Design
aarron
269
39k
Building Adaptive Systems
keathley
34
2k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Atom: Resistance is Futile
akmur
261
25k
Unsuck your backbone
ammeep
666
57k
Fireside Chat
paigeccino
25
2.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
28
2.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
42
2.7k
Teambox: Starting and Learning
jrom
130
8.6k
Building Applications with DynamoDB
mza
89
5.8k
Into the Great Unknown - MozCon
thekraken
20
1.3k
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による高速化の恩恵が大 きくなる可能性 • 遅延評価によって大規模データも効率的に扱える