Когда ИИ-ассистент становится проблемой

Представьте: студент открывает Claude или ChatGPT, вставляет задание из курса по языковым моделям и просит написать решение. Через несколько минут у него есть рабочий код. Задание «выполнено» — но ничему он так и не научился. Именно эту ловушку пытается закрыть Стэнфорд в своём флагманском курсе CS336: Language Modeling from Scratch.

В репозитории курса появился файл CLAUDE.md — набор инструкций для AI-агентов, определяющий, что именно ИИ-ассистент имеет право делать, а что обязан отклонить. Это не просто техническая настройка. Это философский манифест о том, как должно выглядеть взаимодействие человека и ИИ в образовании. И у него есть чему поучиться далеко за пределами университетской аудитории.


Что такое CS336 и почему это важно

Языковые модели — краеугольный камень современных NLP-приложений. По мере роста области ИИ глубокое понимание этих моделей становится обязательным для учёных и инженеров. CS336 разработан так, чтобы дать студентам исчерпывающее понимание языковых моделей, проведя их через весь процесс создания собственной.

Вдохновляясь курсами по операционным системам, где создают ОС с нуля, программа охватывает все аспекты создания языковой модели: сбор и очистку данных для предобучения, построение трансформера, тренировку и оценку перед деплоем.

Это не типичный курс по «использованию GPT». Это курс, где ты строишь GPT сам.

ℹ О масштабе задания
Курс CS336 предлагается в формате Spring 2026 и доступен онлайн. Объём кода, который студенты пишут в рамках заданий, как минимум на порядок больше, чем в других AI-курсах — при минимальном готовом скаффолдинге.

Вы буквально реализуете каждый компонент трансформера, используя только базовые примитивы PyTorch. Когда приходится реализовывать multi-head attention без nn.MultiheadAttention, обнаруживаются пробелы в понимании, которые годы работы с высокоуровневыми API успешно скрывали.


Анатомия CLAUDE.md: правила для AI-агента

Файл CLAUDE.md — это системный промпт, который автоматически подхватывается Claude при работе в директории проекта. Он задаёт контекст и ограничения для агента ещё до того, как студент напишет первый запрос.

Вот ключевые принципы, заложенные в документ:

Что разрешено

Использование LLM, таких как ChatGPT, разрешено для низкоуровневых вопросов о программировании или высокоуровневых концептуальных вопросов о языковых моделях, но не для прямого решения задания.

Другими словами, AI-агент в CS336 выступает в роли умного репетитора, а не решателя задач. Он может:

  • Объяснить, что такое all-reduce в контексте распределённого обучения
  • Помочь разобраться с ошибкой типов в Python
  • Обсудить интуицию за механизмом внимания
  • Дать высокоуровневую структуру алгоритма без готового кода

Что запрещено

AI-инструменты могут применяться для низкоуровневой помощи с кодом и высокоуровневых концептуальных вопросов, но не для прямого решения заданий. Когда запрос пересекает эту черту, агент должен отказать в прямой реализации и переключиться на объяснение, помощь с отладкой, ревью кода или непастируемый высокоуровневый набросок.

Обратите внимание на формулировку: «непастируемый высокоуровневый набросок». Это принципиально. Агент может описать алгоритм словами — но не выдать блок кода, который можно скопировать и запустить.

Как агент ведёт себя при отладке

Вместо того чтобы дать готовое решение, правильно настроенный агент задаёт наводящие вопросы:

«Начните с разделения вычислительного времени и времени коммуникации. Сравните время на шаг, утилизацию GPU и время в all-reduce или загрузке данных. Если масштабирование плохое, спросите: слишком ли мал batch size на GPU или синхронизация доминирует? Какие профилировочные данные у вас уже есть?»

Это классическая сократовская педагогика — только реализованная через системный промпт.

💡 Принцип для любого учебного проекта
Если вы используете AI для самообучения, попробуйте добавить в начало сессии: «Я учусь, не давай мне готовый код — задавай вопросы и указывай направление». Это кардинально меняет качество обучения.

Философия: зачем ограничивать ИИ в образовании

«Цель в том, чтобы студенты учились на практике, а не наблюдали, как ИИ генерирует решения.»

Цель состоит в том, чтобы студенты учились через действие, а не через наблюдение за тем, как ИИ генерирует решения. Это звучит очевидно — но на практике граница между «помогает понять» и «делает вместо» стирается очень быстро.

Исследователи и инженеры всё больше отрываются от базовых деталей LLM. Рост уровня абстракции позволяет двигаться быстрее, но при этом всё легче никогда не освоить глубокое понимание, исследовательский вкус и навыки реализации. Именно поэтому курс предлагает строить современные LLM с нуля — для углублённого понимания и улучшения способности вести фундаментальные исследования.

Курс ставит диагноз всей индустрии: мы научились использовать инструменты, но перестали понимать, как они работают. CS336 — это противоядие.

Автоподстановка — неожиданный враг обучения

Настоятельно рекомендуется отключить AI-автодополнение (например, Cursor Tab, GitHub Copilot) в IDE при выполнении заданий. Было установлено, что AI-автодополнение значительно затрудняет глубокое погружение в материал.

Это контринтуитивно: кажется, что Copilot ускоряет работу. Но когда инструмент подсказывает следующую строку кода — мозг перестаёт строить собственные модели о том, что должно быть написано. Обучение происходит именно в этом зазоре неопределённости.


CLAUDE.md как паттерн: практическое применение

Файл CLAUDE.md — не просто академическая разработка. Это шаблон, который можно адаптировать для любых задач, где важен процесс, а не только результат.

Структура эффективного CLAUDE.md


graph TD
    A[CLAUDE.md] --> B[Контекст проекта]
    A --> C[Роль агента]
    A --> D[Разрешённые действия]
    A --> E[Запрещённые действия]
    A --> F[Стиль ответов]
    B --> B1[Что за проект?]
    B --> B2[Кто пользователь?]
    C --> C1[Наставник / Ревьюер / Исполнитель]
    D --> D1[Объяснения]
    D --> D2[Отладка]
    D --> D3[Концептуальные вопросы]
    E --> E1[Готовые решения]
    E --> E2[Пастируемый код]
    F --> F1[Задавай вопросы]
    F --> F2[Указывай направление]

Сравнение режимов работы AI-агента

РежимЧто делает агентКогда использовать
ИсполнительПишет код, выдаёт решенияРутинные задачи, прод-код
Наставник (CS336-стиль)Задаёт вопросы, объясняет, не даёт готовый кодОбучение, освоение новой темы
РевьюерПроверяет написанный код, указывает на проблемыCode review, улучшение качества
СобеседникОбсуждает архитектуру и концепцииПланирование, исследование

Пример минимального CLAUDE.md для учебного проекта

# Контекст
Я студент, изучающий [тема]. Цель — разобраться самостоятельно.

# Твоя роль
Ты — наставник, а не исполнитель. Не пиши готовый код.

# Разрешено
- Объяснять концепции своими словами
- Указывать на ошибки в моём коде с объяснением причины
- Задавать наводящие вопросы
- Давать псевдокод высокого уровня

# Запрещено
- Писать рабочий код, который я могу скопировать
- Давать прямые ответы на задания
- Решать задачу вместо меня

# При каждом ответе
Сначала спроси, что я уже пробовал.
📝 Реальный опыт студента

Один из аудиторов курса описал: был очень рад, что потратил время на чёткое описание того, что разрешит использовать Claude Code, а затем перевёл это в CLAUDE.md — чтобы при просьбе о подсказке не получить готовое решение.

Как всегда при использовании LLM для самообучения, ошибочно уходить в крайности — нужно чётко понимать свои учебные цели, чтобы решить, где на этой кривой компромиссов вы хотите находиться.


История файла: как CLAUDE.md появился в репозитории

Автор включил базовый принцип «я студент — помоги мне учиться, не делай всё вместо меня», а также попробовал настроить агента на создание папки .history с markdown-историей каждого промпта и кратким описанием выполненного действия.

Это интересный механизм прозрачности: студент видит, что и зачем он просил у агента. Это создаёт рефлексию и позволяет преподавателям проверить, не нарушалась ли граница допустимого использования ИИ.

Появление этого файла на Hacker News вызвало широкое обсуждение: оказалось, что вопрос «как правильно ограничить AI-агента» актуален далеко за пределами университета — в командах, стартапах и личных проектах.


Уроки для разработчиков и команд

Принципы CS336 применимы везде, где важен рост навыков, а не только скорость доставки:

⚠ Осторожно: иллюзия продуктивности
AI-агент, который делает всё за вас, создаёт иллюзию прогресса. Вы быстро получаете результат, но медленнее развиваете понимание. В долгосрочной перспективе это приводит к зависимости от инструмента и неспособности работать без него.

Практические выводы:

  1. Для джунов: используйте AI как репетитора, а не решателя. Просите объяснить, а не написать.
  2. Для тимлидов: обсудите в команде, что AI-агент делает, а что — нет. Зафиксируйте это явно.
  3. Для образовательных проектов: CLAUDE.md — это ваш инструмент управления обучением.
  4. Для всех: отключайте автодополнение, когда изучаете что-то новое. Боль непонимания — это обучение.

Заключение

CS336 и его CLAUDE.md — это редкий пример того, как академическая среда не отрицает AI-инструменты, но осмысленно интегрирует их, сохраняя образовательную ценность процесса.

Строить современные LLM с нуля — значит формировать более глубокое понимание и улучшать способность вести фундаментальные исследования. Курс выполнил это обещание: студенты чувствуют себя лучше подготовленными к пониманию и итерации над последними исследованиями.

Главный урок выходит далеко за рамки Стэнфорда: правила для AI — это не цензура, это педагогика. Когда мы явно формулируем, что агент должен делать, а чего — нет, мы не ограничиваем возможности. Мы направляем их туда, где они действительно нужны.

Файл CLAUDE.md из репозитория CS336 — это один из лучших публичных примеров того, как думать об AI-агентах не как о волшебных решателях, а как об инструментах с чётко определённой ролью. Скопируйте идею. Адаптируйте под свои задачи. И помните: цель — учиться, а не делегировать само обучение.