Introduction

L'ère de l'inférence est arrivée, avec des réseaux neuronaux de plusieurs milliards de paramètres exécutés sur des accélérateurs spécialisés pour générer du contenu, écrire des logiciels et plier des protéines à grande échelle. Les charges de travail d'inférence sont plus variables et moins prévisibles que les charges de travail d'entraînement, ce qui les rend adaptées au calcul serveurless.

Contexte Technique

Le calcul serveurless nécessite la possibilité de créer de nouvelles répliques rapidement, ce qui peut prendre des dizaines de minutes avec les méthodes traditionnelles. Pour résoudre ce problème, nous avons mis en place quatre ingrédients clés : les tampons cloud, le système de fichiers personnalisé, la fonction de sauvegarde et de restauration, ainsi que la fonction de sauvegarde et de restauration CUDA. Ces éléments permettent de réduire le temps de démarrage à froid de l'inférence de 40 fois.

Les tampons cloud maintiennent un petit tampon de GPU sains et inactifs pour prendre en charge les nouvelles charges. Le système de fichiers personnalisé sert les images de conteneur de manière paresseuse à partir d'un cache cloud natif multi-niveau. La fonction de sauvegarde et de restauration permet de sauvegarder et de restaurer rapidement les processus en mémoire, tandis que la fonction de sauvegarde et de restauration CUDA permet de sauvegarder et de restaurer les contextes CUDA en mémoire.

Analyse et Implications

Ces optimisations permettent de réduire le temps de démarrage à froid de l'inférence de plusieurs dizaines de minutes à quelques secondes ou dizaines de secondes. Cela signifie que les applications d'inférence peuvent être exécutées de manière « véritablement serveurless », avec une allocation de ressources provisionnées étroitement adaptée à la demande du système.

Les implications de ces optimisations sont importantes, car elles permettent d'améliorer l'utilisation des GPU et de réduire les coûts. En effet, les applications d'inférence ont des demandes de capacité très variables, ce qui signifie que les GPU peuvent rester inactifs pendant de longues périodes. En réduisant le temps de démarrage à froid, nous pouvons augmenter l'utilisation des GPU et réduire les coûts.

Perspective

Les prochaines étapes consisteront à continuer à améliorer les performances et à réduire les coûts. Nous devrons également surveiller les limites de ces optimisations et les prochaines étapes pour améliorer l'efficacité des applications d'inférence. Cela pourrait inclure l'intégration de nouvelles technologies, telles que l'apprentissage automatique et l'IA, pour améliorer encore les performances et la scalabilité des applications d'inférence.