Часть II

Экономика ошибки и граница компетентности

Что с этим делать человеку

📈 Эффект Даннинга-Крюгера + LLM

Эффект Даннинга-Крюгера (1999) — когнитивное искажение: для оценки своей некомпетентности нужна та же компетентность, которой не хватает. Чем меньше знаний в области — тем большим специалистом в ней себя считаешь, именно от незнания мелких, но существенных деталей.

Раньше: естественная обратная связь

Человек с поверхностными знаниями сталкивался с трудностями — код не компилируется, проект не собирается, приходится разбираться. Это создавало сигнал: «я чего-то не понимаю». Барьеры вынуждали учиться.

Сейчас: LLM снимает барьеры

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

💊 Даннинг-Крюгер на стероидах

Человек не только не знает, чего не знает, но ещё и имеет работающий результат как «доказательство» своих знаний. До первого продакшн-инцидента, где LLM-сгенерированный код теряет данные, создаёт дыру в безопасности или ломает бизнес-логику в неочевидном edge case.

Мало знаний
LLM пишет код
Код работает
«Я всё понимаю!»
💥 Продакшн

⚖️ Главная опасность

Без экспертизы

  • Принимает ответ за истину
  • Не видит ошибок в коде
  • Chain-of-thought убеждает: «модель разобралась»
  • Думает, что знает — хуже, чем не знать вообще

С экспертизой

  • Мгновенно видит ошибки
  • Берёт только полезное из ответа
  • LLM становится ускорителем, а не источником истины
  • Экспертиза = фильтр между LLM и продакшеном

📐 Иллюзия масштабирования

Где «напиши с нуля» работает

Тетрис в один HTML-файл, калькулятор, TODO-список. Полностью формализованные задачи, тысячи реализаций в обучающих данных, результат мгновенно проверяется, ошибка ничего не стоит. LLM выдаёт рабочий результат за 30 секунд.

Где «напиши с нуля» разваливается

Реальная бизнес-система: продуманные миграции, правильная структура сущностей, тесты, обработка edge cases, безопасность, производительность. LLM может сгенерировать каждый кусок, но собрать из этого работающую систему — инженерная задача, требующая понимания целого.

🪤 Ловушка экстраполяции

Студенты видят, как LLM за 30 секунд выдаёт работающий Тетрис, и экстраполируют: «значит, она и всё остальное так может». Они не видят границу — потому что у них нет опыта, чтобы её ощутить. Граница проходит примерно там, где заканчиваются хорошо представленные в интернете примеры и начинается специфика конкретного проекта.

LLM даёт ответ без понимания. А без понимания невозможно отличить хороший ответ от красиво оформленной катастрофы.

💡 «Зачем учить, если LLM подскажет?»

«Зачем учиться водить, если есть навигатор?»

Навигатор покажет маршрут, но если ты не умеешь крутить руль — это бесполезно. А если навигатор глючит и ведёт в стену — без навыка вождения ты даже не затормозишь.

LLM полезна ровно в той степени,
в которой ты способен оценить её ответ
🔁 Замкнутый круг

Чтобы эффективно проверять LLM, нужны знания. Если знания есть — ты и сам многое можешь без LLM. LLM ускоряет, но не заменяет компетентность. И чем выше цена ошибки — тем больше нужна собственная экспертиза.

Для эксперта

Ускоритель работы. Видит ошибки и берёт только полезное.

Для новичка

Генератор ложной уверенности. Не знает и не знает, что не знает.

⚠️

Для студента

Повод НЕ учиться — и это самое опасное.

⚖️ Правило половины ответа

Чтобы эффективно использовать LLM,
нужно знать как минимум половину ответа
Не весь ответ — тогда зачем спрашивать. Не ничего — тогда не сможешь оценить. А именно половину — достаточно, чтобы отличить правильное от правдоподобного.

Когда половина есть

Ты понимаешь цифровую логику, знаешь что такое тактовый сигнал и регистр. Спрашиваешь конкретный синтаксис Verilog — always @(posedge clk). LLM закрывает вторую половину. Твоя первая половина позволяет мгновенно оценить ответ.

Когда половины нет

Ты не знаешь Z80, спрашиваешь «напиши сложение». LLM выдаёт ADD A, B, A — и ты не можешь понять, что это бессмыслица. Ответ выглядит правильно, принимаешь на веру, получаешь неработающий код.

Граница между инструментом и костылём

Вот именно здесь проходит водораздел. Если у тебя есть своя половина — LLM становится инструментом, ускоряющим работу. Если нет — костылём, создающим иллюзию компетентности. Инструмент помогает мастеру. Костыль маскирует отсутствие мастерства.

Формула эффективности LLM

Польза = (твои знания) × (возможности модели). Если один из множителей близок к нулю — произведение тоже стремится к нулю, каким бы большим ни был второй.

🗺️ Граница половины: домен, а не человек

Граница компетентности — свойство предметной области,
а не свойство человека
Правило половины из предыдущего слайда порождает вопрос: где именно проходит эта граница? Ответ: у каждого человека она своя, и она разная для разных доменов. 20 лет в PHP не дают половину ответа по аналоговой электронике. Опыт с Z80 не спасает при формализации банкинга для FPGA. Ключевой навык — не «знать всё», а честно различать, где ты эксперт, а где новичок.
🛡️

Есть половина

Детектор работает. Чувствуешь «что-то не так» до того, как нашёл ошибку. LLM подсказывает — ты верифицируешь.

⚠️

Стык доменов

Знаешь оба мира по отдельности, но на границе термины слипаются. Опыт мешает — создаёт ложную уверенность.

🚫

Нет половины

Детектор молчит. Бред выглядит как правда. Нет внутренних инвариантов, чтобы сверить результат.

Кейс: «Слот — это страница, делим на 4»

Инженер с 20+ годами опыта и знанием Z80 с детства проектирует банкинг памяти для собственного компьютера. Два понятия — «слот» (окно в адресном пространстве Z80) и «страница» (блок физической SRAM) — одинакового размера, 16 КБ. При начальной конфигурации их номера совпадают: слот 0 = страница 0, слот 1 = страница 1. Мозг склеивает: «слот — это и есть страница». Дальше появляется число 4 (четыре слота) и применяется как делитель: 16 КБ / 4 = 4 КБ. Логика каждого шага безупречна. Посылка — неверна.

Что сработало: внутренний check_invariants()

Час блуждания — но с первой минуты было ощущение: «что-то не вяжется». Формализовать ошибку не получалось, но внутренний детектор не давал двигаться дальше. Решение: пошаговая вербализация хода мыслей вслух (rubber duck с LLM). В процессе проговаривания стало невозможно сказать «слот — это страница», потому что в предложении они стоят по разные стороны глагола. Слот указывает на страницу. Не является ей. Грамматика разорвала то, что арифметика склеивала.

Контрпример: RST 28h — когда магия допустима

Калькулятор ZX Spectrum — 9 КБ ПЗУ с интерпретатором выражений, виртуальная машина внутри Z80. Разобрался с синусами и конкатенацией, но дальше — нет задачи, нет «куда применить». И это правильное решение: не всё требует полного понимания. Граница половины — не только «где я новичок», но и «где мне это не нужно». Без задачи даже эксперт буксует.

Нет половины
детектор молчит
Стык доменов
ложная уверенность
Есть половина
«что-то не так»
Полная экспертиза
ошибка очевидна
Самая опасная зона — стык

Полное незнание безопасно — ты знаешь, что не знаешь. Полная экспертиза безопасна — ты видишь ошибку сразу. Опасна середина: когда знание одного домена создаёт иллюзию компетентности в смежном. Тот же термин, тот же размер, те же числа — но разные сущности. Именно здесь LLM наносит максимальный ущерб: она уверенно подтверждает твою неверную посылку, потому что в обучающих данных «слот» и «страница» тоже часто используются как синонимы.

Ключевой навык для работы с LLM

Не «знать всё», а уметь сказать: «вот тут я новичок». Это переключает режим — с доверия на верификацию, с автопилота на ручное управление. У LLM этого переключателя нет. У тебя — есть. Пользуйся.

← I. Механика галлюцинаций Оглавление III. Почерк моделей и живые кейсы →