LLM en un clin d'œil : Inférence efficace des grands modèles de langage avec une mémoire limitée
LLM in a flash: Efficient Large Language Model Inference with Limited Memory
December 12, 2023
Auteurs: Keivan Alizadeh, Iman Mirzadeh, Dmitry Belenko, Karen Khatamifard, Minsik Cho, Carlo C Del Mundo, Mohammad Rastegari, Mehrdad Farajtabar
cs.AI
Résumé
Les grands modèles de langage (LLMs) sont au cœur du traitement moderne du langage naturel, offrant des performances exceptionnelles dans diverses tâches. Cependant, leurs exigences intensives en calcul et en mémoire posent des défis, en particulier pour les appareils dotés d'une capacité DRAM limitée. Cet article aborde le défi d'exécuter efficacement des LLMs qui dépassent la capacité DRAM disponible en stockant les paramètres du modèle sur une mémoire flash, mais en les transférant à la demande vers la DRAM. Notre méthode consiste à construire un modèle de coût d'inférence qui s'harmonise avec le comportement de la mémoire flash, nous guidant pour optimiser deux aspects critiques : réduire le volume de données transférées depuis la flash et lire les données en blocs plus grands et plus contigus. Dans ce cadre informé par la mémoire flash, nous introduisons deux techniques principales. Premièrement, le "fenêtrage" réduit stratégiquement le transfert de données en réutilisant les neurones précédemment activés, et deuxièmement, le "regroupement ligne-colonne", adapté aux forces d'accès séquentiel des données de la mémoire flash, augmente la taille des blocs de données lus depuis la mémoire flash. Ces méthodes permettent collectivement d'exécuter des modèles jusqu'à deux fois la taille de la DRAM disponible, avec une augmentation de 4 à 5 fois et de 20 à 25 fois de la vitesse d'inférence par rapport aux approches de chargement naïves sur CPU et GPU, respectivement. Notre intégration de la prise en compte de la parcimonie, du chargement adaptatif au contexte et d'une conception orientée matériel ouvre la voie à une inférence efficace des LLMs sur des appareils à mémoire limitée.
English
Large language models (LLMs) are central to modern natural language
processing, delivering exceptional performance in various tasks. However, their
intensive computational and memory requirements present challenges, especially
for devices with limited DRAM capacity. This paper tackles the challenge of
efficiently running LLMs that exceed the available DRAM capacity by storing the
model parameters on flash memory but bringing them on demand to DRAM. Our
method involves constructing an inference cost model that harmonizes with the
flash memory behavior, guiding us to optimize in two critical areas: reducing
the volume of data transferred from flash and reading data in larger, more
contiguous chunks. Within this flash memory-informed framework, we introduce
two principal techniques. First, "windowing'" strategically reduces data
transfer by reusing previously activated neurons, and second, "row-column
bundling", tailored to the sequential data access strengths of flash memory,
increases the size of data chunks read from flash memory. These methods
collectively enable running models up to twice the size of the available DRAM,
with a 4-5x and 20-25x increase in inference speed compared to naive loading
approaches in CPU and GPU, respectively. Our integration of sparsity awareness,
context-adaptive loading, and a hardware-oriented design paves the way for
effective inference of LLMs on devices with limited memory.