-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make FSRS the default? #3616
Comments
Yes. Let's not make FSRS the default before automatic optimization. Realistically, how many users do you expect to click "Optimize" at least once in their lifetime? I'd say 50% at best, likely less. And how many users will click "Optimize" multiple times? 10%? 5?% Right now it's mostly power users and tech-savvy people that are using FSRS, so they know that optimization should be done regularly. An average user who is using Anki with out of the box settings won't realize that optimization has to be done at all. |
My point: FSRS with default parameters is better than SM-2 in 91.9% cases. source: https://github.com/open-spaced-repetition/srs-benchmark/blob/main/plots/Superiority-9999.png A CONFLICT OF INTEREST: I'm the main developer of FSRS, please disregard my opinion. |
Well, no one here is saying that automatic optimization won't be implemented. But, until we can develop AO, I think that it's reasonable to provide users with something that is better than what they currently have, even if it is not the best. Also, let's stop discussing about AO now because arguments from both sides have been made and it's dae who has to take the decision now. If you (or someone else) has any other objection, please feel free to discuss. |
@Expertium you have contributed a large amount of time and effort both into suggesting improvements to FSRS, and advising users on its correct usage, including very comprehensive posts like https://old.reddit.com/r/Anki/comments/1h2otym/anki_2411_one_of_the_biggest_updates_ever/. They have been noticed, and I really appreciate all the work you have put in. That said, this is the second time you've attempted to delay an improvement until it's perfect. I don't think that's the best approach - I think it's better that we get these improvements into the hands of the bulk of users, and address any issues in the future. |
Alright. Maybe make the mythical optimization reminder (I have never seen it myself) more frequent? I've heard that it only shows up for people who have used "Optimize all presets", though. That would have to change. |
I agree that FSRS should be set to default, a milestone change. |
@dae how about a really radical solution - Optimize [all presets] right next to Sync? That way it's impossible to miss. |
I'm neutral on this change, but I wanted to ask what "by default" means. For new users/profiles only? Or would it take effect for everyone as soon as we download the new version (whatever number it ends up being) unless I intentionally for myself change it back to SM2 + custom scheduling? (I'm also wondering about Ankimobile, since that one often updates in the background without me noticing. If it's not just for new users/profiles and would go out to everyone, would I get an alert that the scheduler has changed?) |
No forced transition. If there is a previous installation of Anki on your device, the settings of that installation will be kept. If no previous installations are found aka this is the first time you are installing Anki, FSRS will be enabled by default. The option to enable SM-2 will be there for backward compatibility reasons, it's not like SM-2 will be completely deleted. That's how I imagine it, and I'm betting 100 bucks that's how it will be. |
I would like to bring @dae's attention to these issues I feel need to get fixed.
|
I wouldn't expect 2) to be solved any time soon, tbh. |
Wait, I completely forgot about the Hard problem. Dae, here are some options:
EDIT: Dae, please tell me that this issue is "I am considering making FSRS the default, but willing to postpone it if there are serious roadblocks" and NOT "I have already made up my mind, but feel free to shout into the void to get a false sense of involvement". Because right now I'm getting the vibes of the latter. |
Automatic optimization (without option to disable it and manually tweak the weights) is a very bad idea for many reasons. The biggest problem with FSRS is overfitting. To summarize what I have written above: if there is a repeating good pattern of answers, then FSRS will optimize it, for fewer steps (this is the main principle for any optimization model). But very likely, that this good pattern was exactly because of extra steps. I have exactly this situation, and because of it I have to manually tweak weights (mainly w_0) to get more realistic intervals. With AO, such manipulations will not be possible. Manual tweaking and the ability to leave a weights in one state, until the user wants to optimize them, should stay in Anki (as well as manual "learning/relearning steps"). Regarding "Make FSRS default", I fully agree. |
That's not how FSRS works. @L-M-Sherlock feel free to clear the misunderstanding. |
If you are so sure, please explain why my w_0 always increases after re-optimizing the weights? |
Not a contributor. But i'd like to propose to the team an option to choose one of two models after first launch, with some simplie description. And with clarification that model could be changed in settings later. Instead of just changing years-long default, proven to attract a lot of users. Also making users more aware by that of different models and importance of some settings parameters. I guess, way more users would try both models and different settings after initial launch, having that banner. "Before starting we'd like to ask. How do you prefer to learn.
|
Unfortunately, the Anki team chose the path of "Let's simplify everything by taking away the user's right to customize the app/theirs workflow and remove 'unnecessary' options" some time ago (if you want, you can read the PR for Load Balancer - #3230). So from now on there will never be a banner that lets the user decide something for himself because it is "too difficult for the average user". |
Set FSRS as the default, with 4 caveats (✨) Caveats (TL;DR)
Automatic OptimizationResult: Obvious win for FSRS (better results for 91.9% of users). ✨ Caveat 1: We should aim for automatic optimization in future. Treating FSRS without optimization as a separate scheduler ( Table: % of collections in the benchmark where Algorithm A (row) estimates the probability of recall more accurately than Algorithm B (column). source
Inverting the question: if we were on Misuse of 'Hard'Blocker (IMO), but I feel this can quickly be resolved with a warning, and improved further with future UX/onboarding efforts. ✨ Caveat 3: A new user to Anki under FSRS needs to be warned if misuse of Hard is detected. I'd be happy with something as simple as repurposing the old 'too many decks can slow down your collection' warning on the main screen if hard misuse is detected/suspected. Note: only an example; I don't have skin in the game regarding implementation. Reduction in Settings/User Control✨ Caveat 4: (nice to have) - simplify FSRS settings. Most of the settings pane can be hidden behind either an 'advanced' option, or prompted when FSRS is enabled for the first time, then hidden. Note: This affects power users, regular users are less likely to change settings in general. Net positive: too many advanced settings is intimidating and increases cognitive load. FSRS provides one lever for the user to pull (desired retention). Education (visually, in the deck options) around why 100% retention isn't ideal could do with improvement, but it's 'good enough'. The first question a large number of users have is "[I have an exam in X] what settings should I use?". SM-2s options offer numerous opportunities for a user to make mistakes (especially with how unintuitive spaced repetition is to a new user). Options in FSRS are a 'pit of success', and having 1 option to understand is easier than needing to understand intervals, graduation, the answer buttons, steps, lapses etc... If a power user wants control, they have the option to move back to a specialized algorithm. |
I've seen you say that before, but it seems to me it could just as easily be better outside of Anki-enthusiast communities. [That's not even considering the anti-authoritarian/"I just want to watch the world burn" bent that seems to be more common on Reddit than other parts of the internet. 😅 A certain number of your 18 misusers might have simply been lying. ] Don't the main reasons for Hard-misuse spring from Anki-guru-fostered and Anki-enthusiast-propagated ideas about how you can "game" the scheduling algorithm? You know, all the same stuff that has caused folks to show up asking for help for the first time with SM-2 settings that are unhinged from reality? I think average-Jane Anki user when faced with the 4 buttons, and no outside knowledge (for good or for ill) would be more likely to look at Again-Hard-Good-Easy and logically analyze them --
I acknowledge that I have no more support for my position than you do for yours ... but that's pretty much my point. Unless you have a survey of a randomized sample of the the "I've been using Anki for 5 years and I just found out about the manual/forum/subreddit/discord/YTers/etc today" contingent, the results will always be useful-but-pliable. No one should die on the hill of protecting that ephemeral 10% of users. And: a strong +1 to @david-allison 's point about measuring how-much-worse it is for the 8.1% against how-much-better it is for the 91.9%. Data, data, data. |
I have a solution for that: freeze the stability during same-day reviews if the user wants. It could be implemented in FSRS-rs. |
Here's a breakdown of the scheduler comparison data, for someone to create a decent looking histogram [warning: heavy page]: https://gist.github.com/david-allison/a623d76654e216478d107655bbb5b2dd See: #3616 (comment) for charts |
Sadly, me and Jarrett couldn't think of a good way to detect it. |
So the user would have to decide on their own? That's not a good idea. Most users won't be aware of problems with formulas. |
What Jarrett said in discord:
|
That's a different issue. I wasn't talking about short-term S, I was talking about misusing Hard. We can't detect it automatically. |
Yeah, I was saying we might detect that one automatically and have FSRS automatically freeze S. |
@L-M-Sherlock what about my old idea here?
Even if it's not super reliable, it's better than nothing. And the cost of a false positive is small: just mildly annoying the user once. |
Alright, here are 2 charts SM-2 vs FSRS-5 with optimized parameters: Obvious caveat: SM-2 wasn't designed to predict probabilities, and the only reason it does so in the benchmark is because Jarrett added extra formulas on top of it. Actually, let's compare them under the most generous (for SM-2) assumptions possible.
Even under these assumptions, FSRS-5 still outperforms SM-2 in 85.6% of cases. |
Without compelling evidence justifying the advantages of 4 buttons, I'd be more inclined to have 2 buttons be the default in a future release than do things like add non-symmetrical button distances, which will drive some users mad. I'd still rather that wait until we've got the different platforms sharing the same reviewer code though. |
Btw, Dae, what about this idea? |
I'm afraid I'm not fond of it. |
Is this to prevent misusing hard or did I miss the evidence that 2 buttons are more effective than 4 buttons? |
Yes, IF they use all buttons consistently. However |
For the main question
For the rest of the discussions
|
I'm sure it's been said before, but I'll just say it here. As an FSRS convert and fanboy, hard and easy buttons should simply be removed from Anki. |
As an consistent again, hard, good button user (with FSRS of course) I wholeheartedly disagree. But it can be a good idea to make two buttons the default. Almost half of the people use the four buttons inconsistently (like the data @Expertium provided shows). This negativly impacts their study results and retention. |
Anki novice here! Two anecdotes:
|
Yup, being consistent is hard. But we're probably not solving this issue anytime soon so a 2 button mode in the future should be the answer. |
In the next non-trivial (not 24.11.x) update, I think it's about time we enable FSRS out of the box. Any objections?
The text was updated successfully, but these errors were encountered: