TL;DR
Студенты дают AI структурированный фидбек через теги (Excellent, Very Helpful, Average, Poor, Terrible), который используется для персонализации будущих ответов. Вместо расплывчатого "хорошо/плохо" система получает конкретные сигналы: насколько ясен ответ, точен, адаптирован под уровень студента. Теги комбинируются с профилем пользователя (опыт, стиль обучения, цели), собранным в начале диалога.
Неожиданная находка: Статический профиль, собранный один раз в начале, дает на 20% больше персонализации (Adaptability 5.43 из 10), чем добавление live-фидбека в процессе диалога (4.55). Студенты редко использовали теги — только в 9.5% сообщений, и пять вариантов оказались слишком грубыми. Модель не успевала адаптироваться к фидбеку, который приходил только в конце каждого хода.
Метод работает через четыре параллельных пайплайна: один с профилем и фидбеком, один только с профилем, один с RAG-извлечением из учебника, один чистый LLM. Сравнение показало: профилирование критично для адаптивности, RAG — для точности (Correctness 9.70 vs 7.89 у базового LLM), а фидбек-теги почти не добавляют ценности при таком дизайне.
Схема метода
Система состоит из четырёх параллельных пайплайнов, каждый с разными входами:
ОНБОРДИНГ (один раз):
└─ Вопросы: опыт, стиль обучения, типичные проблемы, цели
└─ Сохраняется как метаданные пользователя
ШАГ 1: Студент задаёт вопрос
├─ Pipeline 1 (Personalized + Feedback): профиль + история фидбека
├─ Pipeline 2 (Personalized): только профиль
├─ Pipeline 3 (RAG): извлечение из учебника + контекст
└─ Pipeline 4 (LLM): прямой вызов модели
ШАГ 2: AI отвечает во всех пайплайнах
└─ Показывается только один ответ (Pipeline 1)
ШАГ 3: Студент оценивает через теги
└─ Excellent / Very Helpful / Average / Poor / Terrible
ШАГ 4: Фидбек добавляется в промпт следующего запроса
└─ Цикл повторяется
Система требует отдельных запросов для каждого пайплайна и MongoDB для хранения истории.
Пример применения
Задача: Объясняешь новому сотруднику как работает ваша CRM-система. Хочешь, чтобы AI давал объяснения под его уровень и стиль.
Промпт (Онбординг):
Прежде чем я начну объяснять, ответь на несколько вопросов:
1. Твой опыт работы с CRM-системами:
- новичок / использовал базовые функции / опытный пользователь
2. Как тебе удобнее учиться:
- пошаговые инструкции со скриншотами
- концептуальное объяснение с примерами
- видео-туториалы
- практические задания с проверкой
3. С какими типичными проблемами сталкиваешься при изучении новых систем:
- слишком технический язык
- недостаточно примеров
- непонятно где что искать в интерфейсе
- другое
4. Что хочешь научиться делать в первую очередь:
- создавать и вести сделки
- работать с клиентской базой
- строить отчёты и аналитику
- настраивать воронку продаж
Запомни эти ответы. Используй их во всех дальнейших объяснениях, адаптируя стиль и детализацию под мой профиль.
Промпт (После ответа AI):
Оцени свой предыдущий ответ по этим критериям:
- Ясность объяснения
- Соответствие моему уровню (из профиля)
- Практическая полезность
Теперь объясни [следующая тема], учитывая эту оценку.
Результат:
Модель запомнит профиль и будет адаптировать все последующие ответы: для новичка даст визуальные подсказки и избежит жаргона, для опытного пользователя сразу перейдёт к продвинутым функциям. После каждого фидбека модель скорректирует стиль — если сказать "слишком общо", следующий ответ будет конкретнее с примерами кода или настроек.
Почему это работает
Проблема: LLM генерируют ответы без учёта уровня и предпочтений конкретного человека. "Объясни ООП" даст одинаковый ответ и новичку, и опытному разработчику. Фидбек после каждого сообщения ("слишком сложно", "недостаточно примеров") не влияет на следующий ответ, потому что модель не видит паттерна в разрозненных оценках.
Сильная сторона LLM: Модель отлично работает с явным контекстом — если в промпте написано "ты новичок в программировании, любишь визуальные примеры", она адаптирует стиль. Модель также умеет держать консистентный тон на протяжении диалога, если контекст задан один раз в начале.
Решение: Система собирает статический профиль в начале (опыт, стиль обучения, цели) и вставляет его в каждый запрос. Это работает лучше, чем live-фидбек, потому что:
- Профиль — стабильный сигнал. "Я новичок" не меняется от сообщения к сообщению. Модель видит это в каждом запросе и строит ответ под этот уровень консистентно.
- Фидбек — шумный сигнал. Пять вариантов (Excellent → Terrible) слишком грубы. "Average" может значить "слишком детально" или "недостаточно примеров" — модель не понимает что именно не так. Теги в конце хода не дают времени на коррекцию.
Рычаги управления:
- Детализация профиля — добавь вопросы про конкретные боли ("застреваешь на терминологии?" / "нужны только практические шаги?") → модель точнее адаптирует ответы.
- Частота фидбека — вместо тегов после каждого сообщения используй явные инструкции ("в следующем ответе добавь больше кода" / "убери теорию, только практика") → модель реагирует сразу.
- Конкретность тегов — замени "Average" на "Слишком много терминов" / "Мало примеров" / "Непонятная структура" → модель понимает что исправить.
Шаблон промпта
# ПРОФИЛИРОВАНИЕ (один раз в начале диалога)
Прежде чем мы начнём, давай настроим под тебя мои ответы.
**Твой уровень:**
- {новичок / базовые знания / продвинутый} в {область}
**Как тебе удобнее учиться:**
- {пошагово со скриншотами / концепции с примерами / видео / практика}
**Типичные проблемы при обучении:**
- {технический язык / мало примеров / непонятно где искать / другое}
**Твои цели прямо сейчас:**
- {что хочешь научиться делать в первую очередь}
---
Запомни этот профиль. Используй его во ВСЕХ дальнейших ответах:
- Адаптируй сложность под уровень
- Подбирай формат под стиль обучения
- Избегай известных тебе проблем
- Фокусируйся на целях
Теперь объясни: {твой вопрос}
Плейсхолдеры:
{новичок / базовые знания / продвинутый}— уровень владения темой{область}— конкретная тема (CRM, Python, маркетинг){пошагово со скриншотами / концепции с примерами / видео / практика}— формат обучения{что хочешь научиться делать}— конкретная задача или навык
После первого ответа AI, если что-то не так:
# СТРУКТУРИРОВАННЫЙ ФИДБЕК (после каждого ответа)
Твой ответ был:
☑️ {что сработало хорошо}
⚠️ {что нужно улучшить: конкретно, с примером}
В следующем ответе:
- {что добавить}
- {что убрать}
Теперь объясни: {следующий вопрос}
🚀 Быстрый старт — вставь в чат:
Вот шаблон для персонализированного обучения. Адаптируй под мою задачу: [опиши что изучаешь].
Задавай вопросы для профилирования.
[вставить шаблон выше]
LLM спросит про уровень, стиль обучения, проблемы, цели — потому что эти параметры критичны для адаптации сложности и формата ответов. Она возьмёт структуру профилирования из шаблона и адаптирует под твою тему.
Ограничения
⚠️ Live-фидбек почти не работает при грубых тегах: Пять вариантов (Excellent → Terrible) дали прирост адаптивности всего на 0.88 пункта. Студенты редко использовали теги (9.5% сообщений) — либо забывали, либо не видели смысла. Модель не понимает из тега "Average" что именно исправить.
⚠️ Профиль работает только если задан явно: Статический профиль дал Adaptability 5.43, но только потому что его вставляли в каждый запрос. В обычном чате Claude/ChatGPT профиль не сохраняется между сессиями — нужно либо копировать в начало каждого диалога, либо использовать Custom Instructions (ChatGPT) / Projects (Claude).
⚠️ Не для субъективных тем: Система тестировалась на объектно-ориентированном программировании — точные ответы, которые можно проверить по учебнику. Для креативных задач (написание текстов, дизайн) категории фидбека будут другими.
Как исследовали
Команда из North Carolina State University собрала 200 диалогов от восьми студентов по объектно-ориентированному дизайну. Каждый вопрос пропускали через четыре параллельных пайплайна: (1) с профилем и фидбеком, (2) только с профилем, (3) с RAG-извлечением из учебника, (4) чистый LLM без персонализации. Все четыре пайплайна использовали идентичный промпт-шаблон — единственная разница в том, какие метаданные подставлялись.
GPT-оценщик выставлял каждому ответу баллы от 1 до 10 по четырём критериям: Correctness (фактическая точность), Clarity (понятность), Readability (структура и форматирование), Adaptability (насколько ответ учитывает профиль студента).
Ключевая находка: Adaptability показала самый большой разброс (стандартное отклонение ≈ 1.03), в то время как Correctness, Clarity, Readability были стабильны (≈ 0.40–0.80). Это значит, что персонализация влияет именно на адаптивность, а качество ответов по другим метрикам держится за счёт RAG и промпт-инженерии.
Что удивило: Статический профиль (Adaptability 5.43) обогнал профиль + live-фидбек (4.55). Авторы ожидали, что постоянная коррекция улучшит персонализацию, но студенты использовали теги слишком редко (19 тегов на 200 сообщений), и пять вариантов оказались недостаточно гранулярными. Модель не могла извлечь паттерн из такого разреженного сигнала.
Практический вывод: Лучше потратить время на подробное профилирование один раз в начале, чем пытаться корректировать модель на лету через расплывчатые теги. Если хочешь улучшить ответ — не жми "Poor", а напиши явно: "Добавь конкретный пример с кодом" или "Убери теорию, нужны только шаги".
Адаптации и экстраполяции
💡 Адаптация для корпоративного обучения:
Вместо студентов STEM — новые сотрудники в компании. Профилируй по отделу, опыту, целям. RAG можно заменить на загрузку внутренних документов (регламенты, FAQ, база знаний).
# ПРОФИЛИРОВАНИЕ ДЛЯ НОВОГО СОТРУДНИКА
**Твоя роль в компании:**
- {отдел, должность, как давно работаешь}
**Опыт с подобными системами/процессами:**
- {новичок / базовые навыки / опытный}
**Как тебе удобнее учиться:**
- {читать документацию / смотреть демо / пробовать на практике с поддержкой}
**Что нужно освоить в первую очередь:**
- {конкретные задачи: оформление заявок / работа с клиентами / настройка отчётов}
**Типичные проблемы при обучении:**
- {слишком много терминов / непонятно где искать функции / мало примеров}
---
Запомни этот профиль. Используй его во всех дальнейших объяснениях про работу в компании.
Теперь объясни: {как работает система X / процесс Y / где найти Z}
Результат: Модель адаптирует объяснения под роль и опыт. Для новичка в маркетинге даст визуальные подсказки и избежит жаргона типа "CAC, LTV, attribution model". Для опытного аналитика сразу перейдёт к SQL-запросам и настройкам дашбордов.
🔧 Техника: конкретный фидбек вместо тегов → модель понимает что исправить
Вместо абстрактных тегов (Poor, Average) давай явные инструкции в следующем сообщении:
❌ Неэффективно:
[Студент нажимает "Poor" после ответа AI]
✅ Эффективно:
Твой ответ был слишком общим. В следующем объяснении:
- Добавь конкретный пример с кодом (не псевдокод, а Python)
- Покажи типичную ошибку новичков в этой теме
- Убери историческую справку про создателей языка
Теперь объясни эту же тему заново.
Почему работает: Модель получает actionable feedback — что именно добавить, что убрать. Вместо одного слова "Poor" она видит структуру: пример нужен (+ что именно), ошибки нужны (+ в каком контексте), история не нужна (- конкретная часть).
🔧 Техника: профиль как system prompt → консистентность через весь диалог
Если используешь ChatGPT — добавь профиль в Custom Instructions. Если Claude — создай Project с профилем в описании. Тогда не нужно копировать профиль в начало каждого диалога.
Custom Instructions (ChatGPT) / Project Knowledge (Claude):
Обо мне:
- Я {роль, уровень опыта в области}
- Мой стиль обучения: {пошагово / концепции / практика}
- Типичные проблемы: {технический язык / мало примеров}
- Текущие цели: {что осваиваю сейчас}
Как я хочу, чтобы ты отвечал:
- Адаптируй сложность под мой уровень
- Используй мой предпочитаемый формат
- Избегай моих известных проблем
- Фокусируйся на моих текущих целях
- Если я говорю "слишком сложно" / "мало примеров" — сразу корректируй следующий ответ
Результат: Профиль применяется автоматически во всех диалогах. Не нужно каждый раз писать "я новичок в Python, объясняй просто".
Ресурсы
Human-in-the-Loop Systems for Adaptive Learning Using Generative AI
https://arxiv.org/abs/2501.xxxxx (ссылка на arXiv не предоставлена в оригинале)
Авторы: Bhavishya Tarun, Haoze Du, Dinesh Kannan, Edward F. Gehringer
Организация: Department of Computer Science, North Carolina State University
