« Ollama » : différence entre les versions
Autres actions
| Ligne 26 : | Ligne 26 : | ||
# apt install curl zstd pciutils | # apt install curl zstd pciutils | ||
# curl -fsSL <nowiki>https://</nowiki>ollama.com/install.sh | sh | # curl -fsSL <nowiki>https://</nowiki>ollama.com/install.sh | sh | ||
=== Mise à jour automatique === | |||
On édite la crontab : | |||
# crontab -e | |||
On ajoute : | |||
0 3 1 * * curl -fsSL https://ollama.com/install.sh | sh | |||
== Commandes == | == Commandes == | ||
* Télécharger ou mettre à jour un modèle (voir [https://ollama.com/library liste officielle des modèles disponibles]) : | * Télécharger ou mettre à jour un modèle (voir [https://ollama.com/library liste officielle des modèles disponibles]) : | ||
Version du 2 mai 2026 à 11:22
Ollama est un serveur local d’inférence de modèles de langage (LLM). Plus simplement, il permet de faire tourner un modèle d’IA en local et de l’exposer via une API sur le réseau (Port: 11434).
A noter qu'il existe également une version conteneur pour docker officielle.
Debian 13
Prérequis
- Un GPU est fortement recommandé, idéalement NVIDIA avec le plus de VRAM possible. Le modèle IA choisi doit tenir entièrement en VRAM, sinon les performances chutent fortement. Voir ce lien pour partager un GPU dans un LXC
- Les modèles peuvent fonctionner sur CPU, mais avec des performances très faibles (souvent inutilisables en pratique).
- VRAM recommandée : environ la taille du modèle (en quantization type Q4) + environ 1 à 3 Go supplémentaires pour le KV cache (selon le contexte utilisé) -> En pratique, prévoir 20 à 50% de marge est un bon compromis.
- RAM recommandée : au minimum équivalente à la taille du modèle, idéalement 1,5 à 2 fois.
- Espace disque à prévoir en fonction du ou des modèle que vous allez utiliser ou tester, Exemples :
- qwen2.5:7b (Q4) ≈ 4–5 Go
- qwen2.5:14b (Q4) ≈ 8–10 Go
- llama3:70b (Q4) ≈ 35–40 Go
- Utiliser un SSD/NVMe améliore fortement les temps de chargement.
- CPU / vCPU recommandés :
- Avec GPU : 2 à 4 vCPU suffisent généralement.
- Sans GPU : prévoir au minimum 8 vCPU (voire plus), les performances restant très limitées.
- Note : Q4 correspond au niveau de "quantization", c’est-à-dire une réduction de la précision numérique du modèle afin de diminuer son utilisation en mémoire (VRAM). Les niveaux vont généralement de Q1 à Q8 : Q8 est le plus précis (proche du modèle original), mais aussi le plus gourmand en ressources. À l’inverse, Q1 est très léger mais fortement dégradé. En pratique, Q4 (voire Q5) est généralement considéré comme le meilleur compromis entre performances, consommation de VRAM et qualité de réponse.
Installation
# apt update && apt upgrade # apt install curl zstd pciutils # curl -fsSL https://ollama.com/install.sh | sh
Mise à jour automatique
On édite la crontab :
# crontab -e
On ajoute :
0 3 1 * * curl -fsSL https://ollama.com/install.sh | sh
Commandes
- Télécharger ou mettre à jour un modèle (voir liste officielle des modèles disponibles) :
# ollama pull qwen2.5:7b
- Lancer un modèle (test rapide) :
# ollama run qwen2.5:7b
- Lister les modèles installés :
# ollama list
- Informations sur un modèle :
# ollama show qwen2.5:7b
- Supprimer un modèle :
# ollama rm qwen2.5:7b
- Tester l’API :
# curl http://localhost:11434/api/tags
Spécifier une interface
Il suffit d'ajouter devant chaque commande :
# OLLAMA_HOST=http://192.168.2.205:11434
Exemple :
# OLLAMA_HOST=http://192.168.2.205:11434 ollama pull qwen3:8b
On peut aussi l'ajouter au bashrc pour l'automatiser :
# echo 'export OLLAMA_HOST=http://192.168.2.205:11434' >> ~/.bashrc # source ~/.bashrc
Spécifier interface d'écoute
Par défault Ollama n'écoute que localmement, pour autoriser une interface réseau :
# systemctl edit ollama
Ajouter dans la zone d’édition (partie supérieure du fichier) :
... ### Anything between here and the comment below will become the contents of the drop-in file [Service] Environment="OLLAMA_HOST=192.168.1.123:11434" ### Edits below this comment will be discarded ...
Spécifier une interface précise ne permet plus de communiquer localement avec le serveur, cela empêche notamment l'utilisation des commandes locales comme `ollama pull` sans spécifier explicitement l'URL du serveur. Pour plus de facilité l'on peut tout simplement autorisé toutes les IP :
... ### Anything between here and the comment below will become the contents of the drop-in file [Service] Environment="OLLAMA_HOST=0.0.0.0:11434" ### Edits below this comment will be discarded ...
Puis recharger et redémarrer le service :
# systemctl daemon-reload # systemctl restart ollama
Limiter le contexte
- Note : Le contexte correspond à la mémoire utilisée par le modèle pour traiter la conversation. Une valeur de 4096 constitue généralement un bon compromis entre performances et consommation de mémoire.
# systemctl edit ollama
Ajouter dans la zone d’édition (partie supérieure du fichier) :
... ### Anything between here and the comment below will become the contents of the drop-in file [Service] Environment="OLLAMA_CONTEXT_LENGTH=4096" ### Edits below this comment will be discarded ...
Puis recharger et redémarrer le service :
# systemctl daemon-reload # systemctl restart ollama
Pour vérifier :
# systemctl show ollama | grep OLLAMA_CONTEXT_LENGTH
Contrôler le temps d'inactivité pour décharger le modèle
Par défaut la valeur est de 5 minutes (5m).
# systemctl edit ollama
Ajouter dans la zone d’édition (partie supérieure du fichier) :
... ### Anything between here and the comment below will become the contents of the drop-in file [Service] Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_CONTEXT_LENGTH=2048" Environment="OLLAMA_KEEP_ALIVE=5m" ### Edits below this comment will be discarded ...
Pour ne jamais décharger le modèle, utiliser la valeur "-1" :
... ### Anything between here and the comment below will become the contents of the drop-in file [Service] Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_CONTEXT_LENGTH=2048" Environment="OLLAMA_KEEP_ALIVE=-1" ### Edits below this comment will be discarded ...
Puis recharger et redémarrer le service :
# systemctl daemon-reload # systemctl restart ollama
(Optionnel) Service pour charger le modèle au démarrage
Pour compléter "OLLAMA_KEEP_ALIVE=-1" :
# vi /etc/systemd/system/ollama-preload.service
[Unit]
Description=Preload Ollama model
After=ollama.service
Requires=ollama.service
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'sleep 5; echo '\''{"model":"qwen3.5:9b"}'\'' | curl -s http://127.0.0.1:11434/api/generate -H "Content-Type: application/json" -d @-'
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
Puis on inscrit et démarre le service :
# systemctl daemon-reload # systemctl enable ollama-preload # systemctl start ollama-preload
Ajouter une API key
# systemctl edit ollama
Ajouter dans la zone d’édition (partie supérieure du fichier) :
... ### Anything between here and the comment below will become the contents of the drop-in file [Service] Environment="OLLAMA_API_KEY=votre_cle_secrete" ### Edits below this comment will be discarded ...
Puis recharger et redémarrer le service :
# systemctl daemon-reload # systemctl restart ollama
Activer Flash Attention
# systemctl edit ollama
Ajouter dans la zone d’édition (partie supérieure du fichier) :
... ### Anything between here and the comment below will become the contents of the drop-in file [Service] Environment="OLLAMA_FLASH_ATTENTION=1" ### Edits below this comment will be discarded ...
Puis recharger et redémarrer le service :
# systemctl daemon-reload # systemctl restart ollama
Paramétrage personnalisé d'un modèle
Exemple pour qwen3.5:4b avec un context de 65536
# cat > /tmp/Modelfile << 'EOF' FROM qwen3.5:4b PARAMETER num_ctx 65536 EOF
# ollama create qwen3.5-ctx:4b -f /tmp/Modelfile
Un nouveau modèle avec le nom qwen3.5-ctx:4b sera maintenant disponible.