3 points par GN⁺ 2024-01-16 | 1 commentaires | Partager sur WhatsApp
  • Le wiki ABC of FSRS de FSRS, qui optimise les calendriers de révision, a été déplacé de fsrs4anki vers le nouveau wiki awesome-fsrs
  • Les ressources de recherche liées de MaiMemo couvrent respectivement l’optimisation de la planification de la répétition espacée et la modélisation de la dynamique de la mémoire dans des articles de l’ACM KDD et de l’IEEE TKDE
  • Un article séparé présente le processus de recherche sur les algorithmes de répétition espacée à travers l’expérience d’un étudiant de premier cycle ayant publié un article à l’ACM KDD
  • FSRS-Anki-20k et anki-revlogs-10k sont également proposés comme jeux de données open source incluant des caractéristiques de séries temporelles
  • FSRS est un projet open source indépendant piloté par la communauté, et le soutien d’organisations comme MaiMemo Inc. permet aux principaux contributeurs de s’y investir durablement

ABC of FSRS déplacé vers un nouveau wiki

Ressources de recherche sur la répétition espacée

Article sur l’expérience de recherche

Jeux de données publics

Projet communautaire et soutien

  • FSRS est un projet open source indépendant piloté par la communauté
  • Des remerciements sont adressés au soutien d’organisations comme MaiMemo Inc.
  • Le soutien de MaiMemo permet à des contributeurs clés comme Jarrett Ye de consacrer du temps et leur expertise à FSRS
  • Cette collaboration aide FSRS à rester un algorithme de répétition espacée de référence, librement accessible à tous

1 commentaires

 
GN⁺ 2024-01-16
Commentaires sur Hacker News
  • Une façon largement sous-estimée d’améliorer la répétition espacée consiste à rendre les cartes plus faciles. J’ai découvert que des cartes efficaces peuvent être étonnamment simples
    Au début, je mémorisais du vocabulaire français avec Anki en créant des cartes bidirectionnelles anglais↔français, mais une fois arrivé à quelques centaines de cartes, le trop grand nombre de synonymes est devenu pénible
    Ensuite, en suivant les conseils de Katzumoto pour apprendre le japonais, j’ai commencé à coller des paragraphes entiers d’ebooks ou de pages web et à créer des cartes à trous où un seul mot était masqué ; c’était simple, mais efficace
    Puis je suis devenu encore plus paresseux : je ne masquais que la moitié du mot, ou bien je mettais le mot en gras et je validais si j’arrivais à peu près à m’en souvenir dans le contexte, et ça marchait encore mieux
    Quand une carte apparaissait et que je me disais « ah, encore celle-là ? », je la supprimais, et après 3 erreurs j’avais configuré Anki pour la suspendre définitivement. Si c’était vraiment un mot important, je le reverrais bientôt dans un meilleur contexte, donc ce n’était pas un problème, et mon vocabulaire français continuait d’augmenter rapidement
    Je pense que la plus grande amélioration viendra davantage de l’amélioration du format des cartes que d’un meilleur algorithme de répétition espacée, et faire des cartes trop faciles pour ne pas être utiles est étonnamment difficile. C’est le résultat de plus de 35 000 révisions Anki dans trois langues

    • C’est exactement comme ça qu’il faut utiliser un SRS. Les geeks comme nous ont facilement tendance à poursuivre des gains de 1 % via un algorithme de répétition plus intelligent ou une meilleure méthode de saisie, alors que le véritable mode d’échec est bien plus banal : les gens abandonnent
      Je vois souvent des gens bourrer Anki de milliers de cartes pendant leur premier mois d’apprentissage, puis un ou deux mois plus tard se retrouver écrasés par le volume de révisions, jusqu’à ce que les révisions ressemblent à une corvée et qu’ils arrêtent
      Les deux conseils qui font la différence sont les suivants : rendre les cartes un peu « trop » faciles, et être assez sélectif sur les cartes qu’on ajoute
      Quand on crée une carte au départ, on est justement en train d’étudier le sujet, donc tout est vif dans la tête et on a envie de faire des cartes intéressantes et stimulantes pour son moi présent. Mais une ou deux semaines plus tard, mieux vaut des cartes suffisamment faciles pour simplement réveiller la mémoire, plutôt que de créer de la confusion
      Au lieu de verser dans Anki l’équivalent d’un livre entier de phrases, mieux vaut se promener lentement dans un verger et ne cueillir qu’une ou deux des meilleures pommes. Les pommes pourries, c’est-à-dire les cartes sans intérêt ou trop difficiles, contaminent tout le deck et finissent par faire éviter les révisions elles-mêmes
    • J’ai fait l’inverse. J’ai effectué 70 000 révisions Anki dans une langue, et ajouter soigneusement du contexte m’a généralement semblé être une perte de temps lors de la création des cartes
      Les révisions vont en général vite, donc le temps de création représente une part étonnamment importante du temps total par carte. Ces temps-ci, je mets de moins en moins de contexte, et les cartes simples par défaut générées par le plugin de dictionnaire suffisent souvent
      Ajouter du contexte au recto d’une carte n’est presque utile que lorsqu’il s’agit d’un terme technique qui n’apparaît pratiquement que dans ce contexte. Autrement dit, quand cela ne vaut pas la peine d’être appris de façon autonome
      Cela dit, je trouve bien de faire ça paresseusement et d’être indulgent avec soi-même. Même pour noter ses réponses, je suis assez souple : je ne vise pas une maîtrise parfaite de niveau natif, mais simplement le fait d’avoir compris suffisamment pour éviter toute confusion réelle
    • À l’origine, les 20 règles de rédaction des cartes SRS de SuperMemo sont une mine d’or : https://www.supermemo.com/en/blog/twenty-rules-of-formulating-knowledge
      Elles amélioreront fortement la qualité des cartes
    • J’ai une réflexion similaire pour l’apprentissage de la guitare. Il peut être utile de faire traiter un même problème de plusieurs façons par le cerveau
      Par exemple, on pourrait bourriner les notes du manche à coups de répétition espacée, mais en pratique mélanger les contextes s’est révélé plus efficace
      Certaines semaines, par paresse, je ne fais que des exercices sur le nom des notes ; d’autres semaines, je bidouille des gammes bizarres comme la gamme hongroise ; d’autres encore, j’essaie des progressions d’accords en arpèges ou en power chords, ou je tente de reproduire le son ou la sensation d’un morceau précis
      Avec le temps, le cerveau commence à faire des connexions. On a des déclics du genre « ça, c’est juste du sol mineur », « ça, c’est du sol majeur avec certaines notes sautées », « avec ce motif, on pourrait peut-être le jouer comme ça ? »
      Il y a aussi cette drôle d’impression que la vitesse à laquelle on réalise ce qu’on ne sait pas augmente bien plus vite que celle à laquelle on croit savoir. Malgré tout, je pense essayer un algorithme de répétition espacée qui me lancerait de petites tâches de guitare de 5 à 10 minutes pour développer à la fois la mémoire musculaire et les connexions neuronales
    • J’utilise Anki depuis longtemps, par intermittence, pour l’apprentissage des langues, et récemment aussi pour étudier des cours universitaires en ligne
      Comme le contenu est plus varié que lorsqu’il ne s’agit que de langue, j’ai l’impression que l’impact du format des cartes est bien plus fort. Même dans des decks créés par d’autres, je corrige souvent la formulation du côté réponse, et cela produit une différence sensible sur le taux de rétention
      Les réponses concises et naturelles s’ancrent mieux. Si une carte te paraît maladroite, mieux vaut ne pas hésiter à la corriger
  • J’ai mémorisé des dizaines de milliers de mots de langues étrangères avec Anki, et quand une carte contient une image, cela m’a toujours aidé à me souvenir du mot
    En ce moment, je mène un projet peut-être un peu idiot : mémoriser 750 cartes d’un jeu de quiz en famille. Toutes les réponses aux questions sont des années. Par exemple : « En quelle année Coca Cola Light est-il sorti ? »
    Si je crée des images pour les cartes avec Midjourney, je peux m’en souvenir beaucoup plus facilement
    J’utilise un système avec une figure représentative par siècle. Einstein représente 1900~2000, Marie-Antoinette représente 1700~1800
    Les objets représentent les décennies. Une voiture des années 60 pour les années 60, une veste à épaulettes pour les années 80, etc. Je traite aussi le dernier chiffre de manière similaire
    Je demande à Midjourney de transformer ces éléments en images de style cartoon, puis je garde les images les plus drôles ou les plus absurdes pour les mettre au verso des cartes Anki. Les images sont souvent plus faciles à rappeler que l’année elle-même

    • Il y a trois points. Premièrement, tu devrais jeter un œil au PAO, une technique mnémotechnique basée sur les images
      Deuxièmement, comme le rappel peut être moins bon dans une situation réelle sans image, il faut périodiquement se tester avec et sans image
      Troisièmement, je me demande si ce quiz est Trivial Pursuit. J’ai un ami qui a délibérément mémorisé toutes les cartes de l’édition originale Genus
    • Je fais actuellement la même chose avec la géographie : drapeaux, capitales, etc. Ça donnera probablement un bonus de +5 environ lors de la plupart des soirées quiz
    • Ce système est brillant. Les dates m’ont toujours posé problème, donc je vais te voler l’idée pour l’utiliser moi aussi
  • Intéressant. D’après les benchmarks, avec cet algorithme il faudrait réviser 20 à 30 % de cartes en moins qu’avec l’algorithme Anki classique
    J’ai publié il y a quelques jours une implémentation Python de l’algorithme classique SM-2 utilisé sur https://python.cards, mais on pourrait peut-être la remplacer par FSRS : https://github.com/vlopezferrando/simple-spaced-repetition

    • python.cards a l’air bien. Ce serait bien d’ajouter quelques exemples
      Je me demande aussi s’il est envisagé de publier la web app en open source. On dirait que cela pourrait devenir un format populaire pour montrer des flashcards dans un domaine précis, par exemple pour des étudiants qui apprennent X
  • D’après l’explication, FSRS semble lui aussi continuer à attribuer une date de révision précise à chaque carte. C’est à cause de cette fonctionnalité que j’ai arrêté Anki
    Je ne suis plus étudiant et je ne passe pas d’examens, donc je veux juste m’exercer quand j’en ai envie. Il peut y avoir de longs intervalles entre les sessions, et je n’ai pas envie d’avoir l’impression d’accumuler des cartes en retard
    Anki est une excellente app, mais j’aimerais qu’il existe un algorithme qui, au lieu d’attribuer des dates de révision, échantillonne les cartes aléatoirement tout en les choisissant en proportion de leur probabilité de nécessiter une révision urgente
    Ce serait bien si une approche comme https://github.com/fasiha/ebisu était possible via un plugin Anki, ou s’il existait une app similaire utilisant un format de cartes ouvert

    • Mais la mémoire ne fonctionne pas comme ça. On ne peut pas laisser des souvenirs en suspens comme vous le proposez. Il y a une raison pour laquelle FSRS suit une courbe de mémoire personnalisée
    • S’exercer quand on en a envie, avec la possibilité de longues pauses entre les sessions, c’est déjà la manière dont fonctionne un SRS
      Simplement, une fois que vous avez vidé tout le « retard », vous ne pouvez plus vous exercer quand vous le voulez et devez attendre un certain temps avant de pouvoir recommencer
    • J’ai essayé de créer une app à moitié dans ce genre, et ça a très mal marché
      Les choses dont je me souvenais rendaient les répétitions agaçantes, et une bonne partie de celles que j’avais oubliées l’étaient complètement. Du coup, les répétitions perdaient presque tout leur intérêt et la progression était très lente
      L’essentiel est de réviser juste avant d’oublier, ce qui est difficile sans dates limites et planification
    • C’est exactement ce que je construis sur Phrasing.app. Au départ, j’utilisais ebisu, mais j’ai fini par prendre un fork de FSRS et le modifier en profondeur
      En pratique, je n’utilise pas d’échéances et, en dehors de certaines fonctions d’analyse qui m’ont été demandées, j’essaie de maintenir les utilisateurs à plusieurs niveaux de difficulté
      J’accorde plus d’importance au fait d’avancer qu’au fait d’éliminer 100 % du retard. Si un mot est vraiment important, il sera mis en favori ou revu de nouveau
      Ce n’est pas une app de flashcards publique, et l’accent est surtout mis sur l’extraction automatique de phrases en langue étrangère. Mais je répondrai volontiers aux questions sur mon expérience de modification de FSRS
      Vous pouvez voir de quoi parle le produit ici : https://blog.phrasing.app/phrasing-first-look/
    • Dans Anki, on peut utiliser des decks filtrés et trier les cartes selon leur degré de dépassement relatif de l’échéance
  • J’utilise FSRS depuis 3 mois, et cela a enfin résolu la douleur d’avoir à ajuster par tâtonnements l’ancien algorithme de planification SM2
    Le contenu de chaque deck peut avoir un effet important sur le taux de rétention optimal, mais désormais il suffit de réentraîner les poids de chaque deck tous les quelques mois pour qu’il s’adapte correctement
    L’article[0] vaut aussi la lecture si vous voulez voir une analyse rigoureuse, à grande échelle et en conditions réelles, de la science de la répétition espacée
    Vu l’ampleur des benchmarks, pour la plupart des gens il n’y aura probablement pas grand-chose à gagner à réajuster les poids en fonction de leur propre collection avant d’avoir accumulé des milliers de révisions. L’auteur recommande plus de 1 000 révisions
    Ça fonctionne bien même si on fait les cartes en retard. Comme la probabilité de rappel est basée sur la stabilité et sur le moment de la dernière révision, et que si l’on parvient encore à se souvenir après l’échéance, la stabilité est alors mise à jour avec une durée un peu plus longue
    [0] https://dl.acm.org/doi/10.1145/3534678.3539081?cid=99660547150
    [1] https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm

  • J’aime les flashcards comme hobby, donc j’utilise tous les jours plusieurs apps de répétition espacée pour le plaisir. J’ai aussi essayé FSRS et c’est bien, mais ce n’est pas encore au niveau du dernier SuperMemo.
    Quand on met des contenus identiques ou similaires dans deux apps ou plus, on voit la différence. Cela dit, FSRS est bien meilleur que presque tout ce qui existe actuellement, et il sera probablement bientôt meilleur que SuperMemo.
    J’ai utilisé Mochi Cards pendant environ un an, et c’était simplement correct, un peu mieux qu’une installation Anki de base. Mnemosyne est similaire. L’app SaaS de SuperMemo est correcte aussi, mais je n’aime pas sa façon d’organiser les contenus de langue.
    Pour le vocabulaire des langues, j’utilise Clozemaster, puis après avoir réussi, je mets la phrase dans SuperMemo. C’est parce que l’algorithme de SuperMemo est à ce point meilleur. J’ai aussi des explications de ChatGPT pour chaque mot, et je les mets également dans SuperMemo.
    La partie la plus difficile, c’est clairement de fabriquer de bonnes cartes. Pour trouver plus d’idées, http://arxiv.org/abs/2401.01257 et https://rust-book.cs.brown.edu sont utiles.
    Je n’ai pas encore trouvé de programme de flashcards qui permette de créer des cartes aussi vite que SuperMemo. Dans SuperMemo, il suffit de coller un bloc de texte (ctrl-n), de sélectionner le mot à transformer en texte à trous, puis d’appuyer sur alt-x. On peut le faire plusieurs fois sur le même morceau de texte, et à chaque fois une nouvelle carte à trous entre dans les révisions.
    Dans la plupart des autres apps, il faut créer les cartes une par une. J’ai l’impression que c’est parce qu’elles sont trop attachées à la métaphore des cartes et des decks. SuperMemo organise tout en structure arborescente, ce qui fait une énorme différence. En réalité, il n’est même pas nécessaire de tout organiser, mais les gens agissent comme si ce qu’ils apprennent allait se classer dans leur tête en decks bien propres.

    • Dans Anki, sur Debian, c’est Ctrl-Alt-C.
    • Dans Mochi aussi, c’est presque pareil. Il suffit de créer une nouvelle carte avec n, de coller le texte avec ctrl-v, de sélectionner un mot, puis de faire ctrl-l pour créer un texte à trous, et ctrl-[n] pour créer un groupe de trous numéroté de 0 à 9.
      Chaque groupe de trous a sa propre « carte ».
  • Vu l’importance de la répétition espacée, je me demande s’il ne faudrait pas une approche modulaire, contrairement à Anki.
    Est-ce qu’il n’y a pas trois éléments séparés ?

    1. les cartes, ou un sous-ensemble de cartes
    2. l’historique des interactions avec ces cartes
    3. un algorithme qui présente les cartes à partir de cet historique, puis y ajoute de nouveaux enregistrements. Potentiellement, cela pourrait être calculé à la demande
    • Anki FSRS s’est rapproché d’un algorithme de calcul juste-à-temps fondé uniquement sur les entrées fournies par l’utilisateur.
      La structure de données n’est pas strictement modulaire, mais elle s’en approche autant que possible en pratique tout en conservant la compatibilité avec les decks Anki existants et les extensions.
      En fait, il y a maintenant un bouton qui recalcule entièrement tous les intervalles et toutes les difficultés à partir du seul historique et des paramètres actuels de l’algorithme. Si vous utilisez déjà FSRS et que les paramètres n’ont pas changé, ce recalcul n’a aucun effet, puisqu’il revient au même que le calcul incrémental effectué après chaque révision.
      En principe, on peut voir cela comme une fonction pure calculée juste à temps, avec une mise en cache des données produites pour des raisons de compatibilité héritée et de performances.
  • Petite autopromo sans honte à ce sujet : j’ai créé un outil gratuit et open source qui permet de faire des cartes Anki à partir de vidéos YouTube : https://youtube2anki.fly.dev/
    J’aimerais bien avoir des retours. Le code est sur GitHub : https://github.com/vacmar01/youtube2anki

    • Très sympa. Je peux demander pour quel type de vidéos tu l’utilises ?
  • J’ai parlé plusieurs fois de FSRS et d’Anki avec Xiaojun. Dans les systèmes traditionnels de répétition espacée comme Anki+FSRS, l’apprenant revoit souvent les connaissances toujours dans le même contexte, ce qui peut l’amener à les comprendre comme des unités isolées plutôt que comme une partie d’un réseau plus large.
    Par exemple, apprendre des mots séparément ne prépare pas suffisamment à utiliser une langue dans la vie réelle. En situation réelle, le contexte, les collocations et les usages jouent un grand rôle.
    Une meilleure manière d’apprendre les langues que la répétition isolée est d’exposer les mots dans des contextes et des combinaisons variés, afin de comprendre comment ils se forment naturellement en groupes et en phrases.
    C’est pourquoi, pour l’apprentissage des langues, je construis quelque chose qui montre de courtes vidéos de la vie réelle au lieu de cartes Anki. Chaque vidéo est un petit scénario qui montre comment la langue est utilisée dans des situations réelles.
    Les étudiants ne se contentent pas de mémoriser des mots : ils voient aussi leur usage dans un contexte naturel, avec des indices visuels et des gestes. Cette approche peut rendre l’apprentissage plus immersif et plus efficace, en aidant à comprendre l’application réelle des mots et des expressions. La principale raison de l’échec dans l’apprentissage des langues étrangères, c’est qu’on ne persévère pas.
    Une autre chose qui manque à Anki, ce sont des quiz basés sur des situations réelles plutôt que sur « est-ce que tu t’en souviens ? ». Les étudiants doivent appliquer ce qu’ils ont appris dans un cadre amusant et peu stressant.
    Les algorithmes de SRS ne sont qu’une partie de la solution, pas une panacée. La mémoire dépend de nombreux facteurs, par exemple l’effet des émotions sur l’encodage. On n’a pas besoin de SRS pour se souvenir de son premier baiser ou du jour de sa remise de diplôme.
    Les gens apprennent leur langue maternelle couramment sans aucun SRS, mais pour une langue étrangère, la plupart n’atteignent pas la fluidité même en utilisant du SRS.

    • L’idée d’apprendre dans le contexte et de varier les contextes est valable, mais la phrase « les gens apprennent leur langue maternelle sans Anki ni étude de la grammaire » me gêne toujours.
      L’acquisition de la langue maternelle et l’acquisition d’une deuxième langue sont aussi différentes que des pommes et du bacon. Le cerveau d’un bébé et celui d’un adulte sont différents, et les besoins, les capacités et le contexte le sont tout autant.
    • Oui. Je préfère une approche qui combine SRS et apprentissage immersif, comme la méthode Refold.