Héberger localement des LLM avec Ollama
Cet article est un court tutoriel pour lancer localement des LLM sur Windows et Linux. Avertissement : ça marchera toujours moins bien que ChatGPT ou autres mais au moins ça pollue moins.
Installer WSL (pour les utilisateurs de Windows)
WSL (Windows Subsystem for Linux) est une couche de compatibilité permettant d'exécuter des binaires Linux nativement sous Windows. Pour les utilisateurs de Windows, c'est souvent la méthode la plus simple pour faire fonctionner Ollama.
Installation en une commande
Ouvrez PowerShell en mode administrateur et exécutez :
wsl --install
Cette commande va installer Ubuntu par défaut. Redémarrez votre ordinateur lorsque c'est demandé. Vous pouvez utiliser toutes sortes de distribution Linux, disponibles sur le Microsoft Store.
Configuration initiale
Au premier démarrage de WSL, vous devrez créer un nom d'utilisateur et un mot de passe. Important: En règle générale, c'est une bonne pratique d'immédiatement mettre à jour le gestionnaire des paquets après une nouvelle installation.
sudo apt update && sudo apt upgrade -y
Installation d'Ollama
Sur Linux (et WSL)
L'installation d'Ollama se fait en une seule commande :
curl -fsSL https://ollama.com/install.sh | sh
Cette commande télécharge et installe automatiquement Ollama sur votre système.
Sur Windows (natif)
Ce n'est pas recommandé mais il existe un exécutable windows pour installer nativement Ollama. Le gain de performance ne vaut pas l'inconfort d'utilisation. D'expérience, évitez.
- Téléchargez l'installateur depuis le site officiel
- Exécutez le fichier .exe téléchargé
- Suivez les instructions d'installation
L'installation sur Windows nécessite également d'avoir au préalable configuré une installation récente de Docker Desktop.
Sur macOS
Pour les utilisateurs de Mac (jamais essayé donc pas grand chose à ajouter dessus) :
- Téléchargez l'application depuis le site officiel
- Faites glisser l'application dans votre dossier Applications
- Lancez l'application et accordez les permissions nécessaires
Premiers pas avec Ollama
Maintenant que Ollama est installé, celui-ci tourne par défaut en localhost sur le port 11434 à l'adresse 127.0.0.1:11434. Localhost étant partagé entre WSL et Windows, la page devrait normalement afficher "Ollama is running" sur votre navigateur.
Télécharger votre premier modèle
Une fois Ollama installé, vous pouvez télécharger et exécuter votre premier modèle. Par exemple, pour utiliser Llama 3 8B :
ollama run llama3
Cette commande télécharge le modèle (environ 4,7 Go) puis lance une session interactive. Vous pouvez alors commencer à discuter avec le modèle directement dans votre terminal.
Modèles disponibles
Ollama propose de nombreux modèles préconfiqurés. La liste complète est disponible sur le site web. A ce jour, les plus téléchargés sont gemma3, qwq, deepseek-r1 (1ere génération), mistral, mistrall-small, et j'en passe.
Configuration et optimisation
Exigences matérielles
- RAM minimale : 8 Go (avec des modèles légers comme phi-2)
- RAM recommandée : 16 Go ou plus
- Carte graphique : NVIDIA avec CUDA ou AMD avec ROCm pour l'accélération GPU
- Espace disque : 10-20 Go par modèle
Paramètres de génération
Vous pouvez ajuster plusieurs paramètres pour optimiser la génération de texte :
ollama run llama3 --temperature 0.7 --top-p 0.9
Les principaux paramètres sont :
- temperature : Contrôle la créativité (0.0 = déterministe, 1.0+ = très créatif)
- top_p : Filtrage des tokens (plus bas = plus conservateur)
- top_k : Nombre de tokens considérés à chaque étape
- context_length : Longueur maximale du contexte (en tokens)
Utilisation via API
Ollama expose automatiquement une API REST locale que vous pouvez utiliser pour intégrer les LLM dans une application (utile pour demander si un nombre est pair) :
Exemple avec Python
import requests
response = requests.post('http://localhost:11434/api/generate',
json={
'model': 'llama3',
'prompt': 'Explique-moi comment fonctionne un LLM en 3 phrases.',
'stream': False
})
print(response.json()['response'])
Bibliothèque officielle
Vous pouvez également utiliser la bibliothèque Python officielle :
pip install ollama
import ollama
response = ollama.generate(model='llama3',
prompt='Que signifie Ollama?')
print(response['response'])
Interfaces utilisateur
Si vous préférez une interface graphique plutôt que le terminal (pourri gâté), plusieurs options s'offrent à vous :
1. OpenWebUI
Une interface web similaire à ChatGPT pour interagir avec vos modèles Ollama :
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:main
Accédez ensuite à http://localhost:3000 dans votre navigateur.
2. LM Studio
Une application de bureau multiplateforme qui permet de gérer et d'utiliser facilement plusieurs modèles :
- Téléchargez-la depuis le site officiel
- Compatible avec Windows, macOS et Linux
- Interface graphique intuitive
3. Continue
Pour les développeurs, Continue offre une intégration directe avec VS Code :
- Installez l'extension depuis le marketplace de VS Code
- Configurez-la pour utiliser Ollama comme backend
- Profitez d'un assistant IA directement dans votre éditeur
Cas d'utilisation pratiques
Assistant personnel
Créez un assistant personnalisé en définissant un système de prompt spécifique :
FROM llama3
SYSTEM Tu es un assistant personnel spécialisé dans la productivité et l'organisation. Tu donnes des conseils précis et pratiques.
Sauvegardez ce fichier comme "productivite.txt" puis créez le modèle :
ollama create productivite -f productivite.txt
Analyse de code
Utilisez CodeLlama pour analyser et documenter votre code :
cat mon_script.py | ollama run codellama "Analyse ce code, identifie les problèmes potentiels et suggère des améliorations."
Traitement de documents
Avec un peu de code Python, vous pouvez créer un système qui analyse des documents PDF ou des sites web :
from pypdf import PdfReader
import ollama
def summarize_document(pdf_path):
reader = PdfReader(pdf_path)
text = ""
for page in reader.pages:
text += page.extract_text()
response = ollama.generate(
model='llama3',
prompt=f"Résume ce document en 5 points clés: {text[:5000]}"
)
return response['response']
Optimisation avancée : quantification
La quantification réduit la précision des poids du modèle pour améliorer les performances et réduire l'utilisation de la mémoire.
Types de quantification
- Q4_0 : Format 4-bit, plus rapide mais moins précis
- Q5_K_M : Format 5-bit avec optimisations spécifiques
- Q8_0 : Format 8-bit, bon équilibre entre vitesse et précision
- F16 : Format 16-bit, plus précis mais plus lent et consomme plus de mémoire
Pour spécifier une quantification lors du téléchargement :
ollama run llama3:8b-q4_0
Pour les ordinateurs avec une RAM limitée, les modèles quantifiés en 4-bit peuvent être la seule option viable.
Limites et considérations
Performances vs ressources
En exécutant des LLM localement, vous ferez face à des compromis importants :
- Les modèles les plus performants nécessitent des GPU puissants
- Les temps de réponse sont généralement plus lents qu'avec des services cloud
- La qualité des réponses peut être inférieure à celle de modèles commerciaux comme GPT-4
Gestion de la mémoire
Pour éviter les problèmes de mémoire :
- N'exécutez qu'un seul modèle à la fois
- Utilisez des modèles plus petits (7B au lieu de 13B ou 70B)
- Optez pour des formats quantifiés (Q4_0, Q5_K_M)
- Fermez les applications gourmandes en mémoire pendant l'utilisation
Vie privée et sécurité
L'un des principaux avantages d'Ollama est la confidentialité :
- Toutes les données restent sur votre machine
- Aucune connexion à des serveurs externes pour le traitement
- Possibilité d'utiliser le système hors ligne
Cependant, les modèles eux-mêmes peuvent contenir des biais ou générer des informations incorrectes - restez vigilant.
Conclusion
Héberger des modèles de langage localement avec Ollama permet d'utiliser des modèles de langage confidentiellement et d'avoir un plus grand contrôle sur un outil que l'on utilise au quotidient. Bien que ces modèles ne rivalisent pas avec les mastodontes en ligne, ils s'améliorent rapidement et ont le mérite d'exister.
L'écosystème autour des LLM locaux est en pleine expansion, avec de nouveaux modèles et outils qui apparaissent régulièrement. Que vous soyez un développeur cherchant à intégrer l'IA dans vos applications, un professionnel soucieux de la confidentialité de vos données, ou simplement un curieux voulant explorer cette technologie, Ollama offre une porte d'entrée accessible et flexible.
N'hésitez pas à expérimenter avec différents modèles et configurations pour trouver ce qui correspond le mieux à vos besoins et aux capacités de votre matériel. Et si vous avez des questions, ben, demandez à votre IA.