Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Ollama » : différence entre les versions

De Le Wiki de Lug
Ligne 133 : Ligne 133 :
  # systemctl daemon-reload
  # systemctl daemon-reload
  # systemctl restart ollama
  # 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 ==
== Ajouter une API key ==
  # systemctl edit ollama
  # systemctl edit ollama

Version du 2 mai 2026 à 11:01

Source github

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

Commandes

# 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