- BrainTools - https://www.braintools.ru -
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 образца 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 — безопасность инженерных рекомендаций.
Итоговый балл:
У 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
Нажмите здесь для печати.