Déploiement pratique des LLM : Ollama, vLLM et TGI
La couche de déploiement qui transforme les fichiers de modèle en API LLM : Ollama pour un usage local, vLLM et Hugging Face TGI pour les GPU, ainsi que ce que les transformateurs classiques manquent.
Moteurs de traitement : la couche sous « juste appeler le modèle »
serveur d’inférence : il charge les poids, gère la mémoire GPU, regroupe les tâches et transmet des tokens afin que de nombreux clients puissent utiliser une seule API. Trois noms que vous entendrez souvent : Ollama, vLLM et TGI (Text Generation Inference).
Pourquoi transformers pur n’est pas un serveur
Charger un modèle et appeler .generate() fonctionne pour une seule requête lente. Sous charge, le système échoue : pas de regroupement continu des requêtes, planification mémoire insuffisante, streaming multi-utilisateurs peu pratique. Les moteurs de service existent pour transformer un « fichier de modèle » en une « API ».
Ollama — priorité au local
Installez-le, téléchargez-le, exécutez-le et utilisez son API HTTP :
ollama pull llama3.2
ollama serve # usually already running; serves on http://localhost:11434
from openai import OpenAI # pip install openai
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama") # key is ignored locally
resp = client.chat.completions.create(
model="llama3.2",
messages=[{"role": "user", "content": "Explain KV cache in one sentence."}],
)
print(resp.choices[0].message.content)
Utilisez-le pour apprendre à formuler des prompts et créer des applications sans clés cloud. Connaissiez ses limites lorsque vous avez besoin d’un planification à grande échelle.
vLLM — service GPU adapté au regroupement de requêtes
Avec un environnement d’exécution GPU :
pip install vllm
vllm serve meta-llama/Llama-3.1-8B-Instruct # OpenAI-compatible server on :8000
Les points forts résident dans des endpoints compatibles avec OpenAI et un regroupement continu des requêtes. Surveillez la mémoire GPU ainsi que les paramètres de contexte maximal.
TGI — stack de service de Hugging Face
docker run --runtime nvidia --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-p 8000:8000 --ipc=host \
vllm/vllm-openai:latest \
--model meta-llama/Llama-3.1-8B-Instruct
TGI se concentre sur le service en production des modèles Hugging Face, avec des fonctionnalités de streaming et de suivi. Comparez la latence et la complexité opérationnelle avec vLLM pour vos modèles.
Modèle mental côte à côte
client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy") # ← base_url changed
resp = client.chat.completions.create(
model="meta-llama/Llama-3.1-8B-Instruct", # ← model changed
messages=[{"role": "user", "content": "Explain KV cache in one sentence."}],
)
print(resp.choices[0].message.content)
- Ollama : développement distribué et itération locale
- vLLM : tokens/seconde sur NVIDIA en mode concurrence
- TGI : service de production axé sur HF
Votre tour
docker run --gpus all --shm-size 1g -p 8080:80 \
-v ~/.cache/huggingface:/data \
ghcr.io/huggingface/text-generation-inference:latest \
--model-id meta-llama/Llama-3.1-8B-Instruct
Testez chaque serveur avec la même requête, notez le temps de réponse et les tokens/seconde, puis indiquez quel moteur convient à votre prochain projet — démonstration sur ordinateur portable, boîtier GPU interne ou API multi-locataires.
Rendez le déploiement simple : utilisation de compose, vérifications de santé et un seul endroit pour mettre à jour les modèles. C’est en restant simple que les outils internes survivent au contact des véritables plannings d’intervention.
Rendez le déploiement simple : utilisation de compose, vérifications de santé et un seul endroit pour mettre à jour les modèles. C’est en restant simple que les outils internes survivent au contact des véritables plannings d’intervention.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotater les modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotater les modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotater les modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotater les modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotater les modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement banal : utilisation de Compose, vérifications de santé, et un seul endroit pour rotation des modèles. C’est en restant banal que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement ennuyeux : utilisation de Compose, vérifications de santé, et un seul endroit pour rotater les modèles. C’est en étant ennuyeux que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement ennuyeux : utilisation de Compose, vérifications de santé, et un seul endroit pour rotater les modèles. C’est en étant ennuyeux que les outils internes parviennent à faire face aux véritables plannings d’urgence.
Rendez le déploiement ennuyeux : utilisation de Compose, vérifications de santé, et un seul endroit pour rotater les modèles. C’est en étant ennuyeux que les outils internes parviennent à faire face aux véritables plannings d’urgence.