Lexique · Frameworks / outils IA

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.

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.

  1. 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.

  2. 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.

  3. 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é.

  4. 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.

  5. 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.

Exemple : de la ligne de commande à l'API

Une fois Ollama installé, les commandes essentielles tiennent en quelques lignes :

bash
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 :

bash
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 :

python
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.

dockerfile
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.
"""
bash
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èreOllamaLM StudiovLLM
InterfaceLigne de commande et APIApplication graphique et serveur localServeur et API
PublicDéveloppeursUtilisateurs et développeursÉquipes plateforme et MLOps
MatérielCPU, GPU, Apple SiliconCPU, GPU, Apple SiliconServeurs GPU
Format de modèlesGGUFGGUF, MLX sur MacPoids du Hub et formats quantifiés GPU
Charge simultanéeFaible à modéréeFaibleÉlevée
Usage typePrototype, outil local, intégrationExploration de modèlesProduction 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.

Pertinent si

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.
Moins adapté si

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.

Les concepts à connaître pour bien utiliser Ollama

Quelques notions permettent de choisir le bon modèle et de comprendre ses performances en local.

Ressources pour approfondir Ollama

Trois articles pour installer Ollama, le comparer et lui ajouter une interface.

Questions fréquentes

Questions fréquentes

Oui. Ollama est un logiciel open source sous licence MIT, et les modèles de sa bibliothèque se téléchargent gratuitement. Il faut en revanche vérifier la licence de chaque modèle, qui peut encadrer certains usages commerciaux.

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