Карта знаний ребёнка: как ИИ выбирает, что учить дальше

Локальный ИИ · обучение · knowledge graph

Как ИИ понимает, что ребёнку учить дальше: карта знаний, пробелы и адаптивная траектория

Обычный ИИ-чат умеет ответить на вопрос, но не знает автоматически, какой навык должен идти следующим. Для полноценного репетитора нужна отдельная карта программы: какие понятия зависят друг от друга, что ребёнок уже действительно освоил, где остаются пробелы и когда лучше не переходить дальше, а вернуться к prerequisite.

Актуально: сентябрь 2026 Knowledge Graph + Mastery + Knowledge Tracing Local-first
PrerequisitesMasteryBKTDiagnostics Student ModelRAGSpaced ReviewAdaptive Path

Почему обычного ИИ-чата недостаточно

Если ребёнок пишет: «Объясни проценты», LLM может отлично объяснить проценты. Но она не обязана знать, что именно этот ученик путает дроби, плохо делит на 100 и ещё не закрепил пропорции. В итоге объяснение формально правильное, но поставлено на слабый фундамент.

Обычный чат Реагирует на текущий вопрос

Видит prompt и, возможно, историю. Самостоятельно не строит надёжную модель prerequisites и mastery.

Адаптивный тьютор Сначала смотрит на карту навыков

Проверяет prerequisite, уровень уверенности и недавние ошибки, затем решает, что делать дальше.

Именно поэтому свежие local-first проекты вроде OpenTutor, LearningMAP и adaptive-learning-agent добавляют поверх LLM отдельный knowledge graph, диагностику, mastery и planner.

Главное различие: граф программы и состояние ученика — не одно и то же

Curriculum Graph Как устроен предмет
  • узлы — понятия и навыки;
  • рёбра — prerequisites и связанные темы;
  • ссылки на учебник и задания;
  • класс, предмет, уровень сложности;
  • структура относительно стабильна.
Learner State Что происходит у конкретного ребёнка
  • mastery по каждому навыку;
  • уровень уверенности в оценке;
  • последние попытки;
  • типичные ошибки;
  • когда повторить;
  • состояние постоянно меняется.
Пример: «умножение нужно до письменного деления» — свойство Curriculum Graph. «Маша делает умножение без подсказки в 9 из 10 свежих задач» — Learner State.

Это различие важно и технически. В свежих обсуждениях adaptive tutoring разработчики прямо поднимают вопрос: граф концептов и когнитивное состояние ученика лучше моделировать отдельно, иначе система путает структуру предмета с текущим уровнем конкретного человека.

Из чего состоит нормальный Curriculum Graph

Сложение до 100skill: math.add.100
↓ prerequisite for
Вычитание до 100math.sub.100
Умножениеmath.mul.basic
Делениеmath.div.basic
Текстовые задачи в несколько действийmath.word.multi_step

В реальной системе кроме PREREQUISITE_OF полезны и другие связи.

PREREQUISITE_OFНужно освоить A, прежде чем серьёзно учить B.
RELATED_TOТемы связаны, но одна не блокирует другую.
PART_OFНавык входит в более крупный раздел.
APPLIES_TOНавык используется в типе задач.
CONFUSED_WITHПара понятий, которые ученик часто путает.
SOURCE_LINKПараграф учебника, правило или пример из RAG.

Откуда брать структуру школьной программы

Для российского школьника я бы не позволял LLM самостоятельно «изобретать программу». Основа должна приходить из действующей федеральной рабочей программы, конкретного учебника и, при необходимости, школьного тематического планирования.

1Федеральная рабочая программа

Даёт официальную структуру содержания и результаты обучения.

2Учебник ребёнка

Даёт реальный порядок тем, определения и примеры.

3Учитель / родитель

Фиксирует фактический темп класса и особенности программы.

4LLM

Помогает дробить темы на skills и предлагает candidate edges, но не утверждает их без проверки.

В реестре ЕДСОО доступны федеральные рабочие программы по школьным предметам; портал также публикует актуальные материалы на 2026/2027 учебный год по математике и русскому языку.

Порядок тем ≠ prerequisite graph. То, что две темы идут подряд в учебнике, не означает строгую зависимость. Поэтому календарный порядок и педагогические prerequisites лучше хранить раздельно.

Как задавать prerequisites, чтобы граф не превратился в фантазию LLM

  1. Разбить раздел на маленькие skills.Не «дроби», а «сравнивать дроби с одинаковым знаменателем», «сокращать дробь», «приводить к общему знаменателю».
  2. Взять явные зависимости из программы и учебника.Там, где они очевидны.
  3. Попросить LLM предложить candidate edges.Только как черновик.
  4. Проверить каждый критичный edge.Особенно тот, который будет блокировать переход к следующей теме.
  5. Разделить hard и soft prerequisite.Hard блокирует тему; soft лишь снижает рекомендуемый приоритет.
  6. Хранить provenance.Почему связь создана: программа, учебник, эксперт, LLM suggestion.
Пример edge
{
  "from": "math.fractions.common_denominator",
  "to": "math.fractions.addition",
  "type": "PREREQUISITE_OF",
  "strength": "hard",
  "source": "textbook_chapter_4",
  "verified": true
}

Что хранить в Learner State

masteryОценка текущего владения навыком.
confidenceНасколько система уверена в этой оценке.
attemptsСвежие независимые попытки.
hint_levelСколько помощи понадобилось.
misconceptionsКакие типовые ошибки встречаются.
last_practicedКогда навык последний раз использовался.
next_reviewКогда его стоит проверить снова.
assessment_resultКак справился без подсказок.

Главное — не выводить mastery из одного диалога. Лучше опираться на несколько независимых заданий, причём отдельно учитывать помощь ИИ.

Что такое mastery и почему «80% = знает» — слишком грубо

Mastery — это внутренняя оценка того, насколько устойчиво ученик владеет конкретным навыком. Она может быть числом от 0 до 1, но это не школьная отметка и не «процент интеллекта».

0.15Практически не освоено

Нужна базовая диагностика и объяснение.

0.45Есть частичное понимание

Ученик решает часть заданий, но путает ключевой шаг.

0.75Почти устойчиво

Большинство задач решает, но нужна проверка без подсказок.

0.92Устойчивое владение

Несколько независимых успешных попыток и повтор позже.

Универсального магического порога не существует. Исследования mastery learning отдельно сравнивают пороговые правила и показывают, что выбор threshold — реальная проектная задача, а не константа. Для домашнего тьютора разумнее учитывать тип предмета, цену ошибки и отложенное удержание.

Bayesian Knowledge Tracing: понятный способ обновлять mastery

Bayesian Knowledge Tracing (BKT) — классический подход, где для каждого навыка система оценивает вероятность того, что ученик его уже знает. После каждого ответа вероятность обновляется. При этом модель учитывает, что знающий ребёнок может ошибиться, а незнающий — случайно угадать.

P(L)Вероятность, что навык уже освоен.
P(T)Вероятность выучить навык после практики.
P(S)Slip: ошибиться, хотя навык освоен.
P(G)Guess: ответить правильно случайно.

Свежие исследования 2025–2026 продолжают развивать knowledge tracing: используют графы, долгосрочное/краткосрочное состояние, difficulty-aware модели и адаптивные механизмы. Но для домашней системы ценность BKT не в модности, а в интерпретируемости.

Нужна ли дома нейросеть для knowledge tracing

Обычно нет. Для одного ребёнка нет десятков тысяч исторических взаимодействий, на которых сложная neural KT-модель могла бы раскрыть преимущество.

Для MVP Прозрачная rule-based / BKT-like модель

Понятно, почему mastery вырос или упал. Легко отлаживать.

Для большой платформы Deep / graph knowledge tracing

Имеет смысл при большом количестве учеников, заданий и накопленной статистике.

Для домашнего тьютора я бы начал ещё проще: взвешенные свежие попытки + штраф за подсказки + отдельный delayed assessment. Когда накопятся данные, можно перейти к BKT.

Как диагностировать, где именно пробел

Если ребёнок ошибся в процентах, нельзя сразу записывать «проценты не знает». Ошибка могла возникнуть из-за деления, дробей, пропорции или чтения условия.

Ошибка в целевой темепроценты
Проверить prerequisiteдроби
Ещё глубже при необходимостиделение
Найти boundaryпоследний устойчивый навык

Свежая работа RPKT как раз описывает recursive prerequisite tracing: система идёт назад по зависимостям, пока не найдёт реальную границу знания, вместо предположения, что ученик сам понимает собственный пробел.

Система должна уметь сказать: «я пока не уверена»

Одна из худших ошибок adaptive tutor — уверенно решить, что навык «не освоен» после одного промаха. Ученик мог торопиться, устать или неверно прочитать условие.

Низкий mastery + высокая уверенностьДействительно нужен remedial lesson.
Низкий mastery + низкая уверенностьНужен короткий diagnostic probe.
Высокий mastery + низкая уверенностьНужно ещё одно независимое задание.
Высокий mastery + высокая уверенностьМожно идти к следующему skill и планировать повторение.

Как алгоритм выбирает следующую тему

Следующая тема не должна определяться фразой LLM «кажется, теперь можно перейти дальше». Нужна явная политика.

1Есть ли критичный prerequisite ниже порога?

Да → сначала prerequisite.

2Неуверенность слишком высокая?

Да → diagnostic task.

3Текущая тема почти освоена?

Да → контроль без подсказки.

4Есть забываемый навык?

Да → короткое повторение перед новым материалом.

5Все входные условия выполнены?

Да → открыть следующий доступный skill.

Упрощённая scoring policy
priority(skill) =
    prerequisite_ready * 0.35
  + learning_need      * 0.30
  + forgetting_risk    * 0.20
  + curriculum_relevance * 0.15

if confidence(skill) < 0.55:
    choose_diagnostic(skill)
elif prerequisite_mastery(skill) < threshold:
    remediate_prerequisite(skill)
else:
    teach_or_practice(skill)

Весам не нужно приписывать научную универсальность — это пример инженерной политики. Главное, чтобы правила были видимыми, тестируемыми и изменяемыми.

Пример: как карта работает по математике

Натуральные числа0.96
Деление0.88
Обыкновенные дроби0.58
Пропорцииlocked
Процентыlocked

Ребёнок просит «учить проценты». Система видит, что prerequisite «обыкновенные дроби» ниже рабочего порога. Вместо полноценного урока по процентам она задаёт короткую диагностику по дробям.

Шаг 1Диагностика

Сравнить 3/4 и 5/8.

Шаг 2Ошибка

Ученик сравнивает числители и игнорирует знаменатель.

Шаг 3Misconception

fraction.compare.denominator_ignored

Шаг 4Remediation

2 коротких задания на смысл дроби и общий знаменатель.

Шаг 5Assessment later

Новая задача без подсказки.

Только после устойчивого результата система открывает следующий узел.

Пример по русскому языку

В русском prerequisite graph менее очевиден, чем в математике, но он тоже полезен. Например, некоторые орфограммы опираются на умение выделять морфему, определять часть речи или находить форму слова.

Части словакорень · приставка · суффикс
Однокоренные словасмысл и общая часть
Безударная гласная в корнепроверочное слово

Если ребёнок постоянно ошибается в проверочных словах, система должна проверить, понимает ли он саму связь однокоренных слов, а не просто повторять правило «подбери проверочное».

Для русского особенно важно связывать skill с правилом из учебника/RAG. Тогда ИИ объясняет тему в формулировках, совместимых с текущей программой, а не придумывает свою терминологию.

Пример по английскому языку

Vocabulary: familymastery 0.91
Verb to be0.82
Present Simple0.67
Question forms0.51
Short dialogueblocked by question forms
Listeningindependent dimension

Здесь особенно важно не сводить всё к одному уровню вроде «A1 = 63%». У ученика может быть сильный словарь, но слабые вопросы и низкое listening comprehension. Карта должна хранить навыки отдельно.

Ошибку лучше хранить как misconception, а не просто «неправильно»

Два ребёнка могут дать одинаковый неправильный ответ по разным причинам. Если система хранит только 0/1, она потеряет важную информацию.

math.sign_transferНе меняет знак при переносе через равенство.
math.fraction.denominatorСкладывает знаменатели при сложении дробей.
ru.root_vowel.checkwordПодбирает слово, которое не является проверочным.
en.do_doesНе различает do/does в Present Simple questions.

После нескольких одинаковых ошибок misconception может влиять на next-topic policy сильнее, чем общий mastery score.

Карта должна учитывать забывание

Mastery не должен расти навсегда. Если навык не использовался несколько недель, система должна увеличивать uncertainty или снижать уверенность и планировать короткий review.

День 0Освоено

3 успешные независимые задачи.

День 3Проверка

1 короткое задание без подсказки.

День 10Повторение

Новая формулировка того же skill.

День 30Retention check

Проверить, не исчез ли навык.

Отдельная статья про интервальное повторение логично станет следующим материалом, потому что она отвечает уже не «что учить дальше», а «когда вернуть старый навык».

Что показывать родителю

Граф хорош тем, что родителю можно показать не абстрактный «прогресс 74%», а понятную карту.

Сложениеосвоено
Вычитаниеосвоено
Дробинужна практика
Пропорциипока рано
Процентызаблокировано prerequisite

Такой UI объясняет решение системы: «проценты не начались не потому, что ИИ что-то решил по настроению, а потому что prerequisite по дробям пока нестабилен».

SQLite, NetworkX или Neo4j: что нужно дома

MVP SQLite + обычные таблицы

Для одного ребёнка и сотен skills этого достаточно. Простая резервная копия и минимум инфраструктуры.

Алгоритмы графа NetworkX

Удобно вычислять ancestors, descendants, shortest prerequisite path и анализировать DAG в Python.

Большая система Neo4j

Полезен, когда много предметов, пользователей и сложных отношений. Для домашнего MVP часто избыточен.

Рекомендация: для первой версии хранить skills/edges/learner_state в SQLite, а графовые вычисления делать через NetworkX в памяти. Переносить в Neo4j только при реальной необходимости.

Полная локальная архитектура

События обученияответы · доска · голос · ДЗ · quiz
Task Checkerправильность
Misconception Mapperтип ошибки
Hint Trackerуровень помощи
Curriculum Graphskills · prerequisites · source links
Learner Statemastery · uncertainty · history · review
Adaptive Plannerdiagnose · remediate · practice · assess · advance · review
LLM Tutorобъясняет
RAGдаёт материал
Task Generatorсоздаёт упражнение

Пример структуры данных

Skill
{
  "id": "math.fractions.addition",
  "subject": "math",
  "grade": 5,
  "title": "Сложение дробей",
  "prerequisites": [
    "math.fractions.common_denominator"
  ],
  "source_refs": [
    "math-5:chapter-3:section-12"
  ]
}
Learner State
{
  "student_id": "child-01",
  "skill_id": "math.fractions.addition",
  "mastery": 0.63,
  "confidence": 0.72,
  "attempts_recent": 6,
  "independent_correct": 3,
  "max_hint_level_last": 2,
  "misconceptions": [
    "fraction.add.denominators"
  ],
  "last_practiced": "2026-09-21",
  "next_review": "2026-09-24"
}

Как собрать MVP, который уже полезен

  1. Выбрать один предмет.Например, математика 2–3 класса.
  2. Разбить на 20–50 skills.Не пытаться сразу описать всю школу.
  3. Добавить hard prerequisites.Только связи, в которых вы уверены.
  4. Привязать задания.Каждая задача должна проверять 1–2 конкретных skill.
  5. Сделать простую mastery-функцию.Свежие попытки + подсказки + delayed assessment.
  6. Добавить diagnostic mode.Если система не уверена — задать короткий probe.
  7. Написать next-topic policy.Явные правила вместо свободного решения LLM.
  8. Связать с RAG.Каждый skill знает нужный параграф/правило.
  9. Показать карту родителю.Освоено / практика / заблокировано.
  10. Только потом усложнять.BKT, spaced repetition и автоматическое расширение графа.

Как проверить, что карта сама не учит неправильно

Cycle checkPrerequisite DAG не должен случайно получить A → B → A.
Orphan checkКлючевые skills не должны остаться без связей и заданий.
Edge reviewКритичные hard prerequisites проверяются вручную.
Source provenanceПонятно, откуда появилась каждая связь.
Diagnostic testsИзвестные искусственные профили должны приводить к ожидаемой следующей теме.
Regression suiteПосле смены planner/LLM одни и те же learner profiles дают объяснимые решения.
Особенно важно: LLM может помогать извлекать concept graph из текста, но финальное решение «не пускать ребёнка к теме B, пока не освоена A» — это уже педагогическое правило. Его нельзя бесконтрольно создавать из одного генеративного ответа.

Типичные ошибки

Граф строит одна LLMБез программы, учебника и проверки появляются ложные prerequisites.
Один узел = целая главаНевозможно понять, какой конкретно навык слабый.
Curriculum и learner state смешаныСтруктура предмета начинает меняться из-за одной ошибки ребёнка.
Один правильный ответ = masteryУгадал или получил подсказку — а тема уже «зелёная».
Нет uncertaintyСистема слишком уверенно делает выводы по малому числу данных.
Все prerequisites hardУчебная траектория становится чрезмерно жёсткой.
Mastery никогда не забываетсяКарта показывает старое состояние и не планирует review.
Сложная neural KT с первого дняМного инфраструктуры, но почти нет данных для обучения.
Нет provenanceНепонятно, почему одна тема блокирует другую.
Планировщик — это promptНельзя воспроизвести и протестировать решение.

Частые вопросы

Knowledge Graph и RAG — это одно и то же?

Нет. Knowledge Graph описывает структуру навыков и зависимости между ними. RAG ищет подходящие фрагменты учебника или другой базы знаний для объяснения конкретного skill.

Можно ли полностью построить карту предмета через LLM?

LLM полезна для чернового decomposition и candidate edges, но критичные prerequisites лучше подтверждать учебной программой, учебником или человеком.

Нужен ли Neo4j?

Нет для домашнего MVP. SQLite + NetworkX обычно проще и достаточно для сотен или тысяч skills. Neo4j полезнее при большой многопользовательской системе.

Как понять, что ребёнок освоил skill?

Не по одному ответу. Нужны несколько независимых попыток, учёт подсказок и желательно delayed assessment на новой формулировке.

Что делать, если ИИ не уверен в mastery?

Не делать вывод. Выбрать короткое диагностическое задание, которое максимально различает «знает» и «не знает».

Можно ли использовать BKT дома?

Да. Это интерпретируемый вариант knowledge tracing. Но на старте даже простая прозрачная модель может быть лучше, пока мало данных.

Нужно ли строить один общий граф на все предметы?

Не обязательно. Проще иметь отдельные предметные графы и небольшой слой cross-subject связей: например, проценты в математике могут быть prerequisite для некоторых задач по физике.

Можно ли автоматически выбирать задания?

Да. Planner выбирает skill, difficulty и режим, а Task Generator создаёт конкретное упражнение. Ответ должен проверяться отдельным validator.

Источники и проекты

Следующий материал

Локальный ИИ + интервальное повторение

Как система определяет, что ребёнок начал забывать, и создаёт новые задачи на тот же skill вместо бесконечного повторения одной карточки.