NanoFlow: Hacia un Rendimiento Óptimo en el Servicio de Modelos de Lenguaje 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
Resumen
El creciente uso de Modelos de Lenguaje Grandes (LLMs, por sus siglas en inglés) ha resultado en una creciente demanda de sistemas de servidores a escala planetaria, donde decenas de miles de GPUs sirven continuamente a cientos de millones de usuarios. En consecuencia, el rendimiento (bajo restricciones de latencia razonables) ha surgido como una métrica clave que determina el rendimiento de los sistemas de servidores. Para aumentar el rendimiento, se han explorado varios métodos de paralelismo entre dispositivos (por ejemplo, datos, tensores, canalización). Sin embargo, los métodos existentes no consideran la superposición de la utilización de diferentes recursos dentro de un solo dispositivo, lo que conduce a una subutilización y un rendimiento subóptimo.
Proponemos NanoFlow, un nuevo marco de servidores que explota el paralelismo intra-dispositivo, que superpone el uso de recursos, incluidos cálculo, memoria y red, dentro de un solo dispositivo a través de la programación conjunta de operaciones. Para explotar el paralelismo intra-dispositivo, NanoFlow introduce dos innovaciones clave: primero, NanoFlow divide las solicitudes en nano-lotes en la granularidad de operaciones, lo que rompe la dependencia de operaciones secuenciales en la inferencia de LLM y permite la superposición; luego, para beneficiarse de la superposición, NanoFlow utiliza una canalización a nivel de operación con programación de unidades de ejecución, que divide las unidades funcionales del dispositivo y ejecuta simultáneamente diferentes operaciones en cada unidad. NanoFlow automatiza la configuración de la canalización mediante un algoritmo de búsqueda de parámetros, lo que permite portar fácilmente NanoFlow a diferentes modelos. Implementamos NanoFlow en GPUs de NVIDIA y evaluamos el rendimiento de servidores de extremo a extremo en varios modelos populares como LLaMA-2-70B, Mixtral 8x7B, LLaMA-3-8B, etc. Con cargas de trabajo prácticas, NanoFlow proporciona un aumento de rendimiento de 1.91 veces en comparación con los sistemas de servidores de última generación, logrando entre el 59% y el 72% del rendimiento óptimo en los 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