Meilleur détecteur de modèles HuggingFace
Trouve les meilleurs modèles pour une tâche en interrogeant les leaderboards de benchmarks officiels de HF, enrichit les résultats avec les données de taille de modèle, filtre selon ce qui convient au dispositif de l'utilisateur, et retourne un tableau de comparaison avec les scores de benchmark.
Étape 1 : Analyser la demande
Extraire du message de l'utilisateur :
- Tâche : ce que le modèle doit faire (coding, math/reasoning, chat, OCR, RAG/retrieval, speech recognition, image classification, multimodal, agents, etc.)
- Dispositif : contraintes matérielles (MacBook M-series 8/16/32/64GB mémoire unifiée, RTX GPU avec montant de VRAM, CPU uniquement, cloud/sans contrainte, etc.)
Si le dispositif n'est pas mentionné, ignorer entièrement le filtrage et retourner les modèles les plus performants indépendamment de leur taille. Si la tâche est vraiment ambiguë, poser une seule question de clarification.
Dispositif → budget de paramètres maximum
Quand un dispositif est spécifié, extraire sa mémoire disponible (RAM unifiée pour Apple Silicon, VRAM pour GPUs discrets) et appliquer :
- fp16 params max (B) ≈ mémoire (GB) ÷ 2
- Q4 params max (B) ≈ mémoire (GB) × 2
Exemples : 16GB → 8B fp16 / 32B Q4 — 24GB VRAM → 12B fp16 / 48B Q4 — 8GB → 4B fp16 / 16B Q4
Étape 2 : Trouver les benchmarks pertinents
Récupérer la liste complète des benchmarks officiels de HF :
curl -s -H "Authorization: Bearer $(cat ~/.cache/huggingface/token)" \
"https://huggingface.co/api/datasets?filter=benchmark:official&limit=500" | jq '[.[] | {id, tags, description}]'
Lire la liste retournée et sélectionner les datasets les plus pertinents pour la tâche de l'utilisateur — faire correspondre par id de dataset, tags et description. Utiliser son jugement ; ne pas se limiter à 2-3. Viser une couverture complète : si 5 benchmarks couvrent clairement la tâche, utiliser tous les 5.
Étape 3 : Récupérer les meilleurs modèles des leaderboards
Pour chaque dataset de benchmark sélectionné :
curl -s -H "Authorization: Bearer $(cat ~/.cache/huggingface/token)" \
"https://huggingface.co/api/datasets/<namespace>/<repo>/leaderboard" | jq '[.[:15] | .[] | {rank, modelId, value, verified}]'
Collecter les IDs de modèles et les scores à travers tous les benchmarks. Si un leaderboard retourne une erreur (404, 401, etc.), le passer et le noter dans la sortie.
Étape 4 : Enrichir avec les métadonnées de modèle
Pour les 10-15 meilleurs candidats d'ID de modèle, obtenir les infos de modèle.
# REST API
curl -s -H "Authorization: Bearer $(cat ~/.cache/huggingface/token)" \
"https://huggingface.co/api/models/org/model1" | jq '{safetensors, tags, cardData}'
# CLI (hf-cli)
hf models info org/model1 --json | jq '{safetensors, tags, cardData}'
Extraire de chaque réponse :
- Paramètres :
safetensors.total→ convertir en B (ex. 7_241_748_480 → "7.2B") - Licence : depuis les tags de model card (chercher
license:apache-2.0,license:mit, etc.) - Si
safetensorsest absent, analyser la taille depuis le nom du modèle (chercher "7b", "8b", "13b", "70b", "72b", etc.)
Étape 5 : Filtrer et classer
Si un dispositif a été spécifié :
- Supprimer les modèles dépassant le budget de paramètres fp16 du dispositif
- Signaler les modèles qui tiennent uniquement avec quantification Q4 (multiplier le budget par ~4 pour la capacité Q4)
- Si un modèle hautement classé dépasse légèrement le budget, le conserver avec une note "nécessite Q4" — ne pas le supprimer silencieusement
Si aucun dispositif n'a été mentionné : ignorer tout filtrage de taille — classer uniquement par score de benchmark.
Ensuite : classer par score de benchmark (décroissant), conserver les 5-8 meilleurs modèles.
Inclure les modèles propriétaires (GPT-4, Claude, Gemini) s'ils apparaissent sur les leaderboards, mais les signaler comme "API uniquement / non auto-hébergeable". Si l'utilisateur a explicitement demandé uniquement des modèles locaux/open, les exclure.
Étape 6 : Sortie
Tableau de comparaison
| # | Modèle | Params | [Benchmark 1] | [Benchmark 2] | Licence | Sur dispositif |
|---|--------|--------|--------------|--------------|---------|-----------|
| ⭐1 | [org/name](https://huggingface.co/org/name) | 7B | 85.2% | — | Apache 2.0 | Oui (fp16) |
| 2 | [org/name](https://huggingface.co/org/name) | 13B | 83.1% | 71.5% | MIT | Q4 uniquement |
| 3 | [org/name](https://huggingface.co/org/name) | 70B | 90.0% | 81.0% | Llama | Trop volumineux |
- Lier les noms de modèles à
https://huggingface.co/<model_id> - Utiliser
—pour les benchmarks où le modèle n'a pas été évalué - Mettre une étoile au choix recommandé principal avec ⭐
- Valeurs "Sur dispositif" :
Oui (fp16),Q4 uniquement,Trop volumineux,API uniquement
Suivi
Après avoir présenté le tableau, demander à l'utilisateur : "Voulez-vous exécuter [modèle recommandé] ?"
S'il dit oui, demander s'il préfère :
- Exécuter localement — demander son dispositif s'il n'est pas déjà connu, puis donner les instructions de configuration appropriées
- Exécuter sur HF Jobs — les diriger vers le guide HF Jobs : https://huggingface.co/docs/huggingface_hub/en/guides/jobs
Gestion des erreurs
- Leaderboard non trouvé : passer, noter "leaderboard indisponible" dans la sortie
- Modèle manquant de hub_repo_details : utiliser l'analyse de taille depuis le nom du modèle en secours
- Aucun benchmark trouvé pour la tâche : utiliser le tableau de secours curé ci-dessus, ou essayer
hub_repo_searchavecfilters=["<task>"]trié partrendingScore - Tous les leaderboards échouent : utiliser
hub_repo_searchpour les modèles populaires étiquetés avec la tâche, noter que les résultats sont par popularité plutôt que par score de benchmark