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 的意义在于:这个取舍终于变得明确了 — 你选择保持率,算法则付出维持它所需的最小复习成本。

← 所有文章