đšâđ» Ăvaluation comparative de petits modĂšles de langage dans le monde rĂ©el
le 21 avril 2026
Samedi 18 avril, j'ai participé à un hackathon qui invite les ingénieurs en apprentissage automatique, les ingénieurs de données et les chercheurs à Paris pour une étude approfondie de l'évaluation des petits modÚles de langage (SLM).
Ce hackathon, organisĂ© par AI Tinkerers Paris, sâinscrit dans une problĂ©matique trĂšs concrĂšte :
tester la capacité réelle des modÚles de langage à produire du code exécutable en production.
Le thÚme - "Benchmarking Small Language Models in the Real World" - pose un cadre clair : sortir des démos impressionnantes pour confronter les modÚles à des contraintes réelles (exécution, performance, ressources).
đŻ Objectif
Le dĂ©fi consiste Ă gĂ©nĂ©rer automatiquement des requĂȘtes Polars Ă partir de langage naturel, avec une exigence forte :
- produire du code correct
- garantir quâil est exĂ©cutable
- optimiser temps dâexĂ©cution et consommation mĂ©moire
Le scoring reflÚte cette réalité :
Score = N / (T Ă VRAM^0.1 Ă RAM^0.01)
đ Autrement dit : la prĂ©cision seule ne suffit pas - lâefficacitĂ© systĂšme devient une contrainte centrale.
âïž Contexte technique
Chaque équipe travaille dans un environnement standardisé :
- exécution sous Docker
- usage de Polars pour le traitement de données
- contraintes GPU / mémoire
- dataset dâĂ©valuation fourni
Lâobjectif nâest pas de faire "le meilleur prompt", mais de construire un systĂšme capable de :
- résister à des données réelles
- produire du code robuste
- passer un benchmark automatisé
đ§© Positionnement
Ce hackathon se distingue par son approche :
- pas de démo marketing
- pas de génération "impressionnante mais fragile"
- focus sur ce qui fonctionne vraiment
đ Câest un environnement qui expose directement les limites actuelles des LLM :
- hallucinations
- erreurs de syntaxe
- incompréhension du schéma de données
Et oblige Ă construire autour :
- prompt engineering structuré
- validation systématique
- boucle dâitĂ©ration rapide
đ Lecture
On nâest pas ici dans un hackathon "crĂ©atif", mais dans un benchmark dâingĂ©nierie.
Le livrable final nâest pas une idĂ©e, mais :
un systĂšme mesurable, reproductible, et comparable.
đïž Organisation de la journĂ©e
Matin - cadrage et initialisation
La matinée est dédiée à la mise en place du cadre technique et organisationnel :
- formation des Ă©quipes via le portail de lâĂ©vĂ©nement
- présentation du problÚme par les organisateurs et mentors
- clarification des attentes (génération de code Polars exécutable + scoring)
- setup initial de lâenvironnement de travail
LâĂ©quipe Darkwood se constitue autour de :
Objectif de cette phase : rĂ©duire lâincertitude et aligner tout le monde sur un pipeline exĂ©cutable dĂšs les premiĂšres heures.
Midi - pause contrainte
- déjeuner fourni sur place
- échanges informels entre équipes
- consultation du message center (questions globales, clarifications du jury)
đ Phase courte, sans vĂ©ritable dĂ©couplage : le projet reste en cours dâitĂ©ration.
AprÚs-midi - implémentation et itérations
LâaprĂšs-midi est entiĂšrement orientĂ© production :
- implémentation du benchmark (
polars-bench) - intégration du modÚle via
ai-harness - expérimentation sur les prompts (structure, format, contraintes)
- ajustement du comportement du modĂšle via dataset et prompt engineering
- validation progressive via exécution réelle
Les itérations se concentrent sur trois axes :
- réduction des hallucinations (schema-aware prompting)
- amélioration du taux de code exécutable
- optimisation du score (temps / mémoire / exactitude)
đ La logique nâest pas dâajouter des features, mais de resserrer le systĂšme autour de contraintes rĂ©elles.
âïž Architecture du benchmark
Le systĂšme sâappuie sur une sĂ©paration claire des responsabilitĂ©s :
ai-harnessâ couche dâorchestration des modĂšlespolars-benchâ moteur dâexĂ©cution et dâĂ©valuation
Cette dĂ©coupe permet dâisoler la gĂ©nĂ©ration (LLM) de la rĂ©alitĂ© dâexĂ©cution (runtime), ce qui est prĂ©cisĂ©ment lâobjectif du benchmark.
đ€ Sponsors, Mentors & Organizers, Equipes
Ce hackathon est rendu possible grĂące Ă un Ă©cosystĂšme dâacteurs complĂ©mentaires : sponsors, mentors et organisateurs, chacun jouant un rĂŽle clĂ© dans lâexpĂ©rience globale.
đą Organizers
LâĂ©vĂ©nement est orchestrĂ© par la communautĂ© AI Tinkerers Paris, un collectif actif autour de lâexpĂ©rimentation et du partage sur les technologies IA.
- đ Site officiel : https://paris.aitinkerers.org
- đ Page du hackathon : https://paris.aitinkerers.org/hackathons/h_sj1ca_J4Hdk
- đ„ Organizers : https://paris.aitinkerers.org/hackathons/h_sj1ca_J4Hdk/organizers
Leur positionnement est clair : favoriser des expĂ©rimentations concrĂštes autour des modĂšles IA, avec un focus sur lâingĂ©nierie rĂ©elle plutĂŽt que la dĂ©monstration.
đŒ Sponsors
Les sponsors soutiennent lâĂ©vĂ©nement en apportant :
- ressources techniques (GPU, infra, outils)
- financement
- visibilité
đ Leur rĂŽle est critique pour permettre un environnement rĂ©aliste (contraintes de compute, exĂ©cution Docker, etc.).
-
Mistral
- Sponsor page: Hackathon Sponsors
- Representative: Matthieu Dinot â AI Scientist at Mistral
-
Alpic
- Sponsor page: Hackathon Sponsors
- Representative: Nikolay Rodionov â COO at Alpic
- Other links:
-
Cloudfare
- Sponsor page: Hackathon Sponsors
- Representative: Nans Cyril Bouissou â Account executive at Cloudfare
-
Replit
- Sponsor page: Hackathon Sponsors
- Representative: Raouf Chebri â Developer Relations Engineer at Replit
-
Microsoft
- Sponsor page: Hackathon Sponsors
- Representative: Julien Bichon â Developer Experience | GTM Manager at Microsoft
-
ESGI (venue partner mentioned alongside sponsors)
- Sponsor / venue page: Hackathon Sponsors
- Representative: Astrid Beaucourt â ChargĂ©e de communication at ESGI
- School links:
đ§âđ« Mentors
Les mentors accompagnent les participants tout au long du hackathon :
- aide Ă la structuration des approches
- feedback sur les modĂšles et prompts
- conseils sur la performance et lâoptimisation
đ Ils permettent dâĂ©viter les impasses classiques :
- sur-optimisation du prompt
- manque de validation
- erreurs dâinterprĂ©tation des donnĂ©es
-
Arthur Mensch
- Mentor page: Hackathon Mentors
- Role: Co-founder and CEO of Mistral AI
- Public profile link: not visible in the provided data
-
Léo Arsenin
- Mentor page: Hackathon Mentors
- LinkedIn: Léo Arsenin
- Role: Solutions engineer at Cloudfare
-
Matthieu Dinot
- Mentor page: Hackathon Mentors
- LinkedIn: Matthieu Dinot
- Role: AI Scientist at Mistral
-
Preetham Kaukuntla
- Mentor page: Hackathon Mentors
- LinkedIn: Preetham Kaukuntla
- Role: Staff Data Scientist at Glassdoor
-
Mentors Message Board
đ„ Ăquipes
-
- Statut : 1st Place
- Entry : /hackathons/h_sj1ca_J4Hdk/entries/ht_qFVxlREukLQ
- Team : /hackathons/h_sj1ca_J4Hdk/teams/ht_qFVxlREukLQ
- Demo video : YouTube
- Membres :
-
- Statut : Best Startup
- Entry : /hackathons/h_sj1ca_J4Hdk/entries/ht_-p8xvdGl-oA
- Team : /hackathons/h_sj1ca_J4Hdk/teams/ht_-p8xvdGl-oA
- Membres :
-
- Statut : 10x Data Scientist
- Entry : /hackathons/h_sj1ca_J4Hdk/entries/ht_ub4tDzlrft0
- Team : /hackathons/h_sj1ca_J4Hdk/teams/ht_ub4tDzlrft0
- Membres :
-
- Statut : Finalist
- Entry : /hackathons/h_sj1ca_J4Hdk/entries/ht_y4_Yz6P5BZE
- Team : /hackathons/h_sj1ca_J4Hdk/teams/ht_y4_Yz6P5BZE
- Membres :
-
- Statut : Finalist
- Entry : /hackathons/h_sj1ca_J4Hdk/entries/ht_njEtwEBAmUE
- Team : /hackathons/h_sj1ca_J4Hdk/teams/ht_njEtwEBAmUE
- Membres :
-
- Statut : Submitted
- Entry : /hackathons/h_sj1ca_J4Hdk/entries/ht_wRj-nEG24zE
- Team : /hackathons/h_sj1ca_J4Hdk/teams/ht_wRj-nEG24zE
- Membres :
-
- Statut : Submitted
- Entry : /hackathons/h_sj1ca_J4Hdk/entries/ht_RFBTGYYwbm4
- Team : /hackathons/h_sj1ca_J4Hdk/teams/ht_RFBTGYYwbm4
- Membres :
-
- Statut : Submitted
- Entry : /hackathons/h_sj1ca_J4Hdk/entries/ht_Gc4SneBV2D4
- Team : /hackathons/h_sj1ca_J4Hdk/teams/ht_Gc4SneBV2D4
- Membres :
đ Liens utiles
- đ Home : https://paris.aitinkerers.org/hackathons/h_sj1ca_J4Hdk
- đ„ Teams : https://paris.aitinkerers.org/hackathons/h_sj1ca_J4Hdk/teams
- đ© Message Center : https://paris.aitinkerers.org/message_center?board_key=meetup_mu_eZJ5tCXlA2A
- đ Submissions : https://paris.aitinkerers.org/hackathons/h_sj1ca_J4Hdk/entries
- đ Results : https://paris.aitinkerers.org/hackathons/h_sj1ca_J4Hdk/results
đ§± Stack technique
Lâarchitecture est volontairement simple, mais contrainte par des conditions rĂ©elles :
- Python pour lâexĂ©cution
- Polars comme moteur de requĂȘtes
- Quinn 2.5 comme modÚle de génération
- FastAPI pour lâinterface
- Sandbox locale (CPU) avec contraintes mémoire
Le cĆur du systĂšme est une API qui transforme une requĂȘte naturelle en code Polars directement exĂ©cutable.
đ Pipeline dâexĂ©cution
Le benchmark impose une chaĂźne complĂšte, sans raccourci :
User Query (NL)
â
Prompt enrichi (schema + rĂšgles)
â
LLM
â
Code Polars généré
â
Exécution réelle
â
Validation
â
Scoring
đ Le modĂšle nâest pas Ă©valuĂ© sur ce quâil "dit", mais sur ce que son code produit rĂ©ellement.
đ§ StratĂ©gie de gĂ©nĂ©ration
Le choix structurant est simple :
â entraĂźner le modĂšle â contraindre son comportement
PlutĂŽt que du fine-tuning lourd, le systĂšme repose sur :
- un prompt structuré
- un dataset dâexemples ciblĂ©s
Format imposé
System:
- rĂšgles Polars
- contraintes strictes
User:
- schéma
- requĂȘte
Assistant:
- code uniquement
đ Le modĂšle apprend un pattern dâexĂ©cution, pas une connaissance gĂ©nĂ©rale.
đïž Dataset
Le dataset nâest pas massif, il est intentionnel :
- 15 Ă 500 exemples
- centrés sur les patterns critiques
Couverts :
- sélection
- filtres
- agrégations
- joins
- window functions
- nulls
- edge cases
đ La couverture est plus importante que le volume.
đ Injection du schĂ©ma
Le modÚle ne devine rien. Le schéma est injecté systématiquement :
{
"columns": ["card_name", "mana_cost", "frequency"]
}
Effets directs :
- moins dâhallucinations
- requĂȘtes valides dĂšs le premier essai
- dépendance forte au contexte fourni
đ Sans schĂ©ma, le systĂšme sâeffondre.
⥠Contraintes dâinfĂ©rence
- modĂšle ~6GB
- CPU uniquement
- latence élevée
Conséquence :
- chaque appel compte
- les retries coûtent cher
- le prompt doit ĂȘtre prĂ©cis dĂšs le dĂ©part
đ Le coĂ»t dâerreur est intĂ©grĂ© dans le score.
đ§Ș Validation & scoring
Le benchmark valide un comportement complet, pas une sortie brute.
Niveaux
- Code valide
- Exécution réussie
- Résultat correct
- Performance acceptable
Score
Score = N / (T * VRAM^0.1 * RAM^0.01)
đ On mesure un systĂšme contraint, pas un modĂšle abstrait.
đ Choix dâarchitecture
Trois options :
- fine-tuning â trop lourd
- multi-modĂšles â trop complexe
- prompt + dataset â choisi
đ DĂ©cision : encoder le comportement dans les donnĂ©es
𧩠Implémentation
LâAPI expose un flux simple :
-
input :
- requĂȘte
- metadata
-
output :
- code Polars
Le service :
- construit le prompt
- appelle le modĂšle
- retourne le code
đ SimplicitĂ© volontaire : toute la difficultĂ© est ailleurs.
đŠ Positionnement
Le projet nâest pas prĂ©sentĂ© comme un wrapper LLM, mais comme :
un copilot analytique sécurisé pour données tabulaires
Avec :
- prompts guidés
- contexte structuré
- exécution vérifiée
đ Le produit est dĂ©fini par ses contraintes, pas par le modĂšle.
đ§ Lecture systĂšme
Ce benchmark montre une chose :
la performance dâun small model est une propriĂ©tĂ© du systĂšme, pas du modĂšle seul
Les leviers réels :
- structure du prompt
- dataset
- injection du contexte
- validation runtime
đ On passe dâun problĂšme de ML Ă un problĂšme dâingĂ©nierie.
đ§± Composants
Harness
- abstraction des modĂšles
- normalisation des inputs / outputs
Executor
- exécution isolée
- capture des erreurs
- métriques runtime
Scoring
- validité
- performance
- stabilité
đ Ce qui est mesurĂ©
- ExĂ©cution â est-ce que ça tourne
- Correction â est-ce que câest juste
- QualitĂ© Polars â usage correct du moteur
- Performance â coĂ»t rĂ©el
đ Cas rĂ©el
Input :
"Find the top 10 most frequent cards with mana cost †3"
Attendu :
- filtre correct
- agrégation correcte
- tri + limite
Observé :
- code valide mais faux
- fallback Python
- erreurs silencieuses
đ Le benchmark rĂ©vĂšle lâĂ©cart entre gĂ©nĂ©ration et exĂ©cution.
â ïž Enjeux rĂ©els
Un LLM génÚre du code plausible, pas du code fiable
Donc en production :
- sandbox obligatoire
- validation systématique
- retries contrÎlés
- monitoring
đ Sans ça, le systĂšme est instable par dĂ©faut.
đ§ Apport du projet
Ce benchmark introduit :
- un pipeline exécutable end-to-end
- une évaluation multi-critÚres
- une approche reproductible
- un environnement proche production
Repos :
ai-harnessâ orchestrationpolars-benchâ Ă©valuation
đ Ce nâest plus un test de modĂšle, câest un test de systĂšme complet.
đč DĂ©mo
Vidéo de soumission :
đŠ Livrables du hackathon
- Code benchmark complet
- Jeu de tests
- Pipeline reproductible
- Résultats comparatifs
Exemple de structure fournie :
- submission_example
- main benchmark code
- datasets
- logs
đ§ Conclusion
Ce hackathon ne cherche pas Ă montrer que les LLMs fonctionnent.
Il montre oĂč ils cassent.
Et surtout :
Un benchmark utile ne mesure pas la gĂ©nĂ©ration. Il mesure lâexĂ©cution.
đź Perspective Darkwood
Ce type de benchmark sâintĂšgre directement dans une vision plus large :
- orchestration de pipelines IA
- validation systématique
- séparation génération / exécution
- observabilité
đ Ce nâest pas un outil de dĂ©mo. Câest une brique pour construire des systĂšmes fiables.