Recherche de site Web

Inférence LLM affinée rapide et bon marché avec LoRA Exchange (LoRAX)


Par Travis Addair et Geoffrey Angus

Si vous souhaitez en savoir plus sur la manière d'affiner et de proposer des LLM open source avec LoRAX de manière efficace et rentable, rejoignez notre Webinaire du 7 novembre .

Les développeurs se rendent compte que les modèles de langage spécialisés plus petits, tels que LLaMA-2-7b, surpassent les modèles à usage général plus grands, tels que GPT-4, lorsqu'ils sont affinés avec des données propriétaires pour effectuer une seule tâche. Cependant, vous n’avez probablement pas une seule tâche d’IA générative, vous en avez plusieurs, et servir chaque modèle affiné avec ses propres ressources GPU dédiées peut rapidement ajouter jusqu’à 10 000 $par mois en coûts de cloud.

Chez Predibase, nous avons résolu les problèmes de coûts avec une solution que nous appelons LoRA Exchange (LoRAX), un système de service LLM innovant conçu pour déployer de nombreux LLM affinés à l'aide d'un ensemble partagé de ressources GPU. Cette approche permet aux utilisateurs de regrouper plus de 100 modèles spécifiques à des tâches dans un seul GPU, réduisant ainsi considérablement les dépenses associées à la fourniture de modèles affinés par plusieurs ordres de grandeur par rapport aux déploiements dédiés.

Le coût caché de la prestation de LLM affinés

La méthode standard pour affiner les réseaux de neurones profonds implique la mise à jour de tous les paramètres du modèle pendant le processus de formation, ce qui nécessite d'importantes ressources de mémoire et de stockage GPU. Pour résoudre ce problème, des techniques telles que l'adaptation de faible rang (LoRA) ont été introduites, qui ajoutent un petit nombre de paramètres entraînés tout en gardant les paramètres du modèle d'origine figés. Cette approche permet d'obtenir des performances comparables à un réglage fin complet avec une consommation de ressources nettement inférieure.

En utilisant l'infrastructure de service LLM existante, le déploiement de plusieurs modèles optimisés avec LoRA nécessite toujours des ressources dédiées distinctes pour chaque modèle, ce qui entraîne des coûts opérationnels élevés. Cependant, étant donné que chaque modèle affiné est très petit (environ 1 % de la taille du modèle d'origine), une solution conçue pour servir des LLM affinés comme LoRAX peut consolider plusieurs de ces petits adaptateurs affinés en un seul déploiement en réutilisant paramètres de modèle de base communs, minimisant l’utilisation des ressources et la complexité opérationnelle.

Présentation de LoRA Exchange (LoRAX) : servez des centaines de LLM affinés pour le coût de service 1

LoRA Exchange (LoRAX) est une nouvelle approche de l'infrastructure de service LLM spécialement conçue pour servir simultanément de nombreux modèles affinés à l'aide d'un ensemble partagé de ressources GPU. LoRAX introduit trois composants clés qui rendent cela possible : le chargement dynamique des adaptateurs, la mise en cache du poids à plusieurs niveaux et le traitement par lots multi-adaptateurs continu.

Chargement dynamique de l'adaptateur

Contrairement à l'infrastructure de service conventionnelle qui précharge tous les poids de modèle lors de l'initialisation, LoRAX charge uniquement les poids LLM de base pré-entraînés pendant l'initialisation et charge dynamiquement chaque ensemble d'adaptateurs LoRA affinés juste à temps au moment de l'exécution.

Pour éviter de bloquer les requêtes en cours d'autres utilisateurs, le système LoRAX maintient une file d'attente de requêtes individuelle par adaptateur affiné. Pendant que les poids d'adaptateur du nouveau modèle affiné sont chargés dynamiquement, toutes ses requêtes associées attendront dans la file d'attente tandis que les autres requêtes se dérouleront comme d'habitude. En pratique, nous avons observé que la surcharge liée au chargement dynamique d'un nouvel adaptateur était de l'ordre de 200 ms, bien inférieure au temps de réponse typique de la génération de texte, ce qui permet de commencer à évaluer de manière interactive vos modèles affinés immédiatement après la fin de la formation. . Ce petit coût de chargement est encore amorti au fur et à mesure que des jetons ultérieurs sont générés et que des demandes adressées au même modèle sont soumises.

Mise en cache du poids à plusieurs niveaux

À mesure que des modèles plus précis sont chargés dans un seul déploiement LLM, la surcharge de mémoire augmente. Pour éviter de rencontrer une erreur de mémoire insuffisante (MOO), le système LoRAX implémente une stratégie de mise en cache de poids à plusieurs niveaux qui décharge les poids des adaptateurs du GPU → CPU → disque pour faire un compromis entre la latence d'échange d'adaptateur et la surcharge de mémoire.

La stratégie de mise en cache de LoRAX vise à trouver un équilibre entre conserver autant d'adaptateurs que possible sur le GPU, tout en laissant suffisamment d'espace pour gérer de longues séquences et de gros lots de requêtes. Lorsqu'un adaptateur doit être expulsé du GPU, nous le transférons vers le CPU (mémoire hôte) à l'aide d'une stratégie la moins récemment utilisée (LRU). Cette politique s'étend également aux couches inférieures du cache, de sorte que nous expulsons les poids du processeur et (si nécessaire) les supprimons du disque éphémère local à mesure que de nouveaux poids d'adaptateur sont chargés. Dans le pire des cas, les poids peuvent être retéléchargés à partir du stockage d'objets. .

Rassembler tout cela vous permet de regrouper plus de 100 modèles dans un seul déploiement sans avoir besoin de passer à des répliques supplémentaires, sauf volume de demandes élevé.

Traitement par lots multi-adaptateurs continu

Le traitement par lots continu est une technique cruciale pour la génération de texte à haut débit, permettant de regrouper plusieurs requêtes au cours de chaque étape de génération de jeton. Cependant, lors de l’utilisation des pondérations LoRA pour différents modèles affinés, un défi se pose dans la gestion efficace des demandes. Comment regrouper les requêtes de différents adaptateurs en même temps ? Que se passe-t-il s'il y a des centaines de demandes d'adaptateur simultanées, soit plus que ce que vous pourriez raisonnablement contenir dans la mémoire GPU à la fois ?

LoRAX résout ces problèmes en mettant en œuvre une politique de planification équitable qui optimise le débit global tout en garantissant une réponse rapide pour chaque adaptateur spécifique. Cela implique de marquer un nombre limité d'adaptateurs comme « actifs » à un moment donné, de regrouper en continu les demandes pour ces adaptateurs actifs et de passer périodiquement à l'ensemble d'adaptateurs suivant de manière alternée. Plusieurs adaptateurs peuvent être intégrés dans un seul lot en appliquant un schéma de masquage simple aux sorties de chaque couche d'adaptateur. Le système de planification permet de prioriser le débit ou la latence en fonction des intervalles de temps configurables pour la commutation d'adaptateur.

L’avenir est réglé

Les LLM plus petits et plus spécialisés constituent le moyen le plus rentable et le plus performant de mettre en production l’IA générative. Mais l’infrastructure de service LLM actuelle n’a pas été conçue pour servir une variété de modèles spécialisés. Réaliser cette vision d’un avenir plus affiné signifie repenser la pile de portions pour être d’abord affinée.

Démarrez gratuitement avec Predibase

Predibase est la première plate-forme conçue pour aider les développeurs à mettre en production des LLM open source sur une infrastructure gérée évolutive, sans serveur et rentable, le tout au sein de votre cloud. Construit sur le framework open source Ludwig développé chez Uber, Predibase facilite l'ajustement et la diffusion efficaces des LLM, même sur le matériel de base le moins cher et le plus disponible.

  • Voyez par vous-même en démarrant un essai gratuit de 14 jours de Predibase où vous pourrez affiner et interroger LLaMA-2-7b à l'aide de LoRAX.
  • Rejoignez notre prochain webinaire pour voir LoRAX en action et accédez à notre carnet de collaboration gratuit.

Articles connexes