A Methodology for Investigating AI Patterns Prevalence in Software Repositories
Cet article propose et valide une méthodologie qui combine l'extraction de littérature pour identifier 14 classes de motifs d'IA avec l'apprentissage actif pour mesurer empiriquement leur prévalence et leur précision à travers des dépôts GitHub réels, comblant ainsi une lacune actuelle dans la compréhension de la manière dont les motifs d'IA sont réellement utilisés en pratique.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez que vous êtes un urbaniste essayant de comprendre comment les gens construisent réellement des maisons dans une ville moderne et bouillonnante. Vous possédez un livre épais de « Designs de Maisons Idéales » (les modèles d'IA proposés par des experts en littérature), mais vous n'avez aucune idée si quelqu'un utilise réellement ces designs dans les vrais quartiers, ou s'ils inventent leurs propres structures bizarres au fur et à mesure.
Ce document présente l'équipe de chercheurs qui a décidé de sortir, de parcourir 100 quartiers de maisons réels (des dépôts de code GitHub) et de découvrir quels « Designs Idéaux » sont réellement utilisés.
Voici comment ils ont procédé, expliqué simplement :
1. Le Problème : Trop d'idées, pas assez de preuves
Des experts ont écrit des centaines de « Modèles d'IA » (des recettes pour construire des logiciels intelligents). Mais personne ne savait si ces recettes étaient réellement cuisinées dans de vraies cuisines. Les chercheurs voulaient passer de la « théorie » à la « réalité ».
2. Étape Un : Nettoyer le livre de recettes
D'abord, ils ont rassemblé 769 « recettes » différentes provenant de livres, de blogs et de documentations. C'était trop désordonné pour être exploité.
- L'Analogie : Imaginez avoir 769 noms différents pour « faire un sandwich ». Certains disent « club », d'autres « BLT », d'autres « jambon et fromage sur pain de blé ».
- La Solution : Ils ont utilisé un ordinateur intelligent (un LLM) pour regrouper les recettes similaires. Ensuite, des humains ont examiné les groupes et les ont organisés en 14 catégories claires (comme « RAG », « Architecture d'Agent », « Prétraitement », etc.). Cela a créé un menu organisé de 14 plats principaux.
3. Étape Deux : Trouver les « Quartiers » (Communautés de Code)
Ils ne pouvaient pas simplement regarder une seule ligne de code ; ce serait comme juger toute une maison en regardant une seule brique. Ils avaient besoin de trouver des « communautés » de code qui travaillent ensemble.
- L'Analogie : Au lieu de regarder les briques individuelles, ils ont regardé les « pièces » de la maison. Ils ont utilisé une carte spéciale (un graphe d'appel) pour trouver des groupes de code qui sont étroitement connectés, comme une cuisine où la cuisinière, le réfrigérateur et l'évier sont tous liés.
- La Sélection : Ils ont choisi 100 projets d'IA du monde réel sur GitHub (les « quartiers ») qui étaient populaires mais pas les énormes frameworks fondamentaux (comme TensorFlow). Ils voulaient voir ce que les développeurs typiques construisaient, et non pas seulement les outils géants sur lesquels tout le monde construit.
4. Étape Trois : Le jeu du « Devine et Vérifie » (Apprentissage Actif)
C'est la partie la plus ingénieuse. Ils n'avaient pas de professeur avec le corrigé (données étiquetées) pour entraîner leur modèle informatique.
- L'Analogie : Imaginez un étudiant passant un examen sans connaître les réponses.
- L'étudiant fait quelques suppositions basées sur quelques exemples qu'il a lui-même générés.
- L'ordinateur regarde les 100 quartiers et dit : « Je suis à 50/50 sur celui-ci, mais je suis sûr de celui-là ».
- Les chercheurs (les professeurs humains) ne regardent que ceux sur lesquels l'ordinateur est incertain. Ils étiquettent ceux-là, et l'ordinateur apprend de ces exemples.
- Ils répètent ce cycle. L'ordinateur devient plus intelligent à chaque tour, demandant de l'aide uniquement lorsqu'il est vraiment confus. Cela leur a évité de devoir lire et étiqueter manuellement des milliers de fichiers.
5. Étape Quatre : Compter les Résultats (Avec un filet de sécurité)
Une fois l'ordinateur entraîné, il a scanné les 100 quartiers pour compter la fréquence d'apparition de chaque modèle.
- Le Rebondissement : L'ordinateur n'est pas parfait. Il fait des erreurs. Ainsi, les chercheurs n'ont pas seulement donné un chiffre unique (ex: « Le RAG est utilisé 20 % du temps »).
- Le Filet de Sécurité : Ils ont utilisé un truc statistique (comme lancer une simulation 20 000 fois) pour dire : « Nous sommes sûrs à 95 % que le nombre réel se situe entre X et Y ». Cela donne un « intervalle de confiance », reconnaissant qu'il existe une marge d'erreur.
Qu'ont-ils trouvé ?
- Le Score : Leur ordinateur a obtenu environ 56 % de précision pour identifier quel modèle était utilisé. Cela semble faible, mais rappelez-vous qu'il y avait 8 catégories différentes à choisir. Une supposition aléatoire ne vous donnerait que 11 %. Ils étaient donc 5 fois meilleurs que le hasard.
- Les Gagnants : Ils ont découvert que des modèles comme « Prévision avec modèles classiques » et « Prompting Multimodal » étaient très courants.
- Les Perdants : Certains modèles, comme « Utilisation d'outils avec les LLM », étaient difficiles à repérer car ils ne laissaient pas une « empreinte digitale » forte dans le code, donc l'ordinateur les confondait souvent avec « rien de spécial » (la catégorie « Aucun »).
- Le Problème du « Aucun » : Beaucoup de codes ont été étiquetés comme « Aucun » (aucun modèle détecté). Cela arrivait parce que certains modèles sont subtils, ou parce que le code était trop désordonné pour que le modèle puisse le reconnaître.
La Grande Conclusion
Ce document n'a pas seulement dit « les modèles d'IA existent ». Il a construit une méthode robuste pour prouver à quelle fréquence ils sont utilisés dans le monde réel, même lorsqu'on ne dispose pas d'un ensemble de données parfait pour commencer.
Ils ont montré que :
- On peut organiser une liste d'idées désordonnées en une taxonomie propre.
- On peut apprendre à un ordinateur à trouver ces modèles en ne demandant de l'aide aux humains que lorsqu'il est confus (Apprentissage Actif).
- On peut estimer la fréquence de ces modèles, tout en admettant honnêtement les « marges d'erreur » de nos chiffres.
C'est comme avoir enfin un recensement fiable de l'architecture d'une ville, accompagné d'une note disant : « Nous sommes plutôt sûrs des maisons, mais les petits cabanons sont peut-être un peu flous ». Cela donne aux développeurs et aux chercheurs une base réelle et étayée par les données pour comprendre comment l'IA est réellement construite aujourd'hui.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.