DetLLM: Инструмент для проверки детерминированности LLM и создания тестов | AiManual
AiManual Logo Ai / Manual.
18 Янв 2026 Инструмент

DetLLM: Когда temperature=0 не спасает от хаоса

Обзор DetLLM — утилиты для отладки недетерминированных выводов языковых моделей. Сравнение с альтернативами, примеры использования и рекомендации.

Тишина, мы отлаживаем

Вы выставили temperature=0, seed=42 и глубоко вздохнули. Теперь-то ваша LLM будет вести себя предсказуемо. Вы запускаете тест. Он проходит. Вы запускаете его снова. Он падает. Вы проверяете код, промпты, окружение. Всё идентично. А модель выдаёт другой ответ.

Знакомо? Добро пожаловать в ад воспроизводимости машинного обучения. Проблема глубже, чем кажется. Temperature и seed — это только верхушка айсберга. Под водой скрываются batch size, версии библиотек, аппаратные различия и десятки других факторов, которые превращают детерминированный (по вашей задумке) пайплайн в лотерею.

В нашей предыдущей статье «Как LLM обманывают даже экспертов» мы уже касались иллюзии контроля при temperature=0. DetLLM — это следующий шаг: инструмент, который показывает, где именно эта иллюзия разбивается о реальность.

Что такое DetLLM и зачем он нужен

DetLLM — это не фреймворк для тестирования вроде DeepEval (о котором мы писали здесь). Это диагностический инструмент. Его задача — не оценить качество ответа, а ответить на один вопрос: будет ли этот ответ одинаковым при повторных запусках в идентичных условиях?

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

💡
Главная фишка — token-level трассировка. Вы видите не просто «ответы различаются», а «на третьем токене модель колебалась между запятой и словом "и" с вероятностями 49% и 48%». Это уровень детализации, после которого отладка перестаёт быть гаданием на кофейной гуще.

С чем DetLLM борется (спойлер: почти со всем)

Вот типичные источники недетерминизма, которые DetLLM помогает выловить:

  • Параметры генерации: Да, даже при temperature=0 могут работать другие механизмы вроде top-p или beam search.
  • Batch processing: Один из самых коварных. Результат инференса для одного примера может зависеть от других примеров в батче. DetLLM это отлавливает.
  • Аппаратные ускорители: Разное поведение на CPU, GPU разных поколений, в разных режимах вычислений с плавающей точкой.
  • Неявные зависимости: Версии трансформеров, кэширование ключей-значений, параллельные вычисления.

Без инструмента вроде DetLLM вы обречены на ситуацию «на моей машине работает». Особенно больно это бьёт по командной разработке и продакшену.

Как это выглядит на практике

Допустим, вы дорабатываете агента для вызова функций, как в нашем руководстве по тестированию недетерминированных LLM. Ваш тест иногда падает. Вы подозреваете нестабильность в выборе функции.

Вместо того чтобы вручную запускать скрипт сто раз и сравнивать логи, вы пишете простой скрипт с DetLLM. Он делает это за вас и выдаёт отчёт. Вы видите, что в 15% запусков модель на этапе reasoning выбирает другую цепочку мыслей, что ведёт к другому tool call. Проблема локализована. Теперь вы можете либо доработать промпт, чтобы сделать reasoning устойчивее, либо признать этот процент ошибок и учесть его в логике приложения.

DetLLM vs. Остальной мир

ИнструментОсновная цельРаботает с детерминизмом?Уровень детализации
DetLLMДиагностика воспроизводимостиДа, это основная функцияТокен-левел, трассировка вероятностей
DeepEval / unittestОценка качества ответаКосвенно, через стабильность прохождения тестовУровень финального ответа (pass/fail)
Ручное логированиеОтладка чего угодноМожно, но муторно и несистематичноЗависит от разработчика
Стандартные промпты (как в нашей коллекции)Сравнение моделейНет, они лишь уменьшают вариативность вводаНет

DetLLM не заменяет фреймворки для тестирования. Он дополняет их. Сначала вы используете DetLLM, чтобы убедиться, что ваш пайплайн в принципе способен давать стабильные результаты. Потом пишете на DeepEval тесты, которые проверяют, что эти стабильные результаты ещё и правильные.

Кому стоит заморачиваться с DetLLM прямо сейчас

Не всем. Если вы делаете чат-бота для генерации шуток про котиков, ваша толерантность к недетерминизму высока. DetLLM — инструмент для тех, у кого ошибка стоит дорого.

  • Разработчики продакшен-систем с LLM: Особенно в финансах, медицине, юриспруденции. Там, где ответ должен быть не только правильным, но и одинаковым при повторном запросе.
  • Исследователи: Те, кто публикует результаты экспериментов. Воспроизводимость — основа науки. DetLLM помогает доказать, что ваши графики не результат случайного выброса.
  • Инженеры, интегрирующие LLM в сложные пайплайны: Например, в семантические пайплайны, где вывод одной модели становится входом для другой. Недетерминизм на раннем этапе множит ошибки к концу цепочки.
  • Команды, которые устали от «на моей машине работает»: DetLLM даёт объективные данные для споров о том, почему тест падает только в CI/CD.

Подводные камни и что DetLLM (пока) не умеет

Инструмент молодой. Он отлично работает с популярными библиотеками вроде Hugging Face Transformers и OpenAI-совместимыми API. Но если у вас кастомная C++ имплементация на собственных ядрах, придётся повозиться с интеграцией.

DetLLM не волшебная таблетка. Он показывает проблему, но не всегда решает её. Обнаружив, что batch size ломает детерминизм, вам всё равно придётся принимать решение: отказаться от батчинга, изменить его размер или смириться с вариативностью.

Главный вывод прост: эра слепой веры в temperature=0 закончилась. Современная разработка с LLM требует инструментов для интроспекции. DetLLM — один из первых шагов в этом направлении. Он превращает чёрный ящик в полупрозрачный, показывая внутреннюю кухню генерации. А зная кухню, уже можно готовить стабильные и предсказуемые приложения.

Следующий логичный шаг? Интеграция таких инструментов прямо в фреймворки для тестирования LLM. Представьте себе ассерт не только на содержание ответа, но и на максимально допустимый процент его вариативности. Будущее за тестами, которые понимают природу вероятностных систем.