Introduction
L'exécution de modèles de grande taille sur des ordinateurs personnels peut être limitée par la capacité de la mémoire vive. Cependant, grâce à Hypura, un planificateur d'inférence pour les modèles de langage, il est désormais possible d'exécuter des modèles de plus de 1 To de paramètres sur un Mac équipé de 32 Go de mémoire.
Contexte Technique
Hypura est conçu pour fonctionner sur les appareils Apple Silicon et utilise une approche de stockage hiérarchisé pour gérer les tenseurs du modèle. Il place les tenseurs du modèle sur le GPU, la RAM et le stockage NVMe en fonction des modèles d'accès, des coûts de bande passante et des capacités matérielles. Cela permet d'exécuter des modèles qui dépassent la capacité de mémoire physique sans provoquer de plantage du système.
Le fonctionnement de Hypura repose sur la lecture du fichier GGUF, le profilage du matériel et la résolution d'une optimisation de placement qui attribue chaque tenseur à un niveau : GPU (Metal) pour les couches d'attention, les normes et les embeddings, la RAM pour les couches de débordement qui ne tiennent pas dans l'ensemble de travail GPU, et le stockage NVMe pour les couches restantes chargées à la demande.
Analyse et Implications
Les résultats montrent que Hypura permet d'exécuter des modèles qui dépassent la capacité de mémoire physique sans provoquer de plantage du système. Les modèles qui tiennent dans la mémoire s'exécutent à la vitesse complète du GPU Metal sans surcoût. Les tests ont montré que Hypura peut exécuter un modèle Mixtral 8x7B de 31 Go sur un Mac Mini de 32 Go à 2,2 jetons par seconde, tandis qu'un modèle Llama 70B de 40 Go peut être exécuté à 0,3 jeton par seconde.
Cela a des implications importantes pour l'utilisation de modèles de langage sur des ordinateurs personnels, car cela permet d'exécuter des modèles de grande taille sans nécessiter un équipement spécialisé. Cela ouvre également des possibilités pour l'utilisation de ces modèles dans des applications où la mémoire est limitée.
Perspective
Il est important de noter que Hypura est encore un projet en développement et qu'il peut y avoir des limites et des défis à relever pour son utilisation dans des scénarios réels. Cependant, les résultats prometteurs obtenus jusqu'à présent suggèrent que cette approche pourrait être une solution viable pour exécuter des modèles de grande taille sur des ordinateurs personnels. Il faudra surveiller les prochaines étapes de développement et les améliorations apportées à Hypura pour voir comment il évoluera et comment il sera utilisé dans la pratique.