3 puntos por GN⁺ 2024-01-16 | 1 comentarios | Compartir por WhatsApp
  • El wiki ABC of FSRS de FSRS, que optimiza el calendario de repaso del aprendizaje, se trasladó desde fsrs4anki al nuevo wiki awesome-fsrs
  • Los materiales de investigación vinculados de MaiMemo tratan, respectivamente, la optimización de la programación de repetición espaciada y el modelado de la dinámica de la memoria en artículos de ACM KDD e IEEE TKDE
  • Un texto aparte presenta el proceso de investigación sobre algoritmos de repetición espaciada a través de la experiencia de un estudiante de licenciatura que publicó un artículo en ACM KDD
  • FSRS-Anki-20k y anki-revlogs-10k también se presentan como datasets de código abierto que incluyen características de series temporales
  • FSRS es un proyecto independiente de código abierto impulsado por la comunidad, y el apoyo de organizaciones como MaiMemo Inc. respalda la participación sostenida de contribuidores clave

ABC of FSRS se trasladó a un nuevo wiki

Materiales de investigación sobre repetición espaciada

Texto sobre experiencia de investigación

Datasets públicos

Proyecto comunitario y apoyo

  • FSRS es un proyecto independiente de código abierto liderado por la comunidad
  • Expresa agradecimiento por el apoyo de organizaciones como MaiMemo Inc.
  • El apoyo de MaiMemo permite que contribuidores clave como Jarrett Ye dediquen tiempo y experiencia a FSRS
  • Esta colaboración ayuda a que FSRS siga siendo un algoritmo de repetición espaciada líder y disponible libremente para todos

1 comentarios

 
GN⁺ 2024-01-16
Opiniones de Hacker News
  • Un método muy subestimado para mejorar la repetición espaciada es hacer que las tarjetas sean más fáciles. Descubrí que una tarjeta efectiva puede ser sorprendentemente fácil.
    Al principio, memorizaba vocabulario en francés con Anki y hacía tarjetas bidireccionales inglés↔francés, pero cuando llegué a cientos de tarjetas, se volvió doloroso por la cantidad de sinónimos.
    Después, siguiendo los consejos de Katzumoto para aprender japonés, empecé a pegar párrafos enteros de ebooks o páginas web y a crear tarjetas de completar espacios en las que solo ocultaba una palabra; eran fáciles, pero efectivas.
    Luego me volví aún más flojo y solo ocultaba la mitad de la palabra, o marcaba la palabra en negrita y, si podía recordarla más o menos dentro del contexto, la daba por aprobada; y eso funcionó todavía mejor.
    Cuando aparecía una tarjeta y pensaba “ah, ¿esta tarjeta otra vez?”, la borraba; y configuré Anki para que suspendiera permanentemente una tarjeta si fallaba 3 veces. Si era una palabra que realmente necesitaba saber, pronto volvería a verla en un mejor contexto, así que no había problema, y mi vocabulario en francés siguió creciendo rápidamente.
    Creo que la mayor mejora vendrá de mejorar el formato de las tarjetas, más que de un mejor algoritmo de repetición espaciada, y que es sorprendentemente difícil crear tarjetas que sean demasiado fáciles como para parecer útiles. Esto es después de más de 35,000 repasos en Anki en tres idiomas.

    • Esta es la forma correcta de usar un SRS. Los geeks como nosotros tendemos a perseguir mejoras del 1% con algoritmos de repetición más inteligentes o métodos de entrada, pero el modo de falla real es mucho más mundano: la gente se rinde.
      Veo a menudo casos en los que alguien mete miles de tarjetas en Anki durante el primer mes de aprender algo y, uno o dos meses después, se siente abrumado por la cantidad de repasos, empieza a sentirlos como una tarea pesada y lo deja.
      Hay dos consejos que marcan la diferencia: hacer las tarjetas un poco “demasiado” fáciles y ser bastante selectivo con qué tarjetas agregar.
      Cuando creas una tarjeta por primera vez, estás estudiando ese tema en ese momento y lo tienes fresco en la cabeza, así que te dan ganas de hacer una tarjeta interesante y desafiante para tu yo actual. Pero una o dos semanas después, conviene más una tarjeta lo bastante fácil como para rozar el recuerdo, en vez de confundirte.
      En lugar de meter en Anki frases de todo un libro, es mejor caminar despacio por el huerto y elegir solo una o dos de las mejores manzanas. Las manzanas podridas —tarjetas que no te interesan o que son demasiado difíciles— contaminan todo el mazo y hacen que termines evitando el repaso en sí.
    • Yo lo he hecho al revés. Hice 70,000 repasos en Anki para un idioma, y agregar contexto cuidadosamente casi siempre me pareció una pérdida de tiempo al crear tarjetas.
      Los repasos suelen pasar rápido, así que el tiempo de creación termina siendo una parte sorprendentemente grande del tiempo de aprendizaje por tarjeta. Últimamente pongo cada vez menos contexto, y muchas veces basta con las tarjetas simples básicas que genera un plugin de diccionario.
      Casi siempre solo agrego contexto al frente de la tarjeta cuando se trata de terminología especializada que aparece únicamente dentro de ese contexto. Es decir, cuando no vale la pena aprenderla de forma aislada.
      Dicho eso, sí creo que está bien ser flojo y ser indulgente con uno mismo. También soy bastante laxo al calificar las respuestas: el criterio no es dominarlo perfectamente como un nativo, sino si entendí lo suficiente como para evitar una confusión real.
    • Las 20 reglas para formular tarjetas SRS originales de SuperMemo son un tesoro: https://www.supermemo.com/en/blog/twenty-rules-of-formulating-knowledge
      Mejorarán mucho la calidad de tus tarjetas.
    • Pienso algo parecido al aprender guitarra. Puede ser bueno que la mente aborde un problema de varias maneras.
      Por ejemplo, podrías atacar las notas del diapasón con repetición espaciada a lo bruto, pero en la práctica me resultó más efectivo mezclar contexto.
      Algunas semanas me da flojera y solo practico los nombres de las notas; otras semanas juego con escalas raras como la escala húngara; y otras intento reproducir progresiones de arpegios, power chords, o el sonido o la sensación de una canción concreta.
      Con el tiempo, el cerebro empieza a hacer conexiones. Surgen descubrimientos como: “esto es simplemente la escala menor de G”, “esto es la escala mayor de G pero saltándose esas notas”, “con este patrón, ¿no podría tocarlo así?”.
      También hay una sensación extraña de que la velocidad a la que te das cuenta de lo que no sabes aumenta mucho más rápido que lo que crees saber. Aun así, estoy pensando en usar un algoritmo de repetición espaciada que me proponga tareas de guitarra de 5 a 10 minutos para desarrollar al mismo tiempo memoria muscular y conexiones neuronales.
    • He usado Anki durante mucho tiempo, de forma intermitente, para aprender idiomas, y últimamente lo estoy usando para estudiar cursos universitarios en línea.
      Tal vez porque el contenido es más variado que cuando solo había idiomas, siento mucho más el impacto del formato de las tarjetas. Incluso en mazos hechos por otras personas, suelo corregir la redacción del lado de la respuesta, y noto una diferencia tangible en la retención.
      Las respuestas concisas y que fluyen naturalmente se pegan mejor. Si una tarjeta se siente torpe, conviene corregirla sin dudarlo.
  • He memorizado decenas de miles de palabras extranjeras con Anki, y tener imágenes en las tarjetas siempre me ayudó a recordar las palabras.
    Ahora estoy haciendo un proyecto quizá un poco tonto: memorizar 750 tarjetas de un juego de trivia que juego con mi familia. Son tarjetas en las que la respuesta a todas las preguntas es un año. Por ejemplo: “¿En qué año salió Coca Cola Light?”.
    Crear imágenes para las tarjetas con Midjourney hace que sea mucho más fácil recordarlas.
    Uso un sistema en el que cada siglo tiene una figura representativa. Einstein representa 1900–2000, Marie-Antoinette representa 1700–1800.
    Los objetos representan décadas. Un auto de los 60 representa los años 60; una chaqueta con hombreras, los 80, y así. El último dígito lo manejo de forma parecida.
    Hago que Midjourney convierta esos elementos en una imagen estilo caricatura, guardo la imagen más divertida o absurda y la pongo en el reverso de la tarjeta de Anki. A menudo, la imagen es más fácil de recordar que el año en sí.

    • Hay tres cosas. Primero, conviene buscar PAO, una técnica mnemónica basada en imágenes.
      Segundo, como el recuerdo podría empeorar en situaciones reales sin la imagen, deberías probar periódicamente con y sin imagen por separado.
      Tercero, me da curiosidad si ese juego de trivia es Trivial Pursuit. Un amigo memorizó deliberadamente todas las tarjetas de la edición Genus original.
    • Estoy haciendo lo mismo ahora con geografía: banderas, capitales y cosas así. Creo que me dará una ventaja de alrededor de +5 en la mayoría de las noches de trivia.
    • Ese sistema es ingenioso. Las fechas siempre me han costado; voy a robarme esa idea de ahora en adelante.
  • Interesante. Según los benchmarks, con este algoritmo habría que repasar 20 a 30% menos tarjetas que con el algoritmo clásico de Anki
    Hace unos días publiqué una implementación en Python del algoritmo clásico SM-2 que se usa en https://python.cards, pero podría cambiarla a FSRS: https://github.com/vlopezferrando/simple-spaced-repetition

    • python.cards se ve bien. Estaría bueno agregar algunos ejemplos
      También me pregunto si habría posibilidad de publicar la app web como open source. Parece que podría convertirse en una forma popular de mostrar flashcards en áreas específicas, como estudiantes aprendiendo X
  • Por la descripción, parece que FSRS sigue asignando una fecha exacta de repaso a cada tarjeta. Dejé Anki por esta función
    No soy universitario ni estoy preparando un examen, solo quiero practicar cuando tenga ganas. Puede haber pausas largas entre sesiones, y no quiero sentir que se me acumulan tarjetas pendientes
    Anki es una app excelente, pero me gustaría que hubiera un algoritmo que, en lugar de poner fechas de repaso, tomara muestras aleatorias de las tarjetas con una probabilidad proporcional a la urgencia con la que deberían repasarse
    Ojalá algo como https://github.com/fasiha/ebisu fuera posible como plugin de Anki, o que existiera una app similar que usara un formato de tarjetas abierto

    • Pero la memoria no funciona así. No se puede dejar la memoria en pausa como propones. FSRS sigue una curva de memoria personalizada por una razón
    • Practicar cuando tengas ganas, con posibles pausas largas entre sesiones, ya es lo que hace SRS
      Solo que, si vacías todo lo “pendiente”, ya no puedes seguir practicando cuando quieras y tienes que esperar un tiempo hasta que vuelva a estar disponible para practicar
    • Hice una app a medio hacer de ese estilo, y funcionó muy mal
      Repetir los datos que recordaba era molesto, y muchas de las cosas que había olvidado las había olvidado por completo. Así que la repetición casi no tenía sentido y el avance era muy lento
      La clave es repetir justo antes de olvidar casi por completo, y eso es difícil sin plazos y gestión de calendario
    • En Phrasing.app estamos creando exactamente ese enfoque. Al principio usamos ebisu, pero al final terminamos usando un fork de FSRS con modificaciones importantes
      En la práctica no usamos fechas límite y, salvo algunas funciones de análisis que nos pidieron, intentamos mantener a los usuarios en varios niveles de dificultad
      Le damos más importancia a avanzar que a eliminar siempre el 100% de lo pendiente. Si una palabra es realmente importante, la marcas como favorita o la vuelves a ver
      No es una app pública de flashcards; está muy enfocada en la minería automática de oraciones para idiomas extranjeros. Aun así, con gusto puedo responder preguntas sobre nuestra experiencia modificando FSRS
      Se puede ver información del producto en https://blog.phrasing.app/phrasing-first-look/
    • En Anki se pueden usar mazos filtrados y ordenar las tarjetas por el grado relativo de vencimiento
  • Llevo 3 meses usando FSRS, y por fin se resolvió el dolor de tener que ajustar por prueba y error el antiguo algoritmo de programación SM2
    El contenido de cada mazo puede influir mucho en la tasa de retención óptima, y ahora, si vuelvo a entrenar los pesos de cada mazo cada pocos meses, se adapta adecuadamente
    El artículo[0] también vale la pena si quieres ver un análisis riguroso de la ciencia de la repetición espaciada en un entorno real a gran escala
    Debido a los benchmarks extensos, para la mayoría no habrá mucho beneficio en reajustar los pesos a su propia colección hasta acumular miles de repasos. El autor recomienda 1,000 o más
    También funciona bien aunque uno haga las tarjetas tarde. La probabilidad de recuerdo se basa en la estabilidad y en el momento del último repaso, y si lograste recordarla después de la fecha límite, la estabilidad se actualiza a un valor un poco más largo
    [0] https://dl.acm.org/doi/10.1145/3534678.3539081?cid=99660547150
    [1] https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm

  • Me gustan las flashcards como hobby, así que todos los días uso varias apps de repetición espaciada por diversión. También probé FSRS y me gusta, pero todavía no está al nivel del SuperMemo más reciente.
    Si pones el mismo material, o material parecido, en dos o más apps, se nota la diferencia. Aun así, FSRS es mucho mejor que casi todo lo que existe ahora, y creo que pronto será mejor que SuperMemo.
    Usé Mochi Cards durante más o menos un año y me pareció simplemente aceptable, un poco mejor que una instalación básica de Anki. Mnemosyne es parecido. La app SaaS de SuperMemo también está bien, pero no me gusta la forma en que organiza el material de idiomas.
    Para vocabulario de idiomas uso Clozemaster y, después de responder bien, meto esa oración en SuperMemo. Porque el algoritmo de SuperMemo es así de superior. También hay explicaciones de ChatGPT para cada palabra, y también las meto en SuperMemo.
    La parte más difícil, sin duda, es crear buenas tarjetas. Para obtener más ideas ayudan http://arxiv.org/abs/2401.01257 y https://rust-book.cs.brown.edu.
    Todavía no encontré un programa de flashcards que me deje crear tarjetas tan rápido como SuperMemo. En SuperMemo pegas un bloque de texto (ctrl-n), seleccionas la palabra que quieres convertir en cloze y presionas alt-x. Puedes hacerlo varias veces sobre el mismo fragmento de texto, y cada vez se agrega una nueva tarjeta de cloze a la revisión.
    En la mayoría de las otras apps hay que crear las tarjetas una por una. Creo que es porque están demasiado atadas a la metáfora de tarjetas y mazos. SuperMemo organiza todo en una estructura de árbol, y eso marca una gran diferencia. En realidad ni siquiera hace falta organizarlo, pero la gente actúa como si el material aprendido fuera a clasificarse en mazos ordenados dentro de la cabeza.

    • En Anki, en Debian, es Ctrl-Alt-C.
    • En Mochi es casi igual. Creas una tarjeta nueva con n, pegas el texto con ctrl-v, seleccionas una palabra, creas un cloze con ctrl-l y creas un grupo de clozes del 0 al 9 con ctrl-[n].
      Cada grupo de clozes tendrá su propia “tarjeta”.
  • Pensando en la importancia de la repetición espaciada, me pregunto si no haría falta un enfoque modular, a diferencia de Anki.
    ¿No hay tres cosas separadas?

    1. Las tarjetas, o un subconjunto de tarjetas.
    2. El historial de interacción con esas tarjetas.
    3. El algoritmo que, con base en ese historial, presenta tarjetas y vuelve a agregar registros. Potencialmente podría ser algo calculado en el momento en que se necesita.
    • Anki FSRS se acercó más a un algoritmo de cálculo justo a tiempo basado únicamente en la entrada proporcionada por el usuario.
      La estructura de datos no es estrictamente modular, pero, manteniendo la compatibilidad con mazos existentes de Anki y extensiones, es lo más cercano que se puede lograr en la práctica.
      De hecho, ahora hay un botón para recalcular por completo todos los intervalos y dificultades usando solo el historial y los valores actuales de ajuste del algoritmo. Si ya estás usando FSRS y los valores de ajuste no cambiaron, el recálculo no tiene ningún efecto, porque es igual al cálculo incremental posterior a cada repaso.
      En principio puede verse como una función pura calculada justo a tiempo, y la generación de datos se puede entender como una forma de caché por compatibilidad con versiones existentes y por rendimiento.
  • Como autopromoción descarada relacionada, hice una herramienta gratuita y open source para crear tarjetas de Anki a partir de videos de YouTube: https://youtube2anki.fly.dev/
    Me gustaría recibir feedback. El código está en GitHub: https://github.com/vacmar01/youtube2anki

    • Qué bueno. ¿Puedo preguntar con qué tipo de videos la usas?
  • Hablé varias veces con Xiaojun sobre FSRS y Anki. En sistemas tradicionales de repetición espaciada como Anki+FSRS, los estudiantes suelen repasar el conocimiento siempre en el mismo contexto, lo que puede hacer que lo entiendan como unidades aisladas en lugar de como parte de una red más amplia.
    Por ejemplo, aprender palabras por separado no prepara lo suficiente para usar un idioma en la vida real. En situaciones reales, el contexto, las colocaciones y el uso tienen un papel importante.
    Una mejor forma de aprender idiomas que la repetición aislada es exponerse a las palabras en diversos contextos y combinaciones, para entender cómo las palabras se forman naturalmente en bloques y oraciones.
    Por eso, para el aprendizaje de idiomas estoy construyendo algo que muestra videos cortos de la vida real en lugar de tarjetas de Anki. Cada video es un pequeño escenario que muestra cómo se usa el idioma en situaciones reales.
    Los estudiantes no solo memorizan palabras, sino que ven su uso en un contexto natural que incluye pistas visuales y gestos. Este enfoque puede hacer que el aprendizaje sea más inmersivo y efectivo al ayudar a entender la aplicación real de palabras y expresiones. Porque la principal razón por la que se fracasa al aprender un idioma extranjero es no lograr sostenerlo en el tiempo.
    Otra cosa que le falta a Anki no es preguntar “¿lo recuerdas?”, sino quizzes basados en situaciones reales. Los estudiantes tienen que aplicar lo aprendido en un entorno divertido y de baja presión.
    El algoritmo SRS es solo una parte de la solución, no una panacea. En la memoria intervienen muchos factores, como el efecto de las emociones en la codificación. No necesitas SRS para recordar tu primer beso o el día de tu graduación.
    La gente aprende su lengua materna con fluidez sin ningún SRS, pero con idiomas extranjeros la mayoría no llega a la fluidez aunque use SRS.

    • La idea de aprender en contexto y variar los contextos es valiosa, pero siempre me molesta eso de “la gente aprende su lengua materna sin Anki ni estudiar gramática”.
      La adquisición de la primera lengua y la adquisición de una segunda lengua son tan diferentes como manzanas y tocino. El cerebro de un bebé y el de un adulto son distintos, y las necesidades, capacidades y contextos también son muy diferentes.
    • Exacto. Prefiero combinar SRS e inmersión, como en el enfoque de Refold.