Skip to Content
IAOllama — LLMs locaux

Ollama — LLMs locaux avec une CLI et une API OpenAI

Ollama permet d’exécuter des grands modèles de langage en local sur sa machine, sans clé API, sans dépendance cloud. La CLI gère le cycle de vie des modèles et expose un serveur HTTP compatible OpenAI à l’adresse http://localhost:11434/v1. Idéal pour prototyper, chiffrer des données sensibles, ou simplement comprendre ce que fait un modèle sans engagement financier.

Installation

Linux / macOS — Script officiel

curl -fsSL https://ollama.com/install.sh | sh

Vérification :

ollama --version # ollama version 0.x.x

Le service est lancé automatiquement au démarrage. Vérifier son état :

systemctl status ollama

Docker (alternative)

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

L’image expose le même port 11434. Les modèles sont persistés dans le volume ollama.

Piège : sur Docker, le conteneur n’a pas accès aux GPU par défaut. Pour activer CUDA, ajouter --gpus all au run et installer nvidia-container-toolkit au préalable.

Commandes CLI essentielles

Tirer un modèle

ollama pull llama3.2 ollama pull mistral ollama pull gemma2:2b ollama pull qwen2.5:7b

Les modèles sont téléchargés dans ~/.ollama/models/. L’extension :2b, :7b, :14b indique la taille approximative du paramétrage.

Lancer une conversation interactive

ollama run llama3.2

La session accepte le multi-lignes. Entrer /bye ou Ctrl+C pour quitter.

Aide stdin

Pour un usage scriptable (pipeline, preview) :

echo "Résume ce code en trois lignes" | ollama run llama3.2 echo "Traduis en anglais : Le déploiement est bloqué par un lock docker." | ollama run llama3.2

Usage pratique : pipe depuis cat ou hermes agent pour générer un résumé sans ouvrir l’interpréteur.

Gérer les modèles

# Lister les modèles installés avec leur taille ollama list # Supprimer un modèle pour libérer de l'espace disque ollama rm llama3.2 # Copier un modèle (aliasing rapide) ollama cp llama3.2 mon-assistant

Servir en arrière-plan

# Démarrer explicitement le serveur (inutile après l'install, mais utile pour debug) ollama serve # Rediriger sur un port autre que 11434 OLLAMA_HOST=0.0.0.0:8080 ollama serve

API compatible OpenAI

Ollama expose son API sur http://localhost:11434/v1. La signature est identique à OpenAI, ce qui permet de remplacer l’endpoint dans n’importe quel client existant.

Python

from openai import OpenAI client = OpenAI( base_url="http://localhost:11434/v1", api_key="ollama", # clé arbitraire acceptée par Ollama ) response = client.chat.completions.create( model="llama3.2", messages=[ {"role": "system", "content": "Tu es un assistant technique."}, {"role": "user", "content": "Explique l'injection de dépendances en Python."}, ], temperature=0.7, ) print(response.choices[0].message.content)

Le seul changement par rapport à un appel cloud : base_url et une api_key quelconque. Le reste du code (schema de messages, stream, tool calling) reste valide.

Node.js

import OpenAI from "openai"; const client = new OpenAI({ baseURL: "http://localhost:11434/v1", apiKey: "ollama", }); const response = await client.chat.completions.create({ model: "llama3.2", messages: [ { role: "system", content: "Tu es un assistant technique." }, { role: "user", content: "Explique l'injection de dépendances en Python." }, ], temperature: 0.7, }); console.log(response.choices[0].message.content);

Différence clé : pas de comptabilisation de tokens facturés. Le champ usage renvoyé par Ollama est théorique (estimation locale) et ne doit pas être utilisé pour du suivi de coûts.

Streaming local

stream = client.chat.completions.create( model="llama3.2", messages=[{"role": "user", "content": "Écris un poème sur les microservices."}], stream=True, ) for chunk in stream: delta = chunk.choices[0].delta if delta.content: print(delta.content, end="", flush=True) print()

Modèles populaires — guide de sélection

Le choix d’un modèle local dépend quasi exclusivement de la vRAM disponible sur la machine. Voici les modèles les plus utilisés et leurs exigences.

ModèleTaille param.vRAM minimaleUsage recommandé
Gemma 2 2B2,6 G4 GoChat rapide, QCM, tests unitaires
Qwen 2.5 3B3,4 G4 GoChat multilingue (bon en français)
Llama 3.2 3B3,6 G4 GoCode, chat, extraction JSON
Mistral 7B7,3 G8 GoCode, tool calling, fiable
Llama 3.1 8B8,0 G8 GoGénéraliste, bon équilibre
Qwen 2.5 14B15 G16 GoAnalyse longue, multi-outils
Llama 3.1 70B70 G48 GoHaute qualité, nécessite un GPU dédié

Règle pratique : un modèle de 7B tourne correctement avec 8 Go de vRAM en Q4 (quantification 4-bit). Au-dessus de 13B, prévoir 16 Go minimum. En dessous de 4 Go, rester sur les modèles 2-3B ou choisir une version quantifiée via le tag : ollama pull llama3.2:q2_K.

Vérifier la vRAM disponible

# NVIDIA nvidia-smi --query-gpu=name,memory.total --format=csv,noheader # AMD rocminfo | grep -i "gpu" | head -5 # macOS (Apple Silicon) system_profiler SPDisplaysDataType | grep "VRAM"

Liaisons


Référence : Documentation Ollama , API OpenAI compatible