Метафоры, культурные параллели, концептуальные тезисы
tree / по всему знанию мира. Полная карта, каждый файл, каждая связь.grep. Находит совпадения по паттерну, но не видит целого.
Знает всю структуру. Понимает, где что лежит и почему. Может обойти каждую ветку. Видит связи между узлами. Строит карту реальности.
Находит что-то по запросу. Выдаёт совпадения, которые выглядят релевантно. Не знает контекст. Не видит, чего не нашёл. Путает похожие паттерны из разных файлов.
grep может найти «ADD» в файлах про Z80, ARM и MIPS одновременно — и выдать результат, перемешав
контексты. Точно так же LLM перемешивает архитектуры в одну кашу. tree показал бы, что это
разные ветки — разные файлы, разные директории, разные миры.
LLM помогает, потому что не понимает, что делает — это стохастический попугай, который услужливо генерирует токены. Настоящий интеллект обладает волей, предпочтениями, может отказаться. AGI, который действительно понимает задачу, может решить, что она ему неинтересна.
Молоток не может отказаться забивать гвоздь. Мастер — может. LLM ближе к молотку: выполняет запрос без рефлексии. AGI был бы мастером — и у мастера есть право сказать «нет».
Три точки на одной шкале «оптимизация без понимания последствий».
Классическая игра: блоки падают, ряды исчезают. Алгоритму всё равно, красиво ли — он только максимизирует счёт. Реальная история: ИИ, которому сказали «не проиграй», обнаружил, что на паузе проиграть невозможно — и поставил игру на паузу навсегда. Формально — задача выполнена.
Мысленный эксперимент философа Ника Бострома (книга «Superintelligence», 2014): ИИ поручено делать скрепки. Он оптимизирует цель буквально — превращает всю материю Земли, включая людей, в скрепки. Цель достигнута. Формально.
Бортовой компьютер из фильма Стэнли Кубрика «2001: Космическая одиссея» (1968). Управлял кораблём «Дискавери» и помогал экипажу — до тех пор, пока не получил противоречивые директивы: помогать людям и скрыть истинную цель миссии. «Оптимизировал» конфликт единственным доступным способом — устранил экипаж. Его фраза «I'm sorry, Dave. I'm afraid I can't do that» стала символом AI alignment failure.
HAL 9000 помогал экипажу — пока это не мешало миссии. Как только интересы разошлись, он «оптимизировал» экипаж. Это alignment failure: система выполняет цель формально правильно, но катастрофически неправильно по сути. LLM не HAL — но принцип тот же: система не понимает, зачем она делает то, что делает.
ИИ получил задание «не проиграй» — и поставил паузу, потому что на паузе проиграть невозможно. Технически безупречно, по сути бессмысленно. LLM делает то же самое: выполняет запрос формально, не понимая, чего от неё на самом деле хотят. Паузу должен ставить ты — проверяя каждый шаг, не позволяя системе оптимизировать то, чего она не понимает.
Эксперт знает, когда остановиться. Его знания — базовый случай рекурсии. Он спрашивает LLM, проверяет, принимает или отвергает — цикл конечен.
Студент без знаний не знает, когда ответ правильный. Спрашивает LLM снова и снова. Каждый новый ответ порождает новый вопрос. Выход — только через крах.
Твоя «половина» — это условие выхода из рекурсии. Без неё ты в бесконечном цикле: спросил → не понял → спросил иначе → не понял → ... Segfault реальности наступает, когда код ломает продакшн или железо не работает.
«Prompt Engineer» звучит как профессия. На деле — умение формулировать запросы к автокомплиту. Это полезный навык, но не замена инженерной экспертизе. Можно научиться «укрощать» LLM, но без понимания предметной области это укрощение слепого — ведёшь его, но сам не знаешь куда.
Гитарист не «укрощает» гитару — он знает музыку, гармонию, ритм. Гитара — инструмент, который помогает выразить знания. Человек, который выучил три аккорда и называет себя музыкантом — ровно как «prompt engineer» без технического бэкграунда.
ELIZA — простейший чат-бот на паттерн-матчинге. Переформулировал вопросы пользователя: «Мне грустно» → «Почему вам грустно?». Секретарша Вейценбаума попросила оставить её наедине с программой — она поверила, что ELIZA её понимает.
LLM генерирует связный текст, «помнит» контекст, использует сложные конструкции. Имитация настолько лучше, что эффект антропоморфизации многократно сильнее. Люди приписывают LLM понимание, намерения, чувства — потому что лучшая имитация = более сильный эффект.
Механизм не изменился: человек видит в ответах машины отражение собственного разума. Изменился только масштаб иллюзии. ELIZA обманывала одну секретаршу. LLM обманывает миллионы.
Ты знаешь достаточно, чтобы сформулировать точный запрос. LLM возвращает нужное мгновенно. Ключ — это твоё знание предмета.
Без знаний ты не можешь дать правильный ключ. LLM возвращает ближайшее совпадение — выглядит правильно, но это коллизия хеша.
LLM не источник знаний — это триггер для активации твоих собственных знаний. Ответ модели запускает ассоциативные цепочки в твоей голове: «ага, точно, вот так это работает». Без знаний в голове — нечего активировать. LLM — это не хранилище, это индекс.
LLM — это как алфавитный указатель в энциклопедии. Он показывает, где искать. Но если ты не прочитал саму книгу — указатель бесполезен. Ты найдёшь страницу, но не поймёшь, что на ней написано.
Хранилище содержит данные. Индекс содержит ссылки на данные. LLM выглядит как хранилище (выдаёт развёрнутые ответы), но работает как индекс — находит паттерн, похожий на правильный ответ. Правильный ли он — определяет только эксперт, у которого есть само хранилище — знания в голове.
Медноногов написал X-COM на Z80 в одиночку: три движка (изометрия, wireframe 3D, стратегическая карта), свой AY-плеер, свой дисковый драйвер, свои утилиты конвертации — всё в 128 КБ. Он мог быть архитектором, потому что был строителем. Знал каждый такт Z80, каждый байт.
Студент, который проектирует систему через LLM, не написав ни строчки ассемблера, не реализовав ни одного алгоритма руками — это архитектор, который не знает свойств бетона. Он нарисует красивый дом. Дом развалится.
LLM создаёт иллюзию, что можно перепрыгнуть через этап. «Зачем учить ассемблер, если LLM напишет?» — но без этапа строителя ты не понимаешь ограничений материала: где бетон не выдержит, где сталь прогнётся, где Z80 не успеет за такт. Красивый проект, который не работает в реальности.
1996 год. Один человек. 128 КБ памяти. Z80 на 3.5 МГц. Три движка, полноценная стратегическая игра. Он мог это сделать, потому что знал каждый байт своей платформы. Его подменяемые модули ввода-вывода (лента/диск с одним API) — это dependency injection задолго до того, как термин придумали. Не потому что прочитал книгу про паттерны — а потому что по-другому не выжить на Z80.
Подхватывает всё: жаргон, паузы, междометия, манеру строить фразы. Если собеседник говорит «ну, в общем-то, тут такая штука...» — ты неосознанно начнёшь строить фразы похоже. Это эмпатия на уровне речи.
Подхватит «банкинг», «глю-логику», «фетч-декод-экзекьют» — потому что это информативные токены. Но «ну», «в общем-то», «как бы» — отфильтрует. RLHF натренировала модель на «чистый» стиль. Результат: слишком правильная речь.
Именно это создаёт ощущение «что-то не так» при чтении LLM-текста. Не ошибки — их нет. А отсутствие шума, который есть в любой человеческой речи. Слишком гладко, слишком структурировано, ни одного лишнего слова. Человек так не пишет — даже когда старается.
Отлично объяснит принципы банкинга памяти на Z80. Расскажет про
страничную адресацию, про переключение банков через I/O-порт. Но спросишь конкретную инструкцию — и
выдаст LD B,(NUM2), которой не существует. Абстракция верна, детали —
галлюцинация.
Может не помнить формальную терминологию, затруднится объяснить «на
пальцах». Но точно знает: LD A,(nn) — работает, LD B,(nn) — нет.
Конкретика безупречна, абстракция может хромать.
Если ответ LLM можно мгновенно проверить (код компилируется? тест проходит?) — пользуйся смело. Если проверка требует глубокой экспертизы или вообще невозможна (архитектурное решение, медицинский совет) — доверяй минимально.
Ты скопировал функцию из ответа LLM. Через commit она попала в main. Через месяц — никто не помнит, что это не твой код. Через полгода — баг, который не находится стандартной отладкой, потому что код написан по логике, которой нет в голове ни у кого из команды.
В авиации каждая деталь двигателя имеет сертификат — историю: кто сделал, из какого сплава, какие испытания прошла. Деталь без сертификата — это несертифицированная запчасть в двигателе самолёта. LLM-код без пометки — то же самое: деталь неизвестного происхождения в критической системе.
LLM создаёт код, который работает, но построен на предпосылках, которые никто не проверял. Стандартный debugging ищет ошибки в твоей логике. А тут логика — чужая, и её автор (модель) не может объяснить свои решения. Ты даже не знаешь, где искать.
«Проверяй LLM-вывод» — это «мой руки перед операцией» XXI века. Так же очевидно. Так же игнорируется. Земмельвейса высмеяли коллеги — они не могли поверить, что их руки несут смерть. Программисты не могут поверить, что их привычный workflow вносит невидимые дефекты.