FSRS parameters get worse when optimizing all presets

If I optimize individual presets, I get the message “The FSRS parameters currently appear to be optimal.” However, if I click “Optimize all presets”, the parameters get replaced by worse parameters.

Version ⁨24.04.2 (a1fa865b)⁩


@L.M.Sherlock please look into this

Could you provide your collection and the instructions to reproduce the error? I cannot reproduce this error.

I have shared the apkg file through Collect review data for SRS research.

Steps to reproduce:

  • Open the deck options of the Test deck (parent deck) and click Optimize.
  • See the message “The FSRS parameters currently appear to be optimal.”
  • Click Optimize all presets.
  • Reopen the deck options of Test deck and see that the parameters have been updated. If you check the RMSE, you can see that the RMSE becomes worse.

Interestingly, if I search for is:suspended -tag:studied in the Browser and then delete all the cards that appear, the issue disappears.

The studied tag was added to those cards that returned on searching for -is:new.

@dae, when I tried to upload the apkg here, I got the following message. Probably, you should add apkg to the list of authorized extensions.

Sorry, the file you are trying to upload is not authorized (authorized extensions: jpg, jpeg, png, gif, heic, heif, webp, avif).

1 Like

Thanks for that collection! I reproduced your issue and found that optimize all presets doesn’t exclude suspended cards. That caused the inconsistency. I fixed it in Fix/exclude suspended cards when optimize all presets by L-M-Sherlock · Pull Request #3198 · ankitects/anki · GitHub


Thanks for the fix!

But, I don’t think this explains why deleting the cards shown on searching for is:suspended -tag:studied caused the issue to disappear. These cards are new cards and shouldn’t have any revlogs. Maybe there is another issue?

But that patch has solved this issue completely. I don’t know what’s tag:studied. It’s not a built-in query.

I think vaibhav tagged already studied cards that were suspended. So is:suspended - tag:studied are suspended cards without any revlogs. Deleting them shouldn’t in any case cause the issue to cease. That’s what I understood.

@sorata got it right.

The following screenshot explains the problem better. The supposedly “new” cards have revlogs and these revlogs are also being used by FSRS.

I have shared an apkg with just 8 cards on the Google Form that reproduces this problem.

Having just this card in the entire collection also reproduces the problem:

Edit 2:
This single “new” card is also being used for optimizing the parameters.

Sorry, I can’t share the screen recording here. But, if you delete all cards in the shared apkg except this card, replace the parameters by 0,0,0… and then click Optimize, you would see that new parameters are being generated, using just this single “new” card.

@dae, if possible, I think video files (like mp4, webm, etc.) should also be added to the list of allowed extensions in this forum. If there is a concern about users uploading large files, a limit of file size may be applied. For example, the screen recording that I was trying to share was just 243 KB.

1 Like

Uploads don’t expire, so the storage requirements will become a burden over time. I’d prefer users use a third-party site for large files like .apkg files, and videos can be uploaded to sites like imgur.com

If storage requirements is the actual concern, a limitation of file size makes more sense than a limitation of file extension.

Depending upon the amount of information contained (resolution, number of cards, etc.) and the compression applied, a JPG can easily be 3-4 MB and an apkg or an mp4 be only a few KBs.

For files larger than a specific size (e.g. 500 KB), the user can be asked to use third-party services.

1 Like

Discourse can automatically shrink down images, but fair enough. I’ve made some changes that should hopefully allow videos and colpkg/apkg to be uploaded if they’re under 512kB.


@L.M.Sherlock, a reminder to investigate the issue mentioned in FSRS parameters get worse when optimizing all presets - #9 by vaibhav

In short, the optimizer is using the revlogs before the Reset entry, which suggests that the fix added in Fix/ignore revlogs before Forget entry by L-M-Sherlock · Pull Request #3002 · ankitects/anki · GitHub is not working properly.

Thanks for your reminder.

Fixed in: Fix/ignore revlogs when there is not learn entry after the last forget entry by L-M-Sherlock · Pull Request #3199 · ankitects/anki (github.com)