Локальный ИИ · обучение · knowledge graph
Как ИИ понимает, что ребёнку учить дальше: карта знаний, пробелы и адаптивная траектория
Обычный ИИ-чат умеет ответить на вопрос, но не знает автоматически, какой навык должен идти следующим. Для полноценного репетитора нужна отдельная карта программы: какие понятия зависят друг от друга, что ребёнок уже действительно освоил, где остаются пробелы и когда лучше не переходить дальше, а вернуться к prerequisite.
Почему обычного ИИ-чата недостаточно
Если ребёнок пишет: «Объясни проценты», LLM может отлично объяснить проценты. Но она не обязана знать, что именно этот ученик путает дроби, плохо делит на 100 и ещё не закрепил пропорции. В итоге объяснение формально правильное, но поставлено на слабый фундамент.
Видит prompt и, возможно, историю. Самостоятельно не строит надёжную модель prerequisites и mastery.
Проверяет prerequisite, уровень уверенности и недавние ошибки, затем решает, что делать дальше.
Именно поэтому свежие local-first проекты вроде OpenTutor, LearningMAP и adaptive-learning-agent добавляют поверх LLM отдельный knowledge graph, диагностику, mastery и planner.
Главное различие: граф программы и состояние ученика — не одно и то же
- узлы — понятия и навыки;
- рёбра — prerequisites и связанные темы;
- ссылки на учебник и задания;
- класс, предмет, уровень сложности;
- структура относительно стабильна.
- mastery по каждому навыку;
- уровень уверенности в оценке;
- последние попытки;
- типичные ошибки;
- когда повторить;
- состояние постоянно меняется.
Это различие важно и технически. В свежих обсуждениях adaptive tutoring разработчики прямо поднимают вопрос: граф концептов и когнитивное состояние ученика лучше моделировать отдельно, иначе система путает структуру предмета с текущим уровнем конкретного человека.
Из чего состоит нормальный Curriculum Graph
В реальной системе кроме PREREQUISITE_OF полезны и другие связи.
Откуда брать структуру школьной программы
Для российского школьника я бы не позволял LLM самостоятельно «изобретать программу». Основа должна приходить из действующей федеральной рабочей программы, конкретного учебника и, при необходимости, школьного тематического планирования.
Даёт официальную структуру содержания и результаты обучения.
Даёт реальный порядок тем, определения и примеры.
Фиксирует фактический темп класса и особенности программы.
Помогает дробить темы на skills и предлагает candidate edges, но не утверждает их без проверки.
В реестре ЕДСОО доступны федеральные рабочие программы по школьным предметам; портал также публикует актуальные материалы на 2026/2027 учебный год по математике и русскому языку.
Как задавать prerequisites, чтобы граф не превратился в фантазию LLM
- Разбить раздел на маленькие skills.Не «дроби», а «сравнивать дроби с одинаковым знаменателем», «сокращать дробь», «приводить к общему знаменателю».
- Взять явные зависимости из программы и учебника.Там, где они очевидны.
- Попросить LLM предложить candidate edges.Только как черновик.
- Проверить каждый критичный edge.Особенно тот, который будет блокировать переход к следующей теме.
- Разделить hard и soft prerequisite.Hard блокирует тему; soft лишь снижает рекомендуемый приоритет.
- Хранить provenance.Почему связь создана: программа, учебник, эксперт, LLM suggestion.
{
"from": "math.fractions.common_denominator",
"to": "math.fractions.addition",
"type": "PREREQUISITE_OF",
"strength": "hard",
"source": "textbook_chapter_4",
"verified": true
}
Что хранить в Learner State
Главное — не выводить mastery из одного диалога. Лучше опираться на несколько независимых заданий, причём отдельно учитывать помощь ИИ.
Что такое mastery и почему «80% = знает» — слишком грубо
Mastery — это внутренняя оценка того, насколько устойчиво ученик владеет конкретным навыком. Она может быть числом от 0 до 1, но это не школьная отметка и не «процент интеллекта».
Нужна базовая диагностика и объяснение.
Ученик решает часть заданий, но путает ключевой шаг.
Большинство задач решает, но нужна проверка без подсказок.
Несколько независимых успешных попыток и повтор позже.
Универсального магического порога не существует. Исследования mastery learning отдельно сравнивают пороговые правила и показывают, что выбор threshold — реальная проектная задача, а не константа. Для домашнего тьютора разумнее учитывать тип предмета, цену ошибки и отложенное удержание.
Bayesian Knowledge Tracing: понятный способ обновлять mastery
Bayesian Knowledge Tracing (BKT) — классический подход, где для каждого навыка система оценивает вероятность того, что ученик его уже знает. После каждого ответа вероятность обновляется. При этом модель учитывает, что знающий ребёнок может ошибиться, а незнающий — случайно угадать.
Свежие исследования 2025–2026 продолжают развивать knowledge tracing: используют графы, долгосрочное/краткосрочное состояние, difficulty-aware модели и адаптивные механизмы. Но для домашней системы ценность BKT не в модности, а в интерпретируемости.
Нужна ли дома нейросеть для knowledge tracing
Обычно нет. Для одного ребёнка нет десятков тысяч исторических взаимодействий, на которых сложная neural KT-модель могла бы раскрыть преимущество.
Понятно, почему mastery вырос или упал. Легко отлаживать.
Имеет смысл при большом количестве учеников, заданий и накопленной статистике.
Для домашнего тьютора я бы начал ещё проще: взвешенные свежие попытки + штраф за подсказки + отдельный delayed assessment. Когда накопятся данные, можно перейти к BKT.
Как диагностировать, где именно пробел
Если ребёнок ошибся в процентах, нельзя сразу записывать «проценты не знает». Ошибка могла возникнуть из-за деления, дробей, пропорции или чтения условия.
Свежая работа RPKT как раз описывает recursive prerequisite tracing: система идёт назад по зависимостям, пока не найдёт реальную границу знания, вместо предположения, что ученик сам понимает собственный пробел.
Система должна уметь сказать: «я пока не уверена»
Одна из худших ошибок adaptive tutor — уверенно решить, что навык «не освоен» после одного промаха. Ученик мог торопиться, устать или неверно прочитать условие.
Как алгоритм выбирает следующую тему
Следующая тема не должна определяться фразой LLM «кажется, теперь можно перейти дальше». Нужна явная политика.
Да → сначала prerequisite.
Да → diagnostic task.
Да → контроль без подсказки.
Да → короткое повторение перед новым материалом.
Да → открыть следующий доступный skill.
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)
Весам не нужно приписывать научную универсальность — это пример инженерной политики. Главное, чтобы правила были видимыми, тестируемыми и изменяемыми.
Пример: как карта работает по математике
Ребёнок просит «учить проценты». Система видит, что prerequisite «обыкновенные дроби» ниже рабочего порога. Вместо полноценного урока по процентам она задаёт короткую диагностику по дробям.
Сравнить 3/4 и 5/8.
Ученик сравнивает числители и игнорирует знаменатель.
fraction.compare.denominator_ignored
2 коротких задания на смысл дроби и общий знаменатель.
Новая задача без подсказки.
Только после устойчивого результата система открывает следующий узел.
Пример по русскому языку
В русском prerequisite graph менее очевиден, чем в математике, но он тоже полезен. Например, некоторые орфограммы опираются на умение выделять морфему, определять часть речи или находить форму слова.
Если ребёнок постоянно ошибается в проверочных словах, система должна проверить, понимает ли он саму связь однокоренных слов, а не просто повторять правило «подбери проверочное».
Пример по английскому языку
Здесь особенно важно не сводить всё к одному уровню вроде «A1 = 63%». У ученика может быть сильный словарь, но слабые вопросы и низкое listening comprehension. Карта должна хранить навыки отдельно.
Ошибку лучше хранить как misconception, а не просто «неправильно»
Два ребёнка могут дать одинаковый неправильный ответ по разным причинам. Если система хранит только 0/1, она потеряет важную информацию.
После нескольких одинаковых ошибок misconception может влиять на next-topic policy сильнее, чем общий mastery score.
Как связать карту знаний с RAG
Knowledge Graph не заменяет RAG. Они решают разные задачи:
Связи между skills, prerequisites, mastery и следующий шаг.
Параграф учебника, правило, пример, цитату и контекст.
У каждого skill можно хранить ссылки на нужные chunks в Knowledge Base:
{
"skill_id": "ru.root_vowel.unstressed",
"sources": [
{"kb": "russian-3-class", "section": "§18"},
{"kb": "teacher-notes", "chunk": "checkword-rule"}
]
}
Как карта знаний получает данные с интерактивной доски
Интерактивная доска даёт особенно качественные события: система видит не только финальный ответ, но и промежуточный шаг.
Так карта пополняется реальными наблюдениями, а не только ответами «верно / неверно».
Как использовать карту знаний в учебных квестах
Квест не должен случайно выбирать задачи. Quest Engine может запросить из карты 3–4 навыка: один уверенный для лёгкого старта, два целевых слабых и один на повторение.
Создать ощущение успеха.
Основная практика.
Проверить конкретную ошибку.
Навык, который пора закрепить.
LLM придумывает сюжет, но skills выбирает planner на основе Learner State.
Карта должна учитывать забывание
Mastery не должен расти навсегда. Если навык не использовался несколько недель, система должна увеличивать uncertainty или снижать уверенность и планировать короткий review.
3 успешные независимые задачи.
1 короткое задание без подсказки.
Новая формулировка того же skill.
Проверить, не исчез ли навык.
Отдельная статья про интервальное повторение логично станет следующим материалом, потому что она отвечает уже не «что учить дальше», а «когда вернуть старый навык».
Что показывать родителю
Граф хорош тем, что родителю можно показать не абстрактный «прогресс 74%», а понятную карту.
Такой UI объясняет решение системы: «проценты не начались не потому, что ИИ что-то решил по настроению, а потому что prerequisite по дробям пока нестабилен».
SQLite, NetworkX или Neo4j: что нужно дома
Для одного ребёнка и сотен skills этого достаточно. Простая резервная копия и минимум инфраструктуры.
Удобно вычислять ancestors, descendants, shortest prerequisite path и анализировать DAG в Python.
Полезен, когда много предметов, пользователей и сложных отношений. Для домашнего MVP часто избыточен.
Полная локальная архитектура
Пример структуры данных
{
"id": "math.fractions.addition",
"subject": "math",
"grade": 5,
"title": "Сложение дробей",
"prerequisites": [
"math.fractions.common_denominator"
],
"source_refs": [
"math-5:chapter-3:section-12"
]
}
{
"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, который уже полезен
- Выбрать один предмет.Например, математика 2–3 класса.
- Разбить на 20–50 skills.Не пытаться сразу описать всю школу.
- Добавить hard prerequisites.Только связи, в которых вы уверены.
- Привязать задания.Каждая задача должна проверять 1–2 конкретных skill.
- Сделать простую mastery-функцию.Свежие попытки + подсказки + delayed assessment.
- Добавить diagnostic mode.Если система не уверена — задать короткий probe.
- Написать next-topic policy.Явные правила вместо свободного решения LLM.
- Связать с RAG.Каждый skill знает нужный параграф/правило.
- Показать карту родителю.Освоено / практика / заблокировано.
- Только потом усложнять.BKT, spaced repetition и автоматическое расширение графа.
Как проверить, что карта сама не учит неправильно
Типичные ошибки
Частые вопросы
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.
Источники и проекты
- OpenTutor — local-first adaptive learning workspace
- LearningMAP — knowledge graph, diagnosis and adaptive course
- Adaptive learning agent — knowledge graph and gap diagnosis
- Adaptive Knowledge Graph — local Ollama + prerequisite graph + mastery
- AI Tutor — knowledge dependency graph + Bayesian knowledge tracing
- Adaptive LLM scaffolding with knowledge tracing, 2026
- Difficulty-aware programming knowledge tracing, Scientific Reports
- Reliability of Bayesian Knowledge Tracing models
- Randomized experiment comparing mastery thresholds
- RPKT — Recursive Prerequisite Knowledge Tracing
- ЕДСОО — реестр федеральных рабочих программ
- ЕДСОО — рабочие программы по предметам
Следующий материал

