SliceGPT: Сжатие больших языковых моделей путём удаления строк и столбцов
SliceGPT: Compress Large Language Models by Deleting Rows and Columns
January 26, 2024
Авторы: Saleh Ashkboos, Maximilian L. Croci, Marcelo Gennari do Nascimento, Torsten Hoefler, James Hensman
cs.AI
Аннотация
Крупные языковые модели стали краеугольным камнем обработки естественного языка, однако их использование сопряжено с существенными затратами вычислительных ресурсов и памяти. Разрежение предлагает решение для смягчения этих ограничений, и недавние работы показали, что обученные модели могут быть разрежены постфактум. Существующие методы разрежения сталкиваются с трудностями, так как требуют дополнительных структур данных и обеспечивают ограниченное ускорение на современном оборудовании. В данной статье мы представляем SliceGPT — новую схему разрежения после обучения, которая заменяет каждую матрицу весов на меньшую (плотную) матрицу, уменьшая размерность встраивания сети. В ходе обширных экспериментов мы показываем, что SliceGPT может удалить до 25% параметров модели (включая встраивания) для моделей LLAMA2-70B, OPT 66B и Phi-2, сохраняя при этом 99%, 99% и 90% производительности в задачах zero-shot по сравнению с плотной моделью соответственно. Наши разреженные модели работают на меньшем количестве графических процессоров и выполняются быстрее без какой-либо дополнительной оптимизации кода: на потребительских GPU с 24 ГБ мы сокращаем общие вычисления для вывода на LLAMA2-70B до 64% от плотной модели; на GPU A100 с 40 ГБ мы сокращаем их до 66%. Мы предлагаем новое понимание — вычислительную инвариантность в трансформерных сетях, которая делает возможным SliceGPT, и надеемся, что это вдохновит и откроет новые пути для снижения требований к памяти и вычислениям для предобученных моделей. Код доступен по адресу: https://github.com/microsoft/TransformerCompression.
English
Large language models have become the cornerstone of natural language
processing, but their use comes with substantial costs in terms of compute and
memory resources. Sparsification provides a solution to alleviate these
resource constraints, and recent works have shown that trained models can be
sparsified post-hoc. Existing sparsification techniques face challenges as they
need additional data structures and offer constrained speedup with current
hardware. In this paper we present SliceGPT, a new post-training sparsification
scheme which replaces each weight matrix with a smaller (dense) matrix,
reducing the embedding dimension of the network. Through extensive
experimentation, we show that SliceGPT can remove up to 25% of the model
parameters (including embeddings) for LLAMA2-70B, OPT 66B and Phi-2 models
while maintaining 99%, 99% and 90% zero-shot task performance of the dense
model respectively. Our sliced models run on fewer GPUs and run faster without
any additional code optimization: on 24GB consumer GPUs we reduce the total
compute for inference on LLAMA2-70B to 64% of that of the dense model; on 40GB
A100 GPUs we reduce it to 66%. We offer a new insight, computational invariance
in transformer networks, which enables SliceGPT and we hope it will inspire and
enable future avenues to reduce memory and computation demands for pre-trained
models. Code is available at:
https://github.com/microsoft/TransformerCompression