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.logSur les systèmes Linux utilisant systemd, vous pouvez trouver les journaux avec cette commande :
shell
journalctl -u ollama --no-pager --follow --pager-endLorsque 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%\Ollamapour afficher les journaux. Les journaux serveur les plus récents se trouvent dansserver.loget les journaux plus anciens dansserver-#.logexplorer %LOCALAPPDATA%\Programs\Ollamapour parcourir les binaires (le programme d'installation ajoute ce chemin au PATH de votre utilisateur)explorer %HOMEPATH%\.ollamapour parcourir l'emplacement où sont stockés les modèles et la configurationexplorer %TEMP%où les fichiers exécutables temporaires sont stockés dans un ou plusieurs répertoiresollama*
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 serveVous pouvez voir les fonctionnalités prises en charge par votre CPU avec la commande suivante.
shell
cat /proc/cpuinfo| grep flags | head -1Installer 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 shLinux 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_uvmpuissudo 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=50et réessayez pour obtenir des journaux de diagnostic plus détaillés - Vérifiez les erreurs dans dmesg avec
sudo dmesg | grep -i nvrmetsudo 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èmesOLLAMA_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 amdgpuetsudo 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.