Créer chez soi une IA experte d'un domaine : choisir le matériel et le LLM de base, préparer les données, construire un RAG, fine-tuner en QLoRA, évaluer et déployer avec Ollama.
La question qui décide de tout le reste : combien de mémoire vidéo (VRAM) avez-vous ? Elle fixe la taille du modèle que vous pourrez faire tourner, et surtout celle que vous pourrez entraîner. Le processeur et la RAM comptent beaucoup moins.
Un modèle de 8 milliards de paramètres stocke 8 milliards de nombres. Leur taille dépend de la précision :
| Précision | Octets par paramètre | Modèle 8B | Modèle 14B | Usage |
|---|---|---|---|---|
| FP32 | 4 | 32 Go | 56 Go | jamais en pratique |
| FP16 / BF16 | 2 | 16 Go | 28 Go | entraînement complet, inférence haute qualité |
| 8 bits | 1 | 8 Go | 14 Go | inférence |
| 4 bits (Q4) | ~0,55 | ~4,5 Go | ~8 Go | inférence locale, QLoRA |
À ça s'ajoute le contexte : chaque token de la conversation occupe de la mémoire (le « KV cache »). Comptez 1 à 2 Go supplémentaires pour 8 000 tokens sur un modèle 8B.
La quantification réduit la précision des poids (de 16 à 4 bits par exemple) avec une perte de qualité faible. C'est elle qui rend les LLM utilisables sur une carte grand public.
| Machine | VRAM | Inférence confortable | Fine-tuning QLoRA |
|---|---|---|---|
| PC sans GPU dédié | 0 | 3-4B, lent (CPU) | non |
| RTX 3060 12 Go / 4060 Ti 16 Go | 12-16 | jusqu'à 14B en Q4 | jusqu'à 8B |
| RTX 3090 / 4090 24 Go | 24 | jusqu'à 32B en Q4 | jusqu'à 14B, 32B serré |
| RTX 5090 32 Go | 32 | 32B confortable | jusqu'à 32B |
| Mac M1-M4, 16 Go | mémoire unifiée | jusqu'à 8B | outils limités |
| Mac M-series 32-64 Go | mémoire unifiée | jusqu'à 32-70B | MLX, plus lent qu'un GPU NVIDIA |
Recommandation : une carte NVIDIA avec au moins 12 Go. L'écosystème d'entraînement (CUDA, bitsandbytes, Unsloth) est pensé pour NVIDIA d'abord. Une RTX 3090 d'occasion reste le meilleur rapport VRAM / prix pour ce travail.
Deux options :
Linux est l'environnement de référence. Sur Windows, utilisez WSL2 avec Ubuntu : les pilotes NVIDIA Windows exposent le GPU directement dans WSL.
# PowerShell administrateur
wsl --install -d Ubuntu-24.04Dans Ubuntu (WSL ou natif), vérifiez que le GPU est visible :
nvidia-smi+-----------------------------------------------------------------------------+
| NVIDIA-SMI 570.xx Driver Version: 570.xx CUDA Version: 12.8 |
| GPU Name | Memory-Usage |
| 0 NVIDIA GeForce RTX 3090 | 512MiB / 24576MiB |
+-----------------------------------------------------------------------------+Sous WSL, n'installez pas de pilote NVIDIA Linux : c'est le pilote Windows qui fait le travail. Sur Linux natif, installez le pilote propriétaire recommandé par votre distribution (ubuntu-drivers autoinstall).
Ollama télécharge et sert les modèles quantifiés avec une API locale. C'est lui qu'on utilisera pour tester les modèles, faire tourner le RAG et servir le modèle final.
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen3:8b
ollama run qwen3:8b "Quand semer les tomates ?"Ollama expose une API sur http://localhost:11434. Si vous préférez l'isoler dans un conteneur, l'image officielle ollama/ollama fonctionne avec le runtime NVIDIA ; les bases sont dans Docker pour débuter.
Le fine-tuning et le RAG se font en Python. Je recommande uv pour gérer la version de Python et les dépendances ; si Python est nouveau pour vous, la formation Python couvre tout ce qu'il faut.
curl -LsSf https://astral.sh/uv/install.sh | sh
uv init ia-potager --python 3.12
cd ia-potagerDeux environnements distincts évitent les conflits de versions :
# Environnement RAG et évaluation : léger
uv add ollama chromadb pypdf pydantic sentence-transformers rich
# Environnement d'entraînement : dans un sous-dossier séparé
mkdir train && cd train
uv init --python 3.12
uv add unslothUnsloth tire PyTorch, Transformers, TRL, PEFT et bitsandbytes dans des versions compatibles entre elles. Ces bibliothèques évoluent vite : si l'installation échoue, suivez la commande d'installation donnée sur le dépôt GitHub d'Unsloth pour votre version de CUDA.
Vérification :
import torch
print("CUDA disponible :", torch.cuda.is_available())
print("GPU :", torch.cuda.get_device_name(0))
print("VRAM :", round(torch.cuda.get_device_properties(0).total_memory / 1e9, 1), "Go")
print("BF16 supporté :", torch.cuda.is_bf16_supported())uv run check_gpu.pyLes cartes à partir de la génération RTX 30 supportent BF16, un format plus stable que FP16 pour l'entraînement.
ia-potager/
├── data/
│ ├── raw/ # PDF, HTML, Markdown d'origine
│ ├── clean/ # texte nettoyé
│ ├── chunks.jsonl # passages pour le RAG
│ ├── train.jsonl # exemples de fine-tuning
│ └── eval.jsonl # questions de test, jamais vues à l'entraînement
├── rag/
├── train/
├── eval/
└── models/Versionnez le code et les scripts avec Git, pas les modèles ni les données brutes volumineuses.
watch -n 1 nvidia-smiUne carte qui chauffe à 83 °C pendant deux heures, c'est normal. Une VRAM saturée à 100 % suivie d'une erreur CUDA out of memory signifie qu'il faut réduire la taille de lot, la longueur de séquence ou la taille du modèle. On verra ces réglages au chapitre 6.
La VRAM décide de tout : 12 Go suffisent pour un projet sérieux avec un modèle 8B, 24 Go ouvrent les modèles 14B. Sans GPU, le RAG reste accessible et quelques euros de location suffisent pour la phase d'entraînement.