Guru
部落格 / Spaced Repetition

FSRS vs SM-2:Anki 排程演算法該用哪個?

重點 用 FSRS。SM-2 用同一條 1987 年的公式排程所有人;FSRS 則把記憶模型擬合到你自己的複習紀錄,還能直接指定目標記憶保持率。以數億筆真實複習資料跑的基準測試中,FSRS 一致地更準確預測回憶 — 實務上就是「同樣的記憶效果,更少的複習量」。桌面版 Anki 的 FSRS 是選項;Guru 在 iPhone 上開箱即用 FSRS。

SM-2 從哪來

SM-2 是 Piotr Woźniak 在 1987 年為 SuperMemo 發表的演算法,傳統 Anki 的排程器承襲自它。核心很簡單:每張卡帶一個「ease 係數」(初始約 2.5),答對則下次間隔=上次間隔 × ease;答「困難」或答錯則 ease 下降。

它是有效的 — 幾十年的 Anki 使用者就是證明。但機制上有已知的失效模式:

FSRS 的不同之處

FSRS(Free Spaced Repetition Scheduler,由 Jarrett Ye 與協作者開發的開源專案)用一個記憶模型取代固定公式。每張卡以三個量追蹤(DSR 模型):

參數不是手調常數:最佳化器會擬合你自己的複習歷史。而且不用間接旋鈕,你直接設定真正在乎的東西 — 目標保持率(例如 0.90)— FSRS 就把每張卡排在「回憶機率即將跌破該值」的時刻。

兩個實務結果:

  1. 少掉無效複習。 你記得牢的卡會被推得比 SM-2 敢推的更遠;真正難的卡更早回來。在以數億筆真實 Anki 複習資料執行的開源 srs-benchmark 中,FSRS 系列一致比 SM-2 更準確地預測回憶 — 這個預測精度正是省下來的複習量。
  2. 沒有 ease 地獄。 失誤只會合理更新穩定性與難度,不會永久懲罰卡片。

誠實的但書

不丟進度地切換

桌面版 Anki(23.10 以上):牌組選項 → 啟用 FSRS → 設定目標保持率(0.85–0.95 是合理區間;越高複習越多)→ 按「最佳化」用你的歷史擬合參數。卡片、紀錄、媒體都不動,改變的只有未來的排程。

iPhone 上:Guru 原生就是 FSRS — 匯入的牌組(保留排程的 .apkg)從既有狀態接續,AI 新生成的牌組(直接來自你的 PDF)從第一張卡就用 FSRS 排程。沒有需要尋找的開關。

目標保持率怎麼選

FSRS 的意義在於:這個取捨終於變成明示的 — 你選保持率,演算法用最小的複習成本去維持它。

← 所有文章