NanoFlow : Vers un débit optimal de service de modèles linguistiques de grande taille
NanoFlow: Towards Optimal Large Language Model Serving Throughput
August 22, 2024
Auteurs: 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
Résumé
L'utilisation croissante des Grands Modèles de Langage (GML) a entraîné une demande croissante de systèmes de traitement à l'échelle planétaire, où des dizaines de milliers de GPU servent continuellement des centaines de millions d'utilisateurs. Par conséquent, le débit (sous contraintes de latence raisonnables) est devenu une mesure clé déterminant les performances des systèmes de traitement. Pour augmenter le débit, différentes méthodes de parallélisme inter-appareils (par exemple, données, tenseurs, pipeline) ont été explorées. Cependant, les méthodes existantes ne tiennent pas compte du chevauchement de l'utilisation de différentes ressources au sein d'un seul appareil, ce qui entraîne une sous-utilisation et des performances sous-optimales.
Nous proposons NanoFlow, un nouveau cadre de traitement qui exploite le parallélisme intra-appareil, qui chevauche l'utilisation de ressources telles que le calcul, la mémoire et le réseau au sein d'un seul appareil grâce à la programmation conjointe des opérations. Pour exploiter le parallélisme intra-appareil, NanoFlow introduit deux innovations clés : Premièrement, NanoFlow divise les requêtes en nano-lots à la granularité des opérations, ce qui rompt la dépendance des opérations séquentielles dans l'inférence des GML et permet le chevauchement ; ensuite, pour tirer parti du chevauchement, NanoFlow utilise un pipeline au niveau des opérations avec une planification des unités d'exécution, qui partitionne les unités fonctionnelles de l'appareil et exécute simultanément différentes opérations dans chaque unité. NanoFlow automatise la configuration du pipeline en utilisant un algorithme de recherche de paramètres, ce qui permet de porter facilement NanoFlow sur différents modèles. Nous implémentons NanoFlow sur des GPU NVIDIA et évaluons le débit de traitement de bout en bout sur plusieurs modèles populaires tels que LLaMA-2-70B, Mixtral 8x7B, LLaMA-3-8B, etc. Avec des charges de travail pratiques, NanoFlow offre un gain de débit de 1,91 par rapport aux systèmes de traitement de pointe, atteignant de 59 % à 72 % du débit optimal sur les modèles portés.
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