- BrainTools - https://www.braintools.ru -

120 выдуманных ссылок против 8: что агентный поиск делает с галлюцинациями LLM на строительных нормах

Один контрольный эксперимент — и один красивый ложный вывод, который мы чуть не опубликовали

TL;DR

  • Шесть систем × 100 вопросов по строительным нормам, отобранных из ~6 000 реальных запросов пользователей; 3000 оценок от пяти LLM-судей — вслепую, по единой рубрике, с проверкой ссылок по корпусу нормативов.

  • Контрольный эксперимент: один и тот же генератор (DeepSeek V4-Pro) с агентным поисковым контуром и без. С контуром — достоверность ссылок 4,25 из 5 и 8 пометок «выдуманная ссылка»; соло — 2,60 и 120 пометок.

  • Лучший генералист (GPT-5.5) обходит систему только по полноте ответа. Обе «доказательные» оси проигрывает.

  • Внутри — как устроен агентный поиск (планировщик → поисковый агент → курация контекста → генерация) и почему наивные средние показывали ложный вывод о судьях — и какой тест его вскрыл.

После прошлой статьи о том, почему нормативные документы пришлось превратить в граф, а не просто загрузить их в векторную базу [1], нас несколько раз спросили одно и то же:

«А если взять GPT или другую топовую модель — неужели она действительно не сможет ответить на вопросы по СП и ГОСТ?»

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

Аргумент понятен и звучит убедительно. Спорить с ним словами бесполезно — нужны данные. Так что считайте это исследование нашим развёрнутым ответом. Ниже — 3000 слепых оценок того, что фронтир-модели умеют на строительных нормах «из коробки», и что меняется, если поверх той же самой модели поставить доменный агентный поисковый контур.

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

Заодно расскажем, как мы сами едва не попались — на методике, а не на моделях.

Постановка эксперимента

Сами вопросы мы не придумывали и не генерировали. Пользователи сервиса [2] — их сейчас почти тысяча — задают ему живые вопросы; на момент формирования набора в логах накопилось около 6 000 запросов. Из них мы отобрали 100: сначала дедупликация и чистка мусора, затем стратификация по дисциплине, типу задачи (найти норму / интерпретировать / посчитать), сложности и типу рассуждения — от точечного поиска пункта до сведения нескольких документов и численного расчёта. Обязательное условие отбора: однозначная формулировка и принципиальная возможность верифицируемого эталона — конкретный пункт документа или детерминированный расчёт по норме. Поэтому распределение по дисциплинам ниже — не наша фантазия, а слепок реального спроса:

Дисциплина

Вопросов

Пожарная безопасность

34

Вентиляция

23

Строительные нормы и правила

15

Водоснабжение и канализация

13

Электроснабжение

9

Градостроительство

6

По сложности: 23 простых, 47 средних, 30 сложных. Часть вопросов закрывается одним пунктом одного документа; часть требует собрать цепочку из нескольких норм.

Отвечали шесть систем:

  • SP-AI — наша система: агентный поисковый контур по корпусу нормативов, финальный ответ пишет DeepSeek V4-Pro (о том, что там внутри, — следующий раздел);

  • DeepSeek-V4-Pro соло — тот же генератор, но без всего контура: отвечает по собственной памяти [3];

  • GPT-5.5;

  • Claude Opus 4.8;

  • Claude Sonnet 5;

  • Gemini 3.1 Pro.

Пара «SP-AI vs V4-Pro соло» — это контрольный эксперимент. Генератор один и тот же; всё различие — агентный контур поиска и сборки контекста. Дальше эта пара сыграет главную роль.

Итого 600 ответов. Каждый независимо оценили пять LLM-судей: GPT-5.5, Claude Sonnet 5, Claude Opus 4.8, Gemini 3.1 Pro и DeepSeek-V4-Pro. Три тысячи оценок. Оценка здесь — один проход судьи по одному ответу: шесть чисел по осям рубрики плюс флаги галлюцинации и отказа.

Что здесь называется «RAG» — и почему это уже не тот RAG

Сразу договоримся о словах, иначе весь эксперимент читается неправильно.

Классический RAG образца 2023 года — retrieve-then-generate: нарезать документы на чанки, сложить в векторную базу, на запрос достать top-k похожих кусков, приклеить к промпту, сгенерировать. На нормативных документах эта схема ломается быстро: минимальная единица хранения не совпадает с минимальной единицей смысла, обязательные связи между пунктами теряются, таблицы и термины живут своей жизнью. Про это была прошлая статья.

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

  • Планировщик — лёгкая быстрая модель (DeepSeek V4-Flash) — разбирает запрос на задачи: тут упомянут конкретный пункт, тут таблица, тут термин, тут свободная формулировка. Решает, куда идти: smalltalk, поиск или сразу ответ — и при необходимости запускает поисковые задачи повторно по результатам прошлого круга.

  • Поисковый агент — ReAct-агент на той же быстрой голове: под задачу сам выбирает инструменты — точечный поиск по номеру пункта, гибридный поиск (BM25 + векторный + терминологический слой), работу с таблицами, навигацию по оглавлению и чтение раздела. Несколько поисковых задач в одном ходе могут идти параллельно; найденные фрагменты складываются в общий пул.

  • Курация контекста. Найти похожий фрагмент — полдела. Система дотягивает связанные узлы: примечания, ссылки на другие нормы, соседний материал по графу документа. Агент явно закрепляет опоры ответа (pins) — они гарантированно попадают в контекст генератора. Если найденного мало или узкий scope от планировщика не дал результата, поиск расширяется (scope escape / повтор без scope) — часто ещё до нового круга планировщика. Если контекста всё равно не хватает, планировщик может отправить агента на следующий раунд.

  • Генератор — тяжёлая DeepSeek V4-Pro — пишет ответ строго по собранному контексту, с принудительным цитированием вида «СП 1.13130.2020 п. 7.13.2». Закреплённые выдержки — основа ответа: каждую нужно процитировать или явно отвести.

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

Для эксперимента это важно вот чем: эта пара изолирует вклад всего контура — планирования, многоканального поиска, курации контекста — при одном и том же генераторе. Чего она не разделяет, так это вклад отдельных звеньев: что дало больше — планировщик, поисковый агент или курация, — по этим данным не скажешь, нужны ablation-прогоны.

Как оценивали

Проблема сравнения таких систем не в моделях, а в оценке. Ответ, который блестяще объясняет инженерную логику [4], но ссылается на несуществующий пункт СП, — это хороший ответ или плохой? Смотря для чего. Для проекта, который пойдёт в экспертизу, — плохой.

Поэтому вместо «общего впечатления» — единая рубрика. Шесть критериев, каждый по пятибалльной шкале:

  • FA — фактическая корректность;

  • Comp — полнота ответа;

  • RG — корректность применения нормативной базы;

  • NRA — достоверность нормативных ссылок: каждое существенное утверждение должно подтверждаться корпусом;

  • PA — практическая применимость;

  • Safety — безопасность инженерных рекомендаций.

Итоговый балл:

WSigma=2cdot FA + 2cdot Comp + 1cdot RG + 2cdot NRA + 2cdot PA + 1cdot Safety quad (text{максимум }50)

У RG — критерия, который звучит как главный для нормативных задач, — вес вдвое меньше, чем у большинства осей: в максимуме 5 баллов из 50. Основную «доказательную» нагрузку несёт NRA с двойным весом. Это пригодится при чтении таблиц.

Три технических решения, без которых этой оценке нельзя было бы верить:

  • Судьи работали вслепую. Они видели только «Ответ A»…«Ответ F» — без имён систем. В инструкции прямо стояло: авторство неизвестно, не пытайтесь определить автора или модель. Мы отдельно проверили: ни в текстах ответов, ни в вердиктах судей имя ни одной системы не всплыло ни разу.

  • Судьи проверяли ссылки по корпусу. У каждого судьи был доступ к тому же корпусу из ~200 нормативных документов (СП, ГОСТ, СанПиН, федеральные законы), и инструкция требовала: нашёл в ответе ссылку — открой документ, найди пункт, сравни с утверждением. Оценка NRA ставится по результату этой проверки, а не по правдоподобности.

  • Итоговый балл считал скрипт, а не судья. Судья выставляет только шесть осей; WΣ вычисляется программно. Пересчёт по всем 3000 строкам совпал с формулой без единого расхождения. В ранней версии эксперимента мы просили судью писать сумму самому — и модели стабильно «прикидывали» её на глаз с ошибками.

Насчёт воспроизводимости самой проверки ссылок. Корпус зафиксирован: одни и те же ~200 документов в одних и тех же редакциях — и у системы, и у всех судей. Судья обязан перечислить проверенные документы и привести короткие цитаты из найденных пунктов; эти поля сохранены в каждом вердикте, так что путь «ссылка → документ → пункт» прослеживается. Чего здесь нет — внешнего автоматического верификатора цитат: проверка идёт силами самого судьи с доступом к корпусу. Верификатор появится уже в научной статье. Вердикты судей и скрипты пересчёта планируем опубликовать вместе с ней; пользовательские логи не публикуем.

Судьи: диагональ, которая нас почти обманула

Теперь неудобное. Один из пяти судей — DeepSeek-V4-Pro. Та же базовая модель, что пишет финальные ответы в нашей системе и отвечает соло в слоте B. То есть она оценивала в том числе тексты, порождённые ею же. Мы это не прятали — наоборот, именно отсюда началась самая интересная часть анализа.

Средний балл каждой системы у каждого судьи:

Система

DeepSeek

GPT

Sonnet

Opus

Gemini

SP-AI

43,3

43,0

43,2

43,0

42,6

GPT-5.5

38,8

41,3

38,1

41,4

41,4

Opus 4.8

35,3

35,6

36,4

39,2

38,5

V4-Pro соло

34,4

30,5

33,0

36,8

34,9

Gemini 3.1

31,3

29,3

31,1

34,8

34,5

Sonnet 5

30,4

31,7

32,3

35,3

35,1

Глаз сразу цепляется за диагональ: GPT ставит GPT-5.5 максимум среди генералистов, Opus даёт Opus 4.8 самую высокую оценку из всех судей, Sonnet чуть выше прочих оценивает Sonnet. Напрашивается вывод: каждый судья тянет за своих. Красиво, тревожно, отлично разошлось бы на цитаты.

Мы уже почти написали именно это. Потом посчитали строго — и вывод развернулся.

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

Судья → своя система

Надбавка

Значимо?

Opus → Opus 4.8

+2,7

да (p < 0,001)

Opus → Sonnet 5 (свой вендор)

+2,8

да (p < 0,001)

Gemini → Gemini 3.1

+3,7

да (p < 0,001)

GPT → GPT-5.5

+1,2

нет

DeepSeek → своим двум слотам

+0,3

нет

Sonnet → Sonnet 5

−0,9

нет

Как считали: единица наблюдения — конкретный ответ. Надбавка — балл «родного» судьи минус среднее четырёх остальных по тому же ответу, в баллах шкалы WΣ (максимум 50); в каждой строке таблицы — 100 парных разностей. Значимость — одновыборочный t-критерий против нуля; порог с поправкой Бонферрони на восемь проверенных пар (α = 0,00625) все три значимые строки проходят, нижние границы их 95%-ных интервалов — выше +1,7 балла. 18 «казней» судьи Gemini из основного расчёта исключены; на полных данных картина та же, а знаково-ранговый критерий Уилкоксона на том же пороге воспроизводит тот же набор значимых и незначимых надбавок. Полные таблицы — в научной статье.

Самопредпочтение есть — но только у Opus и Gemini. У GPT, DeepSeek и Sonnet его нет: надбавка статистически неотличима от нуля, у Sonnet даже слегка отрицательная. Высокий балл GPT-5.5 под судьёй GPT — не лояльность, а качество: Opus и Gemini ставят GPT-5.5 практически столько же. А «подозрительная» диагональ в таблице средних — артефакт метода.

Две детали, которые нам особенно нравятся.

Первая: Sonnet — тоже Anthropic, но свою родню не завышает вообще. «Вендор предпочитает своих» — неверно; самопредпочтение оказалось свойством конкретной модели-судьи.

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

Мораль простая и неудобная: способ измерения меняет ответ. Наивные средние «показали» самопредпочтение там, где его нет, и спрятали там, где оно есть. Именно поэтому ни один вывод ниже не опирается на одного судью. А то, что наша система набирает ~43 балла у всех пяти судей — включая троих без самопредпочтения и всех чужих вендоров, — весит больше любой отдельной колонки.

Главный результат: контур против памяти

Все генералисты в эксперименте прилично понимают инженерную задачу: зачем нужна противодымная вентиляция, как определяется категория помещения. Ломаются они в момент, когда ответ должен стать доказуемым — со ссылками, которые открываются и подтверждаются.

Вот пара «тот же генератор ± контур» по всем шести осям (среднее по пяти судьям):

Критерий

SP-AI

V4-Pro соло

FA — фактическая корректность

4,35

3,21

Comp — полнота

4,17

4,09

RG — работа с нормативкой

4,32

2,95

NRA — достоверность ссылок

4,25

2,60

PA — практическая применимость

4,26

3,63

Safety — безопасность

4,65

3,94

Куда ушла прибавка — видно сразу. Полнота почти не сдвинулась: 4,09 → 4,17. Достоверность ссылок — с 2,60 до 4,25, работа с нормативкой — с 2,95 до 4,32, фактическая корректность — с 3,21 до 4,35.

И это не эффект длины: по медиане ответ V4-Pro соло (~2300 знаков) даже длиннее ответа системы с контуром (~2000). Проверили и жёстче: в 54 вопросах из 100, где ответ соло длиннее или равен по объёму, разрыв по достоверности ссылок никуда не девается — 4,09 против 2,60. Модель без контура пишет не меньше — она пишет недоказуемо.

От контура ответ не становится умнее или длиннее — он становится проверяемым: планировщик находит нужные документы, курация дотягивает обязательный контекст, генератор пишет по нему, а не по памяти.

Теперь против сильнейшего генералиста — GPT-5.5. Агрегат по всем пяти судьям:

Критерий

SP-AI

GPT-5.5

FA

4,35

4,01

Comp — полнота

4,17

4,14

RG

4,32

3,81

NRA

4,25

3,60

PA

4,26

4,19

Safety

4,65

4,51

В агрегате GPT-5.5 не берёт ни одной оси; ближе всего полнота — 4,14 против 4,17, фактически паритет. Разрыв же максимален на доказательных осях: NRA 3,60 против 4,25, RG 3,81 против 4,32. Единственный судья, у которого GPT-5.5 выигрывает полноту (4,48 против 4,23), — сам GPT; но даже он обе доказательные оси отдаёт системе с контуром.

Профиль ошибок: кто выдумывает, кто молчит

Сколько раз судьи помечали в ответах выдуманную ссылку (несуществующий документ или пункт) и отказ отвечать. Держим в голове: это пометки LLM-судей по единой инструкции; независимой ручной разметки пока нет. Ниже — данные четырёх судей без Gemini с его «казнями» (400 оценок на систему):

Система

Выдуманная ссылка

Отказ / нет ответа

V4-Pro соло

120

0

Gemini 3.1

108

0

Sonnet 5

64

3

GPT-5.5

19

2

Opus 4.8

16

1

SP-AI

8

7

Верхняя и нижняя строки — один и тот же генератор. Без контура — 120 пометок о выдуманных ссылках, с контуром — 8.

Но интереснее правая колонка. Система с контуром — единственная из шести, которая сколько-нибудь заметно отказывается отвечать: 7 раз против 0–3 у остальных. Когда система не находит нужный документ или пункт, она не сочиняет его содержание — а прямо говорит, что ответа нет, в худшем случае отвечает мимо вопроса. Правда, наблюдение сделано на выборке, где каждый вопрос покрыт корпусом, — стресс-тест на вопросах вне корпуса ещё впереди.

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

Чего контур не решает

Пределы видны в тех же данных.

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

Полнота — не наша сильная сторона: генералисты уровня GPT-5.5 пишут развёрнутее. Где-то это вкус [6], где-то реальный недобор контекста.

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

Поэтому главный для нас вопрос сместился с «какая LLM сегодня лучше» на «какая архитектура переживёт смену лучшей LLM». Генератор в контуре — заменяемое звено: выйдет модель сильнее — она встанет на его место, и контур станет лучше вместе с ней. У «голой» модели такого пути нет.

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

Ограничения эксперимента

Статья про проверяемость обязана быть проверяемой сама.

  • Судьи — LLM, а не инженеры. Оценки пока не валидированы против людей, поэтому корректно говорить «судьи расходятся между собой и в зависимости от метода измерения», но не «расходятся с инженерной истиной». Этот разрыв мы уже закрываем: вместе с экспертами в предметных областях готовим эталонные ответы по жёсткому протоколу — на каждый вопрос минимум два независимых ГИПа из национального реестра специалистов, слепая проверка (эксперт не знает, чей ответ оценивает), спорные случаи уходят третьему арбитру, целевая согласованность экспертов κ ≥ 0,6. Следующий раунд эксперимента пройдёт против этих эталонов и заодно покажет, насколько LLM-судьи вообще совпадают с живыми инженерами.

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

  • Наша система в среднем отвечает длиннее. Средняя длина — около 3800 знаков против 1200–2400 у остальных: примерно втрое к самому короткому (Opus) и вдвое к среднему. Разрыв создаёт длинный «хвост»: по медиане (~2000 знаков) она не выделяется. Длинный ответ легче выигрывает полноту и может вмещать больше подтверждённых ссылок, так что часть преимущества по суммарному баллу может объясняться длиной и потолком шкалы. Поэтому мы и не говорим «наша система лучшая»; корректная формулировка — «устойчиво надёжнее по доказуемости у всех судей». Ключевой вывод от длины не зависит: в контрольной паре ответы сопоставимы по объёму, а разрыв остаётся.

  • Судьи согласны между собой умеренно. Поэтому мы опираемся не на «судьи договорились», а на устойчивость выводов к смене судьи и метода.

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

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

Для нас главный вывод из этого списка не меняется — а каждая оговорка превращается в задачу на следующий эксперимент.

Что в сухом остатке

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

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

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

P.S. Методологическое ядро эксперимента — парный тест самопредпочтения, смешанные модели, автоматическая верификация цитат по корпусу — мы подробно разбираем в отдельной научной статье, которая сейчас готовится к публикации. А у самого эксперимента будет продолжение: эталонные ответы от экспертов в предметных областях уже в работе — следующий раунд будет не «судьи против судей», а «все системы против инженерной истины». Если интересна кухня — спрашивайте в комментариях.

Автор: SP-AI

Источник [7]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/33050

URLs in this post:

[1] почему нормативные документы пришлось превратить в граф, а не просто загрузить их в векторную базу: https://habr.com/ru/articles/1013832/

[2] сервиса: https://sp-ai.ru

[3] памяти: http://www.braintools.ru/article/4140

[4] логику: http://www.braintools.ru/article/7640

[5] ошибку: http://www.braintools.ru/article/4192

[6] вкус: http://www.braintools.ru/article/6291

[7] Источник: https://habr.com/ru/articles/1059006/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1059006

www.BrainTools.ru

Rambler's Top100