Ollama : faire tourner un LLM en local sur son PC
Installer Ollama, choisir un modèle adapté à sa RAM et à son GPU, l'appeler depuis son code et savoir où s'arrêtent les modèles locaux face aux API cloud.
Chaque requête envoyée à ChatGPT ou à une API d'IA part sur les serveurs d'une entreprise américaine, coûte quelques fractions de centime, et nécessite une connexion. Pour discuter de la météo, aucune importance. Pour résumer des contrats clients, analyser du code propriétaire ou automatiser un traitement sur des milliers de documents, chacun de ces trois points peut devenir bloquant.
Ollama est un logiciel open-source qui télécharge et exécute des modèles de langage directement sur votre ordinateur. Une commande pour installer, une commande pour lancer un modèle, et une API locale pour l'utiliser depuis n'importe quel programme. Pas de compte, pas d'abonnement, et les données ne quittent jamais la machine.
Installer Ollama
Sur macOS et Windows, un installateur classique est disponible sur le site officiel. Sur Linux :
curl -fsSL https://ollama.com/install.sh | shLe script installe Ollama comme service système, qui écoute sur http://localhost:11434. Il détecte automatiquement les cartes graphiques NVIDIA et AMD compatibles.
Premier modèle :
ollama run llama3.2Ollama télécharge le modèle (environ 2 Go pour celui-ci), puis ouvre une conversation dans le terminal. C'est tout. On quitte avec /bye.
Les commandes du quotidien :
ollama pull qwen2.5:7b # télécharger un modèle sans le lancer
ollama list # modèles installés
ollama ps # modèles chargés en mémoire
ollama rm llama3.2 # supprimer un modèle
ollama show qwen2.5:7b # détails : taille, contexte, licenceChoisir un modèle selon sa machine
C'est la question centrale. Un modèle doit tenir en mémoire, idéalement dans la mémoire du GPU (VRAM), sinon dans la RAM, avec des performances bien plus faibles.
La taille d'un modèle s'exprime en milliards de paramètres (le « 7b » de qwen2.5:7b). Ollama fournit par défaut des versions quantifiées : les poids sont compressés sur 4 bits environ, ce qui divise la taille par quatre avec une perte de qualité modérée.
| Taille du modèle | Mémoire nécessaire (environ) | Matériel typique |
|---|---|---|
| 1 à 3B | 2 à 3 Go | N'importe quel PC récent, même sans GPU |
| 7 à 8B | 5 à 6 Go | GPU 8 Go, ou Mac avec 16 Go de mémoire unifiée |
| 12 à 14B | 9 à 10 Go | GPU 12 Go, ou Mac 16-24 Go |
| 27 à 32B | 18 à 22 Go | GPU 24 Go, ou Mac 32 Go |
| 70B | 40 Go et plus | Plusieurs GPU, ou Mac 64 Go et plus |
Les Mac avec puce Apple Silicon sont particulièrement bien placés : leur mémoire unifiée sert à la fois de RAM et de VRAM, ce qui permet de charger de gros modèles sans carte graphique dédiée.
Quelques familles de modèles éprouvées dans la bibliothèque d'Ollama :
| Modèle | Points forts |
|---|---|
| Llama (Meta) | Généraliste, très répandu, nombreuses tailles |
| Qwen (Alibaba) | Excellent en code, en raisonnement et en multilingue, bon en français |
| Gemma (Google) | Très bon rapport qualité/taille, versions avec vision |
| Mistral | Entreprise française, bon en français |
| Qwen Coder | Spécialisé dans le code |
Les modèles évoluent tous les quelques mois. La bibliothèque Ollama liste les versions disponibles, avec leurs tailles. Pour démarrer sur une machine moyenne, un modèle de 7-8B est le meilleur compromis.
Un point souvent mal compris : sans GPU, ça marche quand même, mais lentement. Un modèle de 3B sur un processeur récent produit quelques mots par seconde, suffisant pour tester ou pour des traitements en arrière-plan. Pour une conversation fluide, un GPU change tout.
Utiliser l'API locale
Ollama expose une API HTTP. Depuis n'importe quel langage :
const res = await fetch('http://localhost:11434/api/chat', {
method: 'POST',
body: JSON.stringify({
model: 'qwen2.5:7b',
messages: [
{ role: 'system', content: 'Tu réponds en français, en trois phrases maximum.' },
{ role: 'user', content: "Explique ce qu'est un index en base de données." },
],
stream: false,
}),
})
const data = await res.json()
console.log(data.message.content)Plus intéressant encore : Ollama propose une API compatible OpenAI sur /v1. Tout code écrit pour l'API OpenAI fonctionne en changeant deux lignes.
import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'http://localhost:11434/v1',
apiKey: 'ollama', // requis par le SDK, ignoré par Ollama
})
const completion = await client.chat.completions.create({
model: 'qwen2.5:7b',
messages: [{ role: 'user', content: 'Donne trois idées de noms pour un blog tech.' }],
})
console.log(completion.choices[0].message.content)Les patterns présentés dans le guide de l'IA pour développeurs (prompts système, streaming, sorties structurées) s'appliquent donc presque à l'identique. Les modèles récents gèrent aussi l'appel d'outils et les sorties JSON, avec une fiabilité moindre que les gros modèles cloud.
Personnaliser un modèle avec un Modelfile
Un Modelfile crée une variante d'un modèle avec ses propres réglages et son prompt système, un peu comme un Dockerfile :
FROM qwen2.5:7b
PARAMETER temperature 0.3
PARAMETER num_ctx 8192
SYSTEM """
Tu es un assistant de revue de code. Tu réponds en français.
Tu signales d'abord les bugs, puis les problèmes de sécurité, puis le style.
"""ollama create relecteur -f Modelfile
ollama run relecteurLe paramètre num_ctx mérite attention : la taille du contexte par défaut est souvent limitée à quelques milliers de tokens pour économiser la mémoire. Pour analyser un long document, il faut l'augmenter, en gardant en tête que la consommation mémoire augmente avec.
Une interface graphique
Le terminal suffit pour tester, pas pour un usage quotidien. Open WebUI est l'interface la plus populaire : une application web proche de ChatGPT, avec historique, gestion de plusieurs modèles, envoi de documents et comptes utilisateurs.
docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui --restart always \
ghcr.io/open-webui/open-webui:mainL'interface est ensuite sur http://localhost:3000 et détecte l'instance Ollama de la machine.
Ce que les modèles locaux font bien, et moins bien
Il faut être honnête : un modèle de 7B sur un portable ne rivalise pas avec les meilleurs modèles cloud.
| Tâche | Modèle local 7-14B |
|---|---|
| Résumer, reformuler, traduire | Très bien |
| Classer, extraire des informations d'un texte | Très bien |
| Répondre à des questions simples, rédiger des brouillons | Bien |
| Autocomplétion de code, petites fonctions | Bien |
| Raisonnement long, problèmes complexes | Moyen |
| Gros refactoring, architecture logicielle | Faible |
| Connaissances factuelles précises | Faible, hallucine plus souvent |
La force des modèles locaux est ailleurs : les tâches répétitives et à fort volume. Classer 10 000 tickets, extraire des champs de 5 000 factures, taguer une bibliothèque de documents. Sur une API cloud, ça a un coût par appel. En local, c'est gratuit une fois la machine achetée, et le traitement peut tourner toute la nuit.
C'est aussi le cœur des pipelines d'analyse de documents et d'images, comme la combinaison d'un modèle de vision local et d'OpenCV présentée dans LLM open-source ou OpenCV pour analyser des images.
Vie privée et RGPD
C'est l'argument le plus solide. Avec Ollama, aucune donnée ne sort de la machine : pas de sous-traitant, pas de transfert hors de l'Union européenne, pas de question sur l'utilisation des données pour entraîner un modèle. Pour des données clients, médicales, RH ou juridiques, ça simplifie radicalement l'analyse de conformité décrite dans RGPD et IA.
Un piège à éviter : pour accéder à Ollama depuis une autre machine, on peut le faire écouter sur toutes les interfaces avec OLLAMA_HOST=0.0.0.0. L'API n'a aucune authentification. Exposée sur Internet, n'importe qui peut utiliser votre GPU, télécharger des modèles ou en supprimer. On la garde sur le réseau local, derrière un VPN, ou derrière un reverse proxy qui ajoute une authentification.
Aller plus loin : entraîner son propre modèle
Ollama exécute des modèles existants. L'étape suivante consiste à les brancher sur ses propres données : par RAG, pour qu'ils répondent à partir de vos documents, ou par fine-tuning, pour qu'ils apprennent un style, un vocabulaire métier ou un format de réponse précis. La formation « Entraîner son IA en local » couvre ce chemin, de la préparation des données au modèle utilisable dans Ollama.
Faut-il faire tourner un LLM en local ? Pour remplacer complètement les meilleurs modèles cloud, pas encore. Pour tout ce qui touche à des données sensibles, à des traitements en masse ou à l'apprentissage du fonctionnement réel de ces modèles, oui, sans hésiter. Ollama a réduit l'installation à une commande. Le seul vrai prérequis est désormais la mémoire de votre machine, et un modèle de 7B tourne déjà sur la plupart des ordinateurs vendus aujourd'hui.