Все заметки
Заземление — это не фича. Это ограничение.

3 июня 2026 г.

Заземление — это не фича. Это ограничение.

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

Ты задаёшь ассистенту фактический вопрос. Он отвечает чистой, уверенной прозой — имена, числа, ссылка. Читается как правда. И это полностью неверно. Ни ошибки, ни предупреждения, ни тени сомнения. Просто беглый, складный, выдуманный ответ, поданный ровно с той же уверенностью, что и правильный.

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

Галлюцинация — не баг. Это механизм.

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

Андрей Карпатый сказал об этом резче, чем смог бы я (источник):

В каком-то смысле галлюцинация — это всё, что делают LLM. Это машины сновидений… И только когда сны заходят на территорию, признанную фактически неверной, мы вешаем ярлык «галлюцинация». Галлюцинация — не баг, это величайшая фича LLM.

Тот же механизм позволяет модели написать стихотворение, отрефакторить твой код или объяснить идею тремя разными способами. Нельзя убрать угадывание, не убрав то, что делает модель полезной. Сновидение и есть двигатель.

И с масштабом оно не исчезает. Stanford AI Index 2026 замерил уровень галлюцинаций у 26 ведущих моделей и нашёл разброс от 22% до 94% в зависимости от задачи. Лучшие модели куда лучше худших, но ни у одной нет нуля — и никогда не будет, потому что это не дефект для правки. Это природа угадывателя.

Так что перестань чинить модель. Чини систему вокруг неё.

Архитектурный приём: не доверяй факты угадывателю

Вся идея в одном предложении: модель может сформулировать правду, но не имеет права её авторствовать.

Если галлюцинация — это то, что модель делает всякий раз, когда вынуждена выдать факт, то приём в том, чтобы никогда не ставить её в это положение. Не спрашивай у модели, что правда. Посчитай или найди правду чем-то детерминированным — базой данных, вычислением, API, движком правил — и вручи эти факты модели с единственной задачей: хорошо их произнести. В тот миг, когда модель только перефразирует выданные ей факты, ей нечего выдумывать.

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

«Прикрутить RAG» — это не заземление

Вот здесь большинство команд думает, что решило проблему, а на деле — нет. Retrieval-Augmented Generation — достать релевантные документы, запихнуть их в контекст и надеяться, что модель ими воспользуется — это самая частая попытка заземления. Она помогает. Но это не одно и то же, и относиться к ней как к прикрученной фиче — ровно та самая ловушка.

RAG привязывает сон, но не запрещает его. Модель по-прежнему решает, что сказать, по-прежнему закрывает пробелы, когда ретрив промахнулся, — а промахивается он постоянно. Отраслевой анализ 2026 года показал, что наивные RAG-пайплайны ошибаются на этапе поиска примерно в 40% случаев, и что когда RAG-система выдаёт неверный ответ, сбой именно в поиске — а не в генерации — в 73% случаев. Модель послушно написала уверенный, звучащий-как-заземлённый ответ поверх неправильных документов. Неудивительно, что 77% дата-лидеров говорят: одного RAG недостаточно для продакшена.

Разница, которая важна, — не «достаёшь ли ты документы». Она в том, что модели позволено делать, когда фактов нет. Прикрученный RAG позволяет ей угадывать. Настоящее заземление — нет: либо факт пришёл из источника, либо он не произносится вовсе. Это не инструкция в промпте. Это свойство того, как построена система.

Как это выглядит, когда ты правда это обеспечиваешь

Я делаю это на жизнь, так что давай конкретно. У меня есть астрологический API — Astrolinkers — и потребительский продукт поверх него, Alwenna. Астрология — идеальный краш-тест для заземления: всё в ней — это конкретные позиции, баллы и связи, и модель с радостью выдумает уверенный, правдоподобный, полностью сфабрикованный разбор.

Поэтому ей просто не дают. Astrolinkers считает карту детерминированно — настоящие позиции, настоящая синастрия, настоящие числа, и никакого LLM рядом с математикой. Лишь потом входит языковая модель с единственной задачей: взять эти посчитанные факты и произнести их тёплым, простым голосом. Её никогда не спрашивают, что говорит твоя карта; ей это сообщают и просят сказать хорошо. Любое утверждение Alwenna возводится к реальному, посчитанному значению. Если движок не выдал факт — модели нечего о нём сказать, а не «выдумай что-нибудь складное».

Это правило — модель перефразирует, движок решает — зашито в дизайн, а не написано в промпте. Модель не просят вести себя хорошо; она структурно не способна авторствовать факт, потому что факты приходят уже посчитанными, а она стоит ниже по потоку. Вот разница между «надеяться» и «обеспечивать».

Почему «ограничение», а не «фича»

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

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

Ограничение обеспечивается формой самой системы. Модель стоит ниже по потоку от источника правды, и нет пути, которым она могла бы заявить факт, которого источник не дал, — не потому что мы вежливо попросили, а потому что архитектура такого пути не предлагает. Ты не надеешься, что она останется заземлённой; она не может оторваться от земли.

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

Что это даёт

Сделай так — и что-то тихо переворачивается. LLM перестаёт быть той частью системы, которую приходится перепроверять, и становится той, на которую можно положиться, — потому что ты сузил её работу до единственного, в чём она по-настоящему великолепна (язык), и забрал единственное, в чём она структурно плоха (знание того, что правда).

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

Заземление — это не фича, которую добавляют, чтобы модель стала лучше. Это ограничение, которое обеспечивают, чтобы модель не могла ошибиться так, как ей больше всего хочется.

Комментарии

Пока нет комментариев

Войдите, чтобы участвовать в разговоре.

Будьте первым, кто оставит мысль.