BitStack: Тонкое управление размером для сжатых больших языковых моделей в переменных памятных средах
BitStack: Fine-Grained Size Control for Compressed Large Language Models in Variable Memory Environments
October 31, 2024
Авторы: Xinghao Wang, Pengyu Wang, Bo Wang, Dong Zhang, Yunhua Zhou, Xipeng Qiu
cs.AI
Аннотация
Большие языковые модели (LLM) революционизировали множество приложений, однако их внедрение продолжает сталкиваться с ограничениями памяти на локальных устройствах. Хотя законы масштабирования улучшили возможности LLM, основное узкое место перешло от возможностей к доступности, что подчеркивает необходимость эффективного управления памятью. Традиционные методы сжатия, такие как квантование, часто требуют заранее определенных коэффициентов сжатия и отдельных процессов сжатия для каждой настройки, что усложняет внедрение в переменные среды памяти. В данной статье мы представляем BitStack, новый подход к сжатию весов без обучения, который позволяет достигать компромиссов на уровне мегабайт между использованием памяти и производительностью модели. Используя декомпозицию весов, BitStack может динамически настраивать размер модели с минимальной передачей между рабочей памятью и устройствами хранения. Наш подход итеративно декомпозирует матрицы весов, учитывая значимость каждого параметра, что приводит к приблизительно 1 биту на остаточный блок параметров в каждой итерации декомпозиции. Эти блоки сортируются и складываются в хранилище как базовые блоки передачи, и различные количества загружаются в зависимости от текущей доступной памяти. Обширные эксперименты по широкому спектру задач показывают, что, несмотря на предложение управления размером с высокой детализацией, BitStack последовательно соответствует или превосходит сильные базовые значения квантования, особенно при экстремальных коэффициентах сжатия. На наш взгляд, это первый метод на основе декомпозиции, который эффективно сокращает разрыв до практических методов сжатия, таких как квантование. Код доступен на https://github.com/xinghaow99/BitStack.
English
Large language models (LLMs) have revolutionized numerous applications, yet
their deployment remains challenged by memory constraints on local devices.
While scaling laws have enhanced LLM capabilities, the primary bottleneck has
shifted from capability to availability, emphasizing the need
for efficient memory management. Traditional compression methods, such as
quantization, often require predefined compression ratios and separate
compression processes for each setting, complicating deployment in variable
memory environments. In this paper, we introduce BitStack, a novel,
training-free weight compression approach that enables megabyte-level
trade-offs between memory usage and model performance. By leveraging weight
decomposition, BitStack can dynamically adjust the model size with minimal
transmission between running memory and storage devices. Our approach
iteratively decomposes weight matrices while considering the significance of
each parameter, resulting in an approximately 1-bit per parameter residual
block in each decomposition iteration. These blocks are sorted and stacked in
storage as basic transmission units, with different quantities loaded based on
current memory availability. Extensive experiments across a wide range of tasks
demonstrate that, despite offering fine-grained size control, BitStack
consistently matches or surpasses strong quantization baselines, particularly
at extreme compression ratios. To the best of our knowledge, this is the first
decomposition-based method that effectively bridges the gap to practical
compression techniques like quantization. Code is available at
https://github.com/xinghaow99/BitStack.