HyperAIHyperAI

Command Palette

Search for a command to run...

il y a 3 mois
NVIDIA
LLM
vLLM

NVIDIA optimise l'inférence distribuée avec sa nouvelle bibliothèque

NVIDIA a dévoilé la bibliothèque Inference Transfer Library (NIXL), une solution open source conçue pour optimiser les transferts de données dans les environnements d'inférence d'intelligence artificielle distribuée. Alors que les modèles de langage deviennent plus complexes, gérant des contextes longs et des interactions multilingues, le chargement et la gestion des caches KV (Key-Value) deviennent critiques. Les résultats intermédiaires doivent être stockés sur des disques SSD locaux ou des systèmes de stockage distants plutôt que recalculés à chaque tour, rendant le stockage indispensable. De plus, dans les architectures à parallélisme d'experts, des milliers de cartes graphiques doivent échanger des activations avec une latence ultra-faible, nécessitant une coordination précise. Les charges de travail d'inférence se distinguent par leur dynamique et leur résilience. Les services fonctionnent vingt-quatre heures sur vingt-quatre et sept jours sur sept, avec une fluctuation constante du nombre de processeurs graphiques (GPU) en fonction de la demande. La répartition des ressources entre les étapes de préfabrication et de décodage change fréquemment, et le nombre d'experts peut varier à l'infini. En cas de défaillance matérielle, le système doit maintenir une opération minimale en attendant la récupération. La diversité du matériel, allant des mémoires CPU aux stocks NVMe en passant par les objets cloud, complique encore davantage la gestion des transferts. NIXL répond à ce défi en offrant une abstraction unifiée permettant de déplacer efficacement les données à travers ces multiples couches de mémoire et de stockage. Conçue comme une bibliothèque indépendante, NIXL fournit une API unique et conviviale pour adresser divers défis de transfert de données tout en maintenant des performances maximales. Elle prend en charge plusieurs technologies, notamment le RDMA, les réseaux initiés par le GPU, le stockage GPU-Direct, les disques NVMe et les options de stockage cloud avancées comme S3 et Azure Blob Storage. Cette agnosticité vis-à-vis des fournisseurs permet à NIXL de fonctionner sur divers environnements, incluant AWS avec les accélérateurs Inferentia et Trainium, ainsi que les réseaux EFA. Elle est déjà intégrée dans des frameworks majeurs tels que NVIDIA TensorRT LLM, vLLM et Anyscale Ray. Le fonctionnement de NIXL repose sur un processus de conducteur qui détermine le moment des transferts et des agents NIXL qui les exécutent. Les données sont décrites à l'aide de descripteurs pointant vers des emplacements spécifiques en mémoire ou en stockage. Le conducteur gère l'échange de métadonnées entre les agents pour identifier quels nœuds doivent communiquer, permettant une mise à l'échelle dynamique du réseau d'agents. Ce mécanisme garantit que les applications peuvent s'adapter aux changements de charge ou de disponibilité des nœuds sans interruption de service. L'utilisation de NIXL suit un flux logique : création des agents, enregistrement de la mémoire, échange de métadonnées, puis demande et lancement des transferts. Les opérations de lecture et d'écriture sont asynchrones et non bloquantes, ce qui permet de chevaucher les communications avec les calculs pour maximiser l'efficacité. La bibliothèque dispose également d'outils de benchmarking puissants. NIXLBench permet des tests de performance génériques pour mesurer la bande passante et la latence, tandis que KVBench offre une analyse spécifique aux ingénieurs de modèles de langage en calculant automatiquement les besoins en I/O des caches KV pour générer des commandes de test prêtes à l'emploi. Disponible sur le dépôt GitHub d'Open Source, NIXL est écrite en C++ pour garantir haute performance et efficacité, avec des bindings pour Python, C et Rust. Bien que supportée actuellement sur des environnements Linux comme Ubuntu et RHEL, la bibliothèque est en constante évolution avec une version 1.0.0 prévue prochainement. Cette initiative marque une étape importante vers la standardisation des transferts de données dans l'inférence d'IA distribuée, facilitant le déploiement de systèmes plus robustes et plus rapides.

Liens associés

NVIDIA optimise l'inférence distribuée avec sa nouvelle bibliothèque | Articles tendance | HyperAI