Optimizer 概要
FSRS は既定のモデル重みを同梱していますが、自分たちの製品の復習ログから再学習して、間隔をサービス対象のユーザーに合わせることができます。Optimizer は @open-spaced-repetition/binding の上で動きます。復習ログ CSV を訓練用アイテムに変換し、パラメータを推定し、その結果が保留した復習をどれだけ予測できるかを報告します。訓練した重みは weights 経由でそのまま DefaultScheduler やカスタムの defineScheduler に渡せます。重みの意味はモデル、適用される場所はスケジューラを参照してください。
Optimizer は現在ベータ版であり、API メソッドは随時変更される可能性があります。
このプロンプトをコピーすると、AI Agent が Optimizer 契約(復習ログ CSV を入れて訓練済み重みを出す)に従い、共有の binding を介します。
一つのパッケージ、二つの実行環境
binding は単一の import で同じ API を公開し、読み込み時に実行環境向けのビルドを自動で解決します。利用可能なネイティブパッケージを探し、ブラウザや Worker では WebAssembly にフォールバックします。環境に合わせて該当するパッケージをインストールします。
ネイティブモジュール(Node・サーバー・CLI):
WASI Preview 1(wasip1)WebAssembly:
wasm32-wasi WebAssembly:
実行環境が対応するビルドを解決します。サーバーや CLI はネイティブモジュール、ブラウザや Web Worker は wasm ビルドを使います。
WebAssembly は threadless またはスレッドありで実行できます。threadless wasm は Cross-Origin-Opener-Policy や Cross-Origin-Embedder-Policy ヘッダなしで動作し、進捗は共有メモリではなく Worker メッセージで報告します。スレッドありのビルドは、ページが crossOriginIsolated(COOP と COEP ヘッダ付きで配信される状態)であることを必要とします。
復習ログのパイプライン
訓練は数回の binding 呼び出しからなる短いパイプラインです。
convertCsvToFsrsItemsが復習ログ CSV をFSRSItemのリストに変換します。computeParametersがそのアイテムから重みを訓練し、重みの配列を返します。evaluateWithTimeSeriesSplitsがパラメータによる保留復習の予測品質を測定します。
computeOptimalSteps を使えば、学習・再学習ステップの推奨も binding に依頼できます。各呼び出しの詳細は学習と評価、実際の訓練の実行はPlaygroundページのトレーナーを参照してください。