Одним из ключевых требований к информационной системе является воспроизводимость результатов. Однако многие специалисты сталкиваются с трудностями, когда попытка повторить эксперименты приводит к отличающимся показателям. Такая ситуация известна как недетерминированность: модель выдаёт различные результаты при одинаковых входных данных и конфигурации.
Вместе с тем, несмотря на распространённое заблуждение, источником проблемы чаще всего становятся не свойства самой нейросети, а упущения на этапах проектирования разработки и эксплуатации.
Меня зовут Черкас Руслан. Я архитектор в СберЗдоровье — МедТех-компании №1 в России. По роду деятельности я часто сталкиваюсь с утверждениями о принципиальной недетерминированности нейросетей. И в этой статье хочу опровергнуть заблуждения, с которыми сталкиваюсь чаще всего.
Примечание: За основу статьи взяты мои наработки, с которыми можно ознакомиться по ссылке.
Что такое детерминированность
Детерминированностью называется свойство системы, при котором одно и то же состояние входа (например, совокупность начальных данных и параметров модели) порождает каждый раз одно и то же выходное значение. Применительно к нейросетям это означает следующее: если мы имеем фиксированный вектор входных данных (a), фиксированные веса (w) и идентичные условия среды, то результатом работы нейросети всегда будет один и тот же вывод (r):
r=f(a,w)
Любые отклонения от этого правила свидетельствуют лишь о наличии ошибок в реализации или неверном управлении условиями запуска.
Это относится ко всем видам нейросетей независимо от архитектуры: будь то большие языковые модели (Large Language Models, LLM), сверточные нейронные сети (Convolutional Neural Networks, CNN), рекуррентные нейронные сети (Recurrent Neural Networks, RNN) или гибридные варианты.
Отдельно необходимо отметить реккурентные сети вида r1=f(a,w,r0), где результат r1 явно зависит от предыдущего состояния r0. Однако и в этом случае, при прочих равных, включая r0, результат r1 обязан быть детерминированным.
Также справедливо утверждать, что процесс обучения w=l(a, p), где w - итоговые веса, a - аргументы обучения, p - данные для обучения, также должен оставаться детерминированным при фиксировании соответствующих параметров.
Соответственно, любое проявление недетерминированности, при которой результаты работы нейронки отличаются от запуска к запуску, является не фичей (полезной особенностью), а ошибкой в пайплайне, которую нужно устранять.
Однако с этим согласны не все.
Основные возражения и их опровержения
Обычно можно услышать целый ряд оправданий, почему нейросети якобы недетерминированы. Подробно разберу самые распространённые.
Неопределённость входных данных
Утверждение: Модели изначально содержат случайные компоненты (например, случайные начальные веса), что делает их недетерминированными.
Опровержение: Веса и прочие параметры модели фиксируются при задании начальных условий. Никакой внутренней случайности без изменения аргументов не существует. Поэтому возникновение разного результата при повторных запусках без изменений аргументов или весов является следствием ошибки реализации.
Аппаратная недетерминированность
Утверждение: Результат работы нейросети может меняться из-за аппаратной недетерминированности, вызванной разными факторами (шум, нестабильное напряжение питания, сбои и другие).
Опровержение: При идентичном железе и точности, аппаратная недетерминированность исключена. Наличие недетерминированности говорит об аппаратных ошибках и исключает валидный результат.
Программная недетерминированность
Утверждение: Результат может меняться из-за реализации в программном обеспечении. Например, на него могут повлиять различия в версиях библиотек, внутреннем кэшировании или методах оптимизации.
Опровержение: При идентичной версии библиотек и операционного окружения результаты должны быть воспроизводимы. Несоблюдение этого правила при установленных одинаковых условиях свидетельствует о программной ошибке.
Алгоритмическая недетерминированность
Утверждение: Результат может меняться из-за алгоритмической недетерминированности, в том числе из-за параллельных вычислений, гонок и порядка операций.
Опровержение: Недетерминированность без изменения входных данных всегда свидетельствует о наличии ошибки. Алгоритм должен выдавать один результат при фиксированных данных и фиксированном порядке шагов. Если порядок «плавает» и приводит к результату (x+y)+z≠x+(y+z), — реализация некорректна.
Внешние факторы
Утверждение: Существуют внемодульные воздействия (например, квантовые эффекты или измерения внешней среды), способные влиять на результаты работы нейросети.
Опровержение: Любой параметр внешнего мира, включая квантовые операции и другие внешние факторы, может быть отражён только через аргументы модели. Если фактор напрямую влияет на результат без явного включения в аргументы — это ошибка реализации.
Что делать при обнаружении недетерминированности в модели
Исходя из представленных мной аргументов, можно сделать вывод, что недетерминированность — ошибка, которую нужно и можно устранять.
Признание проблемы
Наличие недетерминированности является индикатором проблемы. Следует признать наличие проблемы и указать на неё.
Анализ проблемы
При обнаружении недетерминированности необходимо определить источник проблемы и классифицировать его по одной из рассмотренных выше категорий:
неопределённость входных данных — случайность во входных данных или весовых коэффициентах, незарегистрированные изменения состояний и прочее;
аппаратная недетерминированность — отличается порядок операций, ошибки железа;
программная недетерминированность — версия библиотек, оптимизация;
алгоритмическая недетерминированность — ошибки реализации, параллелизм, нарушение последовательности операций.
Устранение проблемы
По результатам анализа необходимо принять меры для устранения проблемы с демонстрацией возможности получения детерминированного результата.
Неопределённость входных данных. Важно исключить случайные модификации входных данных или весов, а также незамеченные изменения состояний. После локализации проблемы следует зафиксировать начальные условия и установить фиксированное зерно (seed) для инициализации случайных чисел.
Аппаратная недетерминированность. Нужно оценить целостность оборудования, его рабочие параметры и техническое состояние. В случае выявления дефектов заменить повреждённое оборудование или восстановить стабильную рабочую среду. Важно применять идентичное оборудование для серии экспериментов.
Программная недетерминированность. Следует определить возможные несоответствия в версиях библиотек. Важно применять идентичную версию библиотек и средств разработки.
Алгоритмическая недетерминированность. Рационально проанализировать порядок выполнения операций, возможные гонки потоков и нарушение детерминированности при распараллеливании. Важно организовывать вычисления таким образом, чтобы сохранить детерминированность алгоритмов. Не стоит приносить гарантию очередности в жертву скорости вычислений.
Примечание: Допускаю, что в некоторых сценариях «случайность» необходима. Однако она должна быть явно включена в аргументы модели с возможностью последовательного тестирования на идентичных аргументах. При этом модель должна по-прежнему демонстрировать детерминируемость при прочих равных.
Что в итоге
Приведенные мной аргументы позволяют сделать несколько выводов:
утверждение о принципиальной недетерминированности математической нейросети свидетельствует об отсутствии информации о происходящем в сети, либо о сокрытых ошибках на аппаратном, программном или алгоритмическом уровнях;
невозможность демонстрации нейросетью детерминированных результатов следует считать опасной проблемой из-за непредсказуемости, требующей решения, особенно при применении в критически важных для бизнеса системах;
применение любых моделей в критически важных для бизнеса системах должно основываться на понимании источников недетерминированности, её описания и контроля;
реализация детерминированного пайплайна исполнения нейросети должна быть приоритетной сознательной целью.
Таким образом, при всем многообразии нейросетей самую серьезную часть рынка разделят те, кто сумеет показать и доказать полную подконтрольность (детерминированность) своего искусственного интеллекта.
А вы сталкивались с недетерминированностью математической нейросети? Как боретесь с ней в своих проектах? Делитесь опытом — будет полезно.
Комментарии (15)

still-swamp Автор
17.04.2026 11:37Проблема не в том, что "переставив запятую" мы получим иной результат. Куда как более неприятно когда мы ничего не меняем, но получаем разные результаты. И еще хуже когда диаметрально противоположные.
И да. Нет там матхаоса. А если и есть, то без понимания причины - это баг.
Имея причину - можем решать, использовать ли это для mission critical.
netricks
17.04.2026 11:37Матхаос там есть

still-swamp Автор
17.04.2026 11:37Прошу пояснить источник.

netricks
17.04.2026 11:37Сложный ландшафт функции, куча аттракторов. Вообще, концепцию динамического хаоса сложно явно перенести на модель трансформера. Я рассматриваю движение сигнала по слоям модели. Есть там хаос или нет, зависит от постановки вопроса, но фундаментальное свойство хаотических систем, а именно "существенные изменения выходного сигнала на малые изменения входного" мы отчётливо видим в эксперименте

still-swamp Автор
17.04.2026 11:37Сорри. Чувствительность к входу != хаос. Чувствительность аттрактора может быть сколь угодно высокой, но он по-прежнему остается r = f(a), то есть математической функцией. И если вы в вашей f на идентичные a получаете разные r, то у вас проблема. Нестабильная работа f. Это не аттрактор, не алгоритм и не сложный ландшафт.
Это баг.

ENick
17.04.2026 11:37"""невозможность демонстрации нейросетью детерминированных результатов следует считать опасной проблемой из-за непредсказуемости"" и другие подобные выводы слишком категоричны. Мир скорее стохастичен, чем детерминирован. Экспериментаторы говорят, что если прибор сто раз показывает одно и тоже значение, то или прибор неисправен или точность низкая. Надо уметь работать со случайными процессами. Классика: изучаешь закон распределения, строишь доверительные интервалы, сужаешь доверительные интервалы. С недетерминизмом встретился еще лет 5 назад на сверточных моделях и на Tensorflow и на Pytorch. Алгоритмы NVIDIA тоже "шумели", посмотрите их сайт - это задокументированная фишка. Благодаря недетерминизму удавалось получать очень интересные результаты, которые не получались при подавлении недетерминизма.

still-swamp Автор
17.04.2026 11:37На мой взгляд вы смешиваете исследования и эксплуатацию. В процессе экспериментов нужно и можно получать неожиданные и даже интересные результаты. На то он и эксперимент.
Когда же вы выходите на ПСИ, и ваш софт начинает заказчику возвращать произвольные ответы на одни и те же аргументы те f(a) != f(a), при этом вы не можете пояснить причину, ссылаясь на свойство системы (фишка), крайне вероятно что испытания вы не пройдете.
Даже если заказчик закроет на это глаза, то будет наказан уже при эксплуатации.

ENick
17.04.2026 11:37"ПСИ, и ваш софт начинает заказчику возвращать произвольные ответы ". Произвольные ответы и ПСИ понятия не совместимые. "Произвольные ответы" не равно "недетерминизм". Произвольные ответы это неправильно работающая система и к нашей теме эта ситуация отношения не имеет. В условиях недетерминизма многое определяет допустимый уровень недетерминизма. Если Заказчик понятия не имеет о стохастических процессах то для начала попросите его цифровым вольтметром несколько раз померить напряжение дома в розетке и посмотреть на последнюю цифру. Потом пусть посмотрит на этикетку на любом чайнике, на то место, где указано допустимое напряжение. Пусть Заказчик зайдет в три аптеки и попросит таблетки от головной боли и он многое для себя поймет, и возможно, глаза на многое откроет. Флуктуацию вакуума советую не упоминать.

still-swamp Автор
17.04.2026 11:37На мой взгляд розетки аптеки чайники вольтметры не имеет отношения к теме.
Статья о неприменимости результата ИИ агента, который формируется "принципиально недетерминированной" нейронкой.
Если результат зависит от скрытых параметров без возможности их локализации → система непригодна для критического применения.
ENick
17.04.2026 11:37"Статья о неприменимости результата ИИ агента, который формируется "принципиально недетерминированной" нейронкой.". Если прочитать эту фразу буквально, то её смысл: "Если вольтметр показывает непонятно какие результаты, то пользоваться им нельзя". Абсолютно согласен, это не вольтметр, а бракованное или сломанное изделие. Я говорю о том, что если на цифровом табло вольтметра последняя цифра самопроизвольно изменяется, и если диапазон этих изменений соответствует диапазону, указанному на этикетке чайника, то чайник порадует нас кипятком не один год. Можно поставить суперстабилизатор напряжения, но это будет дорого и чайник сломается от другой причины, например забыли налить воду. Вопрос лежит принципиально в другой плоскости. Мы не знаем как нейронные сети формируют ответ. Многолетние исследования Anthropic показывают, что результат определяется не только вероятностью следования слов, сформированной при обучении, но и некоторыми, непонятно как сформированными внутренними состояниями нейронной сети. На сайте Anthropic это подробно описано. Пока нет математических/логических оснований считать, что эти внутренние состояния могут быть объяснимы. Как один из примеров возможности применения принципиально не объяснимых объектов в критически важных системах свидетельствует работа в области квантовой криптографии. Посмотрите для начала А.Семихатова. Сто лет недосказанности. Москва, АНФ. 2025.
"Если результат зависит от скрытых параметров без возможности их локализации → система непригодна для критического применения." Много писать не буду ибо мышление человека именно так и работает. См работы Черниговской Татьяны Владимировны.

still-swamp Автор
17.04.2026 11:37Не следует привлекать человеческое мышление в пример. Ничего общего с апроксимацией на double (float) оно не имеет.
Вы воспроизводите мысль «мы не знаем, как формируется ответ, и это нормально». Я прямо возражаю. Это не норма, а опасный недостаток реализации. Именно для такого случая и написана эта статья.
Прошу так же ознакомится:
https://docs.sglang.io/advanced_features/deterministic_inference.htmlhttps://github.com/johnthesmith/scraps/blob/main/ru/nn-compare.md

ENick
17.04.2026 11:37"Прошу так же ознакомится: " ознакомился. Одни заклинания, ни одного аргумента. Их и быть не может пока при анализе эмбеддинга не обнаружится связь семантической сущности с тем или иным элементом вектора или с группой элементов. Семантика "размазана" да ещё и нелинейно по всем элементам вектора. Какая тут локализация?
Хотим мы или не хотим, но мы не знаем что такое электрон, но получили законы Ома и др., и электронику используем повсеместно. Мы не знаем, что такое гравитация, но вывели законы баллистики, которые позволяют облететь Луну и вернуться на Землю. А если погрузиться в мир квантовых явлений, где нарушаются причинно-следственные связи и нельзя объяснить, но можно посчитать, то детерминизма там быть не может принципиально. А лазеры и светодиоды на каждом шагу и ничего, светят, да ещё длину волны меняют! Всё тоже и с LLM, ничего принципиально нового. Народ это знает и уже квантовые нейросети "строгает" (QGAN, Quantum VAE).
Просьба: пишите аргументы. Ссылка на чужие работы, тем более не модерированные - не самая хорошая форма дискуссии. Мои ссылки - это разъяснение моих аргументов.

Vane4ek
17.04.2026 11:37Было интересно почитать статью. Но гораздо интереснее было читать дискуссию в комментариях.
А если предположить, что одновременно должны существовать оба состояния? Никто не отрицает детерминированности бита. Но никто не отрицает и недетерминированности кубитов (кот Шредингера).
Возможно, мой комментарий отдает дилетантизмом, извините, если что.
Спасибо.
netricks
Нейросеть внуьри себя хаотична (в плане матхаоса). Можно сделать повторяемость на идеально совпадающих входных данных, но вот вы переставили запятую и результат отличается значительно.
Я делал детерминированный инференс с целью ленивого кеширования, но как бы а зачем ещё? Ну, чтобы регресс не словить, может быть. Проверять вызов инструментов.
Однако ожидать предсказуемого повторяемого поведения от хаотической системы - так себе идея. Парадигму надо сместить, принять, что повторяемость не так уж и важна