FSRS4Anki => calmer Anki grâce au machine learning 🤯

Hello tout le monde,

Je suis curieux de savoir si certains d’entre vous ont déjà testé cet add-on récent pour Anki appelé FSRS4Anki et si vous avez des retours. Je viens juste de l’installer.

FSRS signifie Free Space-Repetition Scheduler, en gros il s’agit d’un nouveau « scheduler » pour Anki. Le scheduler est la partie du programme qui décide quel jour une carte est sensée revenir quand vous cliquez sur Difficile, Bon ou Facile, et surtout comment la masse de cartes se comporte dans le temps.

C’est assez compliqué à comprendre / expliquer pour moi, mais en gros le scheduler original d’Anki (appelé V2) a été beaucoup critiqué au cours des dernières années, notamment pour les grosses vagues qu’on adore se prendre dans la tronche dés qu’on ajoute beaucoup de mots…
Et surtout il ne prend pas vraiment en compte la manière dont votre cerveau fonctionne, c’est un modèle assez simpliste de la mémoire.
Du coup Anki a sorti officiellement une nouvelle version appellée V3 (activable dans Anki depuis ~ 1 an et qques il me semble) qui tente d’améliorer la manière dont Anki étale les révisions dans le temps et résoudre plusieurs problèmes. Mais grosso modo ça reste Anki…

FSRS4Anki est un scheduler complètement différent créé par un dévelopeur indépendant (apparemment basé en Chine), non rattaché à Anki, sorti il y a peu.

(La version 2.0.88 d’AnkiMobile pour iOS, maintenu par l’un des développeurs officiels d’Anki (Damien Elmes) mentionne qu’AnkiMobile est compatible avec les « schedulers alternatifs comme FSRS », donc même si FSRS ne fait pas partie d’Anki ils se connaissent et visiblement se donnent des coups de main… c’est bon signe :slight_smile: )

Il y a plusieurs publications scientifiques qui semblent prouver que le système est beaucoup, beaucoup plus efficace que le scheduler d’Anki (V2 ou V3).
Apparemment l’idée est d’utiliser les techniques d’intelligence artificielle (Machine learning) pour analyser la manière dont votre mémoire a fonctionné depuis que vous utilisez Anki,
et proposer un scheduling plus efficace sur le long terme, mais aussi moins Ă©puisant.

L’idée est de rectifier le scheduling d’Anki pour le rendre plus efficace pour la mémorisation, et surtout d’alléger les révisions inutiles ! Vous continuez d’utiliser Anki comme d’habitude, mais la distribution des révisions sera plus aérée, et surtout optimisée pour votre propre usage.

Et surtout il y a une option géniale qui permet de demander à Anki de vous ficher la paix certains jours de la semaine, tout en continuant de marcher de manière optimale. Personnellement j’ai mis le dimanche comme jour libre… :sweat_smile:

Pour vous donner une idée, je vous mets ci dessous ma charge de révisions (« Future due » ou révisions à venir) avant et après avoir utiliser le rescheduling de FSRS4Anki.
Faites très attention à l’unité des ordonnées à gauche, les nombres de reviews journalières a baissé de manière spectaculaire, autour de 200 par jour avant à 30-50 par jours après rectification !

J’imagine qu’avec un écart tellement grand ce nouveau système va faire peur à beaucoup de monde… et évidemment moi aussi j’ai un peu peur que ce soit une grosse erreur. Mais les arguments, publication scientifiques, et retours des utilisateurs jusqu’à présent sont plutôt extrêmement positifs. Tout est open source et le créateur de la FSRS4Anki est semble très compétent et surtout répond quasi immédiatement aux questions sur Reddit. Donc je me jette à l’eau, et je vous donnerai mes retours plus en détail dans les mois qui viennent :slight_smile:

Je vais vous mettre un petit tuto dans un poste en dessous, histoire d’alléger un peu la lecture. Et évidemment on peut en discuter, je suis vraiment curieux de savoir ce que les gens en pense.

3 « J'aime »

Maintenant petit tuto…
Pour info ça marche avec Anki sur ordi, et AnkiMobile sur iOS (pas encore sur Android malheureusement…)

ATTENTION !!
C’est un outil assez avancé qui demande certaines connaissances de base en programmation pour être vraiment à l’aise, notamment Google Collab pour la partie machine learning. Si c’est nouveau pour vous mais que vous voulez tenter, je ferai de mon mieux pour vous aider ci dessous…

Alors comment l’utiliser ?

  1. déjà soyez sûr d’avoir la dernière version d’Anki, et aussi que votre AnkiMobile est à jour sur iOS ou iPad (à nouveau, pas de version Android… mais ça peut être contourné !)

  2. Déjà il faut installer l’add-on FSRS4AnkiHelper dans Anki sur PC ou Mac
    FSRS4Anki Helper - AnkiWeb
    On l’utilisera un peu plus tard…

  3. Ensuite vous devez suivre les instructions sur cette page à partir de « Tutorial »
    GitHub - open-spaced-repetition/fsrs4anki: A modern Anki custom scheduling based on free spaced repetition scheduler algorithm

  4. Activer le scheduler V3 d’Anki,
    puis copier le code du scheduler dans les options de votre paquet Anki principal.
    Ça se passe tout en bas de la page, dans la section « Custom scheduling »

Sur le site Github, faites bien attention à copier la bonne version du code du scheduler qui correspond à votre version Anki, soit Qt6 (fsrs4anki_scheduler.js) soit Qt5 (fsrs4anki_scheduler_qt5.js). Personnellement j’utilise encore certains vieux add-ons d’Anki donc je suis toujours sur Qt5.

  1. Ensuite voici la partie délicate, décrite par la section « 2.1 Generate Personalized Parameters », qui permet d’entraîner l’intelligence artificielle avec vos données d’usage Anki.

Vous devez exporter toute votre collection de carte Anki depuis Anki Desktop.
Allez dans Fichier → Exporter, puis exporter les données de cette manière

Ensuite vous devez aller sur Google Colab, un site qui permet d’utiliser gratuitement une machine virtuelle puissante qui va faire tous les calculs pour vous. Le code est déjà entré, il ne reste qu’à démarrer. Pas de traitement de vos données vraiment personnelles ici, juste vos données d’usage Anki, comment vos révisions se sont passées sur chacun de vos cartes, etc.

Le tutoriel décrit en détail comment faire : uploader vos données sur Colab, changer le nom du fichier puis lancer l’entraînement, donc suivez le guide.
Ça prend seulement quelques minutes, et à la fin vous obtenez dans la section « 2.3 Result » une liste de « poids » que vous pouvez copier dans le code copié auparavant dans Anki.
Ces poids vont permettre à l’algorithme FSRS de s’ajuster finement à votre profil.

  1. Finalement après avoir mis les poids à jour dans le code, vous devez faire une opération assez lourde de mise à jour ou « rescheduling » de vos cartes déjà existantes.

Ça se passe dans le menu Tools d’Anki > FSRS4Anki Helper.
Avant de lancer, soyez sûrs d’activer « Load balance when rescheduling », qui rendra vos révisions à venir bien homogènes. Ensuite lancer « Reschedule all cards », option qui peut prendre plusieurs minutes.
Enfin, vous pouvez cliquer sur « Disperse all siblings » une fonction supplémentaire qui va s’assurer que les cartes « soeurs » (type cartes à 2 ou 3 sens) sont bien séparées les unes des autres et ne s’influencent pas.

Attention : L’auteur de FSRS4Anki suggère de faire tous les mois une mise à jour de vos poids sur Google Colab, à partir d’une copie fraîche de vos données Anki.
Juste après chaque mise à jour des poids, il suggère également de faire un « reschedule all cards » + « disperse all siblings », pour que l’algorithme « prenne bien » en gros. Apparemment c’est surtout utile les premiers moids mais on verra ce que ça donne à long terme…

Dernière remarque, faites bien la distinction entre « reschedule all cards » (FSRS Helper) et FSRS4Anki tout court. Le second change la manière dont Anki attribute un interval (2 jours, 3 mois, 1 an…) à vos réponses lors des révisions.
Le premier permet en gros de « réharmoniser » vos paquets Anki anciens pour qu’ils se comportent comme si vous aviez utilisé FSRS4Anki depuis le début. Et au passage soulager grandement votre temps de révisions ! C’est pour cela qu’il n’est nécessaire de le faire qu’une fois par mois.

PAR CONTRE SI VOUS UTILISEZ ANKIDROID :
Vous pouvez utiliser FSRS4Anki indirectement en faisant un reschedule chaque jours. C’est un peu ennuyeux j’imagine de synchroniser le téléphone / reschedule avec FSRS4Anki Helper / renvoyer vers le téléphone… mais c’est pour l’instant le seul moyen pour bénéficier du nouveau système sur téléphone Android.

Voilà voilà, j’espère que ça aidera certains ! Si vous avez des questions je reste dispo ici pour en discuter avec plaisir.

5 « J'aime »

Salut, je ne serais pas contre une petite update ? si tu utilises toujours ce nouveau scheduler car je me tâte à l’utiliser.

Je l’utilise toujours, plus que jamais !
Leur algorithme s’améliore constamment, et surtout le niveau de popularité du projet est tel que l’équipe officielle d’Anki est en train d’aider à l’intégrer comme scheduler optionnel directement dans le logiciel.

J’ai d’ailleurs refait une optimisation des « poids Â» aujourd’hui après un mois et quelques. Après plusieurs semaines intenses en rĂ©visions et beaucoup d’ajout de vocabulaire difficile HSK5 et 6 (~130-140 / jour rien qu’en vocabulaire), je commençais Ă  en avoir marre. Après avoir copiĂ© les nouveaux poids, et dĂ©clenchĂ© la fonction « reschedule all cards Â», je suis retombĂ© entre 60 et 80 reviews / jour prĂ©vues pour les jours Ă  venir.
Pour tous mes decks confondus (vocabulaire, chinois classique, caractères traditionels->simplifiés, groupes de pinyin complexes, révisions podcasts etc.) je suis passé de 200 / jour à 120 / jour.

La bonne nouvelle aussi c’est que leur système est un peu plus facile à utiliser, avec un site légèrement plus intuitif pour calculer les poids à partir de ton archive Anki.
Dans cette page GitHub - open-spaced-repetition/fsrs4anki: A modern Anki custom scheduling based on free spaced repetition scheduler algorithm
regarde la partie « Step 2.1 Training the FSRS Parameters Â»
et en particulier mĂ©thode 2 « training with Hugging Face Â»
Je l’ai testé aujourd’hui ça marche très bien, c’est juste un peu long (une quinzaine de minutes) mais dans l’idéal on le fait qu’une fois tous les un ou deux mois.

Le résultat dépend évidemment de ton historique de révisions (il vaut mieux avoir fait quelques mois de révisions sur Anki pour que ça fonctionne bien), et aussi des options de FSRS4Anki.
Notamment je te conseille de laisser une rĂ©tention dĂ©sirĂ©e autour de 0.9 dans le code que tu auras copiĂ© dans ton champ « custom scheduler Â», sinon il est possible que ton nombre de rĂ©visions redevienne Ă©levĂ©.

Aussi, j’ai finalement désactivé le système permettant de libérer un jour par semaine. C’est une bonne idée sur le papier d’être tranquille le weekend, mais finalement ça permet de faire moins de reviews le reste de la semaine.

3 « J'aime »

Incroyable, ça a l’air vraiment sympa ce nouveau système. J’ai vu qu’il comptait aussi l’implémenter dans le logiciel de base. Je vais tester ça ce week-end.

Il n’y a apparemment pas encore ce support sur android, ce qui me gene un peu, meme si on peut reprogrammer automatiquement les sync vers le PC si j’ai bien compris.

Hâte de voir ce que cela va donner ! Merci pour ta réponse, bonne semaine :slight_smile:

Oui exactement, pas de version Android (c’était aussi le cas pour iOS jusqu’à récemment), c’est exactement pour ça qu’ils ont fait l’add-on.

Sur Android l’algo n’est pas là pour modifier les intervalles à chaque réponse typ (1min, 5j, 7j, 15j)
donc tu n’as pas une idée complètement claire de ce que ça va donner au final. Mais quand tu synchronizes à l’ordi tu peux demander de “rescheduler” automatiquement les dernières cartes qui ont été revues. Ça permet de faire un “smoothing” de ton nombre de révisions à venir, quasi identique au scheduler custom, juste il vaut mieux te synchroniser tous les soirs pour en profiter au maximum

2 « J'aime »