ChatPaper.aiChatPaper

NanoFlow: Rumo ao Rendimento Ótimo de Serviço de Modelos de Linguagem Grandes

NanoFlow: Towards Optimal Large Language Model Serving Throughput

August 22, 2024
Autores: Kan Zhu, Yilong Zhao, Liangyu Zhao, Gefei Zuo, Yile Gu, Dedong Xie, Yufei Gao, Qinyu Xu, Tian Tang, Zihao Ye, Keisuke Kamahori, Chien-Yu Lin, Stephanie Wang, Arvind Krishnamurthy, Baris Kasikci
cs.AI

Resumo

O aumento do uso de Modelos de Linguagem Grandes (LLMs) resultou em uma demanda crescente por sistemas de servidores em escala planetária, nos quais dezenas de milhares de GPUs servem continuamente centenas de milhões de usuários. Consequentemente, a taxa de transferência (sob restrições de latência razoáveis) surgiu como uma métrica chave que determina o desempenho dos sistemas de servidores. Para aumentar a taxa de transferência, vários métodos de paralelismo entre dispositivos (por exemplo, dados, tensor, pipeline) têm sido explorados. No entanto, os métodos existentes não consideram a sobreposição da utilização de diferentes recursos dentro de um único dispositivo, levando a uma subutilização e desempenho subótimo. Propomos o NanoFlow, um novo framework de servidores que explora o paralelismo intra-dispositivo, que sobrepoem a utilização de recursos, incluindo cálculo, memória e rede, dentro de um único dispositivo por meio de co-agendamento de operações. Para explorar o paralelismo intra-dispositivo, o NanoFlow introduz duas inovações-chave: Primeiro, o NanoFlow divide solicitações em nano-lotes na granularidade de operações, o que quebra a dependência de operações sequenciais na inferência de LLM e permite a sobreposição; em seguida, para obter benefícios da sobreposição, o NanoFlow utiliza um pipeline em nível de operação com agendamento de unidades de execução, que particiona as unidades funcionais do dispositivo e executa simultaneamente diferentes operações em cada unidade. O NanoFlow automatiza a configuração do pipeline usando um algoritmo de busca de parâmetros, o que permite a fácil portabilidade do NanoFlow para diferentes modelos. Implementamos o NanoFlow em GPUs da NVIDIA e avaliamos a taxa de transferência de ponta a ponta em vários modelos populares, como LLaMA-2-70B, Mixtral 8x7B, LLaMA-3-8B, etc. Com cargas de trabalho práticas, o NanoFlow fornece um aumento de 1,91x na taxa de transferência em comparação com os sistemas de servidores de última geração, alcançando de 59% a 72% da taxa de transferência ideal em modelos portados.
English
The increasing usage of Large Language Models (LLMs) has resulted in a surging demand for planet-scale serving systems, where tens of thousands of GPUs continuously serve hundreds of millions of users. Consequently, throughput (under reasonable latency constraints) has emerged as a key metric that determines serving systems' performance. To boost throughput, various methods of inter-device parallelism (e.g., data, tensor, pipeline) have been explored. However, existing methods do not consider overlapping the utilization of different resources within a single device, leading to underutilization and sub-optimal performance. We propose NanoFlow, a novel serving framework that exploits intra-device parallelism, which overlaps the usage of resources including compute, memory, and network within a single device through operation co-scheduling. To exploit intra-device parallelism, NanoFlow introduces two key innovations: First, NanoFlow splits requests into nano-batches at the granularity of operations, which breaks the dependency of sequential operations in LLM inference and enables overlapping; then, to get benefit from overlapping, NanoFlow uses an operation-level pipeline with execution unit scheduling, which partitions the device's functional units and simultaneously executes different operations in each unit. NanoFlow automates the pipeline setup using a parameter search algorithm, which enables easily porting NanoFlow to different models. We implement NanoFlow on NVIDIA GPUs and evaluate end-to-end serving throughput on several popular models such as LLaMA-2-70B, Mixtral 8x7B, LLaMA-3-8B, etc.. With practical workloads, NanoFlow provides 1.91x throughput boost compared to state-of-the-art serving systems achieving 59% to 72% of optimal throughput across ported models.

Summary

AI-Generated Summary

PDF182November 16, 2024