All guides
IntermediateSelf-pacedFree GuideSection 67/95

Comparer les LLMs — Benchmarks et choix stratégique

Practise development foundations: programming, web, APIs, data and AI tools. Work through sections and exercises to build your first projects.

The full lessons for this course are currently available in French. Use the section menu to navigate the French course.

💡

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and sources

Section 11.4.8 : Comparer les LLMs — Benchmarks et choix stratégique

🎯 Objectif pédagogique

Développer un cadre de décision pour choisir le bon LLM selon la tâche, le budget et les contraintes. Vous serez capable de comparer les modèles sur des critères objectifs et de justifier vos choix.


Quel modèle pour quel usage ?

Marc connaît GPT-4o et Claude. Mais il y a des dizaines de modèles. Comment choisir ? Pas par hype ou préférence — par critères objectifs.

Panorama des LLMs (2025)

ModèleProviderContext$/M tokens (input)Forces
GPT-4oOpenAI128k2.50$Polyvalent, rapide, tools
GPT-4o-miniOpenAI128k0.15$Rapport qualité/prix imbattable
Claude 3.5 SonnetAnthropic200k3.00$Longs docs, instructions, éthique
Claude 3.5 HaikuAnthropic200k0.25$Rapide, pas cher, bon pour le batch
Gemini 1.5 ProGoogle2M1.25$Contexte énorme (2M tokens)
Llama 3.1 70BMeta (OS)128kGratuit*Open-source, self-hosted
Mistral LargeMistral128k2.00$Européen, bon en français
Qwen 2.5 72BAlibaba (OS)128kGratuit*Open-source, multilingue

*Gratuit si self-hosted (coût serveur GPU uniquement)

Comment comparer : les critères qui comptent

Pour chaque projet, évaluez ces 7 critères :

1. QUALITÉ — Le modèle répond-il correctement ?
   → Tester sur 10 exemples représentatifs de votre tâche

2. COÛT — Combien ça coûte par requête ?
   → Calculer: (prompt_tokens + completion_tokens) × price_per_M

3. VITESSE — Temps de réponse
   → Mesurez le TTFT (time to first token) et tokens/seconde

4. CONTEXTE — Quelle longueur de prompt supportée ?
   → Si vos documents font 100 pages → Claude ou Gemini

5. FORMAT — Structured output fiable ?
   → Testez le JSON output sur 50 requêtes, comptez les erreurs

6. CONFIDENTIALITÉ — Où vont les données ?
   → API = données sur les serveurs du provider
   → Self-hosted (Llama, Mistral) = données chez vous

7. DISPONIBILITÉ — SLA, uptime, fallback
   → OpenAI a eu des pannes majeures en 2024
   → Toujours avoir un fallback provider

Matrice de décision par cas d'usage

Tâche1er choix2ème choixPourquoi
Classification emailgpt-4o-miniClaude HaikuSimple, pas cher
Analyse document 100 pagesClaude SonnetGemini ProLong contexte
Génération de codeGPT-4oClaude SonnetCode quality
Chatbot simplegpt-4o-miniLlama 3Coût, vitesse
Données sensibles (santé)Llama 3 self-hostedMistral on-premConfidentialité
Raisonnement complexeGPT-4oClaude SonnetAccuracy
Traduction françaisMistral LargeGPT-4oFR natif, qualité
Batch 10k requêtes/jourgpt-4o-mini batchClaude HaikuPrix volume

Benchmark maison — Évaluez vous-même

# benchmark.py — Comparer les LLMs sur VOS cas d'usage
import time
import json
from llm_client import LLMClient

llm = LLMClient()

test_cases = [
    \{
        "prompt": "Classe cette offre (MATCH/PARTIEL/HORS): Data Analyst Python, Paris, 50k",
        "expected": "MATCH",
        "task": "classification"
    \},
    \{
        "prompt": "Extrais en JSON: 'ML Engineer chez Google, 80k, Londres, TensorFlow requis'",
        "expected_keys": ["position", "company", "salary", "location", "skills"],
        "task": "extraction"
    \},
    \{
        "prompt": "Pourquoi un ex-financier devrait-il devenir Data Analyst ? 3 arguments.",
        "min_length": 100,
        "task": "generation"
    \}
]

models = [
    ("openai", "gpt-4o-mini"),
    ("openai", "gpt-4o"),
    ("anthropic", "claude-sonnet-4-20250514"),
]

results = []

for provider, model in models:
    for test in test_cases:
        start = time.time()
        response = llm.ask(test["prompt"], provider=provider, model=model)
        duration = time.time() - start
        
        # Scoring basique
        score = 0
        if test["task"] == "classification" and test["expected"] in response:
            score = 1
        elif test["task"] == "extraction":
            try:
                data = json.loads(response)
                score = len([k for k in test["expected_keys"] if k in data]) / len(test["expected_keys"])
            except json.JSONDecodeError:
                score = 0
        elif test["task"] == "generation":
            score = 1 if len(response) >= test["min_length"] else 0
        
        results.append(\{
            "model": model,
            "task": test["task"],
            "score": score,
            "time": round(duration, 2),
            "tokens": len(response.split())  # Approximation
        \})

# Afficher les résultats
for r in results:
    print(f"\{r['model']:30s\} | \{r['task']:15s\} | Score: \{r['score']:.1f\} | Time: \{r['time']:.2f\}s")

Les benchmarks publics ne suffisent pas

MMLU, HumanEval, et les leaderboards mesurent des capacités générales. Votre cas d'usage est spécifique. Un modèle qui score 90% sur HumanEval peut scorer 60% sur votre tâche d'analyse d'offres d'emploi en français. Faites TOUJOURS un benchmark custom sur vos données.

🏋️ Exercice pratique (25 minutes)

  1. →Identifiez 5 cas d'usage de votre projet (classification, extraction, génération...)
  2. →Testez chaque cas sur 2 modèles différents (gpt-4o-mini vs Claude)
  3. →Mesurez : qualité, temps de réponse, coût estimé
  4. →Documenter votre matrice de décision dans un fichier
Quick Check

Pourquoi ne pas toujours utiliser le modèle le plus puissant (GPT-4o) ?

Quick Check

Quel critère est souvent négligé mais crucial pour le choix d'un LLM en production ?

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.