Exécutez des LLM avec Ollama sur des GPU H100 pour une efficacité maximale
Introduction
Cet article est un guide pour exécuter des modèles de langage étendus à l'aide d'Ollama sur les GPU H100 proposés par DigitalOcean. Les Droplets GPU DigitalOcean fournissent une solution puissante et évolutive pour la formation IA/ML, l'inférence et d'autres tâches gourmandes en calcul telles que l'apprentissage en profondeur, le calcul haute performance (HPC), l'analyse de données et le rendu graphique. Ces GPU sont conçus pour gérer des charges de travail exigeantes, les GPU Droplets permettent aux entreprises de faire évoluer efficacement les opérations d'IA/ML à la demande, sans avoir besoin de gérer des coûts inutiles. Offrant simplicité, flexibilité et prix abordable, les Droplets GPU de DigitalOcean garantissent un déploiement rapide et une facilité d'utilisation, ce qui les rend idéales pour les développeurs et les data scientists.
Désormais, grâce à la prise en charge des GPU NVIDIA H100, les utilisateurs peuvent accélérer le développement IA/ML, tester, déployer et optimiser leurs applications de manière transparente, sans avoir besoin d'une configuration ou d'une maintenance approfondie généralement associée aux plates-formes traditionnelles. Ollama est un outil open source qui donne accès à une bibliothèque diversifiée de modèles pré-entraînés, offre une installation et une configuration sans effort sur différents systèmes d'exploitation et expose une API locale pour une intégration transparente dans les applications et les flux de travail. Les utilisateurs peuvent personnaliser et affiner les LLM, optimiser les performances grâce à l'accélération matérielle et bénéficier d'interfaces utilisateur interactives pour des interactions intuitives.
Conditions préalables
Accès aux GPU H100 : assurez-vous d'avoir accès aux GPU NVIDIA H100, soit via du matériel sur site, soit à l'aide de GPU Droplets de DigitalOcean.
Frameworks pris en charge : Familiarité avec les commandes Python et Linux.
-
CUDA et cuDNN installés : assurez-vous que les bibliothèques NVIDIA CUDA et cuDNN sont installées pour des performances GPU optimales.
Stockage et mémoire suffisants : disposez d'un stockage et d'une mémoire suffisants pour gérer de grands ensembles de données de modèle et des poids.
Compréhension de base des LLM : une compréhension fondamentale des grands modèles de langage et de leur structure pour les gérer et les optimiser efficacement.
Ces conditions préalables contribuent à garantir une expérience fluide et efficace lors de l’exécution de LLM avec Ollama sur des GPU H100.
Qu’est-ce qu’Ollama ?
Ollama offre un moyen de télécharger un grand modèle de langage à partir de sa vaste bibliothèque de modèles de langage qui comprend Llama3.1, Mistral, Code Llama, Gemma et bien plus encore. Ollama combine les poids du modèle, la configuration et les données dans un seul package, spécifié par un Modelfile. Ollama fournit une plate-forme flexible pour créer, importer et utiliser des modèles de langage personnalisés ou préexistants, idéale pour créer des chatbots, des résumés de texte et bien plus encore. Il met l'accent sur la confidentialité, s'intègre parfaitement à Windows, macOS et Linux et est gratuit. Ollama permet également aux utilisateurs de déployer facilement des modèles localement. De plus, la plateforme prend également en charge les interactions en temps réel via une API REST. Il est parfait pour les applications et outils Web basés sur LLM. C'est très similaire au fonctionnement de Docker. Avec Docker, nous pouvons récupérer différentes images à partir d'un hub central et les exécuter dans des conteneurs. De plus, Ollama nous permet de personnaliser les modèles en créant un Modelfile. Vous trouverez ci-dessous le code pour créer un fichier modèle :
From llama2
Set the temperature PARAMETER temperature 1Set the system Prompt
SYSTEM """ You are a helpful teaching assistant created by DO.
Answer questions asked based on Artificial Intelligence, Deep Learning. """
Ensuite, exécutez le modèle personnalisé,
Ollama create MLexp \-f ./Modelfile
Ollama run MLexp
La puissance des GPU NVIDIA H100
- Le H100 est le GPU le plus puissant de Nvidia, spécialement conçu pour les applications d’intelligence artificielle. Avec 80 milliards de transistors, soit six fois plus que l'A100, il peut traiter de grands ensembles de données beaucoup plus rapidement que les autres GPU du marché.
- Comme nous le savons tous, les applications d’IA sont gourmandes en données et coûteuses en calcul. Pour gérer cette énorme charge de travail, les H100 sont considérés comme le meilleur choix.
- Le H100 est doté de noyaux tenseurs de quatrième génération et d'un moteur de transformateur avec une précision FP8. Le H100 triple le nombre d'opérations en virgule flottante par seconde (FLOPS) par rapport aux modèles précédents, offrant 60 téraflops de calcul double précision (FP64), ce qui est crucial pour les calculs précis dans les tâches HPC. Il peut effectuer des opérations de multiplication matricielle en simple précision avec un débit d'un pétaflop en utilisant la précision TF32 sans nécessiter aucune modification du code existant, ce qui le rend convivial pour les développeurs.
- Le H100 introduit des instructions DPX qui améliorent considérablement les performances pour les tâches de programmation dynamique, atteignant des performances 7 fois supérieures à celles de l'A100 et 40 fois plus rapides que les processeurs pour des algorithmes spécifiques tels que l'alignement des séquences d'ADN.
- Les GPU H100 fournissent la puissance de calcul nécessaire, offrant 3 téraoctets par seconde (To/s) de bande passante mémoire par GPU. Cette haute performance permet une gestion efficace de grands ensembles de données.
- Le H100 prend en charge l'évolutivité grâce à des technologies telles que NVLink et NVSwitch™, qui permettent à plusieurs GPU de fonctionner ensemble efficacement.
Gouttelettes GPU
Les Droplets GPU DigitalOcean offrent une solution simple, flexible et rentable pour vos charges de travail IA/ML. Ces machines évolutives sont idéales pour exécuter de manière fiable des tâches de formation et d’inférence sur des modèles AI/ML. De plus, les Droplets GPU DigitalOcean sont bien adaptés aux tâches de calcul haute performance (HPC), ce qui en fait un choix polyvalent pour une gamme de cas d'utilisation, notamment la simulation, l'analyse de données et le calcul scientifique. Essayez les GPU Droplets maintenant en vous inscrivant à un compte DigitalOcean.
Pourquoi exécuter des LLM avec Ollama sur des GPU H100 ?
Pour exécuter Ollama efficacement, un GPU de NVIDIA est nécessaire pour exécuter les choses sans tracas. Comme pour le processeur, les utilisateurs peuvent s'attendre à une réponse lente.
- Le H100, grâce à son architecture avancée, offre une puissance de calcul exceptionnelle qui contribue à accélérer considérablement l'efficacité des LLM.
- Ollama permet aux utilisateurs de personnaliser et d'affiner les LLM pour répondre à leurs besoins spécifiques, permettant une ingénierie rapide, un apprentissage en quelques étapes et un réglage précis sur mesure pour aligner les modèles sur les résultats souhaités. L'association d'Ollama aux GPU H100 améliore l'inférence de modèle et les temps de formation pour les développeurs et les chercheurs.
- Les GPU H100 ont la capacité de gérer des modèles tels que le Falcon 180b, ce qui les rend idéaux pour créer et déployer des outils Gen AI tels que des chatbots ou des applications RAG.
- Les GPU H100 sont dotés d'optimisations matérielles telles que des cœurs tenseurs, qui accélèrent considérablement les tâches impliquant des LLM, en particulier lorsqu'il s'agit d'opérations matricielles lourdes.
Configuration d'Ollama avec les GPU H100
Ollama est très bien compatible avec Windows, macOS ou Linux. Ici, nous utilisons du code Linux car nos droplets GPU sont basés sur le système d'exploitation Linux.
Exécutez le code ci-dessous dans votre terminal pour vérifier la spécification du GPU.
nvidia-smi
Ensuite, nous essaierons d’abord d’installer Ollama en utilisant le même terminal.
curl \-fsSL https://ollama.com/install.sh | sh
Cela démarrera instantanément l’installation d’Ollama.
Une fois l'installation terminée, nous pouvons extraire n'importe quel LLM et commencer à travailler avec le modèle tel que Llama 3.1, Phi3, Mistral, Gemma 2 ou tout autre modèle.
Pour exécuter et discuter avec des modèles, nous exécuterons le code ci-dessous. N'hésitez pas à modifier le modèle selon vos besoins. Exécuter le modèle avec Ollama est assez simple et ici nous utilisons le puissant H100, le processus pour générer une réponse devient rapide et efficace.
ollama run example\_model
ollama run qwen2:7b
En cas d'erreur « Impossible de se connecter à l'application ollama, est-ce qu'elle est en cours d'exécution ? Veuillez utiliser le code ci-dessous pour vous connecter à Ollama
sudo systemctl enable ollama
sudo systemctl start ollama
Ollama prend en charge une large liste de modèles, voici quelques exemples de modèles qui peuvent être téléchargés et utilisés.
Model | Parameters | Size | Download |
---|---|---|---|
Llama 3.1 | 8B | 4.7GB | Ollama run llama3.1 |
Llama 3.1 | 70B | 40GB | Ollama run llama3.1:70b |
Llama 3.1 | 405B | 231GB | Ollama run llama3.1:405b |
Phi 3 Mini | 3.8B | 2.3GB | Ollama run phi3 |
Phi 3 Medium | 14B | 7.9GB | Ollama run phi3:medium |
Gemma 2 | 27B | 16GB | Ollama run gemma2:27b |
Mistral | 7B | 4.1GB | Ollama run mistral |
Code Llama | 7B | 3.8GB | Ollama run codellama |
Avec Ollama, les utilisateurs peuvent exécuter les LLM facilement sans même avoir besoin d'une connexion Internet, car le modèle et ses dépendances sont stockés localement.
>>> Écrivez un code python pour une série de Fibonacci.
def fibonacci(n):
"""
This function prints the first n numbers of the Fibonacci sequence.
Parameters:
@param n (int): The number of elements in the Fibonacci sequence to print.
Returns:
None
"""
# Initialize the first two numbers of the Fibonacci sequence.
a, b = 0, 1
# Iterate over the range and generate Fibonacci sequence.
for i in range(n):
print(a)
# Update the next number in the sequence
a, b = b, a + b
Test function with first 10 numbers of the Fibonacci sequence.
if __name__ == "__main__":
fibonacci(10)
Ce code python définit une simple fonction « fibonacci » qui prend un argument entier et imprime les n premiers nombres de la séquence de Fibonacci. La séquence de Fibonacci commence par 0 et 1, et chaque nombre suivant est la somme des deux précédents.
Le bloc if __name__ == "__main__":
à la fin teste cette fonction en l'appelant avec une valeur de paramètre de 10, qui imprime les 10 premiers nombres de la séquence de Fibonacci.
Conclusion
Ollama est un nouvel outil Gen-AI permettant de travailler localement avec de grands modèles de langage, offrant une confidentialité, une personnalisation et une accessibilité hors ligne améliorées. Ollama a simplifié le travail avec LLM et a permis d'explorer et d'expérimenter des LLM open source directement sur leurs machines. Ollama promeut l'innovation et une compréhension plus approfondie de l'IA. Pour accéder à un GPU puissant comme le H100, pensez à utiliser les Droplets GPU de DigitalOcean. Les droplets GPU de DigitalOcean sont actuellement en disponibilité anticipée.
Pour démarrer avec Python, nous vous recommandons de consulter ce guide du débutant pour configurer votre système et vous préparer à l'exécution de didacticiels d'introduction.
Références
- Officiel d'Ollama
- Gouttelettes GPU