La première fois que j’ai lancé Ollama, j’ai tout de suite aimé cette simplicité d’utilisation : une simple commande et on fait tourner un modèle de langage en local.
Mais au fil de mes tests et de mes téléchargements, mon disque dur principal a rapidement commencé à saturer (les modèles de plusieurs gigaoctets s’accumulent vite !). C’est là que j’ai dû me pencher sérieusement sur la façon dont Ollama gère ses fichiers.
Voici les points essentiels à garder en tête pour garder le contrôle sur votre espace disque :
- Emplacement par défaut : Les modèles sont stockés dans un dossier masqué propre à chaque système d’exploitation.
- Structure intelligente : Ollama n’enregistre pas de simples fichiers de modèles bruts ; il utilise un système de calques et de blocs (blobs) pour éviter de télécharger deux fois les mêmes données.
- Migration facile : On peut déplacer tout ce stockage vers un autre disque dur en configurant une variable d’environnement appelée
OLLAMA_MODELS. - Nettoyage automatique : Supprimer manuellement des fichiers dans les dossiers système d’Ollama est une mauvaise idée. Mieux vaut utiliser les commandes de suppression et redémarrer l’application pour laisser le nettoyage automatique faire son travail.
Où se cachent vos modèles par défaut ?
Par défaut, Ollama enregistre tous les modèles téléchargés dans un dossier caché spécifique à votre système d’exploitation.
- macOS :
~/.ollama/models - Linux :
/usr/share/ollama/.ollama/models(si vous l’avez installé via Snap ou certains gestionnaires de paquets spécifiques, le chemin peut aussi être/var/lib/ollama/.ollama/models) - Windows :
C:\Users\<username>\.ollama\models
Sous Windows, comme le dossier commence par un point (.ollama), il est souvent masqué par l’Explorateur de fichiers. Pour y accéder en un clin d’œil, il suffit d’ouvrir la boîte de dialogue Exécuter (touches Windows + R), de coller la ligne suivante et de valider :
%USERPROFILE%\.ollama\models
Si vous cherchez les composants du logiciel en eux-mêmes plutôt que les fichiers de modèles, sachez que Windows sépare les choses ainsi :
- Exécutables de l’application :
%LOCALAPPDATA%\Programs\Ollama(ce qui équivaut généralement àC:\Users\<Username>\AppData\Local\Programs\Ollama) - Journaux d’activité (Logs) et configurations :
%LOCALAPPDATA%\Ollama
Sur Linux, les fichiers du logiciel se trouvent à d’autres endroits bien définis :
- Exécutable de l’application :
/usr/local/bin/ollamaou/usr/bin/ollama - Fichier de service Systemd :
/etc/systemd/system/ollama.service
Pour connaître exactement l’espace disque consommé par vos modèles sur Linux, vous pouvez ouvrir votre terminal et lancer cette commande :
du -sh /usr/share/ollama/.ollama/models
Sous le capot : le système de stockage d’Ollama
Ollama ne se contente pas de stocker des fichiers de modèles classiques. Il s’inspire du fonctionnement de Docker en utilisant un système de couches adressables par leur contenu. C’est l’explication logique derrière ces noms de fichiers bizarres et incompréhensibles que l’on trouve dans nos dossiers.
Dans le dossier models, Ollama sépare chaque grand modèle de langage (LLM) en deux éléments distincts :
models/
├── manifests/
│ └── registry.ollama.ai/
│ └── library/
│ ├── llama3/
│ │ └── latest
│ └── qwen2.5/
│ └── 7b
└── blobs/
├── sha256-1a2b3c...
└── sha256-4d5e6f...
1. Le dossier manifests (les plans de montage)
Ce dossier contient de petits fichiers texte au format JSON parfaitement lisibles par un humain. Sa structure imite celle d’un dépôt en ligne (comme registry.ollama.ai/library/llama3/latest). Le rôle d’un fichier manifeste est d’agir comme une notice d’assemblage : il indique précisément à Ollama quels calques (layers) il doit combiner pour faire tourner un modèle donné.
Il ne contient pas le code ou les poids du modèle en lui-même, mais une liste d’empreintes cryptographiques SHA256 pointant vers des fichiers du dossier blobs.
2. Le dossier blobs (les données brutes)
C’est ici que se trouve le gros des données. Les fichiers portent des noms incompréhensibles (comme sha256-74701a8c35...) car ils sont nommés d’après leur propre empreinte de sécurité SHA256. Ollama y stocke les différentes strates du modèle :
- Les poids du modèle (Model Weights) : Les paramètres fondamentaux de l’IA, pesant souvent plusieurs gigaoctets (généralement au format GGUF).
- Le prompt système et les templates : Les instructions de base qui dictent au modèle comment structurer ses réponses selon le contexte.
- La licence et les fichiers de configuration : Les règles d’usage et les paramètres techniques des calques système.
La magie de la déduplication
Pourquoi s’embêter avec une telle architecture ? Tout simplement pour économiser de la place (et éviter d’avoir un disque dur qui sature en quelques jours). En stockant les composants sous forme de couches uniques identifiées par leur empreinte, Ollama évite les doublons.
Par exemple, si vous téléchargez llama3:latest, puis que vous téléchargez une version personnalisée affinée (fine-tuned) basée sur ce même Llama 3, Ollama ne va pas stocker deux fois les 4 Go de poids du modèle de base. Le manifeste de votre nouveau modèle va simplement pointer vers l’empreinte SHA256 du fichier de poids déjà présent sur votre machine. Seules les modifications et les instructions personnalisées (qui ne pèsent presque rien) seront téléchargées. Deux modèles distincts partagent ainsi le même fichier lourd sans aucun conflit.
Que se passe-t-il quand on supprime un modèle ?
Lorsque vous utilisez la commande de suppression d’Ollama, le processus est très propre :
- Ollama supprime immédiatement le fichier correspondant dans le dossier
manifests. - Il analyse ensuite les calques (blobs) référencés par ce manifeste maintenant disparu.
- Si un autre modèle installé sur votre machine a besoin de ces mêmes blocs de données, Ollama n’y touche pas afin de ne rien casser.
- Les fichiers de données lourds (les blobs) ne sont définitivement supprimés de votre disque dur que si plus aucun manifeste n’y fait référence.
Comment nettoyer proprement son stockage
Pour récupérer de la place en toute sécurité, il faut laisser faire le système de nettoyage automatique d’Ollama plutôt que d’aller supprimer des fichiers à tâtons dans le dossier blobs au risque de corrompre vos modèles actifs.
Étape 1 : Déclencher le nettoyage automatique d’Ollama
Ollama possède un mécanisme de nettoyage (ou “garbage collection”) conçu pour balayer les calques inutilisés, les fichiers temporaires et les téléchargements interrompus. Cependant, cette routine ne s’exécute qu’au démarrage du serveur Ollama. Pour forcer ce nettoyage, il faut donc redémarrer l’application :
- Sous Windows ou macOS : Faites un clic droit sur l’icône d’Ollama (la petite tête de lama) dans la barre des tâches ou la barre de menus, puis cliquez sur Quit. Relancez ensuite l’application normalement.
- Sous Linux : Arrêtez le service avec
sudo systemctl stop ollama, puis relancez-le avecsudo systemctl start ollama.
Dès son démarrage, Ollama va scanner le dossier manifests, faire la liste des blobs indispensables et supprimer instantanément tous les fichiers de données qui ne sont plus liés à rien.
Étape 2 : Supprimer les modèles personnalisés obsolètes
Si vous avez créé des modèles personnalisés à l’aide d’un Modelfile et que vous ne les utilisez plus, ils continuent de verrouiller de gros fichiers de base sur votre disque. Pour faire le ménage :
Affichez tous les modèles actuellement enregistrés sur votre système :
ollama list
Supprimez ensuite les modèles obsolètes ou expérimentaux :
ollama rm <nom-exact-du-modele>
Une fois le manifeste du modèle supprimé, les fichiers de poids volumineux correspondants seront nettoyés automatiquement lors du prochain redémarrage de l’application (comme vu à l’étape 1).
Étape 3 : La méthode radicale (remise à zéro)
Si vous pensez que vos fichiers de stockage sont corrompus, ou qu’un gros téléchargement interrompu consomme de l’espace de manière anormale, vous pouvez faire une réinitialisation complète :
- Fermez complètement l’application Ollama.
- Accédez au dossier parent d’Ollama dans votre explorateur de fichiers (
~/.ollamasur Mac,%USERPROFILE%\.ollamasur Windows, ou/usr/share/ollama/.ollamasur Linux). - Supprimez complètement le dossier nommé
models. - Relancez Ollama. L’application va recréer une structure de dossiers vide et propre. Il ne vous restera plus qu’à retélécharger les modèles dont vous avez réellement besoin.
Comment migrer vos modèles vers un autre disque
Si votre disque principal sature, la meilleure solution consiste à déporter les modèles vers un autre lecteur (un disque dur externe ou une partition dédiée plus spacieuse). Voici comment faire, étape par étape, selon votre système d’exploitation.
🐧 Pour Linux (Service Systemd)
Le service Ollama s’exécute en arrière-plan sous l’identité d’un utilisateur système dédié nommé ollama. Lors du transfert des fichiers, il est donc impératif de conserver les droits d’accès pour cet utilisateur.
Commencez par arrêter le service Ollama :
sudo systemctl stop ollama
Créez le nouveau répertoire sur votre autre disque et copiez-y vos données existantes :
sudo mkdir -p /mnt/new_drive/ollama_models
sudo cp -r /usr/share/ollama/.ollama/models /mnt/new_drive/ollama_models/
Attribuez la propriété de ce nouveau dossier à l’utilisateur système d’Ollama (c’est l’étape cruciale pour éviter les blocages) :
sudo chown -R ollama:ollama /mnt/new_drive/ollama_models
Modifiez ensuite la configuration du service Systemd :
sudo systemctl edit ollama.service
Dans l’éditeur de texte qui s’ouvre, insérez la ligne suivante dans l’espace vide prévu à cet effet, puis enregistrez et fermez :
[Service]
Environment="OLLAMA_MODELS=/mnt/new_drive/ollama_models/models"
Rechargez la configuration de Systemd et relancez le service :
sudo systemctl daemon-reload
sudo systemctl start ollama
Pour vérifier que tout s’est bien passé, tapez ollama list. Si vos modèles s’affichent correctement, vous pouvez supprimer l’ancien dossier en toute sécurité :
sudo rm -rf /usr/share/ollama/.ollama/models
🍏 Pour macOS
Sur Mac, Ollama s’exécute avec les privilèges de votre session utilisateur classique. La configuration passe donc par la personnalisation de votre profil de terminal.
Quittez Ollama en cliquant sur l’icône de la barre des menus et en choisissant Quit Ollama.
Créez le nouveau dossier et copiez-y vos modèles existants :
mkdir -p /Volumes/ExternalDrive/OllamaModels
cp -r ~/.ollama/models /Volumes/ExternalDrive/OllamaModels/
Ouvrez ensuite le fichier de configuration de votre terminal (généralement .zshrc sur les versions récentes de macOS) :
nano ~/.zshrc
Ajoutez cette ligne tout à la fin du fichier, puis sauvegardez (Ctrl + O) et quittez (Ctrl + X) :
export OLLAMA_MODELS="/Volumes/ExternalDrive/OllamaModels/models"
Appliquez instantanément le changement dans votre terminal actuel :
source ~/.zshrc
Relancez l’application Ollama depuis votre dossier Applications, puis validez le bon fonctionnement avec la commande ollama list. Si tout est correct, vous pouvez détruire l’ancien dossier local ~/.ollama/models.
🪟 Pour Windows
Quittez complètement Ollama depuis la zone de notification de la barre des tâches (clic droit sur l’icône de lama près de l’horloge, puis Quit).
Créez votre nouveau dossier de stockage sur le lecteur de votre choix (par exemple D:\OllamaModels).
Ouvrez votre dossier d’origine en tapant Windows + R puis %USERPROFILE%\.ollama. Copiez le dossier models qui s’y trouve et collez-le dans votre nouvel emplacement (vous obtiendrez ainsi D:\OllamaModels\models).
Déclarez maintenant la nouvelle variable d’environnement :
- Ouvrez le menu Démarrer et tapez “variables d’environnement”.
- Sélectionnez Modifier les variables d’environnement pour votre compte (ou Modifier les variables d’environnement système).
- Dans la fenêtre qui s’affiche, cliquez sur le bouton Variables d’environnement… tout en bas à droite.
- Dans la section supérieure (Variables utilisateur), cliquez sur Nouvelle….
- Saisissez les informations suivantes :
- Nom de la variable :
OLLAMA_MODELS - Valeur de la variable :
D:\OllamaModels\models
- Nom de la variable :
- Validez par OK sur toutes les fenêtres ouvertes pour enregistrer la modification.
Relancez Ollama depuis le menu Démarrer. Ouvrez une invite de commandes (cmd) ou un terminal PowerShell et saisissez :
ollama list
Si la liste de vos modèles s’affiche, Ollama utilise bien votre nouveau disque. Vous pouvez supprimer l’ancien dossier C:\Users\<Your-Username>\.ollama\models pour libérer l’espace sur votre disque C:.
Résoudre les erreurs de permission après une migration
Déplacer un dossier de stockage d’un disque à un autre peut parfois provoquer des erreurs de droit d’accès au redémarrage d’Ollama. Voici comment régler ces problèmes selon votre système.
Linux
Le service Ollama tourne avec son propre compte système (ollama). Si vous tentez d’écrire ou de lire dans votre dossier personnel (/home/username/...) ou sur un disque externe monté sans précaution, le service refusera de démarrer.
Pour corriger la propriété et les droits du dossier de destination, lancez :
sudo chown -R ollama:ollama /mnt/new_drive/ollama_models
sudo chmod -R 755 /mnt/new_drive/ollama_models
Assurez-vous également que les dossiers parents permettent au service d’accéder au dossier final. Si le point de montage principal est verrouillé, Ollama ne pourra pas le traverser :
sudo chmod 755 /mnt/new_drive
Si vous devez absolument stocker vos modèles dans votre espace utilisateur personnel (/home/), vous pouvez configurer le service d’arrière-plan pour qu’il s’exécute directement avec votre propre profil utilisateur :
- Lancez la commande
sudo systemctl edit ollama.service. - Saisissez vos identifiants dans la section
[Service]:[Service] User=votre_nom_utilisateur_linux Group=votre_nom_de_groupe_linux - Prenez en compte les modifications avec
sudo systemctl daemon-reload && sudo systemctl restart ollama.
Windows
Sous Windows, les erreurs de droits proviennent souvent d’une faute de frappe dans le chemin, d’espaces invisibles dans la variable d’environnement, ou de tentatives de stockage dans des répertoires système protégés (comme C:\Program Files).
- Vérifiez qu’aucun espace ne s’est glissé au début ou à la fin de la valeur de votre variable d’environnement
OLLAMA_MODELS. - Assurez-vous que le chemin existe réellement sur votre machine. Si vous avez configuré
D:\OllamaModels\models, ouvrez l’explorateur pour vérifier que le dossier parentOllamaModelset le sous-dossiermodelsexistent bien physiquement. Ollama ne crée pas toujours les arborescences complexes automatiquement. - Si vous exécutez vos consoles de commande ou vos éditeurs de code en mode Administrateur, ils peuvent ne pas détecter vos variables utilisateur classiques. Pour y remédier, ajoutez la variable d’environnement
OLLAMA_MODELSdans la partie inférieure de la fenêtre (Variables système) plutôt que dans la partie supérieure (Variables utilisateur). Cela garantira l’accès quel que soit le niveau de privilège de l’outil qui appelle Ollama.
macOS
Sur Mac, les soucis d’accès proviennent principalement du système de bac à sable (sandboxing) ou de l’absence de rafraîchissement du profil de terminal.
- Donner l’Accès complet au disque : Allez dans les Réglages Système > Confidentialité et sécurité > Accès complet au disque. Cochez la case pour votre Terminal (et pour l’application Ollama si elle figure dans la liste).
- Rafraîchir la configuration de votre terminal : Si vous venez de modifier votre fichier
.zshrc, les anciennes autorisations restent souvent en cache tant que vous ne forcez pas le rechargement. N’oubliez pas de lancersource ~/.zshrcavant de démarrer l’application.
Aller plus loin : les variables d’environnement indispensables
En plus de OLLAMA_MODELS, Ollama propose d’autres variables d’environnement très utiles pour ajuster son comportement, optimiser la gestion de sa mémoire ou configurer son réseau. Vous pouvez obtenir la liste complète des options à tout moment via la commande ollama serve --help.
| Nom de la variable | Rôle / Description | Valeur par défaut |
|---|---|---|
| OLLAMA_MODELS | Modifie l’emplacement de stockage des calques de vos modèles. | ~/.ollama/models |
| OLLAMA_HOST | Définit l’adresse IP et le port d’écoute du serveur d’API local d’Ollama. Utile pour y accéder depuis l’extérieur en le réglant sur 0.0.0.0. | 127.0.0.1:11434 |
| OLLAMA_ORIGINS | Liste d’origines HTTP (CORS) autorisées à se connecter à l’API (pour autoriser les applications web et interfaces tierces). Définir sur * pour tout autoriser. | Accès local restreint |
| OLLAMA_KEEP_ALIVE | Durée pendant laquelle un modèle reste chargé dans la mémoire de votre carte graphique (VRAM) après une requête. Utiliser -1 pour le laisser chargé indéfiniment, ou 0 pour le décharger immédiatement. | 5m (5 minutes) |
| OLLAMA_NUM_PARALLEL | Nombre maximal de requêtes que le serveur peut traiter en parallèle simultanément. | 1 |
| OLLAMA_MAX_LOADED_MODELS | Nombre maximum de modèles différents pouvant être chargés en même temps en mémoire. | 0 (géré dynamiquement selon la VRAM libre) |
| OLLAMA_MAX_QUEUE | Nombre maximal de requêtes d’inférence mises en attente lorsque le serveur est saturé. | 512 |
| OLLAMA_LOAD_TIMEOUT | Durée maximale d’attente pour le chargement d’un modèle lourd en mémoire avant d’abandonner. | 5m (5 minutes) |
| OLLAMA_FLASH_ATTENTION | Active l’accélération Flash Attention pour optimiser l’utilisation de la mémoire sur les longs contextes. | Désactivé par défaut |
| OLLAMA_DEBUG | Force le serveur en arrière-plan à générer des journaux d’activité extrêmement détaillés pour le diagnostic. | 0 (Désactivé) |
| OLLAMA_NOPRUNE | Désactive le nettoyage automatique des fichiers inutilisés et des téléchargements corrompus lors du démarrage du serveur. | Désactivé par défaut |
| OLLAMA_SCHED_SPREAD | Force la répartition égale des couches de calcul sur toutes les puces graphiques disponibles (dans le cadre d’une configuration multi-GPU). | Désactivé par défaut |
| OLLAMA_GPU_OVERHEAD | Réserve un tampon de sécurité de VRAM (exprimé en octets) auquel Ollama ne touchera pas pour préserver le système. | Non défini |
| OLLAMA_TMPDIR | Chemin vers le répertoire temporaire utilisé pour décompresser et traiter les modèles. | Dossier temporaire système |
| OLLAMA_LLM_LIBRARY | Permet de forcer manuellement le moteur de calcul (backend d’exécution) au lieu de laisser Ollama le détecter automatiquement. | Détection automatique |