Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
プロダクトのコードをPandasからPolarsへ書き換えた話
Search
Yudai Hayashi
July 12, 2024
4.6k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
プロダクトのコードをPandasからPolarsへ書き換えた話
Polars Data Crunch #2での発表スライド
Yudai Hayashi
July 12, 2024
More Decks by Yudai Hayashi
See All by Yudai Hayashi
技術キャッチアップ効率化を実現する記事推薦システムの構築
yudai00
4
390
Off-Policy Evaluation and Learning for Matching Markets
yudai00
0
180
ジョブマッチングプラットフォームにおける推薦アルゴリズムの活用事例
yudai00
0
210
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
800
MCP Clientを活用するための設計と実装上の工夫
yudai00
1
1.4k
人とシゴトのマッチングを実現するための機械学習技術
yudai00
1
140
MCPを理解する
yudai00
18
16k
データバリデーションによるFeature Storeデータ品質の担保
yudai00
1
300
「仮説行動」で学んだ、仮説を深め ていくための方法
yudai00
8
2.1k
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
7k
WCS-LA-2024
lcolladotor
0
860
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Unsuck your backbone
ammeep
672
58k
Navigating Weather and Climate Data
rabernat
0
550
Faster Mobile Websites
deanohume
310
32k
sira's awesome portfolio website redesign presentation
elsirapls
0
450
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
260
Practical Orchestrator
shlominoach
192
12k
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の利点はかなり大きい ◦ 型に対して厳密な分躓きやすいなどの注意点もある