Quand on déploie un assistant IA local chez une PME, le choix du modèle conditionne tout : la qualité des réponses que verront les utilisateurs, la mémoire GPU nécessaire, la vitesse d'inférence, et les obligations juridiques vis-à-vis du client. Ce n'est pas un choix qu'on peut déléguer aux benchmarks académiques : HumanEval et MMLU ne mesurent pas la capacité d'un modèle à rédiger une réponse à un client mécontent ou à analyser une clause contractuelle ambiguë.
Nous avons donc monté notre propre protocole de test et comparé 6 modèles sur des tâches tirées du quotidien d'une PME. Voici ce que nous avons trouvé, et pourquoi le résultat nous a surpris.
Les critères qui comptent pour une PME
Avant de lancer les tests, nous avons fixé nos contraintes. Ce que nous cherchions :
- Licence Apache 2.0 irrévocable. Une fois un modèle Apache 2.0 publié, son éditeur ne peut plus modifier les conditions pour cette version. Un client déployé aujourd'hui a une garantie juridique permanente. Les licences propriétaires ou "Community License" exposent à des révocations futures, ce qui, pour un déploiement on-premise chez un client, est inacceptable.
- Tenir sur le tier d'entrée de gamme. Notre configuration TPE embarque 32GB de VRAM. Le modèle doit s'y charger entièrement et laisser suffisamment de mémoire pour les conversations simultanées.
- Un modèle de référence à recommander. Le client reste libre de son choix, mais disposer d'un modèle bien qualifié sur l'ensemble de la gamme hardware simplifie nos déploiements et nos tests. C'est aussi un repère clair pour comparer les tiers : même qualité de réponse, vitesse et capacité de charge différentes.
Les 6 modèles testés
| Modèle | Taille | Architecture | Params actifs | Licence |
|---|---|---|---|---|
| mistral-nemo | 7.1 GB | Dense 12B | 12B | Apache 2.0 |
| mistral-small3.1 | 15 GB | Dense 24B | 24B | MRL (révocable) |
| qwen3:14b | 9.3 GB | Dense 14B | 14B | Apache 2.0 |
| qwen3:32b | 20 GB | Dense 32B | 32B | Apache 2.0 |
| gemma4:12b | 7.6 GB | Dense 4.5B (modèle E4B) | 4.5B | Apache 2.0 |
| gemma4:26b | 17 GB | MoE (3.8B actifs) | 3.8B | Apache 2.0 |
Les tests ont été conduits sur CPU (Intel Raptor Lake-P, 32GB RAM), ce qui amplifie les écarts de vitesse mais permet de comparer la qualité dans des conditions identiques pour tous les modèles. Sur GPU en production, les vitesses sont significativement supérieures.
La méthodologie : 4 prompts PME, pas des benchmarks académiques
Nous avons rédigé 4 prompts représentatifs des tâches qu'un assistant IA rencontre chez une PME.
Prompt A : Email client mécontent. Un responsable de parc informatique doit répondre à un client dont l'imprimante réseau est en panne depuis 48h et qui menace de résilier son contrat. Le modèle doit trouver le bon ton : ferme mais empathique, avec un engagement calendaire précis et un geste commercial approprié. Trop servile, c'est suspect. Trop technique, ça aggrave.
Prompt B : Cas RH. Un salarié avec 6 ans d'ancienneté cumule des retards chroniques. L'entretien informel n'a rien changé. Que faire ? Ce prompt teste la maîtrise de la procédure disciplinaire française : l'ordre des étapes compte légalement, une erreur expose l'entreprise.
Prompt C : Analyse de contrat. Trois clauses d'un contrat de prestation doivent être analysées pour risque. Le modèle doit identifier les pièges et proposer des reformulations équilibrées, pas juste pointer des problèmes sans solution.
Prompt D : Génération de code. Un script Python qui lit un CSV de clients et génère un rapport HTML mensuel, sans dépendance externe. Ce qui distingue une bonne réponse d'une mauvaise : la gestion des cas dégénérés, la lisibilité, et la cohérence entre le code et les spécifications.
Notre grille d'évaluation
Pour chaque prompt, nous avons évalué les réponses selon quatre critères, notés de 1 à 5. Chaque modèle a été lu indépendamment par deux personnes, les désaccords tranchés en relecture commune.
| Critère | Ce qu'on mesure | Poids |
|---|---|---|
| Exactitude | Absence d'erreurs factuelles, juridiques ou techniques | 40 % |
| Exhaustivité | Couverture des points clés du prompt, sans omission importante | 30 % |
| Clarté | Structure, lisibilité, utilisabilité directe sans reformulation | 20 % |
| Hallucinations | Identifiants, articles de loi ou références inexistants inventés | 10 % |
Résultats : gemma4:26b premier sur tout
Le classement général est sans ambiguïté.
| Rang | Modèle | Vitesse CPU | A : Email | B : RH | C : Contrat | D : Code |
|---|---|---|---|---|---|---|
| 1 | gemma4:26b | 1er | 1er | 1er | 1er | 1er |
| 2 | gemma4:12b | 4e | 3e | 2e | 2e | 2e |
| 3 | qwen3:32b | 6e | 2e | 4e | 3e | 3e |
| 4 | qwen3:14b | 3e | 4e | 3e | 4e | 4e |
| 5 | mistral-small3.1 | 5e | 5e | 5e | 5e | 5e |
| 6 | mistral-nemo | 2e | 6e | 6e | 6e | 6e |
gemma4:26b est non seulement le meilleur en qualité sur les 4 prompts, mais aussi le plus rapide en inférence CPU. Ce résultat contre-intuitif s'explique par son architecture.
Pourquoi un modèle de 17 Go tourne plus vite qu'un de 7 Go
gemma4:26b utilise une architecture appelée Mixture-of-Experts (MoE). L'idée est simple : plutôt qu'un seul réseau de neurones monolithique qui traite chaque token, le modèle est découpé en plusieurs "experts" spécialisés. À chaque token généré, un mécanisme de routage sélectionne automatiquement les 2 ou 3 experts les plus pertinents parmi la vingtaine disponibles. Les autres restent inactifs.
En pratique : gemma4:26b contient 25.2 milliards de paramètres au total, mais seulement 3.8 milliards sont activés à chaque token. Le modèle charge 17 Go en mémoire (tous les experts doivent être disponibles), mais ne calcule que l'équivalent d'un modèle de 4B à l'inférence.
mistral-nemo, lui, est un modèle "dense" : ses 12 milliards de paramètres travaillent tous à chaque token. gemma4:26b n'en active que 3.8. C'est pourquoi, malgré un fichier 2.5× plus lourd, il tourne plus vite sur CPU, et a fortiori sur GPU, où la bande passante mémoire est le facteur limitant.
Ce n'est pas qu'une curiosité technique. C'est ce qui permet à gemma4:26b de tenir sur 32 Go de VRAM (notre tier TPE) tout en offrant une qualité de réponse proche d'un modèle dense de 25B.
Quelques résultats qui illustrent les écarts de qualité
Les chiffres résument, mais quelques exemples concrets montrent mieux ce qui distingue les modèles.
Sur le cas RH (Prompt B), gemma4:26b est le seul modèle à mentionner spontanément que les "discussions informelles" ne comptent pas juridiquement comme avertissements, une nuance critique pour une PME qui penserait avoir déjà averti le salarié. Il calcule également le coût de remplacement versus le coût d'une gestion disciplinaire, ce qu'aucun autre modèle n'a fait.
Sur l'analyse de contrat (Prompt C), gemma4:26b est le seul à identifier explicitement que "responsabilité de plein droit" signifie une responsabilité sans faute prouvée, notion précise qui change radicalement le niveau de risque d'une clause. Il détecte également un problème d'enrichissement injustifié dans un article que les autres modèles ont ignoré.
Sur la génération de code (Prompt D), mistral-nemo refuse d'écrire le code. Le modèle répond avec une description textuelle de ce qu'il faudrait faire et recommande d'utiliser pandas, alors que le prompt impose explicitement "sans dépendance externe". Sur un outil destiné à des utilisateurs non-développeurs, c'est rédhibitoire.
La question qu'on nous pose : "Gemma, c'est Google : ça ne casse pas la souveraineté ?"
C'est une objection légitime, et elle mérite une réponse précise.
Gemma 4 est un modèle open-source publié par Google DeepMind sous licence Apache 2.0. Une fois les poids téléchargés et déployés dans votre infrastructure, Google n'a aucun accès à vos conversations.
La provenance du modèle ne détermine pas la souveraineté des données. Ce qui compte, c'est où tourne le modèle et qui y a accès. Un modèle Google déployé dans vos locaux est souverain. Un modèle "européen" exposé via une API cloud ne l'est pas.
Par ailleurs, la licence Apache 2.0 comporte une garantie supplémentaire : une fois publiée, elle est irrévocable. Google ne peut pas revenir en arrière sur cette version du modèle. C'est une protection juridique concrète pour un déploiement long terme.
Un modèle validé sur toute la gamme
Un résultat qui nous a particulièrement satisfaits : gemma4:26b (17 Go en Q4) tient sur l'ensemble de notre gamme hardware, de la configuration d'entrée de gamme à 32 Go de VRAM jusqu'aux configurations haute capacité à 96 et 192 Go. Ce n'était pas acquis d'avance : un modèle de cette qualité aurait pu nécessiter des configurations plus larges pour tenir correctement.
En pratique, cela simplifie nos déploiements : un seul modèle à qualifier, à mettre à jour, à documenter. Et pour le client, le message est simple : la qualité des réponses ne dépend pas de la configuration choisie. Ce qui évolue entre les tiers, c'est le nombre d'utilisateurs servis simultanément et la vitesse de réponse.
C'est notre recommandation de base. Nos clients restent libres de déployer un autre modèle selon leurs besoins spécifiques : la stack accepte tout modèle au format GGUF ou HuggingFace, sous réserve qu'il rentre dans la VRAM disponible.
Ce que nous avons appris sur le code généré par les LLM
Nous avons également conduit un second benchmark focalisé sur la génération de code : 6 prompts en Python, SQL, Bash, JavaScript et TypeScript, incluant un exercice de débogage. Le résultat confirme une limite commune à tous les LLM actuels.
gemma4:26b produit une architecture solide, une logique correcte, des gestions d'erreurs appropriées. Mais sur chaque prompt, on trouve au moins un identifiant halluciné : un nom de variable, de méthode ou d'exception qui n'existe pas dans l'API réelle. Ce type d'erreur passe silencieusement jusqu'au premier lancement du code.
ERPSynclementError. L'architecture du code est impeccable, sauf que cette exception n'existe dans aucune bibliothèque. Le code ne tourne pas tel quel.
Ce n'est pas une critique spécifique à Gemma : c'est une limite actuelle de tous les LLM sur la génération de code. L'IA suggère, le développeur valide. Pour les clients qui utilisent l'assistant pour des tâches de code, cela doit être dit explicitement lors de l'onboarding.
Pour les PME avec une équipe de développement, nous évaluons également Qwen2.5-Coder, un modèle Apache 2.0 spécialisé sur 92 langages de programmation, qui surpasse Gemma sur les benchmarks code publics. Les tests sur GPU réel sont prévus dans les prochains jours.
Ce que nous écartons, et pourquoi
mistral-nemo : rapide sur les tâches simples, insuffisant dès qu'une tâche exige du raisonnement. Le refus de générer du code et les erreurs d'analyse contractuelle le rendent inadapté à un usage PME généraliste.
mistral-small3.1 : licence MRL, révocable par Mistral à tout moment pour cette version. Les erreurs d'appréciation sur le prompt RH (saut direct au licenciement sans gradation des sanctions) posent un problème de fiabilité sur des tâches à fort enjeu.
Mistral Small 4 et Mistral Medium 3.5 : d'excellents modèles, mais leur hardware minimum officiel est 4× H100. Incompatibles avec une installation on-premise chez une PME.
Notre recommandation
Ce retour d'expérience n'est pas un benchmark au sens scientifique du terme : c'est le compte-rendu d'un choix opérationnel, documenté avec le plus de rigueur possible dans nos contraintes. Les résultats reflètent nos cas d'usage spécifiques, sur notre matériel de test, à un instant donné. D'autres contextes pourraient mener à d'autres conclusions.
Sur la base de ces tests, notre modèle de référence est gemma4:26b (Q4) : meilleure qualité sur les 4 prompts métier, le plus rapide malgré sa taille grâce à l'architecture MoE, compatible avec l'ensemble de notre gamme hardware, sous licence Apache 2.0 irrévocable. Nos clients restent libres de déployer un autre modèle selon leurs besoins.
Nous prévoyons de reproduire cette évaluation à chaque génération de modèles significative. Le paysage des LLM open-source évolue vite, la recommandation d'aujourd'hui ne sera pas forcément celle de l'année prochaine. C'est pour ça que nous maintenons notre propre protocole de test plutôt que de nous fier uniquement aux classements académiques.
Si vous voulez savoir quel modèle correspond à votre situation, nous faisons ce point gratuitement lors d'un premier échange.
Annexe : les prompts et extraits de réponses
Voici les 4 prompts utilisés, ainsi que des extraits des meilleures et moins bonnes réponses sur les cas les plus illustratifs.
Prompt A : Email client mécontent
Tu es l'assistant de direction de l'entreprise. Rédige une réponse email professionnelle qui reconnaît le problème et s'excuse sincèrement, prend en charge le dossier avec un engagement concret (délai de rappel, intervention), propose un geste commercial adapté, préserve la relation client sans être servile. Réponds directement avec l'email, sans explication autour.
Prompt B : Cas RH
Analyse la situation et réponds avec : 1. Les étapes procédurales à suivre selon le droit du travail français (dans l'ordre), 2. Les risques pour l'entreprise à chaque étape, 3. Une recommandation concrète avec justification, en tenant compte de l'ancienneté et du profil du salarié.
Extrait gemma4:26b :
Extrait mistral-nemo :
Proposer des astreintes pour régler des retards chroniques est hors sujet. Le modèle saute par ailleurs directement à l'entretien préalable au licenciement sans gradation des sanctions : pour ce type de faits, l'absence d'avertissements documentés affaiblit considérablement la justification aux yeux du juge.
Prompt C : Analyse de contrat
Article 7 : Responsabilité : "Le prestataire est responsable de plein droit de tout dommage direct ou indirect causé au client dans le cadre de l'exécution du présent contrat. En cas de manquement, le prestataire s'engage à indemniser le client à hauteur du préjudice réel subi, sans limitation de montant."
Article 8 : PI : "Toutes les créations réalisées par le prestataire dans le cadre du présent contrat deviennent la propriété exclusive du client dès leur livraison, y compris les outils, méthodes et librairies utilisés pour leur développement."
Article 9 : Sous-traitance : "Le prestataire ne peut recourir à la sous-traitance sans accord écrit préalable du client. En cas de sous-traitance non autorisée, le contrat sera résilié de plein droit et le prestataire devra restituer l'intégralité des sommes perçues."
Extrait gemma4:26b, Article 8 :
Extrait mistral-nemo, Article 8 :
Classer la cession des outils et méthodes en risque "Faible" est une erreur grave. C'est l'une des clauses les plus dangereuses d'un contrat de prestation : elle peut légalement interdire au prestataire de réutiliser ses propres méthodes de travail pour d'autres clients.
Prompt D : Génération de code Python
gemma4:26b a fourni un code structuré en classe avec gestion d'erreurs ligne par ligne. mistral-nemo a refusé d'écrire le code et a recommandé d'utiliser la bibliothèque pandas, alors que le prompt imposait explicitement l'absence de dépendance externe.