70% размера, 100% точности: сжатие LLM без потерь для эффективного вывода на GPU с использованием динамической длины чисел с плавающей запятой
70% Size, 100% Accuracy: Lossless LLM Compression for Efficient GPU Inference via Dynamic-Length Float
April 15, 2025
Авторы: Tianyi Zhang, Yang Sui, Shaochen Zhong, Vipin Chaudhary, Xia Hu, Anshumali Shrivastava
cs.AI
Аннотация
Крупные языковые модели (LLM) стремительно увеличиваются в размерах, что создает значительные трудности для их эффективного развертывания на оборудовании с ограниченными ресурсами. В данной статье мы представляем Dynamic-Length Float (DFloat11) — фреймворк для сжатия без потерь, который уменьшает размер LLM на 30%, сохраняя при этом выходные данные, бит-в-бит идентичные исходной модели. DFloat11 основан на низкой энтропии в представлении весов BFloat16 в LLM, что выявляет значительную неэффективность существующих форматов хранения. Применяя энтропийное кодирование, DFloat11 назначает весам динамические по длине кодировки на основе их частоты, достигая почти оптимального сжатия без потери точности. Для обеспечения эффективного вывода с динамическими кодировками мы разработали специализированный GPU-ядро для быстрой онлайн-декомпрессии. Наш дизайн включает: (i) декомпозицию ресурсоемких таблиц поиска (LUT) в компактные LUT, которые помещаются в SRAM GPU, (ii) двухфазное ядро для координации позиций чтения/записи потоков с использованием легковесных вспомогательных переменных, и (iii) декомпрессию на уровне трансформер-блоков для минимизации задержек. Эксперименты на современных моделях, включая Llama-3.1, Qwen-2.5 и Gemma-3, подтверждают нашу гипотезу о том, что DFloat11 обеспечивает сокращение размера модели примерно на 30% при сохранении бит-в-бит точных выходных данных. По сравнению с потенциальной альтернативой выгрузки частей несжатой модели на CPU для соблюдения ограничений памяти, DFloat11 демонстрирует в 1.9–38.8 раз более высокую пропускную способность при генерации токенов. При фиксированном бюджете памяти GPU DFloat11 позволяет увеличить длину контекста в 5.3–13.17 раз по сравнению с несжатыми моделями. Примечательно, что наш метод позволяет выполнять вывод без потерь для модели Llama-3.1-405B объемом 810 ГБ на одном узле с 8 GPU по 80 ГБ каждый. Наш код и модели доступны по адресу https://github.com/LeanModels/DFloat11.
English
Large Language Models (LLMs) have grown rapidly in size, creating significant
challenges for efficient deployment on resource-constrained hardware. In this
paper, we introduce Dynamic-Length Float (DFloat11), a lossless compression
framework that reduces LLM size by 30% while preserving outputs that are
bit-for-bit identical to the original model. DFloat11 is motivated by the low
entropy in the BFloat16 weight representation of LLMs, which reveals
significant inefficiency in existing storage format. By applying entropy
coding, DFloat11 assigns dynamic-length encodings to weights based on
frequency, achieving near information-optimal compression without any loss of
precision. To facilitate efficient inference with dynamic-length encodings, we
develop a custom GPU kernel for fast online decompression. Our design
incorporates the following: (i) decomposition of memory-intensive lookup tables
(LUTs) into compact LUTs that fit in GPU SRAM, (ii) a two-phase kernel for
coordinating thread read/write positions using lightweight auxiliary variables,
and (iii) transformer-block-level decompression to minimize latency.
Experiments on recent models, including Llama-3.1, Qwen-2.5, and Gemma-3,
validates our hypothesis that DFloat11 achieves around 30% model size reduction
while preserving bit-for-bit exact outputs. Compared to a potential alternative
of offloading parts of an uncompressed model to the CPU to meet memory
constraints, DFloat11 achieves 1.9-38.8x higher throughput in token generation.
With a fixed GPU memory budget, DFloat11 enables 5.3-13.17x longer context
lengths than uncompressed models. Notably, our method enables lossless
inference of Llama-3.1-405B, an 810GB model, on a single node equipped with
8x80GB GPUs. Our code and models are available at
https://github.com/LeanModels/DFloat11.Summary
AI-Generated Summary