ChatPaper.aiChatPaper

S-LoRA: Gestione di Migliaia di Adattatori LoRA Concorrenti

S-LoRA: Serving Thousands of Concurrent LoRA Adapters

November 6, 2023
Autori: Ying Sheng, Shiyi Cao, Dacheng Li, Coleman Hooper, Nicholas Lee, Shuo Yang, Christopher Chou, Banghua Zhu, Lianmin Zheng, Kurt Keutzer, Joseph E. Gonzalez, Ion Stoica
cs.AI

Abstract

Il paradigma "pretrain-then-finetune" è comunemente adottato nell'implementazione di modelli linguistici di grandi dimensioni. La Low-Rank Adaptation (LoRA), un metodo di fine-tuning efficiente in termini di parametri, è spesso utilizzata per adattare un modello di base a una moltitudine di task, risultando in una vasta raccolta di adattatori LoRA derivati da un unico modello di base. Osserviamo che questo paradigma offre significative opportunità per l'inferenza in batch durante il servizio. Per sfruttare queste opportunità, presentiamo S-LoRA, un sistema progettato per il servizio scalabile di molti adattatori LoRA. S-LoRA memorizza tutti gli adattatori nella memoria principale e trasferisce gli adattatori utilizzati dalle query attualmente in esecuzione nella memoria GPU. Per utilizzare in modo efficiente la memoria GPU e ridurre la frammentazione, S-LoRA propone Unified Paging. Unified Paging utilizza un pool di memoria unificato per gestire i pesi dinamici degli adattatori con ranghi diversi e i tensori della cache KV con lunghezze di sequenza variabili. Inoltre, S-LoRA impiega una nuova strategia di parallelismo tensoriale e kernel CUDA personalizzati altamente ottimizzati per il batch eterogeneo del calcolo LoRA. Nel complesso, queste funzionalità consentono a S-LoRA di servire migliaia di adattatori LoRA su una singola GPU o su più GPU con un sovraccarico minimo. Rispetto a librerie all'avanguardia come HuggingFace PEFT e vLLM (con supporto rudimentale del servizio LoRA), S-LoRA può migliorare il throughput fino a 4 volte e aumentare il numero di adattatori serviti di diversi ordini di grandezza. Di conseguenza, S-LoRA abilita il servizio scalabile di molti modelli fine-tuned specifici per task e offre il potenziale per servizi di fine-tuning personalizzati su larga scala.
English
The "pretrain-then-finetune" paradigm is commonly adopted in the deployment of large language models. Low-Rank Adaptation (LoRA), a parameter-efficient fine-tuning method, is often employed to adapt a base model to a multitude of tasks, resulting in a substantial collection of LoRA adapters derived from one base model. We observe that this paradigm presents significant opportunities for batched inference during serving. To capitalize on these opportunities, we present S-LoRA, a system designed for the scalable serving of many LoRA adapters. S-LoRA stores all adapters in the main memory and fetches the adapters used by the currently running queries to the GPU memory. To efficiently use the GPU memory and reduce fragmentation, S-LoRA proposes Unified Paging. Unified Paging uses a unified memory pool to manage dynamic adapter weights with different ranks and KV cache tensors with varying sequence lengths. Additionally, S-LoRA employs a novel tensor parallelism strategy and highly optimized custom CUDA kernels for heterogeneous batching of LoRA computation. Collectively, these features enable S-LoRA to serve thousands of LoRA adapters on a single GPU or across multiple GPUs with a small overhead. Compared to state-of-the-art libraries such as HuggingFace PEFT and vLLM (with naive support of LoRA serving), S-LoRA can improve the throughput by up to 4 times and increase the number of served adapters by several orders of magnitude. As a result, S-LoRA enables scalable serving of many task-specific fine-tuned models and offers the potential for large-scale customized fine-tuning services.
PDF312February 8, 2026