Дешево, но не точно: разбираем контроллер доверия к памяти LLM-агентов

В 2024 году мэрия Нью-Йорка запустила чат-бота MyCity — цифрового помощника для владельцев малого бизнеса. Он должен был стать удобным справочником по городским правилам и законам. Но на деле бот раздавал советы, за которые предпринимателям грозили штрафы и суды, например, не выплачивать до конца чаевые сотрудникам, уволить человека за жалобу на харассмент, и прочее в таком духе.
Правильная информация при этом лежала в собственной базе знаний бота наравне с устаревшей. Как оказалось, он просто-напросто не смог выбрать между верным и неверным, когда оба варианта оказались под рукой.

Что не так с обычным поиском
Классическая схема поиска с дополнением генерации (RAG, retrieval-augmented generation) устроена просто. Поисковый модуль находит документы, похожие на запрос по смыслу, и подсовывает их языковой модели как контекст. Дальше модель генерирует ответ, опираясь на эти документы.
Очевидно, тут есть слабое место. Модель может оценить, подходит ли ответ запросу, но стоит ли это му ответу доверять, она не знает. Положите в базу устаревшую инструкцию и актуальный протокол — для поисковика они будут одинаково хороши. Отличить надежное от ненадежного он не может, да и не должен, так как его этому не учили.
Команда из Тяньцзиньского технологического университета перевела это в цифры. На TruthfulQA, когда в память агента подмешивают и верные факты, и популярные заблуждения, обычный RAG выдает 53% галлюцинаций. Модель без памяти в тех же условиях ошибается в 23% случаев.
Вывод напрашивается сам. Между найденным документом и готовым ответом нет шага, на котором система спросила бы: а доверять-то этому документу можно? Поиск при этом работает нормально.
Идея MDL: три сигнала и подсказка из нейронауки
На архитектуру решения авторов вдохновила работа нейробиологов, изучавших префронтальную кору макак-резусов.
Обезьянам предлагали задачи на проверку краткосрочной памяти, параллельно измеряя активность нейронов, и выяснили, что когда макака решает, доверять ли собственному воспоминанию, мозг не опирается на один сигнал «силы» этого воспоминания. А разные группы нейронов, раскиданные по почти независимым зонам, держат в голове сразу несколько вещей: как долго удержится рабочая память, чем закончились прошлые попытки, насколько мозг возбужден. Эти потоки сливаются в один управляющий сигнал, и он активирует решение о действии.
Авторы MDL (Memory Decision Layer, слой принятия решений о памяти) перенесли этот принцип в код. Смысл в том, чтобы не сводить все к одной общей оценке. Несколько характеристик документа живут отдельно друг от друга и встречаются только в финале.

Вместо одной оценки релевантности контроллер смотрит на три вещи.
Релевантность (M) — насколько документ вообще подходит к запросу по смыслу. Тут все как обычно: считают косинусное сходство между векторами вопроса и документа.
Надежность (R) — нет ли внутри найденных документов явных противоречий. Детектор лексики выискивает отрицания, противоположные полярности, антонимичные пары. Если документы спорят друг с другом, показатель проседает.
Риск задачи (A) — насколько дорого может обойтись ошибка в этой теме. Вопросы из медицины, права, финансов и конспирологии автоматически получают коэффициент риска от 0,70 и выше.
Здесь стоит сразу провести границу. Параллель с экспериментом над мозгом макак хороша, но на практике это слишком разные вещи. Нейроны обезьяны не проверяют алгоритм на Python.
Как это работает изнутри
Три оценки, о которых говорилось выше, не складывают и не усредняют. Авторы специально так не делали: при обычном сложении один сильный сигнал «забивает» остальные. Документ выглядит крайне релевантным — и эта релевантность маскирует явные противоречия внутри него.
Вместо этого каждая из трех оценок становится отдельным вектором, а сами векторы расходятся по независимым математическим подпространствам через QR-декомпозицию. Представьте три раздельных канала связи без наводок: по одному идет сигнал о релевантности, по другому — о надежности, по третьему — о риске. Ортогональность здесь не метафора, а конкретное математическое условие: один сигнал меняется — двум другим хоть бы что, как бы сильно он ни менялся. Поэтому высокая релевантность документа не замаскирует его противоречие с остальными найденными текстами. Эти два свойства просто не могут повлиять друг на друга при вычислении. И только когда все три сигнала измерены независимо, система сводит их в одну общую оценку доверия.

Отдельного внимания заслуживает то, как контроллер обращается с параметром риска. Когда тема оценена как высокорисковая коэффициент риска вычитается из единицы, и чем выше риск, тем меньше становится длина итогового вектора доверия. Если после этого уверенность падает ниже установленного порога, контроллер отказывается генерировать ответ по существу и сообщает, что вопрос слишком чувствительный, а данные вызывают сомнения.
При этом модель не понимает, что именно происходит. Решение принимается по геометрическим правилам, а не по смысловому анализу ситуации, и занимает это около 40 микросекунд.
Что показали тесты, и что осталось за скобками
Обещанный эффект выглядит внушительно. Там, где воспоминания конфликтуют, обычный RAG выдает 53% галлюцинаций, контроллер — 23,3%. На высокочувствительных запросах он не ошибается совсем.

Но если посмотреть на детали экспериментов внимательнее, картина становится сложнее.
Во-первых, многое зависит от того, насколько сама базовая модель склонна верить найденным документам. На относительно слабой gemma-4-E4B-it контроллер дает впечатляющий выигрыш, а на более сильной deepseek-v4-flash обычный RAG и без всякой защиты держит галлюцинации на уровне 4,3%. Если добавить контроллер, будет 4,7%. Разница получается в пределах статистического шума, польза видна только в высокорисковых тематиках.
Во-вторых, даже когда контроллер пропускает документ, 8% таких решений заканчиваются галлюцинацией. Зеленый свет от контроллера не гарантирует чистый результат. Примерно каждый двенадцатый раз система пропускает дезинформацию, которую сама же и одобрила.
В-третьих, и это самое неприятное. Там, где одновременно высокий риск и высокая релевантность, точность решений контроллера падает до 55,6%, немногим выше подбрасывания монеты. А ведь это тот самый случай, когда убедительная, но опасная информация должна настораживать сильнее всего. Выходит наоборот: чем убедительнее и релевантнее выглядит опасный документ, тем хуже контроллер его отсеивает.
Есть и более прозаичный момент. Этот геометрический подход можно сравнить с обычными обучаемыми алгоритмами вроде логистической регрессии и градиентного бустинга, дав им на вход те же три сигнала. Логистическая регрессия показала 63,3%, градиентный бустинг — 64,6%, геометрический контроллер — 61,2%. Модели, которым нужно лишь короткое обучение на размеченных примерах, оказались точнее.
Что в итоге?
MDL работает как недорогой предохранитель, снижая риск галлюцинации, но не сводя его к нулю. Система часто дает сбой там, где цена ошибки высока, уступает по точности куда более простым обучаемым моделям и даже при положительном решении оставляет ощутимую долю неверных ответов.
Зато у подхода есть реальное достоинство — скорость. Одно решение занимает около 0,14 миллисекунды. Это примерно в 50 раз быстрее самого поиска и на четыре-пять порядков быстрее, чем если бы языковая модель взялась перепроверять саму себя. Там, где нужна высокая точность, такой компромисс выглядит разумно, даже с учетом всех оговорок выше.
Идея разделять уверенность в документе и его логическое соответствие задаче кажется здравой и заслуживающей развития. Но текущая реализация скорее подстраховывает существующую архитектуру RAG, чем решает ее фундаментальную проблему.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.