12 novembre 2026 · Équipe VRAMfarm
Votre propre ChatGPT privé : Open WebUI avec Ollama ou vLLM sur un GPU loué
Vous voulez coller un contrat, une liste de clients ou du code non publié dans un chat, et vous préférez que cela ne finisse pas sur les serveurs d’une entreprise d’IA. La réponse : un modèle ouvert qui tourne sur un GPU que vous louez, derrière Open WebUI, une interface de chat qui ressemble beaucoup à ChatGPT et fonctionne de la même façon. Qwen3 8B demande une carte de 12 Go, Qwen3 32B une carte de 24 Go, un modèle 70B une carte de 48 Go. Notre application prête à l’emploi ChatGPT privé installe toute seule les deux premiers, plus MiMo 9B ; entre le clic sur Lancer et la première réponse, comptez environ 10 minutes.
L’application prête à l’emploi : lancer, attendre, discuter
Choisissez ChatGPT privé dans le tableau de bord, puis l’un des trois modèles :
- Qwen3 8B, à partir d’une carte de 12 Go. Rapide, bien pour les brouillons, la reformulation et les questions sur des textes courts.
- MiMo 9B (Xiaomi, licence MIT), à partir d’une carte de 12 Go. Taille et vitesse comparables, et il comprend les images : déposez une capture d’écran, la photo d’un document ou un graphique et posez votre question.
- Qwen3 32B, à partir d’une carte de 24 Go. Nettement plus intelligent : textes plus longs, raisonnement, code. C’est celui que la plupart des gens gardent.
Le serveur est prêt en 2 à 5 minutes, et ces minutes sont gratuites. Ensuite, l’application installe Open WebUI et télécharge le modèle, environ 5 Go pour le 8B et 20 Go pour le 32B, ce qui prend encore 5 à 10 minutes, facturées ; les téléchargements comptent comme du trafic. Le tableau de bord indique quand le chat est prêt, et le bouton Chat l’ouvre dans votre navigateur. L’ouvrir plus tôt affiche une page d’erreur, pas un serveur en panne.
L’application est déjà réglée : 8k tokens de contexte avec un cache en 8 bits, si bien que le modèle 32B reste entièrement sur une carte de 24 Go à environ 30 tokens par seconde, et le modèle est chargé en mémoire dès qu’il arrive, pour que la première réponse n’ait pas à l’attendre. Le chat s’ouvre sans identifiant, car le serveur n’est qu’à vous ; lisez la partie sur la confidentialité avant de partager le lien.
Les modèles Qwen3 réfléchissent avant de répondre, et Open WebUI affiche ce raisonnement replié au-dessus de la réponse. Pour les questions rapides, ajoutez /no_think à votre message : la réponse arrive plusieurs fois plus tôt. La page Qwen3 et la page MiMo donnent les chiffres de mémoire et les licences.
Quelle carte pour 8B, 32B et 70B
| Modèle | Téléchargement | Plus petite carte | Vitesse pour un utilisateur | Prix à l’heure |
|---|---|---|---|---|
| Qwen3 8B, MiMo 9B | 5 à 6 Go | 12 Go : RTX 3060 | 40 à 55 tokens/s | à partir de 0,12 € |
| Qwen3 8B sur une carte plus rapide | 5 Go | 16 Go : RTX 5070 Ti | 90 à 130 tokens/s | à partir de 0,24 € |
| Qwen3 14B (à installer vous-même) | 9 Go | 16 Go : RTX 4080, RTX 5070 Ti | 45 à 75 tokens/s | à partir de 0,31 € |
| Qwen3 32B | 20 Go | 24 Go : RTX 3090, RTX 4090 | 25 à 40 tokens/s | à partir de 0,30 € |
| Llama 3.3 70B (à installer vous-même) | 43 Go | 48 Go : RTX A6000, L40S | 12 à 18 tokens/s | à partir de 0,72 € |
Les vitesses sont des fourchettes de planification pour des modèles en 4 bits, établies d’après la bande passante mémoire et des retours de la communauté. Au-delà de 8 tokens par seconde, le texte défile aussi vite que vous pouvez le lire.
Pour un modèle 70B, lancez l’application prête à l’emploi sur une carte de 48 Go et changez de modèle dans le terminal (Jupyter → Terminal) :
ollama stop qwen3:8b
ollama pull llama3.3:70b
Le téléchargement de 43 Go est facturé comme du trafic et prend un moment. Rechargez la page du chat et choisissez llama3.3:70b dans le menu des modèles. Le contexte de 8k de l’application permet de faire tenir un 70B sur 48 Go ; pour de longs documents, il vous faut une carte de 80 Go, comme l’explique l’article sur un modèle 70B sur un seul GPU.
L’installer vous-même : Open WebUI avec Ollama ou vLLM
Sur un serveur PyTorch vide, vous pouvez mettre en place la même chose en quelques commandes, avec n’importe quel modèle :
curl -fsSL https://ollama.com/install.sh | sh
OLLAMA_CONTEXT_LENGTH=8192 OLLAMA_FLASH_ATTENTION=1 OLLAMA_KV_CACHE_TYPE=q8_0 \
nohup ollama serve > /workspace/ollama.log 2>&1 &
ollama pull qwen3:14b
pip install open-webui
DATA_DIR=/workspace/open-webui OLLAMA_BASE_URL=http://127.0.0.1:11434 \
nohup open-webui serve --host 127.0.0.1 --port 3000 > /workspace/webui.log 2>&1 &
Un serveur vide ne publie que SSH et Jupyter : ouvrez donc le chat via un tunnel SSH depuis votre ordinateur, ssh -p <port> -L 3000:localhost:3000 root@<address>, avec le port et l’adresse indiqués sur la fiche du serveur, puis allez sur http://localhost:3000. Le guide de la clé SSH explique comment configurer la clé. Open WebUI conserve les conversations, les utilisateurs et les réglages dans DATA_DIR, c’est pourquoi il pointe vers /workspace.
Ollama est le bon moteur pour une personne ou quelques-unes. Si beaucoup de gens écrivent en même temps, placez plutôt vLLM derrière Open WebUI. Il regroupe les requêtes parallèles en lots : vingt personnes qui posent une question au même moment obtiennent chacune une réponse presque à pleine vitesse, là où Ollama répond à quelques-unes et met les autres en file d’attente. Sur une carte de 48 Go, où Qwen3 32B en 4 bits (environ 19 Go) laisse de la place dans le cache pour une dizaine de conversations de 8k en parallèle, déchargez le modèle d’Ollama (ollama stop <model>), démarrez vLLM avec une clé, puis ajoutez-le dans Open WebUI sous Admin Panel → Settings → Connections comme connexion OpenAI API, avec l’adresse http://127.0.0.1:8000/v1 et la même clé :
pip install "vllm==0.11.0" "transformers>=4.56,<5"
nohup vllm serve Qwen/Qwen3-32B-AWQ --max-model-len 8192 --port 8000 \
--api-key change-me > /workspace/vllm.log 2>&1 &
La version épinglée est compilée pour CUDA 12.8 ; un vLLM plus récent peut exiger un pilote plus récent que celui de la machine. La comparaison des moteurs explique pourquoi, et quand chaque moteur convient.
Ce qui reste privé, et ce qui ne l’est pas
Ce qui reste sur le serveur. Le modèle tourne sur le GPU que vous avez loué. Vos prompts, les fichiers que vous joignez et les réponses y sont traités, et aucune API d’entreprise d’IA n’intervient. La recherche dans les documents d’Open WebUI fonctionne elle aussi en local, avec un petit modèle d’embeddings téléchargé sur le serveur. La recherche web et les connexions à des API de modèles externes existent dans Open WebUI, et elles restent désactivées tant que vous ne les ajoutez pas.
Où se trouve le serveur. C’est une machine chez l’un de nos hôtes vérifiés, pas votre propre matériel. Son pays est indiqué avant le lancement : vous pouvez donc en choisir un qui correspond à vos exigences. « Privé » signifie ici qu’aucun fournisseur d’IA ne voit ni ne stocke vos conversations, ce dont la plupart des gens ont besoin quand ils quittent un chatbot public.
Le lien. L’adresse du chat de l’application prête à l’emploi est un simple lien http sur un port de notre adresse, et il s’ouvre sans identifiant. Toute personne qui a le lien, ou qui essaie les ports de notre adresse jusqu’à ce que l’un réponde, peut utiliser le chat tant que le serveur tourne. Ne le publiez nulle part, activez les comptes avant de le partager (section suivante), et pour les documents confidentiels, ouvrez le chat via un tunnel SSH comme ci-dessus, qui chiffre la connexion.
Après l’arrêt. Le disque du serveur est effacé. Votre historique de conversations se trouve dans /workspace/open-webui : choisissez d’enregistrer le dossier à l’arrêt si vous voulez le retrouver la fois suivante ; il est restauré sur le prochain serveur, même avec une autre carte, pour 0,03 € par Go et par mois, et un historique de conversations pèse généralement bien moins d’un gigaoctet. Le modèle lui-même n’est pas conservé et se télécharge à nouveau au lancement suivant. L’article sur les fichiers après un arrêt donne les détails.
Partager le chat avec une équipe
Pour une équipe, activez les comptes d’Open WebUI. Le dossier de données créé par l’application a été configuré sans vrais comptes : le plus propre est donc de démarrer Open WebUI avec un nouveau dossier :
pkill -f "open-webui serve"
DATA_DIR=/workspace/open-webui-team WEBUI_AUTH=True OLLAMA_BASE_URL=http://127.0.0.1:11434 \
nohup open-webui serve --host 0.0.0.0 --port 3000 > /workspace/webui.log 2>&1 &
Le premier compte créé devient l’administrateur. Les collègues qui s’inscrivent attendent votre validation, ou vous créez leurs comptes sous Admin Panel → Users. Chacun a son propre historique de conversations ; l’administrateur peut partager des modèles, des prompts système et des collections de documents avec tout le monde. Les conversations de l’ancien dossier y restent et ne sont pas transférées. Si ce processus plante un jour, la réparation automatique de l’application relance le chat d’origine sans identifiant : après tout redémarrage, vérifiez donc que le chat demande toujours un identifiant.
Ce qu’un serveur supporte : une carte de 24 Go avec Qwen3 32B via Ollama convient confortablement à une poignée de personnes qui posent des questions de temps en temps. À partir de dix personnes qui écrivent en même temps, les réponses commencent à attendre leur tour ; passez à vLLM comme moteur, et envisagez une carte de 48 Go pour que davantage de conversations tiennent dans le cache en même temps.
Le coût se calcule par serveur, pas par utilisateur. Une RTX 4090 de 24 Go pendant 9 heures sur 22 jours ouvrés, cela fait 198 heures, soit 116,82 € par mois pour toute l’équipe. Un abonnement payant à un chat coûte environ 20 à 25 € par personne et par mois (novembre 2026). Pour une seule personne, l’abonnement revient moins cher, sauf si la confidentialité est justement l’enjeu. À partir de six personnes environ, selon le prix du jour de la carte et vos horaires, un serveur partagé coûte moins cher qu’un abonnement chacun, avec les données sur une machine que vous contrôlez.
La protection contre l’inactivité est utile ici : si personne n’utilise le chat, vous recevez un e-mail après 2 heures sans connexion ni charge GPU, et une heure plus tard le dossier est enregistré et le serveur s’arrête. Pour des heures de bureau fixes, un petit script de votre côté (cron, par exemple) peut démarrer et arrêter le serveur via l’API, avec un token créé dans les Paramètres.