Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プロダクトのコードをPandasからPolarsへ書き換えた話
Search
Yudai Hayashi
July 12, 2024
8
4.1k
プロダクトのコードを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
55
ジョブマッチングプラットフォームにおける推薦アルゴリズムの活用事例
yudai00
0
65
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
650
MCP Clientを活用するための設計と実装上の工夫
yudai00
1
1.2k
人とシゴトのマッチングを実現するための機械学習技術
yudai00
1
61
MCPを理解する
yudai00
17
12k
データバリデーションによるFeature Storeデータ品質の担保
yudai00
1
220
「仮説行動」で学んだ、仮説を深め ていくための方法
yudai00
8
2k
相互推薦システムでのPseudo Label を活用したマッチ予測精度向上の取り組み
yudai00
1
980
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
66k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Context Engineering - Making Every Token Count
addyosmani
9
460
Optimizing for Happiness
mojombo
379
70k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Practical Orchestrator
shlominoach
190
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
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の利点はかなり大きい ◦ 型に対して厳密な分躓きやすいなどの注意点もある