18 puntos por GN⁺ 2025-05-19 | 1 comentarios | Compartir por WhatsApp
  • La Spaced Repetition System es una técnica de estudio que amplía los intervalos de repaso del material aprendido previamente y permite formar memoria a largo plazo de manera efectiva incluso con poca inversión de tiempo
  • El algoritmo FSRS (Free Spaced Repetition Scheduler), que optimiza la programación de tarjetas para cada persona mediante predicciones basadas en aprendizaje automático, mejora de forma notable la eficiencia y la satisfacción del usuario frente a los métodos anteriores
  • En la versión más reciente de Anki, FSRS se aplica como programador predeterminado, por lo que la mayoría de los usuarios ya lo están aprovechando
  • En comparación con servicios como WaniKani y Bunpro, la combinación de Anki y FSRS es superior en eficiencia de aprendizaje y flexibilidad

Panorama general del sistema de repetición espaciada

  • El sistema de repetición espaciada se utiliza en diversos campos para adquirir conocimientos y mantener la memoria a largo plazo
  • Es una solución que permite repasar de forma eficaz dentro de un tiempo limitado, como en clases escolares o en el aprendizaje por hobby
  • Presenta la información repetidamente en formato de tarjetas didácticas y ajusta los intervalos de repaso según la respuesta del usuario
  • Si inviertes 20 minutos al día, puedes memorizar fácilmente 3,650 palabras en un año

Métodos de programación tradicionales y sus límites

  • En los primeros sistemas de repetición espaciada se usaba principalmente el algoritmo SuperMemo-2
  • Este método aumenta los intervalos de repaso de forma del tipo “después de 1 día, si aciertas entonces después de 6 días, si vuelves a acertar entonces después de 15 días, y más adelante después de 37.5 días”
  • Si hay una respuesta incorrecta, se reinicia otra vez a 1 día, por lo que se vuelve a ver la misma tarjeta repetidamente en intervalos cortos y eso genera mucha frustración
  • Este enfoque se basa en reglas empíricas y arbitrarias, y no está optimizado según cada elemento de conocimiento individual
  • Existe la premisa poco realista de asumir que la curva de memoria de toda la información es igual

FSRS: programación mejorada basada en aprendizaje automático

  • FSRS (Free Spaced Repetition Scheduler) optimiza de forma individual los intervalos de repaso con base en técnicas modernas de aprendizaje automático
  • Convierte en un problema de predicción la pregunta de “cuándo la probabilidad de recordar una tarjeta cae al 90%” y así calcula el momento exacto de repaso
  • El modelo FSRS obtiene mediante ajuste de curvas tres funciones: dificultad (1 a 10 por tarjeta), estabilidad (el periodo en el que la tasa de recuerdo baja de 100% a 90%) y recuperabilidad (la probabilidad de recordar tras el paso de cierto número de días)
  • Utiliza 21 parámetros para optimizar las curvas según grandes volúmenes de datos de repaso, y reajusta esos parámetros reflejando el historial de repaso de cada persona
  • FSRS permite configurar una tasa de recuerdo objetivo (por ejemplo, 90%) y simular la carga diaria de estudio y el conteo correspondiente
    • Por ejemplo, al configurarlo con una tasa de recuerdo del 70%, disminuye el volumen diario de repaso y, aun así, aumenta la cantidad de tarjetas recordadas

Aplicación práctica de FSRS

  • Anki adoptó FSRS como programador predeterminado a partir de la versión 23.10, lanzada en 2023-11
  • Al usar FSRS, se reduce la carga diaria de repaso y, al repasar tarjetas falladas, el estrés no aumenta de forma drástica
  • Siguiendo la configuración recomendada, se puede optimizar el equilibrio entre eficiencia de aprendizaje y volumen de estudio
  • Al ser un proyecto de código abierto, puede implementarse en varios idiomas y programas

Comparación con otros servicios de aprendizaje

  • En el caso de servicios por suscripción como WaniKani y Bunpro, solo se ofrecen intervalos fijos y no hay ajustes personalizados
    • Ejemplo: 4 horas, 8 horas, 1 día, 2 días, 7 días... configuraciones de repaso arbitrarias
  • Cuando una tarjeta se responde mal, no siempre se reinicia al nivel mínimo, o bien no hay predicción basada en aprendizaje automático, por lo que la eficiencia queda muy por detrás
  • Las tarjetas que ya pasaron cierto intervalo dejan de volver a mostrarse, lo que provoca pérdida de conocimiento a largo plazo
  • Como resultado, se acumulan el estrés y la ineficiencia para el estudiante

Ventajas de Anki

  • La UI puede resultar algo incómoda, pero sus puntos fuertes son sus funciones de estudio de alto rendimiento, las actualizaciones continuas y la amplia capacidad de personalización
  • En la práctica, ofrece la flexibilidad adecuada para estudiantes de distintos campos y niveles
  • Es ideal para construir conocimiento a largo plazo desde nivel básico hasta avanzado
  • Con base en la experiencia directa del usuario, se consolida como una herramienta de aprendizaje efectiva

Más información

  • Para conocer el principio de la repetición espaciada, el funcionamiento detallado de FSRS y ejemplos de implementación, consulta los siguientes recursos
    • open-spaced-repetition/awesome-fsrs: lista de implementaciones de FSRS en distintos lenguajes de programación y programas
    • open-spaced-repetition/srs-benchmark: resultados de benchmarks que comparan FSRS con varios algoritmos (por ejemplo, SuperMemo-2, algoritmo de Duolingo, etc.)
      • Actualmente, lo único que muestra un rendimiento consistentemente mejor que FSRS es, más o menos, una red neuronal LSTM basada en el algoritmo OpenAI Reptile

1 comentarios

 
GN⁺ 2025-05-19
Opinión de Hacker News
  • Quiero enfatizar que soy el creador de Trane (https://github.com/trane-project/trane/). Trane puede reemplazar sistemas parecidos a Anki y se puede aplicar a la mayoría de las áreas donde la jerarquía entre subhabilidades está claramente definida, como música o aprendizaje de vocabulario. Creo que los sistemas existentes como Anki y SuperMemo tienen tres problemas sin resolver. Primero, el enfoque centrado en la memorización es un problema. Yo quería algo que también pudiera usarse en áreas donde se necesita una evaluación basada en dominio y no en memoria, como la música. Segundo, sin información jerárquica es difícil adquirir habilidades complejas a gran escala. En Anki es difícil reproducir las funciones de Trane, como limitar el progreso según dependencias entre subhabilidades y verificar el dominio. Tercero, exige que uno mismo cree sus ejercicios de práctica. Eso consume bastante tiempo y, para habilidades complejas, requiere expertos. Trane está prácticamente terminado y yo lo uso para estudiar música. Como no tiene UI, solo lo uso yo, pero tampoco quiero trabajar gratis, así que así está bien. Ahora estoy desarrollando un tutor de alfabetización basado en Trane. Cuando esté listo, permitirá que un estudiante aprenda desde el alfabeto hasta lectura y escritura de nivel universitario con base en investigación reciente. Mi objetivo es lanzar un MVP este año
  • He visto muchas discusiones y avances relacionados con SRS. Pero la parte que yo quisiera ver, y que de verdad importa, es el espacio entre lectura/comprensión y SRS. Casi no hay herramientas independientes para crear flashcards fácilmente desde programas existentes como el navegador web o un PDF y enviarlas a SRS populares como Anki o Mochi. Esa función debería sentirse tan natural y sin fricción como una integración del sistema operativo, y hace falta un canal sencillo para pasarlo al SRS, no “otra app aparte”. Hace falta un sistema amigable con Mac y que no resulte molesto a la vista. Si alguien conoce una herramienta así, me gustaría saberlo
    • La idea de “crear flashcards fácilmente desde programas existentes” suele malinterpretarse. Más de la mitad del valor del SRS viene del proceso de elegir qué conceptos convertir en flashcards y de explorar similitudes, diferencias y propiedades. Es difícil, pero ese proceso en sí ayuda muchísimo a la comprensión. Pero como esa habilidad es difícil, mucha gente no logra aprovechar bien el SRS, no siente sus beneficios y termina abandonándolo. Otro malentendido es pensar que el SRS sirve solo para memorización simple. En realidad, si está bien diseñado, también puede usarse suficientemente bien para comprender temas complejos
    • Yo hice una app de flashcards llamada Fresh Cards, y a veces los usuarios preguntan por una función para importar flashcards desde páginas web o PDFs. Pero, sinceramente, todavía no sé cómo debería funcionar eso. No sé si debería ser algo donde el usuario resalte texto y haga clic en “crear tarjeta”, o si debería analizar automáticamente el texto y presentar una lista de preguntas y respuestas. Es difícil decidir con qué criterio convertir algo en tarjeta y qué tanto desglosarlo. Sobre todo, extraer datos simples como fechas o nombres no ayuda mucho con cierto tipo de contenido. Al final es un problema muy abierto, así que parece difícil satisfacer las necesidades de todos
    • Creo que el modelo de servicios de macOS encaja muy bien con este propósito. Los servicios funcionan en muchas apps según el contexto y permiten la integración entre aplicaciones sin desarrollo adicional. Por ejemplo, si seleccionas texto, haces clic derecho y llamas algo como “New SRS Card” desde el menú de servicios, podrías crear una tarjeta sencilla de inmediato. Si una app de SRS incorporara ese tipo de servicio, hacer tarjetas sería muy rápido y práctico
    • Yo resolví este problema poniendo un system prompt a un LLM. Después de entender un concepto en ChatGPT, le pido que genere flashcards y luego las copio y pego en Mochi. Espero que en el futuro avance más la integración directa para agregar tarjetas entre LLM y Mochi
    • En el contexto del aprendizaje de idiomas, hay herramientas muy buenas para “minar” audio de YouTube/Netflix o extraer subtítulos para tarjetas. Algunas son gratis y de código abierto, aunque al principio tienen algo de fricción. Las soluciones de pago son un poco más amigables
  • Un tip recomendado para estudiar con LLM es crear una herramienta MCP que guarde en Google Drive las conversaciones por tema en formato csv y las sincronice con Anki. Ese enfoque cambió por completo mi forma de usar LLM. A largo plazo, los LLM también pueden hacer que uno piense menos, pero si de todos modos los vas a usar, recomiendo aprovecharlos como herramienta de estudio
    • Yo hice un script en Python que selecciona las tarjetas programadas para repaso al día siguiente en un deck de Anki y hace que un LLM genere nuevas oraciones. La idea es no limitarse a recordar siempre la tarjeta tal cual, sino desarrollar reconocimiento de palabras en contextos nuevos. Espero que aprender en contextos variados ayude a la adquisición real del idioma
    • Me gustaría ver una entrada de blog que explique específicamente cómo sincronizas el csv con tarjetas de Anki y cómo se ve la implementación MCP que convierte los resultados del LLM en csv
    • El modo de voz de ChatGPT 4o ha sido una experiencia realmente revolucionaria para aprender chino básico. Ayuda mucho para preguntar por los nombres de objetos en casa, consultar relaciones entre palabras, crear frases cortas y revisar gramática. Todavía no hay MCP, pero sí se le puede pedir que resuma la conversación en un formato estructurado
  • Lo que más me incomoda de Anki es el modelo de datos. Creo que las “colecciones de notas” —ya sea creadas por uno mismo, generadas por un LLM o compartidas con amigos o estudiantes— deberían gestionarse de forma jerárquica, y de ahí derivar finalmente conjuntos de tarjetas de estudio según plantillas. También hace falta separar la historia de repaso, el modelo y las maneras de limitar qué tarjetas revisar en ciertas situaciones —por ejemplo, para escribir chino o japonés necesito papel, así que quisiera ocultar ciertos decks según el contexto—. En cambio, en Anki todo eso está mezclado en una sola base de datos, y además importar/exportar/compartir/manipular datos externos es muy incómodo. Cada vez que no puedo manipular mis datos libremente me frustro. ¿Alguien conoce un sistema que no tenga estos problemas?
    • Varias colecciones de notas y la limitación de tarjetas por sesión se pueden manejar bien en Anki con decks, etiquetas, Better Tags, subdecks y funciones parecidas. Todos los decks pueden separarse en archivos distintos, y el modelo de spaced repetition también tiene varias opciones como FSRS. Exportar y compartir es fácil a nivel de archivo, y hay muchas bibliotecas y herramientas para manipulación externa; además, al ser open source y basado en librerías, extraer los datos es sencillo. En mi caso, resolví mis insatisfacciones con sistemas anteriores usando Anki
    • Todo lo que mencionaste no es correcto. Anki tiene una excelente documentación open source. Si sabes programar, con ChatGPT puedes hacer casi cualquier cosa, y yo hago minería de datos desde la base sqlite con frecuencia
    • El modelo de datos de Anki sí tiene bastantes ineficiencias. De hecho, tiene partes bastante improvisadas, como guardar JSON en una sola fila de tabla; como fue creciendo gradualmente, la estructura quedó algo rara. En cambio, las plantillas y la función de cloze deletion —ocultar solo partes para generar automáticamente varias tarjetas— son excelentes, y ahora agradezco que exista esa estructura. Estoy rediseñando el esquema de Fresh Cards para introducir cloze deletion y plantillas. En mi app, cada atributo de tarjeta se separa en tablas. En Anki, la dificultad inicial para soportar sincronización también estaba relacionada con ese esquema
    • Aunque solo aplica a aprendizaje de idiomas, una estructura como la de mi TheHardWay (https://thehardway.app), donde las flashcards están integradas con notas en Markdown, podría ser una buena opción
    • Por ejemplo, si separas palabras relacionadas con restaurantes y palabras relacionadas con aeropuertos en grupos, el usuario puede asociarlas de forma natural
  • En la universidad usaba spaced repetition de la siguiente manera. Organizaba verticalmente en un documento de Word las claves que tenía que memorizar y lo guardaba como PDF. Junto a cada clave en el PDF creaba un campo de comentario para el valor o respuesta. Hacía clic en el comentario para ver la respuesta y, cada vez que la acertaba con facilidad, movía el comentario hacia la izquierda; si me confundía, lo volvía a mover hacia la derecha. Al final, la posición de la tabla de comentarios me permitía ajustar la prioridad de repaso. Tenía muchas desventajas, pero a mí me funcionaba, y como fue antes de que existieran algoritmos parecidos en Anki, quizá hoy la experiencia habría sido distinta
    • El método suena interesante, pero solo con la explicación cuesta imaginarlo bien. Si tienes un archivo de ejemplo, me gustaría verlo
  • Si te interesa experimentar con FSRS, Open Spaced Repetition ofrece paquetes oficiales para Python, Typescript y Rust (con enlaces a cada GitHub). ts-fsrs y rs-fsrs ya soportan FSRS 6, y py-fsrs también lo soportará pronto. Además, py-fsrs y fsrs-rs incluso permiten optimizar el modelo con base en el historial de repasos pasado
    • Uso el paquete de Rust para entrenamiento de aperturas en Chessbook. Es muy fácil de usar, reduce la carga para el usuario y aumenta la retención. El sistema FSRS es realmente excelente
    • Si usas Ruby, te recomiendo ver el fork del gem de FSRS que corrige el problema del intervalo de tarjetas nuevas (https://github.com/arvindang/rb-fsrs). Originalmente fue porteado desde la versión en Python
  • El spaced repetition lleva 20 años siendo popular, pero no es una solución mágica. A pesar de decenas de apps y miles de charlas, al final mucha gente termina abandonándolo a medio camino, igual que con las dietas o los propósitos de superación personal. A veces he pensado que “si de verdad nos importara la educación infantil, Google o Apple sacarían un sistema de desbloqueo que obligara a escribir tarjetas de notas cada semana y solo desbloqueara el teléfono al aprobar”. Claro, tendría que haber una forma de saltárselo y probablemente casi nadie lo instalaría, pero creo que necesita volverse así de cotidiano
    • El spaced repetition se enfoca en la “optimización del tiempo”, pero no ayuda con la autodisciplina ni la motivación. Si el problema es la carga de tiempo, sí es eficiente, pero si la motivación o el autocontrol son débiles, uno se quema fácilmente. En mi caso, gracias a Anki me fue muy bien en GCSE y A-level, pero terminé con un burnout fuerte y hasta tuve que pausar mis estudios. Al final, Anki fue tanto el motor de mi éxito como el detonante de mi descanso
    • Decir que “no es una solución mágica” sin definir el criterio es una afirmación vacía. Igual que una dieta no es una solución mágica, para mí, después de más de 6 años usando SRS, sí me cambió la vida
    • La gente que no entiende bien la diferencia entre memorización y adquisición del lenguaje suele mostrar poco interés por SRS. Quienes tienen como meta memorizar lo celebran, pero en mi caso el objetivo es la capacidad misma de leer en español y francés. Repetir palabras y oraciones de ejemplo es como el andamiaje en una obra: no se usa directamente en la estructura final, pero acelera muchísimo todo el proceso. Ojalá se explicara mejor que la memorización y la adquisición del idioma no son cosas separadas, sino que una ayuda a la otra
    • Si esperas una solución mágica, solo te vas a decepcionar. Al final se necesita “trabajo”. Solo es una herramienta
    • En SRS hay problemas de UX con una barrera de entrada alta. 1) el tiempo que toma crear tarjetas 2) la necesidad de autoevaluarse 3) la estructura única de prompt-respuesta 4) la necesidad de aprendizaje autodirigido (andamiaje, etapas de comprensión). Más de fondo, SRS es excelente para “preguntas-respuestas precisas”, pero es débil para la generalización. En la práctica, también es débil para construir un grafo de conocimiento. Si ves la diferencia entre conocimiento de recuerdo (memorización) y conocimiento basado en modelos lógicos, la memorización funciona casi como una “búsqueda de diccionario”, mientras que un modelo lógico —como conceptos matemáticos— es mucho más complejo. Quienes defienden SRS dicen que incluso los modelos lógicos se basan al final en memorizar un “conjunto de hechos”, pero el valor práctico real de SRS sigue siendo apenas superior al de un “cuaderno bien organizado”. Aun así, está muy lejos de convertirte en un genio
  • Llevo casi 10 años usando Anki, y creo que lo único que necesita mejorar es la UI/el diseño. Más que la automatización del algoritmo, el verdadero problema es que la interfaz se siente aburrida para muchos usuarios nuevos. Está muy bien que tenga funciones potentes para usuarios avanzados, pero le falta intuición. El efecto del espaciado es una parte central del aprendizaje humano que sigue estando muy subestimada
    • Soy maintainer de AnkiDroid. Ahora mismo estamos rehaciendo por completo el diseño del reviewer, y se puede revisar en las “opciones de desarrollador” de la app de producción. No estoy satisfecho con el diseño, pero nos faltan muchísimos recursos. Si te interesa Android, eres bienvenido a contactarme
    • Me encanta Anki, pero es el típico producto “diseñado por ingenieros”. Es muy potente y profundo, pero el diseño es tosco y poco intuitivo. Un lector de HN que sea nerd técnico puede aprenderlo, pero a un usuario común de Duolingo le costará mucho
    • La ventana del editor es muy incómoda. Ahí es donde más urge mejorar. Las pestañas de la ventana principal tampoco funcionan como pestañas de verdad, y en la pantalla de repaso debería venir por defecto un modo de dos botones tipo “Again/Good”. Con solo empaquetar algunos addons ya sería popular y además fácil de implementar
    • He leído muchos textos sobre Anki y SRS durante años, pero nunca lo he usado en la práctica. Me pregunto si hay algún área de estudio que recomendarían para empezar
    • Comparado con Duolingo, sí se siente aburrido. Aun así lo sigo usando desde hace años. Estaría bien añadir de forma opcional algunos elementos de gamificación, como streaks o efectos de sonido
  • Escribí hace 6 años un texto llamado “Why Anki Doesn’t Work for Me” (fue antes de la mejora del algoritmo). Tenía varios problemas con Anki, pero como el nuevo algoritmo corrige justo mi queja principal, pienso darle otra oportunidad. Me pregunto si el resto de los problemas seguirán siendo un obstáculo
    • Yo me cambié a la extensión FSRS durante A-level. Incluso hice un ajuste personalizado según mi patrón de estudio con un notebook de Google Collab. La cantidad de repasos se redujo a la mitad y además el momento de los repasos quedó más distribuido, así que todo se volvió mucho más llevadero. El efecto fue igual o incluso mejor. Recomiendo mucho volver a probar
    • Yo tuve una experiencia parecida. Sentía que Anki se obsesionaba con la memoria de corto plazo y que, tras unos días o unas semanas, casi tenía que reaprender desde cero. En esa época casi todas las comunidades de SRS trataban a Anki como algo sagrado, pero yo lo dejé
    • WaniKani tiene la mejor UI de SRS, pero por su algoritmo anticuado termina teniendo en esencia las mismas limitaciones. Esa estructura de “después del último repaso ya no hace falta volver a ver la tarjeta nunca” siempre me genera ansiedad por el riesgo de perder el conocimiento
  • Lo interesante del spaced repetition es la premisa de que la “memorización simple” cumple un papel mucho más importante en ciertos contextos de lo que la educación moderna suele asumir. En matemáticas y programación se suele pensar que la comprensión importa más que la memorización, pero el spaced repetition puede plantear una objeción a esa idea
    • En la transición del sistema educativo desde antes de la Revolución Industrial hasta la actualidad, hubo un cambio desde la educación clásica centrada en memorización —latín, griego— hacia un enfoque “centrado en la comprensión”. Ese cambio era necesario en su momento, pero pudo haber ido demasiado lejos. Hoy la memorización está más infravalorada de lo que debería
    • En programación hoy se sigue mucho la idea de “lo busco cuando lo necesite”. Pero hay cosas que sí deben memorizarse a la fuerza, como lenguajes de programación o patrones. La práctica se parece a un SRS no estructurado, y en ciertos campos —por ejemplo, desarrollar drivers en C++— el SRS ayuda mucho
    • Las operaciones que se usan repetidamente, como la multiplicación, tienen que interiorizarse por memoria para poder concentrarse en aprender conceptos de nivel superior. Esa estructura es clave para la eficiencia del aprendizaje
    • La memorización es una condición previa para la comprensión. No puedes comprender algo que no recuerdas
    • La diferencia entre conocimiento de recuerdo y conocimiento basado en modelos lógicos es muy interesante. Los LLM suelen parecerse al primero, y por eso tienen muchas limitaciones en matemáticas