Сложение - все, что вам нужно для энергоэффективных языковых моделей
Addition is All You Need for Energy-efficient Language Models
October 1, 2024
Авторы: Hongyin Luo, Wei Sun
cs.AI
Аннотация
Большие нейронные сети тратят большую часть вычислений на умножения тензоров с плавающей запятой. В данной работе мы обнаружили, что умножитель с плавающей запятой может быть аппроксимирован одним целочисленным сумматором с высокой точностью. Мы предлагаем алгоритм линейной сложности умножения L-Mul, который аппроксимирует умножение чисел с плавающей запятой операциями целочисленного сложения. Новый алгоритм требует значительно меньше ресурсов вычислений, чем умножение чисел с плавающей запятой на 8 бит, но достигает более высокой точности. По сравнению с умножениями чисел с плавающей запятой на 8 бит, предложенный метод обеспечивает более высокую точность, но требует значительно меньше вычислений на уровне битов. Поскольку умножение чисел с плавающей запятой требует существенно больше энергии по сравнению с операциями целочисленного сложения, применение операции L-Mul в аппаратуре обработки тензоров может потенциально снизить затраты на энергию на 95% при поэлементных умножениях тензоров с плавающей запятой и на 80% при скалярных произведениях. Мы рассчитали теоретическое ожидание ошибки L-Mul и оценили алгоритм на широком спектре текстовых, визуальных и символьных задач, включая понимание естественного языка, структурное мышление, математику и ответы на вопросы здравого смысла. Наши численные эксперименты согласуются с теоретической оценкой ошибки, что указывает на то, что L-Mul с мантиссой 4 бита достигает сравнимой точности с умножениями float8_e4m3, а L-Mul с мантиссой 3 бита превосходит float8_e5m2. Результаты оценки на популярных бенчмарках показывают, что применение L-Mul к механизму внимания практически не приводит к потерям. Мы также показываем, что замена всех умножений чисел с плавающей запятой на L-Mul с мантиссой 3 бита в модели трансформера обеспечивает эквивалентную точность при использовании float8_e4m3 в качестве точности накопления как при донастройке, так и при выводе.
English
Large neural networks spend most computation on floating point tensor
multiplications. In this work, we find that a floating point multiplier can be
approximated by one integer adder with high precision. We propose the
linear-complexity multiplication L-Mul algorithm that approximates floating
point number multiplication with integer addition operations. The new algorithm
costs significantly less computation resource than 8-bit floating point
multiplication but achieves higher precision. Compared to 8-bit floating point
multiplications, the proposed method achieves higher precision but consumes
significantly less bit-level computation. Since multiplying floating point
numbers requires substantially higher energy compared to integer addition
operations, applying the L-Mul operation in tensor processing hardware can
potentially reduce 95% energy cost by element-wise floating point tensor
multiplications and 80% energy cost of dot products. We calculated the
theoretical error expectation of L-Mul, and evaluated the algorithm on a wide
range of textual, visual, and symbolic tasks, including natural language
understanding, structural reasoning, mathematics, and commonsense question
answering. Our numerical analysis experiments agree with the theoretical error
estimation, which indicates that L-Mul with 4-bit mantissa achieves comparable
precision as float8_e4m3 multiplications, and L-Mul with 3-bit mantissa
outperforms float8_e5m2. Evaluation results on popular benchmarks show that
directly applying L-Mul to the attention mechanism is almost lossless. We
further show that replacing all floating point multiplications with 3-bit
mantissa L-Mul in a transformer model achieves equivalent precision as using
float8_e4m3 as accumulation precision in both fine-tuning and inference.Summary
AI-Generated Summary