概要
Recotem は、小さな YAML 設定ファイル 1 つから推薦モデルを学習・配信できるツールです。ML 専門知識は不要です。
データソース、いくつかの学習設定、保存先を記述するだけで、残りはすべて Recotem が行います。データの取得、最適なアルゴリズムの探索、モデルの学習、そして HTTP 経由での推薦リクエストへの応答まで対応します。
この設定ファイルを レシピ と呼びます。レシピには「どのデータを使うか」「どのように学習するか」「どこで配信するか」が記述されています。1 つのレシピが 1 つのモデルと 1 つの API エンドポイントを生み出します。
データベースも、メッセージブローカーも、管理画面も不要です。レシピファイルと 2 つのコマンド、そして HTTP エンドポイントがあれば十分です。
仕組み
Recotem は、アーティファクト (学習済みモデル) と呼ばれる署名付きバイナリファイルのみを介してやり取りする 2 つのプロセスを中心に構築されています。
recotem trainはレシピを読み込み、インタラクションデータ (購買履歴、クリック、閲覧など) を取得し、最適なアルゴリズムと設定を探索して最終モデルを学習し、署名付きアーティファクトをディスクまたはクラウドストレージに書き出します。recotem serveはアーティファクトディレクトリを監視し、各モデルを/predict/{name}という REST エンドポイントとして読み込みます。recotem trainが新しいアーティファクトを生成すると、サーバーが自動的に検出して読み込みます。再起動は不要です。
2 つのプロセスはアーティファクトファイルしか共有しないため、別々のマシンで実行できます。夜間のバッチジョブが S3 バケットに書き込み、常時稼働のサーバーが同じバケットから読み込んで、新しいモデルが登場した瞬間にホットスワップする構成が可能です。
recipe.yaml → recotem train → artifact.recotem → recotem serve
(バッチジョブ) (HMAC 署名済み) (FastAPI、ホットスワップ)
任意のスケジューラ ローカル FS / S3 / GCS POST /predict/{name}アーティファクトは HMAC 署名 (改ざん検知コード) によって保護されています。配信プロセスはモデルを読み込む前に署名を検証するため、破損または改ざんされたファイルは使用されずに拒否されます。
Recotem が向いているチーム
Recotem は、専任の ML エンジニアや複雑なデータインフラがなくてもプロダクトに推薦機能を追加したいチームのために作られています。インタラクションデータを CSV や BigQuery テーブルにエクスポートできれば、Recotem がそれを動作する推薦 API に変換します。
以下のようなケースに適しています。
- ML エンジニアがいないチームで、アプリやサービスに推薦機能が必要な場合。
- 数週間ではなく 1 時間以内に動く推薦エンドポイントを立ち上げたい場合。
- スケジュール (毎晩、毎週) に従って再学習しつつ、運用負担を最小限に抑えたい場合。
- データが CSV ファイル、Parquet ファイル、または BigQuery にあり、別途データベースやメッセージキューを管理せずに HTTP で予測を配信したい場合。
3 ステップのメンタルモデル
レシピを書く。 データがどこにあるか、どの列がユーザー ID と アイテム ID か、学習済みモデルをどこに保存するかを記述した小さな YAML ファイルを用意します。
recotem trainを実行する。 1 つのコマンドがデータを取得し、最適なアルゴリズムと設定を探索し、最終モデルを学習し、署名付きアーティファクトを書き出します。recotem serveを実行する。 1 つのコマンドが HTTP サーバーを起動し、アーティファクトを読み込んでPOST /predict/{name}リクエストに応答します。再学習すればサーバーが自動更新されます。
次のステップ
- インストール — pip と Docker のセットアップ、鍵の生成
- チュートリアル — 実際の購買ログデータセットを使ったエンドツーエンドの例
- レシピの基本 — レシピファイルの各セクションを理解する
- CLI リファレンス — 全 6 コマンドとそのフラグ
