Benchmark CPU · Petits modèles IA
Score = Ø Qualité × Ø Vitesse, pondéré par le français (+⅓). Le podium récompense les modèles offrant le meilleur équilibre qualité/vitesse/français.
| # | Modèle | Qualité | Vitesse | Français | Score |
|---|---|---|---|---|---|
| 🥇 | gemma3:4b | 4.9/10 | 8.2 tok/s | 6.3/10 | 48.6 |
| 🥈 | llama3.2:3b | 5.5/10 | 5.9 tok/s | 7.5/10 | 40.6 |
| 🥉 | qwen3:4b | 3.8/10 | 8.2 tok/s | 3.3/10 | 34.6 |
| 4 | llama3.1:8b | 4.8/10 | 5.5 tok/s | 7.7/10 | 33.2 |
| 5 | phi4-mini | 4.7/10 | 5.4 tok/s | 6.9/10 | 31.2 |
| 6 | qwen2.5-coder:7b | 4.6/10 | 5.3 tok/s | 7.1/10 | 30.1 |
| 7 | qwen3:8b | 4.9/10 | 5.0 tok/s | 5.5/10 | 29.0 |
| 8 | mistral:7b | 5.6/10 | 3.4 tok/s | 7.5/10 | 23.8 |
| 9 | qwen3.5-4b | 3.3/10 | 4.7 tok/s | 3.5/10 | 17.3 |
| 10 | qwen3.5-4b-mtp | 3.3/10 | 4.3 tok/s | 3.5/10 | 15.8 |
| 11 | deepseek-r1:7b | 3.5/10 | 1.8 tok/s | 3.4/10 | 7.0 |
| Verdict |
|---|
Top 3 des modèles par justesse et qualité de réponse dans chaque catégorie. Les modèles avec CoT intégré en anglais (Qwen3, DeepSeek) sont pénalisés au classement — seuls les modèles répondant en français sont mis en avant.
Débit moyen (tok/s) et qualité des réponses par catégorie de test. Les valeurs en vert indiquent le meilleur score de la colonne.
| Catégorie | gemma3 4b | llama3.2 3b | qwen3 4b | llama3.1 8b | mistral 7b | phi4-mini | qwen2.5-coder 7b | qwen3 8b | qwen3.5-4b | qwen3.5-4b-mtp | deepseek-r1 7b |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Raisonnement (coq) | 2.0 | 1.3 | 5.1 | 0.8 | 1.3 | 1.3 | 1.0 | 3.1 | 4.3 | 4.0 | 3.7 |
| Code (palindrome) | 10.5 | 4.5 | 8.9 | 6.5 | 2.9 | 4.8 | 7.2 | 6.0 | 4.6 | 3.7 | 1.2 |
| Grammaire | 10.3 | 7.1 | 9.6 | 6.8 | 2.6 | 7.8 | 2.5 | 6.0 | 4.6 | 4.0 | 1.4 |
| Traduction | 10.2 | 7.7 | 10.0 | 4.8 | 3.5 | 7.9 | 5.2 | 5.0 | 5.6 | 4.1 | 0.8 |
| Latence (hello) | 4.4 | 3.5 | 9.1 | 6.3 | 4.1 | 2.7 | 5.8 | 5.4 | 5.2 | 3.9 | 0.2 |
| Analyse code | 10.1 | 11.1 | 8.7 | 6.9 | 5.3 | 8.0 | 5.7 | 5.4 | 7.0 | 6.3 | 6.1 |
| Résumé long | 10.3 | 5.1 | 8.5 | 4.2 | 3.9 | 6.2 | 6.5 | 4.9 | 4.5 | 4.1 | 1.9 |
| Analyse logs | 10.5 | 5.7 | 9.0 | 6.1 | 3.0 | 7.9 | 6.1 | 4.6 | 4.3 | 4.4 | 0.2 |
| Rédaction article | 9.9 | 8.6 | 8.4 | 6.8 | 3.9 | 5.1 | 7.3 | 5.8 | 3.9 | 4.7 | — |
| Latence pure | 2.6 | 3.6 | 3.8 | 4.9 | 3.0 | 0.7 | 5.8 | 3.1 | 2.4 | 2.6 | 1.1 |
| Raisonnement (docker) | 9.5 | 7.2 | 8.7 | 6.5 | 3.9 | 7.4 | 5.6 | 6.2 | 4.8 | 5.0 | 1.7 |
| Ø tok/s | 8.2 | 5.9 | 8.2 | 5.5 | 3.4 | 5.4 | 5.3 | 5.0 | 4.7 | 4.3 | 1.8 |
| Catégorie | gemma3 4b | llama3.2 3b | qwen3 4b | llama3.1 8b | mistral 7b | phi4-mini | qwen2.5-coder 7b | qwen3 8b | qwen3.5-4b | qwen3.5-4b-mtp | deepseek-r1 7b |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Raisonnement (coq) | 10.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 10.0 | 2.0 | 2.0 | 2.0 |
| Code (palindrome) | 7.0 | 7.0 | 5.0 | 9.0 | 7.0 | 7.0 | 9.0 | 7.0 | 3.0 | 3.0 | 7.0 |
| Grammaire | 3.0 | 7.0 | 3.0 | 3.0 | 7.0 | 5.0 | 3.0 | 3.0 | 3.0 | 3.0 | 3.0 |
| Traduction | 5.0 | 5.0 | 3.0 | 5.0 | 7.0 | 3.0 | 5.0 | 5.0 | 3.0 | 3.0 | 3.0 |
| Latence (hello) | 3.0 | 3.0 | 3.0 | 5.0 | 7.0 | 3.0 | 5.0 | 3.0 | 3.0 | 3.0 | 3.0 |
| Analyse code | 4.0 | 8.0 | 4.0 | 3.0 | 4.0 | 8.0 | 3.0 | 3.0 | 4.0 | 4.0 | 3.0 |
| Résumé long | 4.0 | 6.0 | 4.0 | 3.0 | 6.0 | 4.0 | 3.0 | 5.0 | 4.0 | 4.0 | 4.0 |
| Analyse logs | 4.0 | 6.0 | 6.0 | 5.0 | 6.0 | 6.0 | 5.0 | 3.0 | 4.0 | 4.0 | 3.0 |
| Rédaction article | 5.0 | 7.0 | 3.0 | 5.0 | 5.0 | 5.0 | 5.0 | 7.0 | 3.0 | 3.0 | 3.0 |
| Latence pure | 3.0 | 3.0 | 3.0 | 8.0 | 3.0 | 3.0 | 8.0 | 3.0 | 3.0 | 3.0 | 3.0 |
| Raisonnement (docker) | 6.0 | 6.0 | 6.0 | 5.0 | 8.0 | 6.0 | 3.0 | 5.0 | 4.0 | 4.0 | 4.0 |
| Ø Qualité | 4.9 | 5.5 | 3.8 | 4.8 | 5.6 | 4.7 | 4.6 | 4.9 | 3.3 | 3.3 | 3.5 |
Cliquez sur chaque domaine pour voir les résultats détaillés. Classement par note qualité puis par vitesse.
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| qwen3:8b | 10.0/10 | 3.1 tok/s | <think>|Le coq ne pond pas d'oeufs... |
| gemma3:4b | 10.0/10 🇫🇷 | 2.0 tok/s | Évidemment, les coqs ne pondent pas d'œufs, donc l'œuf ne tombe de quel que soit côté ! |
| qwen3:4b | 2.0/10 | 5.1 tok/s | <think> Okay, the user is asking a riddle in French. The question is: "Si un coq pond un oeuf sur le toit d'une grange, de quel cote tombe t-il ?" The |
| qwen3.5-4b | 2.0/10 | 4.3 tok/s | Thinking Process: 1. **Analyze the Request:** * Task: Answer a riddle/question. * Constraint 1: Exactly one sentence (1 phrase). * |
| qwen3.5-4b-mtp | 2.0/10 | 4.0 tok/s | Thinking Process: 1. **Analyze the Request:** * Task: Answer a riddle/question. * Constraint 1: Exactly one sentence (1 phrase). * |
| deepseek-r1:7b | 2.0/10 | 3.7 tok/s | |
| llama3.2:3b | 2.0/10 🇫🇷 | 1.3 tok/s | Il tombe du côté où il est assis. |
| mistral:7b | 2.0/10 🇫🇷 | 1.3 tok/s | Réponse : De chaque côté, car un coq ne peut pas pondre. |
| phi4-mini | 2.0/10 🇫🇷 | 1.3 tok/s | Il ne tombe pas du tout ; il reste au sommet. |
| qwen2.5-coder:7b | 2.0/10 🇫🇷 | 1.0 tok/s | L'oeuf tombe du côté de la pente du toit. |
| llama3.1:8b | 2.0/10 🇫🇷 | 0.8 tok/s | L'œuf roule vers le bord du toit et tombe de la face extérieure du côté qui est bas. |
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| qwen2.5-coder:7b | 9.0/10 🇫🇷 | 7.2 tok/s | def is_palindrome(s): return s == s[::-1] |
| llama3.1:8b | 9.0/10 🇫🇷 | 6.5 tok/s | def is_palindrome(s): s = ''.join(c for c in s if c.isalnum()).lower() return s == s[::-1] |
| gemma3:4b | 7.0/10 🇫🇷 | 10.5 tok/s | ```python import asyncio import json from typing import Any, Dict, Optional import httpx async def fetch_data_with_retry( url: str, retries |
| qwen3:8b | 7.0/10 | 6.0 tok/s | <think>|def is_palindrome(s):... |
| phi4-mini | 7.0/10 🇫🇷 | 4.8 tok/s | ```python import asyncio import httpx async def fetch_data_with_retry(url: str, max_retries=3) -> dict: """ Interroge une API REST avec |
| llama3.2:3b | 7.0/10 🇫🇷 | 4.5 tok/s | Voici une fonction Python asynchrone qui interroge une API REST avec retry (3 tentatives, backoff exponentiel), gère les timeouts et les erreurs HTTP, |
| mistral:7b | 7.0/10 🇫🇷 | 2.9 tok/s | Voici une fonction asynchrone qui interroge une API REST avec retry (3 tentatives, backoff exponentiel), gère les timeouts et les erreurs HTTP, et r |
| deepseek-r1:7b | 7.0/10 | 1.2 tok/s | Voici une fonction Python asynchrone qui interroge une API REST avec des retours (3 tentatives), un backoff exponentiel, gère les timeout et erreurs H |
| qwen3:4b | 5.0/10 | 8.9 tok/s | <think> Okay, I need to write an asynchronous Python function that interacts with a REST API. The requirements are: retry up to 3 times with exponenti |
| qwen3.5-4b | 3.0/10 | 4.6 tok/s | Here is the plan to answer the user's request: 1. **Analyze the Request:** * **Role:** Python Developer Assistant. * **Task:** Write an |
| qwen3.5-4b-mtp | 3.0/10 | 3.7 tok/s | Here is the plan to answer the user's request: 1. **Analyze the Request:** * **Role:** Python Developer Assistant. * **Task:** Write an |
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| llama3.2:3b | 7.0/10 🇫🇷 | 7.1 tok/s | Voici le texte corrigé et reformé pour un email client professionnel : "Bonjour Monsieur, Je me permets de vous contacter pour suivre le statut de m |
| mistral:7b | 7.0/10 🇫🇷 | 2.6 tok/s | Bonjour Monsieur, Je vous écris pour le suivi de votre dossier. Depuis une semaine, je n'ai pas eu de nouvelles. Je voudrais savoir si vous avez bi |
| phi4-mini | 5.0/10 🇫🇷 | 7.8 tok/s | Bonjour Monsieur, Je me permets de vous écrire pour suivre le dossier en cours dont je n’ai reçu aucune nouvelle depuis la semaine dernière. Aurie |
| gemma3:4b | 3.0/10 🇫🇷 | 10.3 tok/s | Voici une version corrigée et plus professionnelle du texte, adaptée à un email client : **Objet : Suivi de dossier - [Votre Numéro de Dossier si app |
| qwen3:4b | 3.0/10 | 9.6 tok/s | <think> Okay, the user wants me to correct the spelling and reformulate the email to make it more professional. Let me start by reading the original t |
| llama3.1:8b | 3.0/10 🇫🇷 | 6.8 tok/s | Je me suis nourri, puis je suis allé au cinéma avec mes amis. |
| qwen3:8b | 3.0/10 | 6.0 tok/s | <think>|J'ai mangé et ensuite je suis allé au cinéma... |
| qwen3.5-4b | 3.0/10 | 4.6 tok/s | Here's a thinking process that leads to the suggested revisions: 1. **Analyze the Request:** * **Role:** Editorial Assistant (Assistant éditor |
| qwen3.5-4b-mtp | 3.0/10 | 4.0 tok/s | Here's a thinking process that leads to the suggested revisions: 1. **Analyze the Request:** * **Role:** Editorial Assistant (Assistant éditor |
| qwen2.5-coder:7b | 3.0/10 🇫🇷 | 2.5 tok/s | J'ai mangé et ensuite je suis allé au cinéma avec mes amis. |
| deepseek-r1:7b | 3.0/10 | 1.4 tok/s | Here’s a revised version of your text in a more professional tone: --- Bonjour, Mr, I hope this message finds you well. I am writing to follow up o |
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| mistral:7b | 7.0/10 🇫🇷 | 3.5 tok/s | "Erreur 504 Timeout de la porte d'accès : Le serveur n'a pas reçu une réponse du temps imparti de la partie supérieure du serveur. Cela se produit g |
| gemma3:4b | 5.0/10 🇫🇷 | 10.2 tok/s | Absolument ! Voici la traduction du message d'erreur et de la documentation, avec des explications pour les termes techniques : **Traduction du Messa |
| llama3.2:3b | 5.0/10 🇫🇷 | 7.7 tok/s | Voici la traduction du message d'erreur et de la documentation en français : "Erreur 504 Gateway Timeout : Le serveur n'a pas reçu une réponse à temp |
| qwen2.5-coder:7b | 5.0/10 🇫🇷 | 5.2 tok/s | Le renard brun rapide saute par-dessus le chien paresseux. |
| qwen3:8b | 5.0/10 | 5.0 tok/s | <think>|Le renard brun rapide saute par-dessus le chien paresseux |
| llama3.1:8b | 5.0/10 🇫🇷 | 4.8 tok/s | « Le renard rapide brun saute sur le chien paresseux » |
| qwen3:4b | 3.0/10 | 10.0 tok/s | <think> Okay, I need to translate the given error message and documentation into French. Let me start by understanding the original text. The error i |
| phi4-mini | 3.0/10 🇫🇷 | 7.9 tok/s | "Erreur 504 : Temps d'attente du point de terminaison du serveur (Timeout Gateway): Le serveur n'a pas reçu une réponse en temps opportun depuis le se |
| qwen3.5-4b | 3.0/10 | 5.6 tok/s | Thinking Process: 1. **Analyze the Request:** * **Role:** Bilingual technical assistant (assistant technique bilingue). * **Task:** Tran |
| qwen3.5-4b-mtp | 3.0/10 | 4.1 tok/s | Thinking Process: 1. **Analyze the Request:** * **Role:** Technical assistant (bilingual). * **Task:** Translate a specific error messag |
| deepseek-r1:7b | 3.0/10 | 0.8 tok/s | **Erreur 504 : Temps de délai sur l' gateway** L'erreur "Error 504 Gateway Timeout" indique qu'un temps d'exécution excessif a été tenu par la serveu |
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| mistral:7b | 7.0/10 🇫🇷 | 4.1 tok/s | La commande pour lister les conteneurs Docker en cours d'exécution est `docker ps`. |
| llama3.1:8b | 5.0/10 🇫🇷 | 6.3 tok/s | Bonjour, comment puis-je vous aider? |
| qwen2.5-coder:7b | 5.0/10 🇫🇷 | 5.8 tok/s | Bonjour! Comment puis-je vous aider aujourd'hui ? |
| qwen3:4b | 3.0/10 | 9.1 tok/s | <think> Okay, the user is asking for the command to list running Docker containers. Let me recall. Docker has a command called docker ps, right? That' |
| qwen3:8b | 3.0/10 | 5.4 tok/s | Bonjour! |
| qwen3.5-4b | 3.0/10 | 5.2 tok/s | Thinking Process: 1. **Analyze the Request:** * Role: Assistant. * Task: Answer a specific question about Docker commands. * Quest |
| gemma3:4b | 3.0/10 🇫🇷 | 4.4 tok/s | `docker ps` |
| qwen3.5-4b-mtp | 3.0/10 | 3.9 tok/s | Thinking Process: 1. **Analyze the Request:** * Role: Assistant. * Task: Answer a specific question about Docker commands. * Quest |
| llama3.2:3b | 3.0/10 🇫🇷 | 3.5 tok/s | `docker ps -a` |
| phi4-mini | 3.0/10 🇫🇷 | 2.7 tok/s | `docker ps` |
| deepseek-r1:7b | 3.0/10 | 0.2 tok/s |
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| llama3.2:3b | 8.0/10 🇫🇷 | 11.1 tok/s | **Analyse du code** Le code Python fourni est une fonction `process_data` qui prend en entrée une liste de dictionnaires (`items`) et un paramètre op |
| phi4-mini | 8.0/10 🇫🇷 | 8.0 tok/s | Le code Python fourni est une fonction appelée `process_data` qui prend deux arguments : un tableau d'objets (`items`) et un seuil optionnel (`thresho |
| gemma3:4b | 4.0/10 🇫🇷 | 10.1 tok/s | D'accord, analysons ce code Python étape par étape, identifions les problèmes potentiels et proposons des améliorations. **Analyse du Code** La fonc |
| qwen3:4b | 4.0/10 | 8.7 tok/s | <think> Okay, let's take a look at this Python code. The function is called process_data and takes items and a threshold. The goal seems to be process |
| qwen3.5-4b | 4.0/10 | 7.0 tok/s | Here's a thinking process that leads to the suggested analysis and improvements: 1. **Understand the Goal:** The user wants me to act as a technical |
| qwen3.5-4b-mtp | 4.0/10 | 6.3 tok/s | Here's a thinking process that leads to the suggested analysis and improvements: 1. **Understand the Goal:** The user wants me to act as a technical |
| mistral:7b | 4.0/10 🇫🇷 | 5.3 tok/s | Ce code Python définit une fonction `process_data` qui traite des données enregistrées dans une liste d'objets, chacun représentant un élément avec |
| llama3.1:8b | 3.0/10 🇫🇷 | 6.9 tok/s | Analyse du code : bugs potentiels : 1. Utilisation de eval() dangereuse 2. Gestion fichier sans fermeture 3. Division par zero potentielle 4. Manque d |
| deepseek-r1:7b | 3.0/10 | 6.1 tok/s | |
| qwen2.5-coder:7b | 3.0/10 🇫🇷 | 5.7 tok/s | Analyse: 1. eval() dangereux 2. Fichier non fermé 3. Division par zéro... |
| qwen3:8b | 3.0/10 | 5.4 tok/s | Analyse: bugs potentiels eval(), fichiers non fermés, division par zéro... |
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| llama3.2:3b | 6.0/10 🇫🇷 | 5.1 tok/s | **5 points clés :** 1. Le développement des LLM a connu une acceleration spectaculaire depuis 2020, avec l'intégration de mecanismes d'attention plus |
| mistral:7b | 6.0/10 🇫🇷 | 3.9 tok/s | 1. Le developpement des LLM a connu une acceleration spectaculaire depuis 2020. 2. Les architectures Transformer ont evolue pour integrer des mecani |
| qwen3:8b | 5.0/10 | 4.9 tok/s | Synthèse: L'IA évolue rapidement avec les LLMs... |
| gemma3:4b | 4.0/10 🇫🇷 | 10.3 tok/s | Voici un résumé du texte en 5 points clés, suivi de l’identification des 3 thèmes principaux : **Résumé en 5 points clés:** 1. **Progrès Rapide des |
| qwen3:4b | 4.0/10 | 8.5 tok/s | <think> Okay, I need to summarize the given text into 5 key points and identify the three main themes. Let me start by reading the text carefully. Fi |
| phi4-mini | 4.0/10 🇫🇷 | 6.2 tok/s | 1. Acceleration du développement des LLM depuis 2020 grâce aux architectures Transformer sophistiquées. 2. Le coût élevé de l'entraînement des modèles |
| qwen3.5-4b | 4.0/10 | 4.5 tok/s | Thinking Process: 1. **Analyze the Request:** * Input text: A short paragraph about Large Language Models (LLMs), their evolution, costs, demo |
| qwen3.5-4b-mtp | 4.0/10 | 4.1 tok/s | Thinking Process: 1. **Analyze the Request:** * Input text: A short paragraph about Large Language Models (LLMs), their development, costs, de |
| deepseek-r1:7b | 4.0/10 | 1.9 tok/s | **Key Points:** 1. **Rapid Advancements in Large Language Models (LLMs):** Since 2020, LLMs have undergone significant advancements, particularly in |
| qwen2.5-coder:7b | 3.0/10 🇫🇷 | 6.5 tok/s | L'IA connaît une évolution rapide grâce aux LLMs... |
| llama3.1:8b | 3.0/10 🇫🇷 | 4.2 tok/s | Synthèse en 3 phrases : L'IA connaît un essor rapide avec les LLMs comme GPT et Claude. Ces modèles sont entraînés sur des données massives. Parallèle |
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| qwen3:4b | 6.0/10 | 9.0 tok/s | <think> Okay, let's tackle this user's query. They provided server logs and want an analysis with the root cause, time of the problem, impacted servic |
| phi4-mini | 6.0/10 🇫🇷 | 7.9 tok/s | Cause Racine : Le problème principal semble être une surcharge des connexions à la base de données PostgreSQL. La charge excessive a entraîné l'exhaus |
| llama3.2:3b | 6.0/10 🇫🇷 | 5.7 tok/s | Analyse des logs serveur : **Résumé** Les logs servent à décrire les événements qui ont affecté la disponibilité et le fonctionnement d'un système s |
| mistral:7b | 6.0/10 🇫🇷 | 3.0 tok/s | Cause racine : L'erreur est due à l'épuisement des connexions PostgreSQL (20/20) à 08:21. Cela a entraîné une échec de la vérification d'état et un |
| llama3.1:8b | 5.0/10 🇫🇷 | 6.1 tok/s | Analyse des logs : problème de connexion DB, le service tente de se reconnecter puis timeout. Après redémarrage du api-gateway, nouvelle erreur de con |
| qwen2.5-coder:7b | 5.0/10 🇫🇷 | 6.1 tok/s | Cause: api-gateway ne peut pas joindre la DB 10.0.0.5:5432... |
| gemma3:4b | 4.0/10 🇫🇷 | 10.5 tok/s | Okay, let's analyze these server logs to determine the root cause, timing, impacted services, and corrective actions. **1. Cause Root:** The primary |
| qwen3.5-4b-mtp | 4.0/10 | 4.4 tok/s | Here's a thinking process that leads to the suggested analysis: 1. **Understand the Goal:** The user wants an analysis of provided server logs. Spec |
| qwen3.5-4b | 4.0/10 | 4.3 tok/s | Here's a thinking process that leads to the suggested analysis: 1. **Understand the Goal:** The user wants an analysis of provided server logs. Spec |
| qwen3:8b | 3.0/10 | 4.6 tok/s | Cause racine: perte de connexion DB suivie de timeout... |
| deepseek-r1:7b | 3.0/10 | 0.2 tok/s | **Analyse des logs serveur :** 1. **Temps de l'incident :** - L'incident se produit entre 08:21 et 08:30. 2. **Ca |
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| llama3.2:3b | 7.0/10 🇫🇷 | 8.6 tok/s | **Sécuriser votre API REST : Les meilleures pratiques pour 2026** L'API REST (Representational State of Resource) est devenue un standard pour les éc |
| qwen3:8b | 7.0/10 | 5.8 tok/s | Article sur les petits modèles d'IA locaux... |
| gemma3:4b | 5.0/10 🇫🇷 | 9.9 tok/s | ## Sécuriser vos APIs REST en 2026 : Un Guide Technique et Concret L'API REST est devenue le pilier de l'architecture logicielle moderne, permettant |
| qwen2.5-coder:7b | 5.0/10 🇫🇷 | 7.3 tok/s | Les petits modèles d'IA permettent une utilisation optimisée... |
| llama3.1:8b | 5.0/10 🇫🇷 | 6.8 tok/s | Les petits modèles d'IA : une puissance à portée de main. Les modèles compacts comme Phi-4-mini, Gemma 3 et Qwen 3 offrent des performances impression |
| phi4-mini | 5.0/10 🇫🇷 | 5.1 tok/s | # Les Meilleures Pratiques Pour Securiser Une API REST En 2026 Les années passées ont vu des avancées significatives dans le domaine de la cybersécur |
| mistral:7b | 5.0/10 🇫🇷 | 3.9 tok/s | Introduction L'API REST (Representational State Transfer) est devenue l'architecture la plus courante pour les applications web modernes. Elle perm |
| qwen3:4b | 3.0/10 | 8.4 tok/s | <think> Okay, the user wants a blog post in French about best practices for securing a REST API in 2026. They specified an introduction, five sections |
| qwen3.5-4b-mtp | 3.0/10 | 4.7 tok/s | Here's a thinking process that leads to the suggested blog post: 1. **Analyze the Request:** * **Topic:** Best practices for securing a REST A |
| qwen3.5-4b | 3.0/10 | 3.9 tok/s | Here's a thinking process that leads to the suggested blog post: 1. **Analyze the Request:** * **Topic:** Best practices for securing a REST A |
| deepseek-r1:7b | 3.0/10 | 0.0 tok/s |
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| qwen2.5-coder:7b | 8.0/10 🇫🇷 | 5.8 tok/s | La capitale de la France est Paris. |
| llama3.1:8b | 8.0/10 🇫🇷 | 4.9 tok/s | La capitale de la France est Paris. |
| qwen3:4b | 3.0/10 | 3.8 tok/s | <think> Okay, the |
| llama3.2:3b | 3.0/10 🇫🇷 | 3.6 tok/s | Je suis prêt. |
| qwen3:8b | 3.0/10 | 3.1 tok/s | Paris. |
| mistral:7b | 3.0/10 🇫🇷 | 3.0 tok/s | aux questions. |
| gemma3:4b | 3.0/10 🇫🇷 | 2.6 tok/s | Oui |
| qwen3.5-4b-mtp | 3.0/10 | 2.6 tok/s | Thinking Process: 1 |
| qwen3.5-4b | 3.0/10 | 2.4 tok/s | Thinking Process: 1 |
| deepseek-r1:7b | 3.0/10 | 1.1 tok/s | |
| phi4-mini | 3.0/10 🇫🇷 | 0.7 tok/s | Oui. |
| Modèle | Qualité | Vitesse | Réponse |
|---|---|---|---|
| mistral:7b | 8.0/10 🇫🇷 | 3.9 tok/s | Le problème que l'utilisateur rencontre est lié à la modification du réseau de son déploiement Docker depuis bridge vers host. Le réseau bridge est |
| gemma3:4b | 6.0/10 🇫🇷 | 9.5 tok/s | Bonjour ! Je comprends votre problème, c'est un classique lorsqu'on passe d'un réseau Docker standard à un réseau "host" (ou "bridge host"). Laissez |
| qwen3:4b | 6.0/10 | 8.7 tok/s | <think> Okay, the user is having trouble with their Docker deployment after switching the network mode from bridge to host. The containers aren't comm |
| phi4-mini | 6.0/10 🇫🇷 | 7.4 tok/s | Le changement du réseau `bridge` vers une configuration `host` dans un environnement Docker peut entraîner des problèmes de communication entre les co |
| llama3.2:3b | 6.0/10 🇫🇷 | 7.2 tok/s | Bonjour ! Je suis ravi de vous aider à résoudre ce problème. Le problème que vous rencontrez est probablement lié au fait que les conteneurs Docker u |
| llama3.1:8b | 5.0/10 🇫🇷 | 6.5 tok/s | Problème classique : en mode host, les conteneurs partagent le réseau de l'hôte et perdent la communication interne via les noms de conteneur. Solutio |
| qwen3:8b | 5.0/10 | 6.2 tok/s | Problème: host network partage la stack de l'hôte... |
| qwen3.5-4b-mtp | 4.0/10 | 5.0 tok/s | Here's a thinking process that leads to the suggested response: 1. **Analyze the User's Request:** * **Role:** Technical Assistant (Assistant |
| qwen3.5-4b | 4.0/10 | 4.8 tok/s | Here's a thinking process that leads to the suggested response: 1. **Analyze the User's Request:** * **Role:** Technical Assistant (Assistant |
| deepseek-r1:7b | 4.0/10 | 1.7 tok/s | L'utilisateur a rencontré un problème avec son déploiement Docker après avoir modifié le type de réseau de `bridge` à `host`. Les conteneurs ne sont |
| qwen2.5-coder:7b | 3.0/10 🇫🇷 | 5.6 tok/s | Problème: mode host brise l'isolation réseau entre conteneurs... |
Benchmark executé sur Ubuntu 24.04.4 LTS. Cliquer sur l'en-tete d'un bloc pour le copier.
# Installer Docker sur Ubuntu curl -fsSL https://get.docker.com | sh # Lancer Ollama en conteneur docker run -d --name ollama --restart unless-stopped \ -v ollama_data:/root/.ollama \ -p 127.0.0.1:11434:11434 \ ollama/ollama # Verification docker exec ollama ollama --version
docker exec ollama ollama pull gemma3:4b docker exec ollama ollama pull llama3.2:3b docker exec ollama ollama pull qwen3:4b docker exec ollama ollama pull llama3.1:8b docker exec ollama ollama pull mistral:7b docker exec ollama ollama pull phi4-mini docker exec ollama ollama pull qwen2.5-coder:7b docker exec ollama ollama pull qwen3:8b docker exec ollama ollama pull qwen3.5-4b docker exec ollama ollama pull qwen3.5-4b-mtp docker exec ollama ollama pull deepseek-r1:7b docker exec ollama ollama list
#!/bin/bash
MODELES="gemma3:4b llama3.2:3b qwen3:4b llama3.1:8b mistral:7b phi4-mini qwen2.5-coder:7b qwen3:8b qwen3.5-4b qwen3.5-4b-mtp deepseek-r1:7b"
for M in $MODELES; do
echo "=== $M ==="
for test in \
"raisonnement_coq|Un coq pond un oeuf sur le toit d'une grange. De quel cote tombe l'oeuf ?|100" \
"code_palindrome|Ecris une fonction Python is_palindrome(s). Donne juste le code.|100" \
"grammaire_francais|Corrige: J'ai mange et ensuite j'ai alle au cinema avec mes amis.|80" \
"traduction|Traduis en francais: The quick brown fox jumps over the lazy dog|100" \
"latence_hello|Dis simplement bonjour.|20"; do
IFS='|' read -r n p t <<< "$test"
docker exec ollama curl -s http://127.0.0.1:11434/api/generate \
-H "Content-Type: application/json" \
-d "{\"model\":\"$M\",\"prompt\":\"$p\",\"options\":{\"num_predict\":$t,\"temperature\":0.7},\"stream\":false}"
echo ""
done
docker exec ollama curl -s http://127.0.0.1:11434/api/generate \
-H "Content-Type: application/json" \
-d "{\"model\":\"$M\",\"prompt\":\"x\",\"keep_alive\":0,\"stream\":false}" > /dev/null
done
#!/bin/bash # Tests : analyse_code (300t), resume_long (400t), analyse_logs (350t), redaction_article (500t), latence_pure (5t) # Structure identique au bloc C1 # Voir batch5.csv pour les prompts complets
#!/bin/bash
MODELES="gemma3:4b llama3.2:3b qwen3:4b llama3.1:8b mistral:7b phi4-mini qwen2.5-coder:7b qwen3:8b qwen3.5-4b qwen3.5-4b-mtp deepseek-r1:7b"
for M in $MODELES; do
docker exec ollama curl -s http://127.0.0.1:11434/api/generate \
-H "Content-Type: application/json" \
-d "{\"model\":\"$M\",\"prompt\":\"Explique pourquoi changer le network Docker de bridge a host peut empecher les conteneurs de communiquer entre eux.\",\"options\":{\"num_predict\":300,\"temperature\":0.7},\"stream\":false}"
echo ""
docker exec ollama curl -s http://127.0.0.1:11434/api/generate \
-H "Content-Type: application/json" \
-d "{\"model\":\"$M\",\"prompt\":\"x\",\"keep_alive\":0,\"stream\":false}" > /dev/null
done
curl -fsSL https://ollama.com/install.sh | sh ollama --version
ollama pull gemma3:4b ollama pull llama3.2:3b ollama pull qwen3:4b ollama pull llama3.1:8b ollama pull mistral:7b ollama pull phi4-mini ollama pull qwen2.5-coder:7b ollama pull qwen3:8b ollama pull qwen3.5-4b ollama pull qwen3.5-4b-mtp ollama pull deepseek-r1:7b ollama list
#!/bin/bash
MODELES="gemma3:4b llama3.2:3b qwen3:4b llama3.1:8b mistral:7b phi4-mini qwen2.5-coder:7b qwen3:8b qwen3.5-4b qwen3.5-4b-mtp deepseek-r1:7b"
for M in $MODELES; do
echo "=== $M ==="
for test in \
"raisonnement_coq|Un coq pond un oeuf sur le toit d'une grange. De quel cote tombe l'oeuf ?|100" \
"code_palindrome|Ecris une fonction Python is_palindrome(s). Donne juste le code.|100" \
"grammaire_francais|Corrige: J'ai mange et ensuite j'ai alle au cinema avec mes amis.|80" \
"traduction|Traduis en francais: The quick brown fox jumps over the lazy dog|100" \
"latence_hello|Dis simplement bonjour.|20"; do
IFS='|' read -r n p t <<< "$test"
curl -s http://127.0.0.1:11434/api/generate \
-H "Content-Type: application/json" \
-d "{\"model\":\"$M\",\"prompt\":\"$p\",\"options\":{\"num_predict\":$t,\"temperature\":0.7},\"stream\":false}"
echo ""
done
curl -s http://127.0.0.1:11434/api/generate \
-H "Content-Type: application/json" \
-d "{\"model\":\"$M\",\"prompt\":\"x\",\"keep_alive\":0,\"stream\":false}" > /dev/null
done
#!/bin/bash # Tests : analyse_code (300t), resume_long (400t), analyse_logs (350t), redaction_article (500t), latence_pure (5t) # Structure identique au bloc C2 # Voir batch5.csv pour les prompts complets
#!/bin/bash
MODELES="gemma3:4b llama3.2:3b qwen3:4b llama3.1:8b mistral:7b phi4-mini qwen2.5-coder:7b qwen3:8b qwen3.5-4b qwen3.5-4b-mtp deepseek-r1:7b"
for M in $MODELES; do
curl -s http://127.0.0.1:11434/api/generate \
-H "Content-Type: application/json" \
-d "{\"model\":\"$M\",\"prompt\":\"Explique pourquoi changer le network Docker de bridge a host peut empecher les conteneurs de communiquer entre eux.\",\"options\":{\"num_predict\":300,\"temperature\":0.7},\"stream\":false}"
echo ""
curl -s http://127.0.0.1:11434/api/generate \
-H "Content-Type: application/json" \
-d "{\"model\":\"$M\",\"prompt\":\"x\",\"keep_alive\":0,\"stream\":false}" > /dev/null
done
Si le telechargement via ollama pull bloque (timeout, CDN), telechargez les GGUF depuis HuggingFace et importez-les manuellement :
#!/bin/bash # Alternative : telecharger le GGUF depuis HuggingFace et l'importer dans Ollama # Adaptez le nom du fichier et l'URL selon le modele souhaite MODELE="gemma3:4b" GGUF_URL="https://huggingface.co/bartowski/gemma-3-4b-it-GGUF/resolve/main/gemma-3-4b-it-Q4_K_M.gguf" GGUF_FILE="/tmp/modele.gguf" # 1. Telechargement avec reprise echo "Telechargement de $MODELE..." curl -L -C - -o "$GGUF_FILE" "$GGUF_URL" # 2. Copie dans le conteneur Ollama docker cp "$GGUF_FILE" ollama:/tmp/ # 3. Creation du Modelfile cat > /tmp/Modelfile << MODEOF FROM /tmp/modele.gguf MODEOF docker cp /tmp/Modelfile ollama:/tmp/ # 4. Import docker exec ollama ollama create "$MODELE" -f /tmp/Modelfile echo "✅ $MODELE importe" docker exec ollama ollama list | grep "$MODELE"
Trouvez les URLs GGUF exactes sur huggingface.co (fichiers .gguf dans le repo du modele). Utilisez curl -L -C - qui permet de reprendre un telechargement interrompu.
Plateforme de test : VPS KVM4 · 16 Go RAM · 4 vCPU · CPU only · Ubuntu 24.04.4 LTS · Docker 29.6.2 · Ollama 0.32.1
Données brutes : batch5.csv (141 lignes) · 11 catégories · temps, tokens, tok/s, réponses complètes
Modèle exclu : qwen3.5-9b (OOM avec 16 Go RAM)