Llama.cpp : Portage C/C++ du modèle LLaMA de Facebook
Published on
Bienvenue dans le fascinant monde de Llama CPP ! Si vous avez envie de vous salir les mains avec des modèles de langage, vous êtes au bon endroit. Llama CPP est un outil qui fait sensation dans le domaine de l'ingénierie des requêtes, et ce n'est pas sans raison.
Dans ce guide complet, nous explorerons tout ce que vous devez savoir sur Llama CPP. De son installation à l'exécution de votre premier modèle, nous avons tout prévu. Alors, plongeons et débloquons tout le potentiel de cet outil puissant.
Vous voulez connaître les dernières actualités de LLM ? Consultez le dernier classement LLM !
Qu'est-ce que Llama CPP?
Llama CPP est un projet qui vous permet de travailler avec des modèles de langage de manière transparente. C'est un outil qui comble le fossé entre les algorithmes complexes et leur mise en œuvre pratique. Mais qu'est-ce qu'un modèle de langage exactement ? Explorons cela :
- Modèle de langage : Un modèle informatique qui prédit la probabilité d'une séquence de mots. Il est le fondement de diverses applications telles que les chatbots, les services de traduction et même la fonction de correction automatique de votre smartphone.
Llama CPP n'est pas juste un autre outil ; c'est un framework robuste qui vous permet de :
- Exécuter des modèles pré-entraînés depuis des plateformes telles que Hugging Face
- Construire le projet en utilisant soit le processeur, soit le processeur graphique
- L'intégrer avec Python pour une fonctionnalité étendue
Configuration de Llama CPP : Guide pas à pas
Commencer avec Llama CPP est un jeu d'enfant. Tout ce dont vous avez besoin, c'est d'un ordinateur et d'une connexion Internet. Voici comment le configurer :
-
Cloner le répertoire : Ouvrez votre terminal et exécutez la commande suivante pour cloner le répertoire Llama CPP depuis GitHub.
git clone https://github.com/ggerganov/llama.cpp cd llama.cpp
Cela téléchargera le répertoire et vous naviguera dans le nouveau répertoire cloné.
-
Télécharger les modèles de langage : Vous aurez besoin de modèles de langage pour travailler avec Llama CPP. Vous pouvez les télécharger depuis Hugging Face ou depuis le projet LLaMa d'origine. Placez-les dans un répertoire à l'intérieur du référentiel cloné.
-
Choisissez votre compilation : Décidez si vous souhaitez compiler le projet en utilisant le processeur ou le processeur graphique. Pour une compilation basée sur le processeur graphique, vous devrez installer la trousse d'outils NVIDIA CUDA.
-
Compiler le code : Utilisez la commande
make
pour compiler le code. Si vous utilisez le processeur graphique, vous devrez exécuter une commande différente, que nous discuterons dans la section suivante.
En suivant ces étapes, vous avez configuré avec succès Llama CPP sur votre système. Vous êtes maintenant prêt à plonger dans les aspects plus techniques, comme le choix entre les compilations avec le processeur ou avec le processeur graphique, que nous allons couvrir ensuite.
Exécutez Llama-cpp-python en Python
Si vous souhaitez exécuter des modèles Llama CPP dans un script Python, vous pouvez utiliser la bibliothèque llama_cpp_python
. Voici un exemple plus détaillé :
from llama_cpp_python import LlamaModel
# Initialisez le modèle
model = LlamaModel("/chemin/vers/votre/modèle")
# Définissez la requête et générez du texte
requete = "Bonjour, comment ça va?"
texte = model.generate(requete)
# Affichez le texte généré
print(f"Le texte généré pour la requête '{requete}' est : {texte}")
Ce script Python importe la classe LlamaModel
de la bibliothèque llama_cpp_python
, initialise le modèle avec le chemin vers votre modèle de langage téléchargé, puis génère du texte à partir d'une requête donnée.
Exécutez Llama.cpp dans Docker
Si vous êtes familier avec Docker, vous pouvez mettre votre projet Llama CPP en conteneur pour faciliter le déploiement et la mise à l'échelle. Voici comment créer et exécuter un conteneur Docker pour votre projet Llama CPP :
# Naviguez jusqu'à votre répertoire Llama CPP
cd /chemin/vers/le/répertoire/llama_cpp
# Construisez l'image Docker
docker build -t llama_cpp_image .
# Exécutez le conteneur Docker
docker run -it --name llama_cpp_container llama_cpp_image
Dans cet exemple, llama_cpp_image
est le nom de l'image Docker, et llama_cpp_container
est le nom du conteneur en cours d'exécution. Ces noms sont personnalisables.
Choisir entre le processeur ou le processeur graphique : Optimisez votre build Llama CPP
Lorsqu'il s'agit de construire votre projet Llama CPP, vous avez deux options principales : le processeur et le processeur graphique. Chacun a ses avantages et ses inconvénients, mais le choix dépend de vos besoins spécifiques et de vos ressources.
Processeur vs Processeur graphique : Comparaison rapide :
- Vitesse : Les compilations pour le processeur graphique sont généralement plus rapides en raison de leurs capacités de traitement parallèle.
- Utilisation des ressources : Les compilations pour le processeur sont moins gourmandes en ressources mais peuvent être plus lentes.
- Flexibilité : Les compilations pour le processeur graphique nécessitent un matériel spécifique et une installation supplémentaire, mais offrent des performances supérieures.
Plongeons dans les détails :
Si vous débutez ou si vous n'avez pas un processeur graphique puissant, une compilation pour le processeur est préférable. C'est simple et ne nécessite aucune installation supplémentaire. Voici comment compiler votre projet Llama CPP en utilisant seulement le processeur :
- Naviguez jusqu'au répertoire : Ouvrez votre terminal et naviguez jusqu'au répertoire Llama CPP cloné.
- Compilez le code : Exécutez la commande suivante :
make
- Exécutez le modèle : Après une compilation réussie, vous pouvez exécuter le modèle à l'aide de l'exécutable créé.
Pour ceux qui veulent exploiter toute la puissance de leur matériel, une compilation pour le processeur graphique est la voie à suivre. Plus précisément, si vous avez une carte graphique NVIDIA, vous pouvez considérablement accélérer les calculs. Voici comment faire :
- Installez la trousse d'outils NVIDIA CUDA : Avant de pouvoir compiler le code pour le processeur graphique, vous devrez installer la trousse d'outils NVIDIA CUDA. Vous pouvez la télécharger depuis le site officiel de NVIDIA.
- Compilez avec prise en charge CUDA : Naviguez jusqu'au répertoire Llama CPP et exécutez la commande suivante :
make clean && LLAMA_CUBLAS=1 make -j
- Exécution avec prise en charge de GPU: Utilisez le drapeau
--n-gpu-layers
lors de l'exécution du modèle pour décharger les calculs sur le GPU.
Note: L'utilisation de la version GPU vous permet de décharger des couches spécifiques du modèle sur le GPU, rendant le processus plus rapide et plus efficace.
Exécution de votre premier modèle Llama CPP
Exécution du modèle de base
Pour exécuter votre modèle compilé, vous utiliserez l'exécutable généré lors du processus de compilation. Le drapeau --model-path
spécifie l'emplacement de votre modèle de langage téléchargé. Voici comment procéder :
# Accédez au répertoire où se trouve votre exécutable Llama CPP
cd /chemin/vers/le/répertoire/llama_cpp
# Exécutez le modèle
./llama_cpp_executable --model-path /chemin/vers/votre/modèle
Note: Remplacez /chemin/vers/votre/modèle
par le chemin d'accès réel où votre modèle de langage téléchargé est stocké. llama_cpp_executable
est le nom du fichier exécutable généré après avoir compilé Llama CPP.
Fonctionnalités avancées : déchargement du GPU et plus encore
Si vous avez compilé Llama CPP avec la prise en charge du GPU, vous pouvez décharger les calculs sur le GPU pour accélérer l'exécution du modèle. Le drapeau --n-gpu-layers
spécifie le nombre de couches du réseau neuronal qui doivent être traitées par le GPU.
# Exécutez le modèle avec le déchargement du GPU
./llama_cpp_executable --model-path /chemin/vers/votre/modèle --n-gpu-layers 2
Dans cet exemple, 2
indique que deux couches du réseau neuronal seront traitées par le GPU. Vous pouvez ajuster ce nombre en fonction des capacités spécifiques de votre GPU et de la taille du modèle que vous exécutez.
Optimisation des performances : conversion du modèle
Llama CPP fournit un script Python appelé convert.py
pour convertir votre modèle dans différents formats afin d'améliorer les performances. Par exemple, vous pouvez convertir le modèle en fp16
(point flottant 16 bits) pour le rendre plus petit et plus rapide.
# Accédez au répertoire contenant le script convert.py
cd /chemin/vers/le/répertoire/des/scripts/llama_cpp
# Exécutez le script de conversion
python convert.py --input /chemin/vers/le/modèle/original --output /chemin/vers/le/modèle/converti --type fp16
Conclusion
Nous avons couvert beaucoup de choses dans ce guide, de la configuration de Llama CPP à l'exécution de votre premier modèle et à l'exploration de ses fonctionnalités supplémentaires. Avec sa flexibilité, ses options d'optimisation des performances et ses fonctionnalités supplémentaires telles que l'intégration de Python et la prise en charge de Docker, Llama CPP constitue un outil robuste pour toute personne intéressée par le travail avec des modèles de langage.
Foire aux questions
-
Qu'est-ce que Llama CPP ?
- Llama CPP est un outil puissant pour travailler avec des modèles de langage. Il permet des compilations CPU et GPU, une intégration avec Python, et bien plus encore.
-
Comment exécuter Llama CPP en Python ?
- Vous pouvez intégrer Llama CPP avec Python en utilisant le code et la documentation fournis dans le référentiel GitHub
llama-cpp-python
.
- Vous pouvez intégrer Llama CPP avec Python en utilisant le code et la documentation fournis dans le référentiel GitHub
-
Quelle est la vitesse de Llama CPP ?
- La vitesse de Llama CPP dépend de la compilation CPU ou GPU. Les compilations GPU sont généralement plus rapides grâce à leurs capacités de traitement parallèle.
-
Llama CPP utilise-t-il le GPU ?
- Oui, Llama CPP permet d'utiliser les calculs basés sur le GPU, ce qui peut accélérer considérablement l'exécution du modèle.
Vous voulez connaître les dernières nouvelles sur LLM ? Consultez le dernier classement LLM !