-
-
Notifications
You must be signed in to change notification settings - Fork 9
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
Discussing the new dataset and benchmark #129
Comments
The parameters are very similar, so I think the first question doesn't matter.
|
Oh, and please upload the dataset here: https://huggingface.co/open-spaced-repetition |
I have asked for the permission of Dae. But I haven't received the reply. I have uploaded it, but the repo is still private now. |
The dataset is hosted at: https://huggingface.co/datasets/open-spaced-repetition/anki-revlogs-10k |
Nice. When you will benchmark optimizing parameters on separate decks/presets, please don't foregt to add the number of decks/presets to the .jsonl output file. |
Copying what I said on Discord
|
Also @L-M-Sherlock I would really appreciate if you implemented number 3 from my original comment in this issue. I want to see how much we can improve FSRS with sibling information. |
I find a problem when I try to optimize parameters on separate decks/presets. If the user deleted their old cards, we will cannot know the siblings and preset of cards from old review logs. So we have to discard these review logs in the dataset. Edit: I will fill |
The result shows that optimization partitioned by preset is worse than optimizing on whole collection:
|
Welp... |
Your description is unclear to me. Could you tell me what the expected dataset for those rows is?
|
Everything is copied from the sibling. Card ID, interval length, grade, everything. Just insert the sibling data into the card's data. In order to do that, you will need to calculate the order in which reviews happened. |
I guess we don't need to insert the sibling data. We just need to copy the note's data and add a new column to mark the |
I have a hard time imagining it. But if you know how to do it, ok. Remember, we need the grade and the interval length from the sibling review. And the order must be correct: if card B (sibling) was reviewed between, for example the 2nd and the 3rd reviews of card A, FSRS must process review 1, then review 2, then the sibling pseudoreview, then review 3. |
Did you check my #129 (comment)? They have been sorted. |
I did it by hand: card 2703
card 2702
card 2704
Are they expected? |
Yes, looks correct. |
Seems like analysis.py isn't working with this new .jsonl file
|
9a22585 supports the new .jsonl file. |
Thank you, although I already analyzed what I wanted anyway The correlation coefficient between the average RMSE and the number of presets is virtually 0. Visually, I was expecting to see a U-shaped curve with a minimum that corresponds to the best number of presets, but nope. And according to the benchmark, RMSE is actually performs worse by 3-4% (relative) when FSRS is optimized on several presets rather than on the entire collection. Note that I can't extract the number of reviews per each preset from the file Jarrett gave me, only the total number of reviews across all presets. P.S. Out of 9999 collections, the maximum number of presets is 130. So DerIshmaelite, your 273 (or whatever number it was) is literally off the charts. |
If you calculate RMSE on lower number of reviews do you not get lower RMSE too? (Not following this conversation too closely so might have misunderstood the fundamentals). |
You get higher RMSE on low number of reviews |
Yeah, I meant that one. Actually, in layman's terms, I'm asking whether the following is still valid or not?
This works every single time if you have enough reviews in a singular deck. |
That I don't know. |
@L-M-Sherlock please add FSRS-5-presets to the results table |
ankitects/anki#3511 (comment)
I have a few questions regarding that
sibling_review
, with values being 0 or 1Choose whichever is more convenient. Then insert these pseudoreviews into cards' histories. That way, when running the optimizer, we can use those pseudoreviews to update the memory state. I'll add new parameters.
Of course, we can't use this in Anki, but it's interesting from a theoretical perspective.
Also, please add the total number of decks used for optimization to the .jsonl output file. I want to plot RMSE as a function of the number of decks used for optimization, to see if there is a magical number of decks such that splitting them any further is not beneficial, or even detrimental.
@user1823 you are welcome to participate
The text was updated successfully, but these errors were encountered: