Дайте мне FP32 или дайте мне смерть? Проблемы и решения для воспроизводимого рассуждения
Give Me FP32 or Give Me Death? Challenges and Solutions for Reproducible Reasoning
June 11, 2025
Авторы: Jiayi Yuan, Hao Li, Xinheng Ding, Wenya Xie, Yu-Jhe Li, Wentian Zhao, Kun Wan, Jing Shi, Xia Hu, Zirui Liu
cs.AI
Аннотация
Крупные языковые модели (LLM) стали неотъемлемой частью различных областей и продемонстрировали впечатляющие результаты. Однако прогресс основывается на предпосылке, что оценки на бенчмарках являются как точными, так и воспроизводимыми. Мы показываем, что воспроизводимость производительности LLM хрупка: изменение конфигурации системы, такой как размер пакета для оценки, количество GPU и версия GPU, может привести к значительным различиям в генерируемых ответах. Эта проблема особенно заметна в моделях, ориентированных на рассуждения, где незначительные различия в округлении на ранних этапах могут каскадно приводить к расходящимся цепочкам рассуждений, что в конечном итоге влияет на точность. Например, при использовании точности bfloat16 с жадным декодированием модель рассуждений, такая как DeepSeek-R1-Distill-Qwen-7B, может демонстрировать до 9% вариации в точности и разницу в 9000 токенов в длине ответа из-за различий в количестве GPU, их типе и размере пакета для оценки. Мы связываем коренную причину этой изменчивости с неассоциативным характером арифметики с плавающей запятой при ограниченной численной точности. Данная работа представляет первое систематическое исследование того, как численная точность влияет на воспроизводимость в процессе вывода LLM. С помощью тщательно контролируемых экспериментов на различных аппаратных, программных и точностных настройках мы количественно определяем, когда и как выходные данные модели расходятся. Наш анализ показывает, что точность с плавающей запятой, хотя и критична для воспроизводимости, часто игнорируется в практике оценки. Вдохновленные этим, мы разработали легковесный конвейер вывода, названный LayerCast, который хранит веса в 16-битной точности, но выполняет все вычисления в FP32, балансируя между эффективностью использования памяти и численной стабильностью. Код доступен по адресу https://github.com/nanomaoli/llm_reproducibility.
English
Large Language Models (LLMs) are now integral across various domains and have
demonstrated impressive performance. Progress, however, rests on the premise
that benchmark scores are both accurate and reproducible. We demonstrate that
the reproducibility of LLM performance is fragile: changing system
configuration such as evaluation batch size, GPU count, and GPU version can
introduce significant difference in the generated responses. This issue is
especially pronounced in reasoning models, where minor rounding differences in
early tokens can cascade into divergent chains of thought, ultimately affecting
accuracy. For instance, under bfloat16 precision with greedy decoding, a
reasoning model like DeepSeek-R1-Distill-Qwen-7B can exhibit up to 9% variation
in accuracy and 9,000 tokens difference in response length due to differences
in GPU count, type, and evaluation batch size. We trace the root cause of this
variability to the non-associative nature of floating-point arithmetic under
limited numerical precision. This work presents the first systematic
investigation into how numerical precision affects reproducibility in LLM
inference. Through carefully controlled experiments across various hardware,
software, and precision settings, we quantify when and how model outputs
diverge. Our analysis reveals that floating-point precision -- while critical
for reproducibility -- is often neglected in evaluation practices. Inspired by
this, we develop a lightweight inference pipeline, dubbed LayerCast, that
stores weights in 16-bit precision but performs all computations in FP32,
balancing memory efficiency with numerical stability. Code is available at
https://github.com/nanomaoli/llm_reproducibility.