For AI agents: the complete documentation index is available at https://open-spaced-repetition.github.io/ts-fsrs/ja-JP/llms.txt, the full documentation bundle is available at https://open-spaced-repetition.github.io/ts-fsrs/ja-JP/llms-full.txt, and this page is available as Markdown at https://open-spaced-repetition.github.io/ts-fsrs/ja-JP/guide/optimizer/index.md.

Optimizer 概要

FSRS は既定のモデル重みを同梱していますが、自分たちの製品の復習ログから再学習して、間隔をサービス対象のユーザーに合わせることができます。Optimizer は @open-spaced-repetition/binding の上で動きます。復習ログ CSV を訓練用アイテムに変換し、パラメータを推定し、その結果が保留した復習をどれだけ予測できるかを報告します。訓練した重みは weights 経由でそのまま DefaultScheduler やカスタムの defineScheduler に渡せます。重みの意味はモデル、適用される場所はスケジューラを参照してください。

注意

Optimizer は現在ベータ版であり、API メソッドは随時変更される可能性があります。

For your Agent
FSRS の重み学習を実装または説明する

このプロンプトをコピーすると、AI Agent が Optimizer 契約(復習ログ CSV を入れて訓練済み重みを出す)に従い、共有の binding を介します。

一つのパッケージ、二つの実行環境

binding は単一の import で同じ API を公開し、読み込み時に実行環境向けのビルドを自動で解決します。利用可能なネイティブパッケージを探し、ブラウザや Worker では WebAssembly にフォールバックします。環境に合わせて該当するパッケージをインストールします。

ネイティブモジュール(Node・サーバー・CLI):

npm
yarn
pnpm
bun
deno
npm install @open-spaced-repetition/binding

WASI Preview 1(wasip1)WebAssembly:

npm
yarn
pnpm
bun
deno
npm install @open-spaced-repetition/binding-wasm32-wasip1

wasm32-wasi WebAssembly:

npm
yarn
pnpm
bun
deno
npm install @open-spaced-repetition/binding-wasm32-wasi
import { computeParameters } from '@open-spaced-repetition/binding'

実行環境が対応するビルドを解決します。サーバーや CLI はネイティブモジュール、ブラウザや Web Worker は wasm ビルドを使います。

COOP/COEP とスレッド

WebAssembly は threadless またはスレッドありで実行できます。threadless wasm は Cross-Origin-Opener-Policy や Cross-Origin-Embedder-Policy ヘッダなしで動作し、進捗は共有メモリではなく Worker メッセージで報告します。スレッドありのビルドは、ページが crossOriginIsolated(COOP と COEP ヘッダ付きで配信される状態)であることを必要とします。

復習ログのパイプライン

訓練は数回の binding 呼び出しからなる短いパイプラインです。

  1. convertCsvToFsrsItems が復習ログ CSV を FSRSItem のリストに変換します。
  2. computeParameters がそのアイテムから重みを訓練し、重みの配列を返します。
  3. evaluateWithTimeSeriesSplits がパラメータによる保留復習の予測品質を測定します。

computeOptimalSteps を使えば、学習・再学習ステップの推奨も binding に依頼できます。各呼び出しの詳細は学習と評価、実際の訓練の実行はPlaygroundページのトレーナーを参照してください。