Intelligence Artificielle

Ollama + modèles open source : alternative local à Claude

14 min de lecture

📚 Cet article fait partie de notre cluster IA pour PME francophones. Pour le panorama complet (Claude vs GPT-5 vs Gemini vs Mistral, prompt engineering, RAG, agents, Ollama self-hosté, coûts en F CFA), consultez : IA et LLM pour PME francophones — panorama complet 2026.

Ce que vous saurez faire à la fin

  1. Installer Ollama sur Windows, macOS ou Linux et télécharger 3 modèles (Llama 3.3, Mistral, Qwen 2.5)
  2. Choisir le bon modèle selon votre RAM/GPU disponible et votre cas d’usage PME
  3. Appeler Ollama via son API REST locale depuis Python (compatible OpenAI)
  4. Comparer Ollama et Claude sur 5 critères : coût, qualité, latence, confidentialité, autonomie
  5. Déployer Ollama en mode serveur pour une PME sénégalaise sans connexion stable (offline)

Durée : 2h30. Pré-requis : Machine avec 16 Go RAM minimum (32 Go recommandé), 50 Go disque, optionnel GPU NVIDIA 8 Go VRAM, Python 3.10+, terminal.

Étape 1 — Pourquoi un modèle local en complément de Claude ?

Claude est excellent en qualité mais facture chaque token et nécessite une connexion internet stable. Pour une PME sénégalaise à Kaolack ou Ziguinchor, où la fibre optique reste rare et l’électricité capricieuse, un modèle local Ollama offre trois avantages décisifs : coût marginal nul après installation, fonctionnement 100 % offline, confidentialité totale (aucune donnée client ne quitte le serveur). On l’utilise en complément de Claude pour les tâches simples (résumé, classification, extraction) en gardant Claude pour les tâches complexes (stratégie, code, raisonnement long).

Étape 2 — Installer Ollama

# macOS et Linux
curl -fsSL https://ollama.com/install.sh | sh

# Windows : télécharger l'installeur
# https://ollama.com/download/windows
# Puis double-cliquer sur OllamaSetup.exe

# Vérification
ollama --version
ollama serve  # démarre le service en arrière-plan

Sur Windows, Ollama démarre automatiquement et s’écoute sur http://localhost:11434. Sur Linux, ajoutez-le à systemd : sudo systemctl enable –now ollama.

Étape 3 — Télécharger les modèles recommandés 2026

# Llama 3.3 - Meta - 70B paramètres (très puissant, 40 Go RAM)
ollama pull llama3.3:70b

# Llama 3.3 - version 8B (plus accessible, 8 Go RAM)
ollama pull llama3.3:8b

# Mistral - français excellent (4 Go RAM)
ollama pull mistral:7b

# Qwen 2.5 - Alibaba - très rapide (4 Go RAM)
ollama pull qwen2.5:7b

# DeepSeek Coder - spécialisé code (4 Go RAM)
ollama pull deepseek-coder-v2:16b

# Lister les modèles installés
ollama list

# Supprimer un modèle si besoin de place
ollama rm llama3.3:70b

Étape 4 — Tableau de choix : quel modèle pour quel matériel ?

Modèle              | RAM min   | GPU recommandé   | Tokens/sec | Qualité FR
--------------------|-----------|------------------|------------|-----------
qwen2.5:0.5b        | 2 Go      | Non requis       | 80         | Faible
mistral:7b          | 8 Go      | Non requis       | 25         | Excellente
llama3.3:8b         | 8 Go      | Non requis       | 22         | Bonne
qwen2.5:14b         | 16 Go     | RTX 3060 12 Go   | 18         | Très bonne
deepseek-coder:16b  | 16 Go     | RTX 4070 12 Go   | 15         | Code expert
llama3.3:70b        | 40 Go     | RTX A6000 48 Go  | 8          | Excellente

Sans GPU, comptez x4 sur le temps de réponse.
Pour PME standard à Dakar : mistral:7b ou llama3.3:8b sur PC 16 Go.

Étape 5 — Premier test en ligne de commande

ollama run mistral:7b

# Une fois le prompt actif :
>>> Rédige une lettre de relance pour facture impayée de 2 500 000 FCFA, 30 jours de retard, client BTP Plus SARL à Dakar.

# Pour quitter
>>> /bye

# Mode non-interactif
ollama run mistral:7b "Résume en 3 lignes : la TVA au Sénégal est de 18%..."

Étape 6 — Appeler l’API Ollama depuis Python

import requests
import json

OLLAMA_URL = "http://localhost:11434/api/generate"

def appeler_ollama(prompt, modele="mistral:7b"):
    payload = {
        "model": modele,
        "prompt": prompt,
        "stream": False,
        "options": {
            "temperature": 0.3,
            "num_predict": 1024,
            "top_p": 0.9
        }
    }
    response = requests.post(OLLAMA_URL, json=payload)
    return response.json()["response"]

# Test
reponse = appeler_ollama(
    "Tu es comptable sénégalais. Calcule la TVA sur 8 500 000 FCFA HT."
)
print(reponse)

Étape 7 — Mode streaming pour interface utilisateur réactive

import requests
import json

def streamer_ollama(prompt, modele="mistral:7b"):
    payload = {"model": modele, "prompt": prompt, "stream": True}
    response = requests.post(OLLAMA_URL, json=payload, stream=True)
    for ligne in response.iter_lines():
        if ligne:
            chunk = json.loads(ligne)
            if not chunk.get("done"):
                print(chunk["response"], end="", flush=True)
    print()

streamer_ollama("Liste 5 conseils pour réduire les retards de paiement clients au Sénégal.")

Étape 8 — API compatible OpenAI (réutiliser code existant)

Ollama expose une couche compatible OpenAI à localhost:11434/v1. Vous pouvez réutiliser tout code OpenAI sans modification, juste en changeant l’URL.

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # valeur factice mais requise
)

response = client.chat.completions.create(
    model="mistral:7b",
    messages=[
        {"role": "system", "content": "Tu es expert OHADA, réponds en FCFA."},
        {"role": "user", "content": "Quelles obligations comptables pour une SARL au capital de 5 millions FCFA ?"}
    ],
    temperature=0.2,
    max_tokens=1024
)
print(response.choices[0].message.content)

Étape 9 — Wrapper unifié Claude/Ollama (basculer en un paramètre)

from anthropic import Anthropic
from openai import OpenAI

class LLMHybride:
    def __init__(self):
        self.claude = Anthropic()
        self.ollama = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

    def repondre(self, prompt, mode="auto", systeme=""):
        """mode : 'cloud' (Claude), 'local' (Ollama), 'auto' (selon connexion)"""
        if mode == "auto":
            mode = "cloud" if self._connexion_ok() else "local"

        if mode == "cloud":
            r = self.claude.messages.create(
                model="claude-sonnet-4-6",
                max_tokens=1024,
                system=systeme,
                messages=[{"role": "user", "content": prompt}]
            )
            return r.content[0].text, "claude-sonnet-4-6"
        else:
            r = self.ollama.chat.completions.create(
                model="mistral:7b",
                messages=[
                    {"role": "system", "content": systeme},
                    {"role": "user", "content": prompt}
                ]
            )
            return r.choices[0].message.content, "mistral:7b-local"

    def _connexion_ok(self):
        try:
            requests.get("https://api.anthropic.com", timeout=3)
            return True
        except:
            return False

llm = LLMHybride()
texte, modele = llm.repondre("Synthèse des actes uniformes OHADA", mode="auto")
print(f"[{modele}] {texte}")

Étape 10 — Comparatif Ollama vs Claude (PME sénégalaise)

Critère              | Claude API           | Ollama Local
---------------------|----------------------|----------------------
Coût/1M tokens IN    | 1 800 FCFA (Sonnet)  | 0 FCFA (élec seule)
Coût matériel initial| 0 FCFA               | 600 000 FCFA (PC GPU)
Qualité raisonnement | Excellente           | Bonne (Mistral 7B)
Qualité code Python  | Excellente           | Très bonne (DeepSeek)
Vitesse (tokens/sec) | 50 (réseau dépendant)| 25 (CPU) à 80 (GPU)
Connexion requise    | Oui                  | Non (offline)
Confidentialité      | Politique Anthropic  | 100% local
Contexte max         | 200 000 tokens       | 32 000 à 128 000
Multimodal (image)   | Oui                  | Llava uniquement
Mise à jour modèle   | Automatique          | Manuelle (ollama pull)

Étape 11 — Cas d’usage : assistant comptable offline à Tambacounda

SYSTEME_COMPTA = """Tu es un assistant comptable pour PME au Sénégal.
- Plan SYSCOHADA révisé
- TVA 18%
- Format FCFA français : 1 234 567 FCFA
- Réponses concises (max 200 mots)
- Si tu ne sais pas, dis-le"""

def assistant_compta_offline(question):
    return llm.repondre(question, mode="local", systeme=SYSTEME_COMPTA)

# Utilisable même quand Tamba perd internet
texte, _ = assistant_compta_offline(
    "Comptabiliser un achat de marchandises 4 500 000 FCFA TTC, paiement comptant."
)
print(texte)

Étape 12 — Créer un modèle personnalisé avec Modelfile

Ollama permet de créer des variantes de modèles avec un prompt système intégré, des paramètres figés, des templates personnalisés. Idéal pour standardiser les réponses.

# Créer un fichier nommé Modelfile (sans extension)
cat > Modelfile <<'EOF'
FROM mistral:7b

SYSTEM """Tu es l'assistant ITSkillsCenter pour PME sénégalaises.
Réponds toujours en français professionnel.
Toutes valeurs en FCFA, format français.
Référence OHADA si applicable.
Style : concis, structuré, actionnable."""

PARAMETER temperature 0.3
PARAMETER top_p 0.9
PARAMETER num_ctx 8192
EOF

# Créer le modèle personnalisé
ollama create itsc-pme -f Modelfile

# Utilisation
ollama run itsc-pme "Comment optimiser ma trésorerie ?"

Étape 13 — Déploiement serveur réseau local (PME 20 postes)

# Sur le serveur (Ubuntu Server 24.04)
sudo systemctl edit ollama

# Ajouter dans le fichier qui s'ouvre :
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_KEEP_ALIVE=24h"
Environment="OLLAMA_NUM_PARALLEL=4"

# Redémarrer
sudo systemctl daemon-reload
sudo systemctl restart ollama

# Tester depuis un poste client
curl http://192.168.1.100:11434/api/tags

Sur les postes clients, on configure le code Python avec base_url= »http://192.168.1.100:11434/v1″. Un seul serveur GPU sert 20 utilisateurs PME simultanément.

Étape 14 — Stratégie hybride recommandée pour PME africaine

Tâche                          | Modèle recommandé    | Raison
-------------------------------|----------------------|------------------
Résumé de PV de réunion        | Ollama Mistral 7B    | Coût nul
Classification email entrant   | Ollama Qwen 2.5 7B   | Très rapide
Génération devis simple        | Ollama Mistral 7B    | Standardisé
Lettre commerciale soignée     | Claude Haiku         | Qualité ton
Analyse SWOT marché            | Claude Sonnet        | Raisonnement
Plan stratégique 3 ans         | Claude Opus          | Profondeur
Code Python production         | Claude Sonnet        | Fiabilité
Code Python prototypes         | DeepSeek Coder local | Itération rapide
Traduction wolof-français      | Claude Sonnet        | Nuance culturelle
Extraction données OCR factures| Ollama Llava 7B      | Local + rapide

Économie typique : 70 % du budget Anthropic en confiant 60 % des tâches à Ollama, sans dégradation perçue par les utilisateurs.

Erreurs classiques à éviter

  • Erreur : installer llama3.3:70b sur un PC 8 Go. Le modèle ne charge pas, le serveur Ollama plante. Vérifiez la RAM avant.
  • Erreur : croire que Ollama 7B égale Claude. Mistral 7B est très bon mais pas pour stratégie ou code complexe. Utilisez chacun selon ses forces.
  • Erreur : exposer Ollama sur 0.0.0.0 sur internet public. Tout le monde peut utiliser votre GPU. Restreignez au LAN avec firewall.
  • Erreur : oublier OLLAMA_KEEP_ALIVE. Le modèle se décharge de la VRAM après 5 min, première requête lente. Mettez 24h en serveur dédié.
  • Erreur : embarquer Ollama dans un laptop sans ventilation. Surchauffe, throttling, usure prématurée. Utilisez un PC fixe ou un serveur.
  • Erreur : ne pas tester en français avant production. Certains modèles (Qwen) sont plus faibles en français nuancé que Mistral.

Checklist déploiement Ollama PME

✓ Machine cible : 16 Go RAM minimum
✓ Disque libre : 50 Go pour 3 modèles
✓ Ollama installé et service actif
✓ Modèles téléchargés et testés en CLI
✓ Test API curl localhost:11434 OK
✓ Wrapper Python compatible OpenAI fonctionnel
✓ Modelfile personnalisé pour ton métier
✓ Prompt système OHADA/FCFA validé
✓ Mode hybride Claude/Ollama configuré
✓ Backup régulier de /usr/share/ollama
✓ Monitoring CPU/GPU/RAM (htop, nvidia-smi)
✓ OLLAMA_KEEP_ALIVE=24h en serveur
✓ Firewall LAN restrictif (port 11434)
✓ Documentation utilisateurs en français
✓ Plan de bascule Claude si Ollama indispo

À lire aussi : utiliser OpenWebUI comme interface ChatGPT-like.

À lire aussi : aller plus loin avec Ollama : modèles quantifiés et fine-tuning local.

Pourquoi heberger un LLM en local en 2026

Trois raisons motivent un nombre croissant d organisations a deployer un modele open-source en local plutot que d appeler une API Claude ou OpenAI. La confidentialite : aucune donnee ne quitte le reseau de l entreprise, ce qui leve une grande partie des objections RGPD et sectorielles (sante, defense, banque). Le cout : a partir d un certain volume mensuel d appels, l auto-hebergement devient moins cher que le pay-as-you-go d API. L absence de dependance : pas de risque de changement de tarifs, de discontinuation, ou de filtrage par le fournisseur sur des sujets sensibles.

Ollama (ollama.com), publie en 2023, s est impose comme l outil de reference pour deployer rapidement un modele open-source. Une commande pour installer (Linux, macOS, Windows), une commande pour pull un modele, et il tourne en local avec une API HTTP compatible OpenAI. Aucune complexite d infrastructure.

Quels modeles tournent reellement bien en local

Le choix depend du materiel disponible. Pour un Mac M2/M3 avec 16-24 Go de RAM unifiee, ou un PC avec une RTX 4090 (24 Go VRAM) :

Llama 3.1 8B : modele de Meta, excellent compromis qualite/taille. Adapte aux taches generales (resume, redaction, classification). Quantise en 4-bit, il tient en 5-6 Go VRAM.

Llama 3.3 70B : version plus grande, qualite proche de GPT-4 sur de nombreuses taches. Necessite 40 Go VRAM en quantise 4-bit. Cible : workstations puissantes ou petits serveurs GPU.

Mistral Small 22B : tres bon pour le francais, support officiel de l europeen Mistral AI. Tient en 13 Go VRAM en quantise 4-bit.

Qwen 2.5 Coder 32B : specialise code, surclasse souvent GPT-4 sur les benchmarks de programmation. Reference 2026 pour les developpeurs.

Gemma 3 27B : modele Google open-source, vision et texte, multilingue solide. Bonne option pour les usages multimodaux.

DeepSeek-R1 : modele de raisonnement (chain-of-thought integre), tres performant en mathematiques et logique. Disponible en plusieurs tailles (7B, 14B, 32B, 70B). C est le modele open-source qui rivalise le plus serieusement avec les meilleurs modeles fermes en 2026.

Workflow de deploiement

Une session typique d installation et de test :

# Installation Ollama (Linux)curl -fsSL https://ollama.com/install.sh | sh# Pull d un modeleollama pull llama3.1:8b# Lancer une conversation interactiveollama run llama3.1:8b# Lancer le serveur API HTTP (sur localhost:11434)ollama serve

L API Ollama est compatible OpenAI : un script qui utilise OPENAI_API_BASE=http://localhost:11434/v1 et OPENAI_API_KEY=ollama fonctionne directement avec les bibliotheques openai-python, openai-node, LangChain, LiteLLM. Migrer d un appel ChatGPT vers Ollama prend 2 lignes de code.

Comparaison Ollama vs Claude API en 2026

Sur les taches generales, Claude 3.7 Sonnet reste superieur aux modeles open-source de taille comparable, mais l ecart s est reduit dramatiquement depuis 2024. DeepSeek-R1 70B et Llama 3.3 70B atteignent environ 90-95 pour cent de la qualite Claude sur la majorite des benchmarks publics. Pour des taches specifiques (code, francais, raisonnement), un modele open-source dedie peut meme surpasser Claude.

Le critere economique : a partir d environ 50 000 appels mensuels, l auto-hebergement sur un VPS GPU (RunPod, Lambda, OVHcloud, Scaleway) devient moins cher que l API Claude. Sous ce seuil, l API reste plus avantageuse en coup total de possession (pas de maintenance, scaling automatique). Au-dessus, le break-even bascule.

Le critere fonctionnel : Claude reste meilleur sur les raisonnements complexes en plusieurs etapes, l ecriture creative de qualite, et les longs documents (200k tokens de contexte). Pour des taches plus contraintes (classification, extraction, RAG, summarization), un modele local fait jeu egal.

Architecture de production

Au-dela d Ollama (qui est ideal pour le developpement et les usages personnels), trois architectures emergent pour la production.

vLLM est le serveur d inference le plus performant pour servir des modeles open-source en production. Throughput superieur a Ollama, support du batching dynamique, gestion fine de la memoire. Pour une PME qui sert plusieurs centaines de requetes par minute, c est le standard.

Text Generation Inference (TGI) de Hugging Face est l alternative open-source de niveau enterprise, bien integree dans l ecosysteme HF. Choix naturel si l on utilise deja le hub Hugging Face.

llama.cpp en mode serveur (avec llama-server) cible le hardware grand public et les CPU. Tres economique pour des charges modestes, deploiement minimal.

FAQ

Quel materiel minimum pour faire tourner un 8B en local ?
Mac Apple Silicon M1/M2 avec 16 Go de RAM unifiee suffit pour un Llama 3.1 8B en quantise 4-bit. Sur PC, une RTX 3060 12 Go convient. Sur CPU pur, le temps de reponse est trop lent pour un usage interactif (10-30 secondes pour quelques tokens).

Combien coute un VPS GPU pour heberger un 70B ?
Sur RunPod, une A100 80 Go coute environ 1,80 USD/h en spot. Pour 24/7, environ 1 300 USD/mois. Sur Lambda Labs ou OVHcloud, comparable. Ces tarifs comparativement avec Claude pay-as-you-go (3-15 USD par million de tokens output) deviennent interessants au-dela de 50-100 millions de tokens mensuels.

Les modeles open-source sont-ils audites contre les biais ?
Variable. Meta, Mistral, Google publient des cards de modeles avec leurs evaluations de biais. DeepSeek est moins documente sur ce point. Pour un usage commercial, faire son propre red-teaming sur les cas d usage prevus est une bonne pratique.

Comment fine-tuner un modele Ollama ?
Ollama ne fait pas le fine-tuning directement. Le workflow standard : fine-tuner un modele open-source (typiquement Llama 3.1 8B) avec LoRA via Hugging Face PEFT sur un GPU loue, exporter le modele fusionne ou le LoRA, le convertir en format GGUF (llama.cpp), et l importer dans Ollama avec une Modelfile custom.

References

Articles connexes Claude

Partager