Установка параметра температуры на ноль часто воспринимается как способ сделать ответы языковых моделей полностью предсказуемыми. Однако на практике даже при нулевой температуре модель может выдавать разные результаты при повторных запросах. Это связано с тем, что процесс генерации текста зависит не только от логики выбора следующего токена, но и от особенностей архитектуры вычислительных систем, на которых работает модель.
Основная причина кроется в параллельных вычислениях на GPU. Операции с плавающей запятой, используемые при расчетах вероятностей токенов, не всегда обладают строгой ассоциативностью. Из-за особенностей реализации CUDA и других библиотек для глубокого обучения, порядок выполнения операций может незначительно меняться в зависимости от нагрузки на систему или распределения вычислений между ядрами. Эти микроскопические различия в вычислениях накапливаются и могут приводить к тому, что на этапе выбора наиболее вероятного токена модель «видит» разные значения вероятностей.
Кроме того, на детерминизм влияют параметры инференса и программная обвязка. Использование различных библиотек для квантования, оптимизаций типа FlashAttention или специфических настроек распределенных систем может вносить свои коррективы в итоговый результат. Для достижения истинной воспроизводимости результатов разработчикам приходится фиксировать не только значение температуры, но и всю цепочку вычислительного стека, включая конкретные версии драйверов, библиотек и конфигурации оборудования.