Long time no see, guys. For four months, I’ve been remiss in updating you on the progress with FSRS4Anki. Recently, FSRS4Anki underwent some major updates, an opportune moment to share the significant improvements developed over the past half a year. Thanks to all selfless contributors in the open-source community, spanning from version v3.7.0 to v3.23.0, we introduced 17 features and numerous patches, and in this post, I shall pick up the key points of these updates.
Optimizer
- We’ve honed the data preprocessing and training process code, amplifying its speed tenfold. In my personal dataset of 220,000 review logs, the entirety of the optimization is complete in just five minutes using the free version of Google Colab’s CPU machine.
- We’ve integrated additional evaluation modules for more efficient detection of potential flaws in FSRS.
- We’ve incorporated a module for comparing with the SM-2 algorithm. In my personal dataset, the error of FSRS is merely 20% of SM-2.
- We’ve introduced more stringent parameter range constraints to alleviate ease hell and issues with excessively long-term intervals.
- Our algorithm for finding the optimal retention rate now accounts for actual review time, leading to more realistic results.
Scheduler
- We’ve decoupled the deck parameters and scheduling algorithm, making it more convenient to set individual parameters for each deck.
- Users can now disable FSRS in specific decks and use the default algorithm.
- Users can enable DSR memory state logs to view the current card’s memory state during review.
Helper
- We’ve refactored the Postpone and Advance features. Users can now input the number of cards they wish to postpone or advance, and Helper will automatically calculate the relative postponement/advancement degree for each card, prioritizing those with the smallest deviation from the optimal retention rate.
- We’ve added a feature for dispersing sibling cards, enabling the scheduling of related card reviews to be as far as possible (but in the fuzz range) to prevent mutual interference or prompting.
- We’ve extended support to the card browser. Users can now view each card’s memory state in the card browser and search these cards using specific syntax. However, due to Anki’s framework limitations, this feature can’t be used in filtered deck searches.
- We’ve included an automatic rescheduling feature to reschedule cards reviewed on other devices automatically after syncing, crucial for AnkiDroid users.
- We’ve improved performance, increasing the rescheduling feature’s speed sevenfold.
- We’ve added an FSRS statistics panel to the old stats page for users to view their retention and stability statistics.
- We’ve added a Free days feature to significantly reduce the number of reviews on specific week days.
- We’ve added a Load Balance feature to make daily reviews more consistent.
Future Works
Recently, community contributors and I have been concentrating on refining FSRS’s memory model to augment its generalization. If the memory model is updated, we shall release version v4.0.0. (Incidentally, the ‘4’ in FSRS4Anki isn’t a version number but a homophone for ‘for’. I’m concurrently developing FSRS4Remnote and assisting in maintaining the algorithm library for FSRS implementations across various programming languages.)
A comprehensive rewrite of tutorials and help documents is in progress to facilitate an effortless onboarding experience with FSRS.
Idea of deck/card priority is currently underway. This will facilitate a more efficient schedule of reviews.
Your anticipation is greatly appreciated.
Support My Work
If my work has benefited your learning journey, I would appreciate your support by starring my open-source project and giving a thumbs up for my add-on.
https://ankiweb.net/shared/info/759844606