Ollama : définition, fonctionnement et usage en local
L'outil open source qui fait tourner des modèles de langage ouverts sur votre propre ordinateur, en une commande : fonctionnement, CLI et API, Modelfile, quantization et limites en production.
Par Équipe Blent· Mis à jour le · 14 min de lecture· Niveau débutant
Ollama en bref
- Type
- Outil open source d'exécution locale de LLM
- Licence
- MIT
- Systèmes
- macOS, Linux, Windows
- Moteur
- Écosystème llama.cpp, format GGUF
- Interfaces
- CLI et API REST (port 11434)
- Personnalisation
- Fichier Modelfile
Définition : Ollama
Ollama est un outil open source qui permet de télécharger et d'exécuter des modèles de langage à poids ouverts directement sur un ordinateur personnel ou un serveur, sous macOS, Linux et Windows. Il s'utilise en ligne de commande et expose une API REST locale, compatible avec celle d'OpenAI, que des applications peuvent appeler comme un service cloud. Ollama s'appuie sur l'écosystème llama.cpp et sur le format GGUF, avec des modèles quantifiés qui tiennent dans la mémoire d'un portable. Un fichier de configuration, le Modelfile, permet de personnaliser un modèle. Ollama est surtout utilisé pour le prototypage, l'usage hors ligne et la confidentialité des données.
En une phrase : Ollama fait tourner un LLM ouvert sur votre machine en une commande, avec une API locale prête à l'emploi.
Dans cette définition
Qu'est-ce qu'Ollama ?
Ollama est un outil qui transforme un ordinateur en serveur de modèles de langage. Une commande suffit pour télécharger un LLM à poids ouverts et discuter avec lui dans le terminal ; en arrière-plan, une API locale permet à n'importe quelle application de l'interroger comme elle interrogerait un service cloud.
Apparu en 2023, au moment où les modèles ouverts de type Llama devenaient utilisables sur du matériel grand public, Ollama a repris une idée familière aux développeurs : celle de Docker. On « tire » un modèle d'une bibliothèque comme on tire une image, on le lance avec run, et on le personnalise avec un fichier de configuration, le Modelfile, dont la syntaxe rappelle celle d'un Dockerfile. L'outil est écrit en Go et distribué sous licence MIT.
Sous le capot, Ollama s'appuie sur l'écosystème de llama.cpp, la bibliothèque d'inférence en C/C++ qui a rendu possible l'exécution de LLM sur CPU et sur les puces Apple. Les modèles sont stockés au format GGUF, généralement dans une version quantifiée, ce qui réduit leur taille d'un facteur trois à quatre par rapport à la version 16 bits. C'est ce qui permet de faire tourner un modèle de plusieurs milliards de paramètres sur un ordinateur portable.
À retenir : Ollama est pensé pour le poste de travail et le prototypage. Il rend l'exécution locale d'un LLM triviale, mais ce n'est pas un serveur conçu pour des centaines d'utilisateurs simultanés.
Exemple : de la ligne de commande à l'API
Une fois Ollama installé, les commandes essentielles tiennent en quelques lignes :
ollama pull llama3.2 # télécharge le modèle
ollama run llama3.2 # ouvre une conversation dans le terminal
ollama list # liste les modèles installés
ollama ps # affiche les modèles chargés en mémoire
ollama rm llama3.2 # supprime un modèle
Le service écoute sur http://localhost:11434. L'API REST native se teste avec curl :
curl http://localhost:11434/api/chat -d '{
"model": "llama3.2",
"messages": [{"role": "user", "content": "Explique la quantization en deux phrases."}],
"stream": false
}'
Côté Python, on peut utiliser la bibliothèque officielle ou, pour garder un code portable, le SDK OpenAI pointé vers l'endpoint compatible :
from openai import OpenAI
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama") # clé factice
response = client.chat.completions.create(
model="llama3.2",
messages=[{"role": "user", "content": "Donne trois idées de projets avec un LLM local."}],
)
print(response.choices[0].message.content)
Le même code fonctionnera plus tard avec une API cloud ou un serveur vLLM en changeant simplement base_url et model. C'est l'une des raisons pour lesquelles Ollama est si utilisé pour prototyper un RAG ou un agent avant de choisir l'infrastructure définitive. Notre tutoriel Ollama : exécuter des LLM en local détaille l'installation et le choix des modèles.
Le Modelfile : personnaliser un modèle
Le Modelfile décrit un modèle dérivé d'un modèle existant. Il ne réentraîne rien : il fixe des paramètres et des instructions appliqués à chaque requête.
FROM llama3.2
PARAMETER temperature 0.3
PARAMETER num_ctx 8192
SYSTEM """
Tu es l'assistant du support interne. Tu réponds en français,
en trois phrases maximum, et tu indiques quand tu ne sais pas.
"""
ollama create support-fr -f Modelfile
ollama run support-fr
FROM désigne le modèle de base (un nom de la bibliothèque ou un fichier GGUF local), PARAMETER règle la génération (température, taille de contexte en tokens, séquences d'arrêt) et SYSTEM définit le prompt système. D'autres instructions permettent de modifier le modèle de chat ou d'ajouter un adaptateur LoRA.
Les principaux cas d'usage d'Ollama
Ollama est l'outil de référence dès qu'un LLM doit tourner sur une machine que l'on contrôle, sans infrastructure lourde.
Prototypage d'applications
Développer un RAG ou un agent contre une API locale, sans clé ni facturation à l'usage.
Données confidentielles
Traiter des documents internes ou du code propriétaire sans qu'ils quittent le poste.
Travail hors ligne
Disposer d'un assistant fonctionnel sans connexion Internet, une fois le modèle téléchargé.
Assistant de code local
Brancher un modèle de code sur l'éditeur via une extension comme Continue.
Comparaison de modèles
Tester plusieurs modèles ouverts sur ses propres cas avant de choisir celui à déployer.
Formation et expérimentation
Comprendre le fonctionnement des LLM, des paramètres de génération et de la quantization en manipulant.
Quels sont les avantages d'Ollama ?
Le succès d'Ollama tient à sa simplicité : il rend l'exécution locale d'un LLM aussi facile que le lancement d'un conteneur.
- Installation et premier modèle en quelques minutes, sans configuration de dépendances GPU.
- Fonctionne sur CPU, sur GPU NVIDIA ou AMD et sur les puces Apple Silicon.
- Données traitées localement : aucun prompt n'est envoyé à un fournisseur tiers.
- API compatible OpenAI, intégrée nativement par LangChain, LlamaIndex et de nombreuses interfaces.
- Large bibliothèque de modèles ouverts prêts à l'emploi, déjà quantifiés.
- Gratuit et open source, sans coût proportionnel au nombre de tokens.
Quelles sont les limites d'Ollama ?
Ollama est pensé pour un poste ou un petit serveur : ses compromis deviennent visibles dès que la charge augmente.
- Débit limité face à de nombreux utilisateurs simultanés, comparé à un moteur comme vLLM.
- Les modèles quantifiés perdent un peu de qualité par rapport à leur version complète.
- Les modèles tenant sur un portable restent en retrait des meilleurs modèles propriétaires.
- L'API n'intègre pas d'authentification : l'exposer sur un réseau impose un reverse proxy.
- Les performances dépendent fortement de la mémoire disponible, GPU ou unifiée.
- Pas de fine-tuning : Ollama exécute des modèles, il ne les entraîne pas.
GGUF et quantization : pourquoi un LLM tient sur un portable
Un modèle de 8 milliards de paramètres stocké en 16 bits pèse environ 16 Go, hors de portée de la plupart des portables. La quantization réduit la précision de chaque poids, par exemple à 4 bits, et ramène ce même modèle autour de 5 Go, avec une perte de qualité souvent modérée.
Le format GGUF, issu de l'écosystème llama.cpp, regroupe en un seul fichier les poids quantifiés, le tokenizer et les métadonnées du modèle. Les noms des variantes indiquent le niveau de quantization : Q4_K_M (4 bits, bon compromis courant), Q8_0 (8 bits, plus fidèle et plus lourd), etc. Dans Ollama, une étiquette de modèle comme llama3.2:3b ou qwen2.5:7b correspond par défaut à une version quantifiée choisie pour son équilibre entre taille et qualité.
En pratique, la règle est simple : le modèle doit tenir dans la mémoire du GPU (ou dans la mémoire unifiée d'un Mac) pour être rapide. S'il déborde, une partie du calcul bascule sur le CPU et la vitesse chute nettement.
Ollama, LM Studio et vLLM : quel outil pour quel usage ?
| Critère | Ollama | LM Studio | vLLM |
|---|---|---|---|
| Interface | Ligne de commande et API | Application graphique et serveur local | Serveur et API |
| Public | Développeurs | Utilisateurs et développeurs | Équipes plateforme et MLOps |
| Matériel | CPU, GPU, Apple Silicon | CPU, GPU, Apple Silicon | Serveurs GPU |
| Format de modèles | GGUF | GGUF, MLX sur Mac | Poids du Hub et formats quantifiés GPU |
| Charge simultanée | Faible à modérée | Faible | Élevée |
| Usage type | Prototype, outil local, intégration | Exploration de modèles | Production multi-utilisateurs |
Pour le détail du match entre les deux outils locaux, voir notre comparatif LM Studio vs Ollama.
Ollama en production : les limites à connaître
Rien n'empêche d'installer Ollama sur un serveur, et la variable OLLAMA_HOST permet d'écouter sur le réseau plutôt qu'en local. Plusieurs points doivent cependant être anticipés :
- Sécurité : l'API n'a pas d'authentification intégrée. Elle doit être placée derrière un reverse proxy qui contrôle les accès, jamais exposée directement.
- Concurrence : Ollama peut traiter quelques requêtes en parallèle (réglable via
OLLAMA_NUM_PARALLEL), mais son ordonnancement n'est pas conçu pour des dizaines d'utilisateurs simultanés. - Mémoire : les modèles sont chargés et déchargés à la demande ; un temps de chargement s'ajoute à la première requête après une période d'inactivité, sauf à ajuster
OLLAMA_KEEP_ALIVE. - Mise à l'échelle : Ollama fonctionne sur un seul nœud ; répartir la charge entre plusieurs machines demande une couche supplémentaire.
Pour une équipe réduite ou un outil interne, ces limites sont souvent acceptables. Au-delà, la bonne pratique consiste à garder Ollama pour le développement et à servir le même modèle avec vLLM en production.
Quand utiliser Ollama ?
Le bon critère est le nombre d'utilisateurs et l'environnement d'exécution : un poste ou un petit serveur, ou une plateforme de production.
Ollama est adapté
- Vous développez ou testez une application LLM sur votre poste.
- Vos données ne doivent pas quitter la machine.
- Vous devez travailler hors ligne.
- Quelques utilisateurs seulement interrogent le modèle.
Mieux vaut un autre outil
- Des dizaines d'utilisateurs simultanés sollicitent le modèle : préférez vLLM.
- Vous avez besoin de la qualité des plus grands modèles propriétaires.
- Vous devez fine-tuner le modèle sur vos données.
- Votre machine manque de mémoire pour un modèle utile.
Outils et alternatives autour d'Ollama
Ollama s'intègre facilement à des interfaces, des frameworks et des éditeurs, et se compare à d'autres solutions d'exécution.
- Moteur
llama.cpp
Bibliothèque C/C++ d'inférence sur CPU et GPU, à l'origine du format GGUF.
- Alternative
LM Studio
Application de bureau avec interface graphique pour exécuter des modèles en local.
- Interface
Open WebUI
Interface web de type ChatGPT qui se connecte à Ollama.
- Éditeur
Continue
Extension open source d'assistance au code, compatible avec les modèles d'Ollama.
- Orchestration
LangChain
Intégration native pour construire RAG et agents sur un modèle local.
- Orchestration
LlamaIndex
Connecteurs pour utiliser Ollama comme modèle de génération et d'embedding.
- Production
vLLM
Moteur de serving GPU pour passer d'un prototype local à la production.
- Déploiement
Docker
Image officielle pour exécuter Ollama dans un conteneur.
Les concepts à connaître pour bien utiliser Ollama
Quelques notions permettent de choisir le bon modèle et de comprendre ses performances en local.
- QuantizationLa réduction de précision des poids qui permet de faire tenir un modèle sur un portable.
- SLMLes petits modèles de langage, particulièrement adaptés à l'exécution locale.
- LLMLes grands modèles de langage qu'Ollama exécute.
- Fenêtre de contexteLa quantité de texte que le modèle peut traiter, réglable dans Ollama.
- RAGL'architecture souvent prototypée en local avec Ollama et une base vectorielle.
- TokenL'unité de texte générée, dont la vitesse mesure les performances locales.
Ressources pour approfondir Ollama
Trois articles pour installer Ollama, le comparer et lui ajouter une interface.
- Tutoriel
Ollama : exécuter des LLM en local sur son propre PC
Installation, choix des modèles et premiers usages pas à pas.
Lire l'article - Comparatif
LM Studio vs Ollama : exécuter des LLM en local
Interface graphique ou ligne de commande : quel outil pour quel profil ?
Lire l'article - Interface
OpenWebUI : une interface pour vos modèles d'IA
Ajouter une interface conversationnelle complète à vos modèles locaux.
Lire l'article
Questions fréquentes
Questions fréquentes
Expertise
À propos de l'auteur
Équipe Blent
Les ingénieurs et mentors Blent conçoivent, évaluent et mettent en production des applications LLM, et forment chaque année des centaines de professionnels à l'IA générative.
Sources et méthodologie
- Documentation officielle d'Ollama (CLI, API REST, Modelfile)
- Documentation du projet llama.cpp et du format GGUF
- Retours d'expérience des projets et formations Blent
Comment fonctionne Ollama ?
Ollama masque la complexité de l'inférence locale derrière quelques commandes. Voici ce qui se passe entre l'installation et la première réponse.
Installer le service
Un installateur ou une commande unique met en place l'outil et un service d'arrière-plan qui écoute en local sur le port 11434.
Télécharger un modèle
La commande ollama pull récupère un modèle depuis la bibliothèque d'Ollama, généralement en version quantifiée au format GGUF, et le stocke sur le disque.
Charger en mémoire
À la première requête, le modèle est chargé sur le GPU s'il y en a un, sinon en mémoire vive pour le CPU. Il est déchargé automatiquement après une période d'inactivité.
Interagir
On discute avec le modèle dans le terminal avec ollama run, ou une application l'interroge via l'API REST locale ou son endpoint compatible OpenAI.
Personnaliser
Un Modelfile définit un modèle dérivé : modèle de base, paramètres de génération, taille de contexte, prompt système. La commande ollama create le rend disponible sous un nouveau nom.