Déployer des Open LLMs avec le serveur LLAMA-CPP : Un guide étape par étape
Déployer des modèles de langage ouverts avec le serveur LLAMA-CPP : un guide étape par étape. Apprenez à installer et configurer le serveur LLAMA-CPP pour servir des modèles de langage open source, en effectuant des requêtes via cURL, le client OpenAI et le package Python requests. Optimisez pour le déploiement local et distant.
17 février 2025

Débloquez la puissance des modèles de langue open-source à grande échelle (LLM) avec ce guide complet sur le déploiement du serveur LLAMA-CPP. Découvrez comment servir efficacement plusieurs utilisateurs avec un seul LLM, en optimisant les performances et l'accessibilité de vos applications alimentées par l'IA.
Installation de LLAMA-CPP
Démarrage du serveur LLAMA-CPP
Faire des requêtes au serveur LLAMA-CPP
Personnalisation du serveur LLAMA-CPP
Interaction avec le serveur LLAMA-CPP en utilisant différentes méthodes
Conclusion
Installation de LLAMA-CPP
Installation de LLAMA-CPP
La façon la plus simple de commencer avec LLAMA-CPP est d'utiliser le gestionnaire de paquets Homebrew pour l'installer. Cela fonctionnera nativement sur les machines macOS et Linux. Pour installer LLAMA-CPP sur une machine Windows, vous devrez utiliser le sous-système Windows pour Linux (WSL).
Pour installer LLAMA-CPP à l'aide de Homebrew, exécutez la commande suivante dans votre terminal :
brew install llama-cpp
Cette commande téléchargera et installera le package LLAMA-CPP sur votre système. Une fois l'installation terminée, vous pouvez commencer à utiliser la commande llama-server
pour servir vos modèles LLM.
Démarrage du serveur LLAMA-CPP
Démarrage du serveur LLAMA-CPP
Pour démarrer le serveur LLAMA-CPP, suivez ces étapes :
-
Installez LLAMA-CPP à l'aide du gestionnaire de paquets Homebrew :
brew install llama.cpp
Cette commande installera LLAMA-CPP sur votre Mac ou votre machine Linux. Pour les utilisateurs de Windows, vous devrez utiliser WSL (Windows Subsystem for Linux) pour installer LLAMA-CPP.
-
Démarrez le serveur LLAMA-CPP en exécutant la commande suivante :
llama-server --model <hugging-face-repo-id> --model-file <quantization-file>
Remplacez
<hugging-face-repo-id>
par l'ID du référentiel Hugging Face du modèle que vous voulez servir, et<quantization-file>
par le fichier de quantification spécifique que vous voulez utiliser (par exemple, la version quantifiée à 4 bits au format GGML). -
Le serveur LLAMA-CPP commencera à écouter les requêtes entrantes sur
localhost:8080
par défaut. Vous pouvez personnaliser l'adresse hôte et le port à l'aide des options disponibles, comme--host
et--port
. -
Le serveur prend en charge diverses options de configuration, notamment la définition de la fenêtre de contexte maximale, de la taille du lot et bien d'autres. Vous pouvez explorer ces options en exécutant
llama-server --help
. -
Une fois le serveur en cours d'exécution, vous pouvez interagir avec lui à l'aide de différentes méthodes, comme cURL, le client OpenAI ou le package Python
requests
, comme démontré dans les sections précédentes.
N'oubliez pas que le serveur LLAMA-CPP est conçu pour fournir un moyen rapide et efficace de servir des modèles de langage open source sur votre machine locale ou dans un environnement de production. En tirant parti du serveur, vous pouvez facilement intégrer ces modèles dans vos applications et servir plusieurs utilisateurs avec un seul GPU.
Faire des requêtes au serveur LLAMA-CPP
Faire des requêtes au serveur LLAMA-CPP
Il existe plusieurs façons d'interagir avec le serveur LLAMA-CPP et de faire des requêtes au modèle servi :
-
Utilisation de la commande cURL :
curl -X POST -H "Content-Type: application/json" -d '{"prompt": "Hello, how are you?", "max_tokens": 50}' http://localhost:8080/v1/chat/completions
Cela enverra une requête POST au point de terminaison de complétion de chat en cours d'exécution sur l'hôte local sur le port 8080.
-
Utilisation du client OpenAI :
import openai openai.api_base = "http://localhost:8080/v1" openai.Model.list() response = openai.ChatCompletion.create( model="chat-gpt-3.5", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello, how are you?"} ] ) print(response.choices[0].message.content)
Cela utilise le client OpenAI pour interagir avec le serveur LLAMA-CPP, qui est compatible avec l'API OpenAI.
-
Utilisation du package Python Requests :
import requests url = "http://localhost:8080/v1/chat/completions" headers = {"Content-Type": "application/json"} data = { "prompt": "Hello, how are you?", "max_tokens": 50 } response = requests.post(url, headers=headers, json=data) print(response.json())
Cela utilise le package Python Requests pour envoyer une requête POST au point de terminaison de complétion de chat.
Dans tous ces exemples, le serveur LLAMA-CPP est en cours d'exécution sur l'hôte local sur le port 8080, servant le modèle spécifié. Vous pouvez personnaliser la configuration du serveur, comme l'adresse hôte, le port et le modèle, selon vos besoins.
Personnalisation du serveur LLAMA-CPP
Personnalisation du serveur LLAMA-CPP
LLAMA-CPP fournit un serveur hautement personnalisable qui vous permet d'affiner le comportement de votre déploiement de LLM. Voici quelques-unes des principales options que vous pouvez configurer :
-
Fenêtre de contexte maximale : Vous pouvez définir la taille maximale de la fenêtre de contexte pour le LLM, ce qui détermine la longueur maximale de la séquence d'entrée que le modèle peut traiter.
-
Taille du lot : LLAMA-CPP prend en charge le traitement par lots des invites, vous permettant de traiter plusieurs entrées simultanément pour une meilleure évolutivité. Vous pouvez configurer la taille du lot pour optimiser les performances.
-
Adresse hôte : Par défaut, le serveur LLAMA-CPP écoute sur
localhost
, mais vous pouvez modifier l'adresse hôte pour rendre le serveur accessible à partir d'autres machines de votre réseau. -
Port : Le serveur écoute sur le port
8080
par défaut, mais vous pouvez spécifier un port différent si nécessaire. -
Chemin du modèle : LLAMA-CPP vous permet de personnaliser le chemin à partir duquel il charge les fichiers du modèle LLM, vous donnant de la flexibilité dans l'organisation de vos ressources de modèle.
-
Modèles d'intégration : En plus des modèles de langage, LLAMA-CPP peut également servir des modèles d'intégration, vous permettant d'intégrer à la fois les capacités de génération de texte et de codage de texte dans vos applications.
-
Suivi des métriques : Le serveur LLAMA-CPP peut suivre diverses métriques, comme la latence des requêtes et le débit, pour vous aider à surveiller et à optimiser les performances de votre déploiement.
En tirant parti de ces options de personnalisation, vous pouvez adapter le serveur LLAMA-CPP à vos exigences de déploiement spécifiques, que vous l'exécutiez dans un environnement de production ou que vous l'utilisiez pour le développement local et l'expérimentation.
Interaction avec le serveur LLAMA-CPP en utilisant différentes méthodes
Interaction avec le serveur LLAMA-CPP en utilisant différentes méthodes
Pour interagir avec le serveur LLAMA-CPP, nous pouvons utiliser diverses méthodes :
-
Utilisation de la commande cURL :
- Envoyez une requête POST au point de terminaison de
complétion de chat
en cours d'exécution surlocalhost
. - Fournissez les en-têtes nécessaires et l'objet de données contenant l'invite et le nombre souhaité de jetons à générer.
- La réponse inclura le texte généré, ainsi que des informations sur le processus de génération, comme la température, le top-P, le top-K et les jetons prédits par seconde.
- Envoyez une requête POST au point de terminaison de
-
Utilisation du client OpenAI :
- Créez un client OpenAI avec l'URL de base définie sur l'URL du serveur LLAMA-CPP local.
- Utilisez le point de terminaison de complétion de chat et fournissez le nom du modèle (par exemple,
chat-gpt-3.5
). - Définissez l'invite système et l'invite utilisateur, puis faites la requête au serveur.
- La réponse sera renvoyée dans le même format que l'API OpenAI.
-
Utilisation du package Requests (Python) :
- Définissez l'URL et les en-têtes pour la requête POST.
- Transmettez plusieurs messages différents au serveur et observez comment il traite les requêtes en parallèle.
- Le serveur mettra les requêtes en file d'attente et les traitera une par une, sans être submergé.
En utilisant ces différentes méthodes, vous pouvez interagir avec le serveur LLAMA-CPP et servir plusieurs utilisateurs avec un seul LLM et un seul GPU. Le serveur fournit un moyen flexible et personnalisable de déployer des modèles de langage open source, vous permettant d'ajuster divers paramètres pour répondre à vos besoins spécifiques.
Conclusion
Conclusion
Dans cette vidéo, nous avons exploré l'installation et l'utilisation de LlamaCPP, un projet open source puissant pour servir des modèles de langage open source. Nous avons appris à installer LlamaCPP sur notre machine locale, à démarrer le serveur et à interagir avec lui à l'aide de diverses méthodes, notamment cURL, le client OpenAI et le package Python Requests.
Nous avons également abordé les différentes options de configuration disponibles dans LlamaCPP, nous permettant de personnaliser le serveur à nos besoins spécifiques, comme définir la fenêtre de contexte maximale, la taille du lot et l'adresse hôte. De plus, nous avons vu comment LlamaCPP peut suivre les métriques, en faire un choix adapté pour les environnements de production.
Enfin, nous avons abordé les applications pratiques de LlamaCPP, notamment dans le contexte du déploiement de modèles de langage pour diverses utilisations. Nous avons mentionné le cadre Rasa comme application potentielle et avons fourni un lien vers un cours connexe dans la description de la vidéo.
Dans l'ensemble, cette vidéo a fourni une introduction complète à LlamaCPP et à ses capacités, vous équipant des connaissances nécessaires pour commencer à servir des modèles de langage open source sur votre machine locale ou dans un environnement de production.
FAQ
FAQ

