Не доверяйте нейросетям... проверяйте их!

Классификация и анализ методов верификации нейросетей

При эксплуатации нейросетей вида r=f(a,w) в ответственных системах необходимо соблюдение двух фундаментальных требований: повторяемость и проверяемость результата. Информация о требовании повторяемости на основе детерминированного ответа изложена в ранее опубликованной статье

Но с выполнением второго требования всё несколько сложнее.

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

Меня зовут Черкас Руслан. Я архитектор в СберЗдоровье — МедТех-компании №1 в России. В этой статье я поделюсь своими соображениями о верификации результата нейросети, существующих методах ее проведения, а также мыслями о том, что на мой взгляд следует применять, а что — избегать.

Примечание: За основу статьи взяты мои наработки, с которыми можно ознакомиться по ссылке

Требования к проверяемости результата и методы верификации

Под проверяемостью далее предлагаю понимать возможность сопоставить результат работы модели с объективной истиной или заранее определённым критерием корректности. Отсутствие такой проверки или использование ненадёжных методов верификации влечёт за собой прямые риски: от финансовых потерь из-за неверных бизнес-решений до угрозы безопасности людей в критических инфраструктурах. 

Именно поэтому центральной задачей становится не просто получение ответа от нейросети, а построение процесса его верификации.

Из практики, по источнику истины методы верификации можно разделить на несколько групп:

  • человек;

  • эксперимент;

  • формальная спецификация или конечный алгоритм;

  • нейросеть;

  • смешанный подход.

На специфике каждого из них остановимся подробнее. 

Человек

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

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

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

Вместе с тем, верификация ответа человеком затруднительна в runtime-процессах, требующих высокой скорости реакции или обработки огромных массивов данных — в таких сценариях ручная проверка становится «бутылочным горлышком» системы.

Формальная спецификация или конечный алгоритм

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

При этом у данного метода есть замечание: часто правильный ответ невозможно вычислить заранее. Однако, когда нейросеть уже выдала свой результат, его можно проверить постфактум с помощью такого эталонного алгоритма.

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

Таким образом, метод обеспечивает объективность и воспроизводимость, но применим только там, где правильный ответ поддается формализации.

Эксперимент

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

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

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

На мой взгляд, это наиболее полный и достоверный способ верификации.

Ограничение заключается в том, что эксперимент часто невозможен до начала реальной эксплуатации либо слишком дорог, опасен или недоступен в реальном времени.

Нейросеть

Переходим к недостоверным способам проверки.

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

Я сталкивался с несколькими попытками и способами валидации с помощью нейросетей.

  • «Эталонная» модель. Берется нейросеть, которую считают более точной (например, большего размера или обученная дольше), и на основе ее ответов выполняется оценка результатов проверяемой сети.

  • Ансамблевые методы. Усредняются ответы нескольких сетей, и полученное среднее считается эталоном для проверки каждой отдельной сети.

  • Кросс-валидация между архитектурами. Сравниваются ответы сетей разной архитектуры, и совпадение интерпретируется как подтверждение правильности.

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

  • Во-первых, если для проверки одной сети требуется другая, то почему бы не использовать эту «проверяющую» сеть в качестве основной? Это приводит к бесконечной рекурсии: возникает вопрос, кто будет проверять проверяющую сеть, и не логичнее ли сразу доверять более точной модели.

  • Во-вторых, если мы считаем одну из сетей эталоном, то её ответы по определению приравниваются к истине, что сводит верификацию к простому сравнению с заранее выбранным фаворитом, а не к объективной оценке. Таким образом, вместо верификации мы получаем лишь сопоставление двух вероятностных моделей без гарантии их соответствия реальности.

Смешанный подход

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

Причин несколько:

  • Потери независимости. Обученная на эталоне нейросеть — это лишь аппроксимация, а не сам эталон. Гарантии исходного источника утрачены.

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

  • Циркулярность. Проверка одной аппроксимации через другую неизбежно приводит к потере прямой связи с первоисточником истины.

Доказательство некорректности проверки через обученную сеть

Приведу доказательство несостоятельности двух вышеописанных методов: верификации с помощью нейросети и смешанного подхода.

Пусть T — истина, неизвестная нейросети напрямую, поскольку не имеет компактного описания (иначе задача решалась бы классическими методами без применения нейросетей).

Пусть N1 = learning(D1) и N2 = learning(D2), где:

  • D1 и D2 — конечные выборки из T;

  • N1 и N2 — результат обучения двух сетей.

причем: D1 ≠ D2, D1 ∪ D2 ≠ T, то есть каждая нейросеть видела только свой кусок истины и никогда не видела всю T целиком. 

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

∀x:N1(x)= T(x)

∀x:N2(x)= T(x)

Теперь рассмотрим проверку N1 через N2 как требование:

∀x: N1(x) = N2(x)

Возьмем x' ∉ D1 ∪ D2, то есть x' не видела ни первая, ни вторая сеть в обучающих сэмплах. Для этой точки обе сети дают ответ, не подтвержденный истиной T.

При этом N1(x') может равняться N2(x'), но гарантий, что это значение равно T(x*), нет — T для этой точки неизвестна.

Следовательно:

(∀x: N1( x ) = N2( x )) ≠> (∀x: N1( x ) = T( x ))

Совпадение ответов двух нейросетей не является свидетельством истинности. Никакая нейросеть не может служить эталоном для другой.

Даже если N1(x') = N2(x'), это может быть случайное совпадение или системная ошибка обобщения, а не подтверждение истинного значения.

Графическое представление:

На графике мы видим следующее: обе нейросети (N1 и N2), обученные на одной истине (Т), дали идентичный результат в точке пересечения и при этом ошибочный относительно истины. Формально модели ошиблись и вернули результат TRUE при правильном FALSE. Последствия этой ошибки зависят от контекста применения.

Что в итоге

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

При этом надо четко понимать:

  • Использование одной нейросети для проверки другой аналогичной не дает достоверных результатов. Совпадение ответов не дает никаких гарантий корректности. Обе могут одинаково ошибаться в точках, не представленных ни одной из них при обучении. А где именно пролегают эти точки и какова истина — неизвестно. То есть проверка одной нейросети через другую — создание иллюзии контроля вместо реальной верификации.

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

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

А как вы верифицируете результаты работы нейросетей? Рассказывайте о своих подходах — будет полезно.

Комментарии (9)


  1. eignatiev
    25.06.2026 12:36

    Спасибо за разбор, подтверждаю тезис «одна нейросеть не может служить эталоном для другой» из своей практики чат-агентов на Claude. Пробовал прогонять ответы Haiku через Sonnet как валидатор — Sonnet находил «ошибки» там, где их не было, и пропускал реальные косяки на одинаковых входных вопросах. Сошёлся на смешанном подходе:
    эксперт-человек составляет 10–15 FAQ-эталонов (пары «типовой вопрос → эталонный ответ»), они лежат прямо в SYSTEM-промпте как few-shot. Перед каждой правкой промпта прогоняю эти 10 вопросов и сверяю с эталонами визуально. Это сэкономило кучу регрессий — модель тиражирует паттерн эталона вместо того чтобы обходить чёрный список запретов. По вашей таксономии — это «эксперимент + формальная спецификация» одновременно, в малом продакшен-варианте.


    1. still-swamp Автор
      25.06.2026 12:36

      Да. Поддерживаю. Это рабочий вараинт теста на предрелизе. Делаю так же.

      К сожалению, это не защитит от косяков при эксплуатации, а лишь покажет совсем грубые косяки после изменения промтов. Если говорить о мишшен-критикал, то такому решению я доверится не могу.

      Для чатботов, итерационной писанины кода это вполне.


      1. eignatiev
        25.06.2026 12:36

        Согласен, эталоны защищают только от грубых регрессий после правки промпта, а не от runtime-косяков. У нас в чат-ботах для МСБ это компенсирует другой контур: каждый завершённый диалог с лидом улетает в Telegram-канал владельца бизнеса, и он де-факто работает как живой ревьюер. Если бот несёт ересь — клиент видит в тот же день и правит промпт. Это «эксперт-в-цикле», по таксономии — сильнее автомата, но требует чтобы у владельца было время смотреть. Для mission-critical в медицине так не зайдёт, конечно. А как у вас сейчас приходит сигнал об ошибке агента в эксплуатации — через клиентскую обратную связь, ручной аудит, или есть автоматизированный мониторинг качества?


        1. still-swamp Автор
          25.06.2026 12:36

          Чаще экспертаня оценка результата. Основное направление - облегечение работы врача. Ответ в любом случае проходит через специалиста. Это неизбежно.


          1. eignatiev
            25.06.2026 12:36

            Понял, экспертный фильтр на выходе для медицины - золотое правило. Спасибо за разбор, забрал терминологию верификации к себе на полку.


  1. avshkol
    25.06.2026 12:36

    У вас есть люди-эксперты, которые допускают ошибку в x% случаев.

    И есть несколько нейросетей. Просто добивайтесь такой конфигурации нейросетей при ответах и перекрестных проверках, при которых вероятность ошибки итогового ответа снизится ниже x.

    Тогда вы сможете сказать, что группа нейросетей эффективнее среднего человека-эксперта.

    Второй вариант - искать возможности снизить x ниже лучшего эксперта.

    При этом кроме ответа нейросети должны выдать ещё фактор y: насколько ответ требует проверки человеком-экспертом. Осталось загружать свободных экспертов на проверку ответов с максимальными y.


  1. kenomimi
    25.06.2026 12:36

    Только недавно слушал рабочую лекцию про проблему верификации ответов ИИ - типа всё скатывается в w40k, бога-машину и безусловное ей доверие. Ибо ответы на сложные вопросы создаются моментально, но вот понять ответы и валидировать - задача долгая, дорогая и сложная. Или ты слепо доверяешь, или остаешься позади конкурентов - копаться в тонкостях чаще всего нет времени... Но докладчики так и не смогли ответить на главный вопрос - а чем, собственно, это отличается от проблемы доверия ответам кожаных? Люди ведь точно так же врут, ложно прогнозируют и приукрашивают (те самые галлюцинации), так же политизированы и имеют внутреннюю цензуру. Их тоже сложно проверить, руководитель (особенно через одну-две головы) не знает в тонкостях процессы подчиненных... Просто к этой особенности у людей мы привыкли, а в то, что машина может ошибаться или нести чушь - пока еще нет.


  1. safonovaliza
    25.06.2026 12:36

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


  1. romkavt
    25.06.2026 12:36

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