vLLM PagedAttention : une révolution du débit d’inférence des LLM
(aleksagordic.com)Pour les détails, voir le lien URL. Voici un résumé.
Le principal défi du serving des LLM (grands modèles de langage) consiste à gérer efficacement la mémoire du cache KV (Key-Value Cache). Les systèmes existants étaient limités par des problèmes de fragmentation de la mémoire, ce qui réduisait l’utilisation du GPU et bridait le débit.
vLLM résout ce problème grâce à l’algorithme PagedAttention, inspiré de la mémoire virtuelle et de la pagination (Paging) des systèmes d’exploitation. PagedAttention gère le cache KV en le divisant en « blocs » physiquement non contigus, ce qui réduit drastiquement le gaspillage mémoire et permet une allocation plus souple.
Sur cette base, vLLM met en œuvre les technologies clés suivantes pour maximiser les performances d’inférence.
-
Batching continu (Continuous Batching) : les requêtes sont ajoutées au batch dès leur arrivée, et les séquences terminées en sont retirées dynamiquement. Cette approche minimise les temps d’inactivité du GPU et peut améliorer le débit jusqu’à 24 fois par rapport au batching statique traditionnel.
-
Prise en charge de fonctions d’inférence avancées : vLLM exploite la flexibilité de PagedAttention pour prendre en charge efficacement diverses fonctions avancées, notamment :
- Préremplissage par chunks (Chunked Prefill) : l’étape de prefill des prompts longs est divisée en plusieurs chunks afin d’éviter qu’une seule requête monopolise le système et de réduire la latence des autres requêtes.
- Mise en cache des préfixes (Prefix Caching) : le cache KV des préfixes de prompt partagés entre plusieurs requêtes est réutilisé sans recalcul, ce qui élimine les opérations redondantes.
- Décodage guidé et spéculatif (Guided and Speculative Decoding) : prise en charge de techniques permettant soit de contraindre la sortie à un format donné (par exemple JSON), soit d’accélérer la génération à l’aide d’un modèle brouillon plus petit.
- Séparation prefill/décodage (Disaggregated Prefill/Decoding) : l’étape de prefill, intensive en calcul, et l’étape de décodage, intensive en bande passante mémoire, sont traitées sur des instances distinctes afin d’optimiser l’utilisation des ressources.
En conclusion, vLLM corrige les inefficacités fondamentales de la gestion du cache KV grâce à PagedAttention et, en s’appuyant sur des techniques d’optimisation comme le batching continu, augmente nettement le débit et les performances des systèmes d’inférence LLM.
1 commentaires
vAttention a été proposé pour pallier les limites de gestion mémoire de PagedAttention.
Vous pouvez consulter l’article ici : https://arxiv.org/pdf/2405.04437