Anki 23.10 Beta 1-4

The right button should be “Analyze”. I noticed the same: after calculating optimal retension the Analyze button becomes a Cancel button :slight_smile:

Sorting by Retrievability either doesn’t work, or works in a way that I don’t understand. Normally, values should either monotonically decrease or monotonically increase. I pressed sort, yet, as you can see on the screenshot, it doesn’t look sorted at all. Sorting by Difficulty and Stability works fine.

2 Likes

I echo the comments on UI and optimisation. It is not clear to me exactly what is being ran through the optimizer when I click optimize, even with the default preset containing all my decks. This is - in part - I think because Anki includes deleted cards/old card data. This means that:

  1. When I export cards to the independent FSRS optimizer (the python library or the jupyter notebook), the whole deck or collection gets ran through, regardless of deleted status, afaik. This for me results in the following (I only use 1 and 3 buttons typically):
w = [1.8113, 5.9065, 34.7819, 34.7819, 3.7224, 1.1459, 1.2364, 0.0, 1.5076, 0.1, 0.8101, 1.5282, 0.1949, 0.3846, 1.2182, 0.3359, 2.61]
  1. When I run FSRS as built in to Anki however on the whole collection, the optimizer runs on 64711 reviews, presumably this is the reviews for the 13768 cards currently in rotation, it looks about right… Or maybe it caps it to a year, or something? The results I get this way are:
0.8646, 3.1900, 22.6096, 22.6096, 4.8132, 0.8461, 1.0920, 0.0030, 1.5569, 0.1030, 0.9956, 2.0585, 0.1728, 0.3025, 1.3214, 0.3909, 2.6100

This is quite the difference. Not necessarily an issue - actually I don’t care that much - but I do wonder if results wouldn’t be better taking account of deleted cards as well, if that IS what is happening.

  1. It is not easy to figure out if that IS what is happening from Anki stats. That review count doesn’t match all decks, current deck, current preset, etc. in the stats, presumably because of deleted cards. I understand why deleted cards are kept for statistics and I agree with the motivation, but it would be useful to: (a) be able to hide them in statistics for purposes such as this, (b) perhaps to be able to toggle FSRS to use deleted card data or not as per above, presuming the deleted cards would match the query as ran in the optimiser box if they were not deleted, and not just the cards currently in rotation (ie. you can’t have a deleted card in rotation.)

Edit: miswrote some stuff

4 Likes

Some minor suggestions regarding wording

  1. Change “Compute” to “Optimize” and change “Compute optimal weights” to “Optimize FSRS parameters”
    image

  2. Change “Smaller numbers indicate better memory estimates” to “Smaller numbers indicate a better fit to your repetition history”
    image

  3. Change “When FSRS is enabled, interday (re)learning steps are not recommended.” to “When FSRS is enabled, it is recommended to use (re)learning steps shorter than 1 day.”
    image

  4. Change “The higher the difficulty, the more frequently a card will appear.” to “The higher the difficulty, the harder it is to remember.”
    image

1 Like

When editing an I/O note to add new cards you have to make an extra click to deselect the last form, otherwise changes/new cards will not be saved (which can be annoying if you have just added a bunch of cards):

2

1 Like

Some more suggestions:

  1. Desired retention should have a description that is displayed when user clicks on it (just like other settings)
    image
  2. I think expressing difficulty as a percentage is confusing because users might mistakenly believe that difficulty can be interpreted as some kind of probability, just like retrievability. I think the original 1-10 scale is good.
  3. If user tries to optimize parameters and there’s not enough data, use teh default parameters instead and display a warning.
  4. Add an option to automatically reoptimize the parameters every N months
  5. Add a graph that shows the distribution of stability to the stats. It has graphs for R and D, but not for S
  6. Please add a button to reschedule all cards

Also, I noticed that cards still have D and S in their custom data, even after deleting the scheduler code and turning the helper add-on off.

2 Likes

BUG: Training fails for newly created presets

To get per-deck training I created a new per-deck preset and the training failed. Seems the preset is not applied to the cards until I quit the deck options, so the preset query cannot work. After quitting the options and opening them again the new preset is applied to the database and the preset query in the training works.

I understand now wanting to commit to the database while still in the form, but when training the preset currently selected in the form should be temporarily applied at least.

Loop Error when “Compute optimal retention”

@L-M-Sherlock this happening when i try to “Compute optimal retention”

I open this issue to send you my collection:

Is the AnkiMobile Beta app going to be updated or are we waiting for a more stable release?

FSRS settings apply to any decks using that preset.

Thanks, logged on Creating a second polygon clears out the previous one · Issue #2679 · ankitects/anki · GitHub

Thanks, should be fixed now

AnkiWeb already supports the new version format.

The filtering code currently treats cards without any learning steps as new. Perhaps we should only do that when training, @L.M.Sherlock?

Will look into these.

Reviews from deleted cards are not currently included - the only way we could do that is if we trained on the entire collection, since we don’t know which deck those reviews belong to.

The current AnkiMobile beta includes this support. I can’t change the name from 23.09 without having to go through another beta review process, so I’ll change it to 23.10 only once it’s ready for a stable release.

2 Likes

I prefer the way custom scheduling works. You can add parameters and they apply to all subdecks. I have a deck with maybe 20 subdecks(Zanki). It would be a bother to change the preset on all of them.

1 Like

You can save a preset to all subdecks using that screen.

1 Like

Logged on Occlusions are not saved when switching notes in browser · Issue #2680 · ankitects/anki · GitHub

Logged on FSRS options need to be switched to SpinBoxes, and need documentation written for them · Issue #2681 · ankitects/anki · GitHub

I’m afraid I’m not sure I agree with you there. The advantage of a percentage is it conveys the possible range of values, which you don’t get with a number like 7.3.

Would that add much over the existing intervals graph?

This will be handled by the helper for now, but will probably come in a future update.

The helper could clean these up when it reschedules cards.

Beta 2 is now available: Releases · ankitects/anki · GitHub

6 Likes

It is recommended to put the new Stop timer on answer setting option and the Show answer timer in Options together, because they are after all for the same object, and it is not logical to separate them, nor is it good for the user to think about and apply them in a related way.

1 Like

@abdo this is a fair point, maybe it should be stored in the preset instead of the global config?

1 Like

Makes sense. I added it as a global option merely as a personal preference (I use the same timer settings for all decks and prefer if they are all global). I’ll prepare a PR.

I think it’s safe to skip these cards all the time. Because their first ratings are ambiguous.

Progress-Indicator Issues

The progress percentage indicator here always seems to update in 10’s increments for me, (10%, 20%, …) but it has two decimal points of precision which are totally unnecessary

image

The retention progress formatting seems to be happening here:

I would change that at least to a single decimal place (.toFixed(1)) or cast the percentage to an integer, (I don’t know js/ts, but in python I would have wrapped it in an int()). The 10% increments might be due to implementation of the algorithm and nothing to worry about, I just hope there is no accidental precision loss anywhere.

While in that file I saw that there’s also some renderWeightProgress code, though I don’t remember seeing a progressbar for the weights calculations. I never minded because weights calculations was fast but it seems like for me the function returns "" due to if (!val || !val.total) (see here).

Signal when minimum or maximum of optimal retention was returned

Another thing: For me the returned “optimal retention” was 0.8 for most subdeck presets, which is the minimum value. I would somehow signal to the user that the minimum value was returned (I just know from looking at the code and following discussions) and maybe also add some messaging how much to trust that optimal retention. I think it had been labelled “experimental” in the FSRS notebook in the past.

Edit: I just realized that to avoid always getting a 0.8 retention recommendation I need to increase the intended study time from the 30 minutes. I didn’t expect that would have that much of an effect so didn’t bother fine-tuning the study time. In the final release there should definitely be some documentation for that in the tooltips and the manual (I hope there will be an FSRS manual section).

My interpretation is: So previously I had a 0.88 retention in the custom scheduler and added 5-10 cards/day, which resulted in a 30-45 min study time. If I get a 0.8 “optimal retention” it seems that the algorithm “thinks” that I can learn more cards in the same time by lowering the retention, but increasing the number of daily new cards instead (before I kept study time low by using a low new-card value). But the algorithm doesn’t give me a sub-0.8 recommendation because studying Anki is no fun when you need to press again for more than 20% of you cards.


Otherwise thanks a lot for addressing most of the UX issues that I had stated so far :pray:

1 Like

Error code for ankihub when starting anki 23.10 beta 2.