> For the complete documentation index, see [llms.txt](https://docs.wantedly.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.wantedly.dev/fields/data/ds_tools.md).

# 推薦システムの開発に使っているツール

推薦チームでは、モデルの開発・改善や、デプロイを簡単に行うための様々なツールを用意しています。以下はそのなかでも自分たちで内製しているツールの一覧です。

* 機械学習モデルの開発に使うツール
  * [feature store (internal)](https://github.com/wantedly/feature-store)
  * [recomx (internal)](https://github.com/wantedly/recomx)
  * [recommendation-evaluator (internal)](https://github.com/wantedly/recommendation-evaluator)
  * [SARA (internal)](https://github.com/wantedly/sara)
  * [servicex-python (internal)](https://github.com/wantedly/servicex-python)
* 機械学習モデルのリリースに使うツール
  * [visit-recommendation-project (internal)](https://github.com/wantedly/visit-recommendation-project)
  * [visit-recommendation-scout (internal)](https://github.com/wantedly/visit-recommendation-scout)

これらのツールと後述する外部ツールの全体像は以下の通りです。

![推薦システムの開発に使っているツールの全体像](/files/cMmxg2rFmDomwSfjLzId)

## 機械学習モデルの開発に使うツール

### feature store

モデルの学習に使う特徴量を定期的に計算し、それをBigQuery上にエクスポートして管理しています。

[参考資料](https://speakerdeck.com/zerebom/wantedlydefeature-storewodao-ru-suruji-nikao-etakoto)

### recomx

モデルの学習パイプラインの中の共通部分をまとめたライブラリです。BQ / GCS とのデータのやり取りなど、どの施策でも共通して利用出来る処理をまとめています。

### recommendation-evaluator

オンラインテストに出す前のランキングの性能を、過去データを使って低コストでシミュレーションするツールです。カスタマイズして様々な指標を簡単に実装することも可能で、施策でやりたいことを実現できそうなのかを評価することが可能です。

### SARA (Seamless Accessible Resource Allocator)

SARA は Kubernetes の サンドボックスクラスタ内に指定のリソースで頻繁に必要になるアセット(PVC や Claude Codeなど) をデフォルトで備えた Pod を起動・管理するためのツールです。このツールにより、ローカルのPCに大量のコンピューターリソースが存在するかのような開発体験を提供することができ、エンジニアは本番運用時とほとんど同じ環境で開発を行うことができます。

### servicex-python

マイクロサービス共通ライブラリである servicex の Python 実装です。servicex については [マイクロサービス共通ライブラリ "servicex" の紹介](/fields/the-system/servicex.md) を参照してください。

## 機械学習モデルのリリースに使うツール

### visit-recommendation-project

Wantedly Visit の募集の集合からクエリに対して適切なフィルタリング・オーダリングを行ってユーザーに返すサービスです。作成したランキングを本番環境にリリースしたり、オンラインテストを行ったりする際に利用します。

### visit-recommendation-scout

Wantedly Visit上にいるユーザーの集合からクエリに対して適切なフィルタリング・オーダリングを行ってリクルーターに返すサービスです。作成したランキングを本番環境にリリースしたり、オンラインテストを行ったりする際に利用します。

上記2つについては[WantedlyのPodcast](https://open.spotify.com/episode/3F24EoFf3ImNwijrpU7ggB?si=dh5GxSDbT1a4A5QGA4cuCA)や[発表資料](https://speakerdeck.com/hazumirr/accelerate-improvement-measures-for-recommendations?slide=20)でも触れられています。ランキングの条件分岐やテスト形式をスキーマファイルに書くと必要なプログラムが自動生成される仕組みが整っているため、データサイエンティスト単独でも安全にデプロイしやすくなっています。

## その他の外部ツール

上に挙げた以外にも、推薦チームでは開発時に様々なツールを使用しています。

* Argo workflow
* BigQuery
* Looker
* Grafana

## 話を聞きに行きたい

* Slack: [#visit\_recommendation (internal)](https://wantedly.slack.com/archives/CA0PVDX98)
