Sélectionner la langue

Splitwise : Inférence efficace des LLM génératifs par partitionnement de phases

Splitwise optimise l'inférence des LLM en répartissant le calcul des prompts et la génération de tokens sur des machines distinctes, pour un débit accru et une réduction des coûts/consommation.
computingpowercoin.org | PDF Size: 2.6 MB
Note: 4.5/5
Votre note
Vous avez déjà noté ce document
Couverture du document PDF - Splitwise : Inférence efficace des LLM génératifs par partitionnement de phases

Table des matières

1. Introduction

Les grands modèles de langage (LLM) génératifs ont révolutionné le traitement du langage naturel, mais leurs exigences computationnelles posent des défis significatifs pour une inférence efficace. L'approche Splitwise relève ces défis en reconnaissant et en exploitant les caractéristiques computationnelles distinctes des deux phases principales de l'inférence des LLM.

2. Contexte et motivation

2.1 Phases d'inférence des LLM

L'inférence des LLM se compose de deux phases distinctes :

  • Phase de calcul du prompt : Traitement parallèle intensif en calcul de tous les tokens d'entrée
  • Phase de génération des tokens : Génération séquentielle intensive en mémoire des tokens de sortie

2.2 Limitations matérielles

Comparaison des spécifications GPU

A100 vs H100 : augmentation de calcul de 3,43× mais seulement 1,64× d'amélioration de la bande passante mémoire

Les GPU modernes présentent une évolution disproportionnée entre la puissance de calcul et les capacités mémoire, créant des inefficacités dans l'inférence des LLM.

3. Conception de Splitwise

3.1 Aperçu de l'architecture

Splitwise déploie le calcul du prompt et la génération de tokens sur des machines distinctes optimisées pour les exigences de chaque phase.

3.2 Gestion des ressources par phase

GPU haute performance (H100) pour la phase de prompt, GPU économiques pour la phase de génération de tokens.

4. Implémentation technique

4.1 Fondement mathématique

Le mécanisme d'attention dans les transformers peut être représenté comme :

$Attention(Q, K, V) = softmax(\\frac{QK^T}{\\sqrt{d_k}})V$

Où $Q$, $K$, $V$ représentent respectivement les requêtes, les clés et les valeurs, et $d_k$ est la dimension des clés.

4.2 Implémentation du code

class SplitwiseScheduler:
    def schedule_request(self, request):
        if request.phase == "prompt":
            return self.assign_to_prompt_machine(request)
        else:
            return self.assign_to_token_machine(request)
    
    def transfer_state(self, prompt_output, token_machine):
        # Transfert d'état efficace utilisant RDMA
        return token_machine.load_state(prompt_output)

5. Résultats expérimentaux

Splitwise permet d'atteindre :

  • Un débit 1,4× supérieur à un coût réduit de 20 %
  • 2,35× plus de débit à budget de puissance et de coût équivalents
  • Une meilleure cohérence de la latence et une utilisation optimisée des ressources

6. Analyse et discussion

Splitwise représente une avancée significative dans l'optimisation de l'inférence des LLM en s'attaquant à l'inadéquation fondamentale entre les exigences computationnelles et les capacités matérielles. L'approche s'inspire des principes des systèmes distribués similaires à ceux utilisés dans MapReduce et autres cadres de traitement parallèle. En reconnaissant que la phase de génération de tokens est limitée par la mémoire plutôt que par le calcul, Splitwise permet une allocation des ressources plus efficace, alignée sur les exigences computationnelles réelles de chaque phase d'inférence.

Ce travail s'appuie sur des principes établis en architecture informatique, particulièrement le problème du « mur de la mémoire » identifié par Wulf et McKee en 1995, qui soulignait l'écart croissant entre la vitesse des processeurs et les performances mémoire. Le mécanisme d'attention de l'architecture transformer, introduit pour la première fois dans l'article de Vaswani et al. en 2017 « Attention is All You Need », crée intrinsèquement ces deux phases computationnelles distinctes, mais les efforts d'optimisation précédents se concentraient principalement sur la compression et la quantification des modèles plutôt que sur la séparation architecturale.

Comparée au déploiement monolithique traditionnel, l'approche de partitionnement de phases de Splitwise démontre comment le matériel spécialisé peut être utilisé plus efficacement, de manière similaire à l'optimisation des pods TPU de Google pour des charges de travail ML spécifiques. L'amélioration du débit de 1,4× et la réduction des coûts de 20 % sont particulièrement significatives compte tenu de l'échelle massive des déploiements modernes de LLM, où même de petites améliorations en pourcentage se traduisent par des économies opérationnelles substantielles.

La méthodologie s'aligne sur les tendances récentes du calcul hétérogène, où les systèmes combinent différents types de processeurs optimisés pour des tâches spécifiques. Alors que les LLM continuent de croître en taille et en complexité, des approches comme Splitwise deviendront de plus en plus importantes pour un déploiement d'IA durable, répondant aux préoccupations économiques et environnementales associées à l'inférence de modèles à grande échelle.

7. Applications futures

Les orientations futures incluent :

  • Optimisation de l'inférence de modèles multimodaux
  • Déploiements en informatique en périphérie (edge computing)
  • Allocation adaptative des ressources en temps réel
  • Intégration avec les architectures matérielles émergentes

8. Références

  1. Vaswani, A., et al. « Attention is All You Need. » NeurIPS 2017.
  2. Brown, T., et al. « Language Models are Few-Shot Learners. » NeurIPS 2020.
  3. Wulf, W. A., & McKee, S. A. « Hitting the memory wall: implications of the obvious. » ACM SIGARCH Computer Architecture News, 1995.
  4. NVIDIA Corporation. « NVIDIA H100 Tensor Core GPU Architecture. » 2022.
  5. Dean, J., & Ghemawat, S. « MapReduce: Simplified data processing on large clusters. » OSDI 2004.