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
プロダクトのコードをPandasからPolarsへ書き換えた話
Search
Yudai Hayashi
July 12, 2024
8
4.2k
プロダクトのコードをPandasからPolarsへ書き換えた話
Polars Data Crunch #2での発表スライド
Yudai Hayashi
July 12, 2024
Tweet
Share
More Decks by Yudai Hayashi
See All by Yudai Hayashi
Off-Policy Evaluation and Learning for Matching Markets
yudai00
0
83
ジョブマッチングプラットフォームにおける推薦アルゴリズムの活用事例
yudai00
0
96
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
680
MCP Clientを活用するための設計と実装上の工夫
yudai00
1
1.3k
人とシゴトのマッチングを実現するための機械学習技術
yudai00
1
78
MCPを理解する
yudai00
18
14k
データバリデーションによるFeature Storeデータ品質の担保
yudai00
1
240
「仮説行動」で学んだ、仮説を深め ていくための方法
yudai00
8
2k
相互推薦システムでのPseudo Label を活用したマッチ予測精度向上の取り組み
yudai00
1
1k
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Chasing Engaging Ingredients in Design
codingconduct
0
110
Scaling GitHub
holman
464
140k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
120
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
55
Between Models and Reality
mayunak
1
180
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
170
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
630
Transcript
© 2024 Wantedly, Inc. プロダクトのコードをPandasから Polarsへ書き換えた話 Polars Data Crunch #2
Jul. 12 2024 - Yudai Hayashi
© 2024 Wantedly, Inc. INTERNAL ONLY 自己紹介 林 悠大 • 経歴:
◦ 東京大学工学系研究科でPh.D取得 ◦ 2022年にウォンテッドリーにデータ サイエンティストとして新卒入社。 推薦システムの開発を行う • X: @python_walker • 趣味: ◦ 読書 ◦ 音楽聴くこと ◦ ウイスキー
© 2024 Wantedly, Inc. INTERNAL ONLY 今日話すこと • 業務で使っているコードにPolarsを使う理由 •
Pandasからの移行の実例 • プロダクトでPolarsで使うときのツラみ
© 2024 Wantedly, Inc. INTERNAL ONLY (機械学習)ジョブでPolarsを使う意味 Polarsを使うことでデータの処理が高速に行えるようになる。そして処理が高速 になると色々な面に対して恩恵がある コスト
開発者体験 ユーザー体験 • サーバー代は従量 課金制 • ジョブの実行時間 が短くなれば安く なる • ユーザーに良いも のを届けるには試 行錯誤が必要 • 実行時間が短くな ればたくさん実験 できる • ジョブが遅いとユー ザーが新しいものを 中々受け取れない • 早く実行を終えられれ ばユーザーが良いもの を早く受け取れる
© 2024 Wantedly, Inc. INTERNAL ONLY PandasからPolarsへの置き換え ウォンテッドリーではPandasからPolarsへの置き換えを進めている 置き換えることのメリット •
処理速度の向上 置き換える際に気にしていたこと • 置き換えにかかるコスト • 実際問題としてどれくらい速くなるのか
© 2024 Wantedly, Inc. INTERNAL ONLY PandasユーザーにとってのPolarsの移行コスト Pandas、Polars間の変換はとても簡単 (.to_pandas, .from_pandas)
• コードの一部のみをPolarsに置き換 えるということが可能なので導入障 壁が小さい • Pandasが苦手とする処理だけを Polarsに置き換えても効果が大きい • Pandas2.x系ならArrow形式どうし の変換にもできるのでパフォーマン ス面でも有利
© 2024 Wantedly, Inc. INTERNAL ONLY Apply処理をPolarsで書くことによる高速化 実際にPolarsに置き換えて高速化を実現した例を紹介 元々のコード •
日付をint型に変換してある基準となる数値(base)との差をとる処理 • Pandasに用意されているメソッドでは対応しきれず apply を利用
© 2024 Wantedly, Inc. INTERNAL ONLY Apply処理をPolarsで書くことによる高速化 • if 文をPolarsの
when 構文を使って表現 • この書き換えによって、この部分の実行時間を50 min → 1 minに短縮 変更後の コード
© 2024 Wantedly, Inc. INTERNAL ONLY Polarsに書き換えたときに躓いた点 • バージョンアップデートによる破壊的変更が高頻度で生じる ◦
1.0に到達したので今後は減るかも(?) • Pandasと比較して型について厳密
© 2024 Wantedly, Inc. INTERNAL ONLY Polarsに書き換えたときに躓いた点 • バージョンアップデートによる破壊的変更が高頻度で生じる ◦
1.0に到達したので今後は減るかも(?) • Pandasと比較して型について厳密 • 細かなメソッド名などの変更が頻繁 に入る • 複数のリポジトリでPolarsを使って いると認知負荷になりやすい repoA repoB repoC これはcount こっちはlen こっちは??
© 2024 Wantedly, Inc. INTERNAL ONLY Polarsに書き換えたときに躓いた点 • バージョンアップデートによる破壊的変更が高頻度で生じる ◦
1.0に到達したので今後は減るかも(?) • Pandasと比較して型について厳密 CSVなどを読み込んで型推論の結果が意図通りにならなかった時に問題に
© 2024 Wantedly, Inc. INTERNAL ONLY まとめ • プロダクトでPolarsを使うことによるメリットと問題になりやすい点を 紹介
◦ パフォーマンス面でPolarsの利点はかなり大きい ◦ 型に対して厳密な分躓きやすいなどの注意点もある