Локальный ИИ · FSRS · retrieval practice
Локальный ИИ и интервальное повторение: как вовремя возвращать забываемые навыки новыми заданиями
Обычная система интервального повторения показывает карточку снова через рассчитанный интервал. Локальный ИИ позволяет сделать шаг дальше: планировать не конкретную карточку, а сам навык, а при каждом повторении создавать новую формулировку — другой пример, текстовую задачу, устный вопрос, мини-квест или перенос знания в новую ситуацию.
Почему одной и той же карточки недостаточно
Классический SRS отлично подходит для слов, дат, формул и других атомарных фактов. Но школьный навык часто сложнее одной пары «вопрос → ответ». Если ребёнок десять раз видит одну и ту же задачу, он может запомнить саму формулировку и перестать реально извлекать способ решения.
Полезна для автоматизации факта, но легко привязать ответ к конкретному cue.
Сегодня — пример, потом текстовая задача, затем обратная операция, потом устный вопрос.
Свежие обсуждения в сообществе Anki как раз выделяют этот паттерн: планировать элементы памяти отдельно, а предложение или контекст создавать заново при каждом review. Это снижает риск запомнить конкретную surface form вместо самого знания.
Это не дубль карты знаний
Определяет prerequisites, пробелы, mastery и следующую доступную тему.
Оценивает риск забывания и планирует повторение конкретного skill.
Идеальная система использует оба слоя. Knowledge Map открывает новый skill, а scheduler после освоения начинает следить, не пора ли его вернуть в практику.
На чём основаны spacing и retrieval practice
Две идеи хорошо подтверждены в исследованиях обучения: spacing — распределять практику во времени, и retrieval practice — пытаться извлечь знание из памяти, а не просто перечитывать.
Современный мета-анализ 2025 года показал небольшое, но значимое преимущество retrieval practice над рядом elaborative-условий в среднем, причём преимущество заметно зависело от наличия корректирующей обратной связи. Это хороший аргумент в пользу архитектуры «ответ → checker → feedback», а не «ответ → просто следующий вопрос».
Что такое FSRS и зачем он здесь
FSRS — Free Spaced Repetition Scheduler. В актуальной версии алгоритм моделирует состояние памяти через три понятия: Difficulty, Stability и Retrievability.
В стандартных flashcards пользователь после review выбирает Again, Hard, Good или Easy. В AI-tutor рейтинг лучше вычислять из более богатых evidence: правильность, подсказки, количество попыток и независимая проверка.
Главная идея: scheduler хранит skill, а не готовый вопрос
В базе не обязательно хранить карточку «7×8». Можно хранить memory item
math.mul.7, а конкретный вопрос создавать в момент review.
{
"memory_id": "math.mul.7",
"skill_id": "math.multiplication.table_7",
"scheduler": "fsrs",
"difficulty": 5.1,
"stability_days": 11.4,
"retrievability": 0.87,
"next_review": "2026-09-22"
}
Полная архитектура
Какие evidence передавать scheduler после ответа
Из этих evidence система может получить внутренний rating для FSRS. Например, правильный ответ с hint level 3 не должен автоматически превращаться в Easy.
Как генерировать новое задание на тот же навык
Генерация должна начинаться не с prompt «придумай похожую задачу», а с Task Spec. В нём фиксируются сам skill, допустимый диапазон сложности, формат и ограничения.
{
"skill_id": "math.multiplication.table_7",
"grade": 2,
"difficulty": 2,
"format": "word_problem",
"theme": "space_mission",
"avoid_numbers": [[7,8], [7,6]],
"max_steps": 1,
"must_require_retrieval": true,
"validator": "python"
}
LLM получает не свободу «учить как хочет», а роль генератора surface form. Это важно: scheduler и planner остаются детерминированными, а модель отвечает за разнообразие.
Почему новое задание обязательно проверять до показа ребёнку
Generative AI может придумать красивое условие с неправильным эталоном, лишними данными или двумя допустимыми ответами. Для review это особенно плохо: scheduler начнёт обновлять память на основании дефектного задания.
Пример по математике: один skill, четыре разных review
7 × 9 = ?
В 7 коробках по 8 деталей. Сколько деталей всего?
56 деталей разложили поровну в 7 коробок. Сколько в каждой?
Для 7 модулей нужно по 6 батарей. Хватит ли 40 батарей?
Во всех случаях проверяется связанный набор навыков вокруг таблицы умножения на 7, но cue меняется. Если ребёнок знает только одну заученную формулировку, transfer review это обнаружит.
Пример по русскому: повторять правило, а не одно слово
Предположим, memory item — ru.root_vowel.unstressed.
Вместо карточки «трава — травы» система может возвращать новые случаи.
л...са — какое проверочное слово?
Исправь слово и объясни правило.
Сам сформулируй, как проверять безударную гласную в корне.
Найди два слова с этой орфограммой в коротком тексте.
Так scheduler отслеживает не память конкретной пары слов, а устойчивость самого правила.
Пример по английскому: планировать слово, но менять предложение
Для словаря генеративный подход особенно очевиден. Memory item может быть словом или выражением, а предложение каждый раз создаётся заново.
Именно такой подход обсуждается в 2026 году в сообществе Anki: SRS планирует единицы знания, а новый sentence context подбирается или генерируется к моменту review. Local-first проект Tokori тоже объединяет языковой AI-tutor, локальную SQLite-базу и spaced repetition.
Когда обычная карточка всё-таки лучше генерации
Не нужно превращать всё в квесты. Некоторые знания действительно полезно извлекать в стабильной атомарной форме.
Хорошая система смешивает stable cards и generated skill reviews. Не следует считать один формат универсально лучшим.
Interleaving: смешивать навыки, а не учить блоками до усталости
Интерливинг — практика, где близкие типы задач перемешиваются. Это особенно полезно, когда ученик должен сначала определить, какой способ решения вообще нужен.
В AI-tutor review queue может специально собирать 3–5 due skills одного раздела и генерировать короткую смешанную сессию. Но новые навыки не стоит перемешивать слишком рано: сначала ребёнок должен понять базовый метод.
Transfer tasks: умеет ли ребёнок применить знание в другой ситуации
Правильная карточка показывает recall. Transfer task проверяет, способен ли ученик узнать тот же принцип в новой форме.
Transfer review стоит давать реже, чем обычный retrieval, потому что он сложнее и часто проверяет сразу несколько skills.
Как менять сложность при повторении
Scheduler отвечает за момент review, но difficulty controller решает, насколько сложной будет конкретная задача.
Выбрать правильный вариант.
Ответить с небольшой подсказкой формата.
Самостоятельно получить ответ.
Применить правило в новой задаче.
Узнать принцип в необычном контексте.
Если skill давно не повторялся, логично начать с уровня 2–3, а не сразу проверять максимальный transfer. Если простой recall устойчив, следующая review может быть сложнее.
Как учитывать подсказки в spaced repetition
Если ИИ дал половину решения, review нельзя оценивать так же, как полностью самостоятельный правильный ответ.
После hint 3–4 полезнее назначить новый короткий review раньше, чем «наказать» ребёнка длинной серией задач в той же сессии.
Нужно ли учитывать время ответа
Можно, но осторожно. Быстрый правильный ответ иногда говорит об автоматизации, а очень долгий — о нестабильном recall. Однако latency зависит от возраста, устройства, чтения условия, усталости и даже отвлечения.
Что делать, если ребёнок забыл навык
Ошибка на review — не повод сбрасывать всё «в ноль». Система должна понять глубину забывания.
Если ошибка вызвана prerequisite, scheduler текущего skill не должен бесконечно показывать варианты одной и той же задачи — управление передаётся Knowledge Map.
Как FSRS и карта знаний работают вместе
Например, новый skill уже освоен и mastery высокий, но FSRS показывает, что retrievability опустилась к целевому уровню. Тогда planner добавляет его в review, не меняя основной учебный маршрут.
Что показывать родителю
≈ 12 минут
1 навык потребовал подсказку
повторить раньше
следующий review через 16 дней
Родителю не обязательно показывать D/S/R FSRS. Лучше переводить внутреннюю математику в понятные формулировки: «пора повторить», «удерживается устойчиво», «снова возникла прежняя ошибка».
Нужен ли Anki или можно встроить всё в своего репетитора
Удобен для обычных карточек, слов и ручного контроля. FSRS уже встроен.
Можно хранить skill отдельно от surface form, учитывать подсказки, validators и knowledge graph.
Можно поддержать импорт/экспорт Anki, но не обязательно строить весь tutor внутри Anki. Для полноценной учебной системы scheduler проще интегрировать напрямую через open-source реализации FSRS.
Что хранить в базе
{
"memory_id": "math.mul.7",
"reviewed_at": "2026-09-21T18:40:00+03:00",
"task_format": "word_problem",
"correct": true,
"independent": true,
"hint_level": 0,
"attempt_count": 1,
"latency_sec": 18,
"validator": "python",
"rating_for_scheduler": "good"
}
Сам текст сгенерированной задачи можно хранить ограниченное время для отладки, а для долгосрочной памяти важнее review event и hash/metadata формулировки.
Практический локальный стек
Расчёт следующего review.
Memory items, history и Student DB.
Собирает сегодняшнюю review queue.
Локальная LLM генерирует surface form.
Эталон и проверка задач.
Правописание и grammar checks.
Навык, prerequisite и материал.
Сессия review и feedback.
Для домашнего проекта это не требует отдельного сервера баз данных: SQLite достаточно для одного-двух учеников, а scheduler и planner могут работать как обычный локальный сервис.
Как собрать первую рабочую версию
- Выбрать 10–20 skills.Например, таблица умножения или одна тема русского.
- Создать memory items.Один item на устойчивую единицу знания/навыка.
- Подключить FSRS.Пока использовать стандартный scheduler без собственной математики.
- Сделать один Task Spec format.Например, короткая математическая задача.
- Добавить deterministic validator.Без него AI-generated review не выпускать.
- Хранить hint level.Самостоятельный и подсказанный ответ должны различаться.
- Добавить surface deduplication.Не показывать почти тот же вопрос снова.
- Сделать daily queue на 10–15 минут.Не превращать review в второй полный урок.
- Через неделю добавить transfer tasks.Не начинать с максимальной вариативности.
- Только потом подключать несколько предметов.Сначала проверить, что scheduler и validator работают.
Как тестировать scheduler и генератор
Особенно полезно иметь искусственные review histories: «всегда Easy», «три забывания подряд», «правильно только с hint 3», «долго не повторялся». Они быстро обнаруживают неправильную интеграцию scheduler.
Что говорят исследования — и чего они пока не доказывают
Spacing и retrieval practice имеют сильную исследовательскую базу в целом. Есть и свежие результаты по adaptive spaced repetition: исследование 2026 года на university-level English for Academic Purposes показало улучшение delayed retention в восьминедельной программе.
Но это не прямое доказательство, что конкретная домашняя система «FSRS + local LLM + сгенерированные квесты» даст тот же эффект у школьника. Возраст, предмет, качество заданий, feedback и мотивация могут менять результат.
Типичные ошибки
Частые вопросы
FSRS сам генерирует вопросы?
Нет. FSRS — scheduler: он рассчитывает состояние памяти и момент следующего review. Генерацию задания выполняет отдельный Task Generator/LLM.
Нужно ли обязательно использовать Anki?
Нет. Можно использовать open-source реализацию FSRS напрямую внутри своего репетитора. Anki удобен как готовое приложение для классических карточек.
Можно ли каждый раз генерировать совершенно новое задание?
Да, если оно проверяет тот же skill, проходит validator и не добавляет лишнюю сложность, которая меняет предмет измерения.
Почему не хранить просто список вопросов?
Для некоторых тем можно. Но разделение skill и surface form позволяет менять контекст, формат и сложность, сохраняя одну историю памяти по навыку.
Как оценить review, если ребёнок ответил с подсказкой?
Сохранить hint level и не считать такой ответ эквивалентом самостоятельного recall. После сильной подсказки обычно нужен более ранний новый review.
Подходит ли spaced repetition для математики?
Для отдельных навыков, процедур и формул — да, но повторение должно включать применение и вариативные задачи. Нельзя сводить математику только к flashcards.
Что лучше: FSRS или SM-2?
Оба являются schedulers. В новой собственной системе логично рассматривать современный FSRS с открытыми реализациями и моделью Difficulty/Stability/Retrievability, но качество всей системы всё равно зависит от review evidence и задач.
Можно ли держать всё локально?
Да. Scheduler, Student DB, LLM, validators и интерфейс могут работать в домашней сети без внешнего AI API.
Как долго должна длиться review-сессия ребёнка?
Нет универсального числа. Для домашнего UX лучше ограничивать очередь по времени и возрасту, а не заставлять закрывать весь накопленный backlog любой ценой.
Источники и проекты
- Open Spaced Repetition / FSRS
- FSRS-6 algorithm
- Anki Manual — FSRS
- OpenTutor — FSRS + knowledge graph + local AI
- SkillCoco — BKT + spaced repetition + local AI
- Tutor MCP — BKT + FSRS + deterministic pedagogy
- Aristotle — retention-first AI tutor
- Quizzer — adaptive review from PDFs
- Tokori — local-first language tutor + spaced repetition
- Retrieval Practice Versus Elaborative Encoding — meta-analysis
- The science of effective learning with spacing and retrieval practice
- Adaptive spaced-repetition training, 2026
- Trends in testing effect research, 2026
Следующий материал
