Slide 1

Slide 1 text

© 2024 Wantedly, Inc. BigQueryで作る簡単なFeature Store AI/MLなんでもLT会 Aug. 23 2024 - Yudai Hayashi

Slide 2

Slide 2 text

© 2024 Wantedly, Inc. INTERNAL ONLY 自己紹介 林 悠大 ● 経歴: ○ 東京大学工学系研究科でPh.D取得 ○ 2022年にウォンテッドリーにデータ サイエンティストとして新卒入社。 推薦システムの開発を行う ● X: @python_walker ● 趣味: ○ 読書 ○ 音楽聴くこと ○ ウイスキー

Slide 3

Slide 3 text

© 2024 Wantedly, Inc. INTERNAL ONLY 今日話すこと・話さないこと 話すこと 🙆 ● 機械学習ジョブでFeature Storeがあることで何が嬉しいのか ● できるだけシンプルにFeature Storeを自前実装するとどうなるのか 話さないこと 🙅 ● フルマネージド型のFeature Storeの使い方 ● (ニア)リアルタイムの学習・推論の話

Slide 4

Slide 4 text

© 2024 Wantedly, Inc. INTERNAL ONLY Feature Storeがあることの嬉しさ 機械学習のタスク:特徴量からターゲットの値を予測する or 予測するモデルを作る 予め学習・予測タスクの前に必要な特徴量を計算しておいて別の場所に保持しておく → Feature Store ● 特徴量の計算と学習・予測を分離することができる ● 複数のモデルで共通の特徴量を使い回すことができる ● …

Slide 5

Slide 5 text

© 2024 Wantedly, Inc. INTERNAL ONLY 今日話すFeature Storeの構成 Argo Workflows 特徴量生成ジョブ 機械学習ジョブ 機械学習ジョブ 機械学習ジョブ BigQuery データ取得/ 特徴量計算 利用 ● Argo Workflows で依存管理 ● BigQueryをソースとして特徴量 を計算、BigQueryに書き込む ● BigQueryのテーブルから必要な 特徴量を取得してモデルを学習 ・推論

Slide 6

Slide 6 text

© 2024 Wantedly, Inc. INTERNAL ONLY 特徴量を作る側の実装 特徴量の計算の仕方は大雑把に分類すると そんなに種類はない ● BigQuery(BQ) → BQ ● BQ → Pythonで加工 → BQ 型を何種類か用意しておけば特徴量を新た に作るコストも、管理するコストも抑えら れる

Slide 7

Slide 7 text

© 2024 Wantedly, Inc. INTERNAL ONLY 特徴量を使う側の実装 特徴量の数は何百にもなることが多い。それをSQLで管理するのは大変。。。 YAML Jinja Template 特徴量をYAMLに書いておけば BigQueryのクエリに変換するシ ステムを作れる ● 特徴量を一覧化することで 管理しやすく ● 特徴量を入れ替えた実験も しやすくなった

Slide 8

Slide 8 text

© 2024 Wantedly, Inc. INTERNAL ONLY まとめ ● Feature Storeを用意することによって機械学習ジョブの構成をシンプルにし、 保守・開発の効率性を上げることができる ● 簡単なFeature Storeであれば自前で実装することも十分可能