« Ollama » : différence entre les versions
Autres actions
Balise : Révocation manuelle |
|||
| (25 versions intermédiaires par le même utilisateur non affichées) | |||
| 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 : | |||
<font color = grey>...</font> | |||
45 3 1 * * curl -fsSL <nowiki>https://</nowiki>ollama.com/install.sh | sh | |||
{{Méta bandeau | |||
| niveau = information | |||
| icône = information | |||
| texte = | |||
* 45 → minute 45 | |||
* 3 → 3h du matin | |||
* 1 → le 1er du mois | |||
* * → tous les mois | |||
* * → peu importe le jour de la semaine | |||
}} | |||
== 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]) : | ||
| Ligne 49 : | Ligne 66 : | ||
Exemple : | Exemple : | ||
# OLLAMA_HOST=http://<font color = blue>192.168.2.205</font>:<font color = green>11434</font> ollama pull qwen3:8b | # OLLAMA_HOST=http://<font color = blue>192.168.2.205</font>:<font color = green>11434</font> ollama pull qwen3:8b | ||
On peut aussi l'ajouter au bashrc pour l'automatiser : | |||
# echo 'export OLLAMA_HOST=http://<font color = blue>192.168.2.205</font>:<font color = green>11434</font>' >> ~/.bashrc | |||
# source ~/.bashrc | |||
== Spécifier interface d'écoute == | == Spécifier interface d'écoute == | ||
| Ligne 63 : | Ligne 83 : | ||
<font color = grey>...</font> | <font color = grey>...</font> | ||
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 : | 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_une_interface|spécifier explicitement l'URL du serveur]]. Pour plus de facilité l'on peut tout simplement autorisé toutes les IP : | ||
<font color = grey>...</font> | <font color = grey>...</font> | ||
| Ligne 73 : | Ligne 93 : | ||
<font color = grey>### Edits below this comment will be discarded</font> | <font color = grey>### Edits below this comment will be discarded</font> | ||
<font color = grey>...</font> | <font color = grey>...</font> | ||
Puis recharger et redémarrer le service : | |||
# systemctl daemon-reload | # systemctl daemon-reload | ||
# systemctl restart ollama | # systemctl restart ollama | ||
| Ligne 86 : | Ligne 106 : | ||
<font color = blue>[Service] | <font color = blue>[Service] | ||
Environment="OLLAMA_CONTEXT_LENGTH=<font color = green>4096</font></font> | Environment="OLLAMA_CONTEXT_LENGTH=<font color = green>4096</font>"</font> | ||
<font color = grey>### Edits below this comment will be discarded</font> | <font color = grey>### Edits below this comment will be discarded</font> | ||
<font color = grey>...</font> | <font color = grey>...</font> | ||
Puis recharger et redémarrer le service : | |||
# systemctl daemon-reload | # systemctl daemon-reload | ||
# systemctl restart ollama | # systemctl restart ollama | ||
Pour vérifier : | Pour vérifier : | ||
# systemctl show ollama | grep OLLAMA_CONTEXT_LENGTH | # 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) : | |||
<font color = grey>...</font> | |||
<font color = grey>### 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"</font> | |||
<font color = blue>Environment="OLLAMA_KEEP_ALIVE=<font color = green>5m</font>"</font> | |||
<font color = grey>### Edits below this comment will be discarded</font> | |||
<font color = grey>...</font> | |||
Pour ne jamais décharger le modèle, utiliser la valeur "-1" : | |||
<font color = grey>...</font> | |||
<font color = grey>### 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"</font> | |||
<font color = blue>Environment="OLLAMA_KEEP_ALIVE=<font color = green>-1</font>"</font> | |||
<font color = grey>### Edits below this comment will be discarded</font> | |||
<font color = grey>...</font> | |||
{{Méta bandeau | |||
| niveau = information | |||
| icône = loupe | |||
| texte = Peut être compléter avec [[#(Optionnel)_Service_pour_charger_le_modèle_au_démarrage|un service pour charger le modèle au démarrage]]. | |||
}} | |||
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 <nowiki>'\''</nowiki>{"model":"<font color = blue>qwen3.5:9b</font>"}'\<nowiki>''</nowiki> | curl -s <nowiki>http://</nowiki><font color = blue>127.0.0.1</font>:<font color = green>11434</font>/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) : | |||
<font color = grey>...</font> | |||
<font color = grey>### Anything between here and the comment below will become the contents of the drop-in file</font> | |||
<font color = blue>[Service] | |||
Environment="OLLAMA_API_KEY=<font color = green>votre_cle_secrete</font>"</font> | |||
<font color = grey>### Edits below this comment will be discarded</font> | |||
<font color = grey>...</font> | |||
Puis recharger et redémarrer le service : | |||
# systemctl daemon-reload | |||
# systemctl restart ollama | |||
== Activer Flash Attention == | |||
{{Méta bandeau | |||
| niveau = information | |||
| icône = information | |||
| texte = flash_attention true réduit la consommation VRAM du KV cache — recommandé pour les grands contextes. | |||
}} | |||
# systemctl edit ollama | |||
Ajouter dans la zone d’édition (partie supérieure du fichier) : | |||
<font color = grey>...</font> | |||
<font color = grey>### Anything between here and the comment below will become the contents of the drop-in file</font> | |||
<font color = blue>[Service] | |||
Environment="OLLAMA_FLASH_ATTENTION=1"</font> | |||
<font color = grey>### Edits below this comment will be discarded</font> | |||
<font color = grey>...</font> | |||
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 <font color = blue>qwen3.5:4b</font> | |||
PARAMETER num_ctx <font color = blue>65536</font> | |||
EOF | |||
# ollama create <font color = blue>qwen3.5-ctx:4b</font> -f /tmp/Modelfile | |||
Un nouveau modèle avec le nom <code>qwen3.5-ctx:4b</CODE> sera maintenant disponible. | |||
Dernière version du 16 juin 2026 à 17:52
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 :
... 45 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.