Skip to content

Parfois, Ollama peut ne pas fonctionner comme prévu. L'une des meilleures façons de comprendre ce qui s'est passé est de consulter les journaux. Vous trouverez les journaux sur Mac en exécutant la commande :

shell
cat ~/.ollama/logs/server.log

Sur les systèmes Linux utilisant systemd, vous pouvez trouver les journaux avec cette commande :

shell
journalctl -u ollama --no-pager --follow --pager-end

Lorsque vous exécutez Ollama dans un conteneur, les journaux sont envoyés vers stdout/stderr dans le conteneur :

shell
docker logs <container-name>

(Utilisez docker ps pour trouver le nom du conteneur)

Si vous exécutez manuellement ollama serve dans un terminal, les journaux seront affichés dans ce terminal.

Lorsque vous exécutez Ollama sur Windows, il existe plusieurs emplacements différents. Vous pouvez les afficher dans la fenêtre de l'explorateur en appuyant sur <cmd>+R puis en saisissant :

  • explorer %LOCALAPPDATA%\Ollama pour afficher les journaux. Les journaux serveur les plus récents se trouvent dans server.log et les journaux plus anciens dans server-#.log
  • explorer %LOCALAPPDATA%\Programs\Ollama pour parcourir les binaires (le programme d'installation ajoute ce chemin au PATH de votre utilisateur)
  • explorer %HOMEPATH%\.ollama pour parcourir l'emplacement où sont stockés les modèles et la configuration
  • explorer %TEMP% où les fichiers exécutables temporaires sont stockés dans un ou plusieurs répertoires ollama*

Pour activer la journalisation de débogage supplémentaire afin de vous aider à résoudre les problèmes, quittez d'abord l'application en cours d'exécution depuis le menu de la barre des tâches, puis dans un terminal PowerShell :

powershell
$env:OLLAMA_DEBUG="1"
& "ollama app.exe"

Rejoignez le Discord pour obtenir de l'aide pour interpréter les journaux.

Bibliothèques LLM

Ollama inclut plusieurs bibliothèques LLM compilées pour différents GPU et fonctionnalités vectorielles de CPU. Ollama essaie de sélectionner la meilleure en fonction des capacités de votre système. Si cette détection automatique rencontre des problèmes, ou si vous rencontrez d'autres problèmes (par exemple des plantages de votre GPU), vous pouvez contourner ce problème en forçant l'utilisation d'une bibliothèque LLM spécifique. cpu_avx2 offrira les meilleures performances, suivie de cpu_avx, et la plus lente mais la plus compatible est cpu. L'émulation Rosetta sous macOS fonctionnera avec la bibliothèque cpu.

Dans le journal serveur, vous verrez un message qui ressemble à ceci (varie selon la version) :

Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]

Remplacement expérimental de bibliothèque LLM

Vous pouvez définir la variable OLLAMA_LLM_LIBRARY sur l'une des bibliothèques LLM disponibles pour contourner la détection automatique. Par exemple, si vous disposez d'une carte CUDA mais que vous souhaitez forcer l'utilisation de la bibliothèque LLM CPU avec prise en charge vectorielle AVX2, utilisez :

shell
OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serve

Vous pouvez voir les fonctionnalités prises en charge par votre CPU avec la commande suivante.

shell
cat /proc/cpuinfo| grep flags | head -1

Installer des versions anciennes ou préliminaires sur Linux

Si vous rencontrez des problèmes sur Linux et que vous souhaitez installer une version ancienne, ou si vous voulez essayer une version préliminaire avant sa publication officielle, vous pouvez indiquer au script d'installation quelle version installer.

shell
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.5.7 sh

Linux tmp noexec

Si votre système est configuré avec l'indicateur noexec sur l'emplacement où Ollama stocke ses fichiers exécutables temporaires, vous pouvez spécifier un emplacement alternatif en définissant la variable OLLAMA_TMPDIR sur un chemin accessible en écriture pour l'utilisateur qui exécute ollama. Par exemple : OLLAMA_TMPDIR=/usr/share/ollama/

Docker sous Linux

Si Ollama fonctionne initialement sur le GPU dans un conteneur Docker, mais passe ensuite sur le CPU après un certain temps avec des erreurs dans le journal serveur signalant des échecs de détection de GPU, vous pouvez résoudre ce problème en désactivant la gestion des cgroups systemd dans Docker. Modifiez le fichier /etc/docker/daemon.json sur l'hôte et ajoutez "exec-opts": ["native.cgroupdriver=cgroupfs"] à la configuration Docker.

Détection des GPU NVIDIA

Lors du démarrage d'Ollama, il répertorie les GPU présents dans le système pour déterminer leur compatibilité et la quantité de VRAM disponible. Parfois, cette détection ne parvient pas à trouver vos GPU. En général, l'utilisation des derniers pilotes donne les meilleurs résultats.

Dépannage des GPU NVIDIA sous Linux

Si vous utilisez un conteneur pour exécuter Ollama, assurez-vous d'avoir d'abord configuré l'environnement d'exécution du conteneur comme décrit dans docker

Parfois, Ollama peut rencontrer des difficultés pour initialiser le GPU. Lorsque vous consultez les journaux serveur, cela peut apparaître sous la forme de différents codes d'erreur, tels que "3" (non initialisé), "46" (périphérique indisponible), "100" (aucun périphérique), "999" (inconnu) ou d'autres. Les techniques de dépannage suivantes peuvent aider à résoudre le problème :

  • Si vous utilisez un conteneur, l'environnement d'exécution du conteneur fonctionne-t-il ? Essayez docker run --gpus all ubuntu nvidia-smi : si cela ne fonctionne pas, Ollama ne pourra pas détecter votre GPU NVIDIA.
  • Le pilote uvm est-il chargé ? sudo nvidia-modprobe -u
  • Essayez de recharger le pilote nvidia_uvm : sudo rmmod nvidia_uvm puis sudo modprobe nvidia_uvm
  • Essayez de redémarrer
  • Assurez-vous d'utiliser les derniers pilotes NVIDIA

Si aucune de ces solutions ne résout le problème, collectez des informations supplémentaires et ouvrez un ticket :

  • Définissez CUDA_ERROR_LEVEL=50 et réessayez pour obtenir des journaux de diagnostic plus détaillés
  • Vérifiez les erreurs dans dmesg avec sudo dmesg | grep -i nvrm et sudo dmesg | grep -i nvidia

Détection des GPU AMD

Sous Linux, l'accès aux GPU AMD nécessite généralement l'appartenance au groupe video et/ou render pour accéder au périphérique /dev/kfd. Si les permissions ne sont pas configurées correctement, Ollama le détectera et signalera une erreur dans le journal serveur.

Lorsque vous exécutez Ollama dans un conteneur, sur certaines distributions Linux et environnements d'exécution de conteneurs, le processus ollama peut être incapable d'accéder au GPU. Utilisez ls -lnd /dev/kfd /dev/dri /dev/dri/* sur le système hôte pour déterminer les ID de groupe numériques de votre système, et passez des arguments --group-add ... supplémentaires au conteneur pour qu'il puisse accéder aux périphériques requis. Par exemple, dans la sortie suivante crw-rw---- 1 0 44 226, 0 Sep 16 16:55 /dev/dri/card0, la colonne de l'ID de groupe est 44

Si vous rencontrez des problèmes pour que Ollama détecte correctement ou utilise votre GPU pour l'inférence, les éléments suivants peuvent aider à isoler la panne.

  • AMD_LOG_LEVEL=3 : activez les niveaux de journalisation d'information dans les bibliothèques AMD HIP/ROCm. Cela peut aider à afficher des codes d'erreur plus détaillés pour résoudre les problèmes
  • OLLAMA_DEBUG=1 : des informations supplémentaires seront signalées lors de la détection du GPU
  • Vérifiez les erreurs des pilotes amdgpu ou kfd dans dmesg avec sudo dmesg | grep -i amdgpu et sudo dmesg | grep -i kfd

Incompatibilité de version de pilote AMD

Si votre GPU AMD n'est pas détecté sous Linux et que les journaux serveur contiennent des messages comme :

msg="failure during GPU discovery" ... error="failed to finish discovery before timeout"
msg="bootstrap discovery took" duration=30s ...

Cela signifie généralement que le pilote de GPU AMD du système est trop ancien. Ollama inclut des bibliothèques ROCm 7 pour Linux qui nécessitent un pilote noyau ROCm 7 compatible. Si le système utilise un pilote plus ancien (ROCm 6.x ou antérieur), l'initialisation du GPU se bloquera pendant la détection des périphériques et finira par expirer, ce qui obligera Ollama à revenir au CPU.

Pour résoudre ce problème, mettez à niveau vers le pilote ROCm v7 à l'aide de l'utilitaire amdgpu-install depuis la documentation ROCm d'AMD. Après la mise à niveau, redémarrez le système et redémarrez Ollama.

Plusieurs GPU AMD

Si vous obtenez des réponses incohérentes lors du chargement de modèles sur plusieurs GPU AMD sous Linux, consultez le guide suivant :

Erreurs du terminal Windows

Les anciennes versions de Windows 10 (par exemple 21H1) présentent un bogue connu où le programme de terminal standard n'affiche pas correctement les caractères de contrôle. Cela peut entraîner l'affichage d'une longue chaîne de caractères comme ←[?25h←[?25l, parfois accompagnée de l'erreur The parameter is incorrect. Pour résoudre ce problème, veuillez mettre à jour vers Windows 10 22H1 ou une version plus récente.