Pourquoi auto-heberger ses modeles LLM sur VPS
Auto-heberger un serveur de modeles, c'est garder vos prompts et vos donnees sensibles hors des API commerciales, supprimer la facturation au token et fixer vous-meme le modele, sa version et son quantization. Sur un VPS, vous exposez une API privee a vos applications internes (chatbots, RAG, assistants de code) sans aucune fuite vers l'exterieur. Ollama se distingue par sa simplicite radicale : une commande pour telecharger et lancer un modele, une API propre, une gestion automatique de la memoire. LocalAI se positionne comme un remplacant 'drop-in' de l'API OpenAI : il expose les memes endpoints (chat, embeddings, images, audio) et accepte de multiples backends et formats de modeles. Le choix se joue entre experience minimaliste et compatibilite la plus large possible.
Les benefices d'un LLM auto-heberge
- Prompts et donnees confidentielles qui ne quittent jamais votre VPS
- Aucune facturation au token, cout previsible lie au seul serveur
- API privee branchee directement sur vos apps internes
- Choix libre du modele, de sa taille et de son niveau de quantization
- Compatibilite avec les SDK existants via une API de style OpenAI
- Idéal pour le RAG : couplez le LLM a votre base et a un moteur de recherche self-hosted
Prerequis : modeles quantifies et RAM realiste
Sans GPU, restez sur des modeles quantifies legers. Un modele 3B en GGUF Q4 tourne sur un VPS 4 vCPU et 8 Go de RAM avec une latence acceptable pour du test ; un modele 7B/8B Q4 demande 8 a 16 Go de RAM et un bon CPU pour rester utilisable. Au-dela, en CPU pur, la latence devient prohibitive : pour du temps reel sur de gros modeles, un VPS avec GPU est indispensable. Prevoyez surtout un disque genereux : les poids de plusieurs modeles pesent vite des dizaines de Go. Il vous faut Docker et Compose, un volume persistant pour les modeles, un sous-domaine si vous exposez l'API, et un reverse proxy avec authentification.
Deployer Ollama (ou LocalAI) sur VPS
Provisionner stockage et volume modeles
Creez un volume dedie (/srv/ollama/models) sur un disque suffisamment grand. Les poids etant volumineux et reutilisables, ils doivent persister hors du conteneur pour eviter de re-telecharger a chaque redemarrage.
Lancer le conteneur
Demarrez ollama/ollama (ou localai/localai) en montant le volume modeles et en bindant le port 11434/8080 en local. Sur un VPS sans GPU, le mode CPU est automatique ; avec GPU, activez le runtime adapte.
Telecharger un modele
Avec Ollama, executez docker compose exec ollama ollama pull llama3.2:3b. Avec LocalAI, declarez le modele dans la galerie ou deposez le fichier GGUF dans le dossier de modeles, puis verifiez son chargement dans les logs.
Tester l'API
Lancez un appel local : curl http://127.0.0.1:11434/api/generate pour Ollama, ou l'endpoint compatible OpenAI POST /v1/chat/completions pour LocalAI. Validez que la generation fonctionne avant toute exposition.
Exposer derriere un reverse proxy authentifie
Proxifiez llm.votredomaine.ma vers le port local avec Caddy ou Nginx pour le TLS, et ajoutez une couche d'authentification (cle d'API en en-tete ou basic auth). Une API LLM ouverte sur Internet est une porte d'entree couteuse a ne jamais laisser sans controle.
Brancher vos applications
Pointez vos SDK existants vers votre base_url privee. LocalAI exposant l'API OpenAI, la plupart des bibliotheques fonctionnent en changeant simplement l'URL et la cle ; cote Ollama, utilisez son API native ou son endpoint compatible.
| Critere | Ollama | LocalAI |
|---|---|---|
| Philosophie | Simplicite, une commande par modele | Remplacant drop-in de l'API OpenAI |
| Compatibilite API OpenAI | Endpoint compatible disponible | Native et tres complete |
| Modalites supportees | Texte, embeddings, vision (selon modele) | Texte, embeddings, images, audio, TTS |
| Gestion des modeles | `ollama pull`, tres fluide | Galerie + fichiers, plus manuelle |
| Backends / formats | GGUF principalement | Multiples backends et formats |
| Prise en main | Tres rapide | Plus de configuration |
| Support GPU / CPU | Les deux, bascule simple | Les deux, large support materiel |
| Cas d'usage ideal | Demarrer vite, prototyper | Migrer une app OpenAI vers le self-hosting |
Sur un VPS sans GPU, le secret de la fluidite est la quantization : un modele en Q4_K_M offre le meilleur compromis taille/qualite et tient en RAM la ou la version non quantifiee s'effondre. Limitez aussi le context window au strict necessaire (par exemple 4096 tokens) : un contexte surdimensionne multiplie la consommation memoire et la latence sans benefice reel pour la plupart des taches.