4.5 KiB
Pour votre cas d'usage précis — lire un fichier Markdown décrivant des variables, puis extraire des variables ou groupes de variables à la demande — la rapidité est effectivement un critère clé, et le raisonnement complexe de modèles comme DeepSeek-R1 est largement superflu.
Voici mes recommandations, du plus léger au plus équilibré.
🎯 Recommandation principale : MiniCPM5-2B
MiniCPM5-2B est un modèle de 2,52 milliards de paramètres, récemment open-sourcé (septembre 2026) par OpenBMB . Il présente plusieurs avantages décisifs pour votre use case :
- Extrêmement léger et rapide : conçu pour le déploiement local sur appareils aux ressources limitées .
- Excellent en agentique et appels d'outils : il obtient un score de 20 sur l'Agentic Index, surpassant des modèles 4 à 6 fois plus gros comme Qwen3.5 9B ou Gemma 4 12B .
- Efficacité en tokens : il consomme environ 21k tokens de sortie pour les tâches de l'Intelligence Index, contre 34k pour Qwen3.5 9B, ce qui se traduit directement par une latence plus faible .
- Bonne fenêtre de contexte : 131 072 tokens, suffisant pour votre fichier Markdown .
Disponible via Ollama, LM Studio, llama.cpp et Apple Silicon, son intégration est simple .
⚡ Alternative ultra-légère : Qwen3-0.6B-JSON-SFT-GRPO
Si vous voulez pousser la rapidité à l'extrême, ce modèle de 0,8 milliard de paramètres est spécifiquement fine-tuné pour le suivi d'instructions JSON . Il est particulièrement adapté aux tâches d'extraction de données structurées, ce qui correspond exactement à votre besoin de récupérer des variables à partir d'un fichier Markdown. Avec seulement 0,8B de paramètres, sa vitesse d'inférence sera difficile à battre. La contrepartie est une capacité de raisonnement plus limitée, mais pour de l'extraction directe de variables, c'est rarement un problème.
🔧 Alternative polyvalente : Ring-lite-distill-preview
Si vous souhaitez conserver un peu plus de robustesse pour des cas limites (par exemple, des demandes d'extraction ambiguës ou des groupes de variables complexes), Ring-lite-distill-preview reste une option intéressante. Avec 16,8B de paramètres totaux mais seulement 2,75B activés grâce à son architecture MoE, il offre un excellent équilibre vitesse/qualité, et surtout d'excellentes performances en suivi d'instructions et appels de fonctions . Il est plus lourd que MiniCPM5-2B, mais plus léger à l'usage que DeepSeek-R1-Distill-Qwen-7B.
⚙️ Conseils d'implémentation
- Désactivez le mode raisonnement : comme le souligne la documentation de Knwler, « le mode réflexion est désactivé par défaut ; il ajoute de la latence sans améliorer la qualité » pour les tâches d'extraction . C'est un point crucial pour votre use case.
- Soignez le prompt d'extraction : pour les tâches d'extraction structurée, la pratique recommandée est de fournir le texte d'entrée, de spécifier le schéma JSON exact attendu, d'inclure un exemple few-shot, et de demander au modèle de ne produire que du JSON, sans préambule .
- Prévoyez un post-traitement robuste : les petits modèles produisent parfois des sorties avec des tokens parasites ou des accolades non fermées. Un nettoyage léger côté code est recommandé .
- Utilisez spaCy pour l'extraction simple : si vos variables sont clairement identifiables (par exemple, des définitions
variable: valeur), vous pourriez même envisager une approche hybride où spaCy extrait les entités de manière déterministe, et le LLM n'intervient que pour les cas ambigus .
💡 En résumé
Pour votre besoin de lire un Markdown et d'en extraire des variables rapidement, MiniCPM5-2B est le meilleur compromis actuel : il est très léger, rapide, et ses capacités agentiques sont remarquables pour sa taille. Si la vitesse pure est votre priorité absolue et que vos extractions sont simples, Qwen3-0.6B-JSON-SFT-GRPO sera encore plus rapide. Dans les deux cas, pensez à désactiver le mode raisonnement et à structurer vos prompts pour une sortie JSON directe.
Souhaitez-vous que je vous aide à formuler le prompt système optimal pour votre agent, ou à comparer ces modèles sur un exemple concret de votre fichier Markdown ?