Les limites d’un modèle d’IA unique
Frank Fischer
7 août 2023
0 minutes de lectureLes discussions actuelles sur l’IA sont souvent teintées d’émotions comme la peur et l’émerveillement, et l’IA est souvent réduite aux grands modèles de langage (LLM) — mais ce n’est pas toute l’histoire. Prenons donc du recul par rapport à ces craintes et penchons-nous sur les données qui montrent que l’IA ne se limite pas aux LLM.
Qu’est-ce que l’IA ?
Il est utile d’avoir quelques connaissances de base sur l’IA. Dans les années 1950, des chercheurs et des praticiens se sont demandé à quoi pourrait ressembler l’intelligence artificielle et comment nous pourrions la reconnaître. Si vous posez la question à ChatGPT, il répond : « L’intelligence artificielle peut se définir comme un système ou une machine capable d’apprendre, de comprendre, de raisonner, de percevoir et de réagir à son environnement d’une manière traditionnellement associée à l’intelligence humaine. Elle se caractérise par sa capacité à s’adapter à de nouvelles situations, à résoudre des problèmes, à prendre des décisions et à comprendre des idées ou des schémas complexes. » C’est une très bonne synthèse.
Aujourd’hui, quand on demande ce qu’est l’IA, la réponse décrit le plus souvent un LLM — un type de réseau neuronal d’apprentissage profond. Pourtant, l’IA englobe de nombreuses autres technologies, plus variées et plus complètes. Bien souvent, l’IA spécialisée (parfois appelée « IA étroite ») ou une combinaison de méthodes est la meilleure approche.
Pour simplifier, les méthodes d’IA se répartissent grosso modo en deux grandes catégories : l’approche logique et l’approche statistique. « Les agents intelligents doivent être capables de gérer la complexité et l’incertitude du monde réel. L’IA logique s’est principalement concentrée sur la première, et l’IA statistique sur la seconde. » Par exemple, en cybersécurité, l’utilisation du ML (IA statistique) pour détecter les intrusions ou de l’IA logique en SAST est très courante. Pour approfondir les différentes approches de l’IA, consultez l’ouvrage de Russell et Norvig.2
L’IA générative, capable de produire du contenu comme du texte, des images, des vidéos ou du code source, et les LLM, qui peuvent utiliser le langage courant comme interface (par exemple, dans un chat), sont relativement récents dans ce domaine. L’IA générative repose sur un processus appelé réseaux antagonistes génératifs (GAN). L’idée est d’entraîner un modèle de ML (« discriminateur ») à classer un contenu comme valide ou incorrect (par exemple, des portraits de personnes). Un autre modèle de ML (« générateur ») tente de produire un contenu (comme une image) que le discriminateur acceptera. En entraînant les deux modèles conjointement — par apprentissage non supervisé — le système peut générer des contenus difficilement, voire plus du tout, distinguables de ceux créés par des humains. Un LLM développe cette idée en utilisant un Transformer. Le texte est alors converti en un format de données que le ML peut traiter (« Transformer »). Le modèle est entraîné à partir de quantités massives de texte. Il génère des réponses textuelles à des requêtes textuelles — souvent appelées « prompts ». Les réponses à une même question peuvent varier en fonction d’un paramètre qui détermine le degré de hasard utilisé par le système — GPT l’appelle la « température ». Les LLM actuels ont souvent une date limite qui indique jusqu’à quand les données d’entraînement ont été collectées. Toutefois, les développeurs d’IA comptent dépasser cette limite en connectant les LLM à Internet, afin qu’ils disposent d’informations à jour. Enfin, les LLM peuvent être spécialisés et entraînés dans différents domaines, notamment la génération de code source (voir le rapport de Google sur PaLM 2).
Les LLM utilisent une technique appelée apprentissage profond, qui simule les neurones du cerveau humain. Mais il existe de nombreuses autres façons de faire apprendre les machines sur le plan statistique, notamment les machines à vecteurs de support, les algorithmes évolutionnaires et les chaînes de Markov. Comme indiqué précédemment, l’autre école, celle de l’IA logique, sert également à créer des systèmes experts à l’aide de technologies comme Prolog.
L’IA dans le SDLC
Cas d’usage concrets de l’IA dans le développement et la livraison de logiciels.
Usage | Emplacement | Avantages | Inconvénients3 |
|---|---|---|---|
Génération de code | SAST, IDE | Productivité, réduction de la charge cognitive | Qualité du code, licences, sécurité |
Refactorisation et mise à niveau du code | IDE | Productivité, réduction de la charge cognitive | Qualité du code, licences, sécurité, fuite d’informations |
Débogage | IDE | Réduction de la charge cognitive | Fuite d’informations |
Documentation | IDE, CI | Tâche souvent négligée | Fuite d’informations |
Compréhension du code | IDE | Réduction de la charge cognitive | |
Détection des problèmes et génération de correctifs | SAST, SCA, IaC, conteneurs, IDE | Analyse plus approfondie et sémantique | Faux positifs et exécution |
Tests (génération de tests, fuzzing, données de test) | IDE, DAST, fuzzing | Détection de problèmes auxquels on n’aurait pas pensé | Exécution, nécessité de réagir aux résultats, cas de test irréalistes |
Surveillance (traitement des données, combinaison de flux de données, détection d’anomalies) | CD, Ops, SIEM | Plus de données, détection de schémas inconnus |
Cartographie des catégories d’IA
Les technologies d’IA peuvent être utilisées à chaque étape du développement logiciel. L’axe des y représente la complexité et la puissance croissantes de l’outil d’IA. L’axe des x présente les fonctionnalités (par exemple, les éléments directement utilisés par les développeurs) et les capacités (par exemple, les compétences du backend) des outils concernés.

Remarque : toutes les cases violettes représentent des technologies pour lesquelles Snyk propose ses propres solutions. Nous prendrons Snyk comme exemple dans la suite.
IA étroite
L’IA étroite, également appelée IA faible, désigne les systèmes d’IA conçus spécifiquement pour effectuer certaines tâches, comme recommander des produits sur une plateforme de commerce électronique ou prédire le comportement des utilisateurs dans une application. Bien qu’ils fassent preuve d’intelligence dans ces tâches précises, ces systèmes fonctionnent dans un cadre limité et ne peuvent ni comprendre, ni apprendre, ni appliquer leurs connaissances au-delà de leurs fonctions préprogrammées. Ils sont donc idéaux pour des solutions ciblées dans le développement logiciel. Par exemple, Snyk utilise l’IA étroite dans Snyk Code pour repérer les sources, les puits et les assainisseurs.
IA logique
L’IA symbolique, également appelée IA fondée sur des règles ou IA classique, est une approche qui s’appuie sur la logique et des symboles spécifiques pour représenter des problèmes et les manipuler afin de trouver une solution — comme dans les systèmes experts, où la logique de diagnostic est explicitement codée. Pour les développeurs de logiciels, cela pourrait consister à concevoir un programme de dépannage qui utilise des règles prédéfinies pour identifier et résoudre les bogues logiciels, ou à créer un jeu d’échecs dans lequel l’IA applique un ensemble de règles spécifiques pour déterminer le meilleur coup. Snyk Code, par exemple, utilise un solveur logique et des règles compilées dans une base de connaissances.
IA générative
L’IA générative est une branche de l’intelligence artificielle qui s’appuie sur des techniques d’apprentissage automatique pour produire de nouveaux contenus — images, textes ou musique, par exemple — similaires aux données d’entraînement. Pour les développeurs de logiciels, cela pourrait consister à créer un programme qui génère automatiquement du texte d’apparence humaine pour des chatbots ou des réponses automatisées, ou à développer un modèle d’IA qui conçoit de nouvelles interfaces utilisateur attrayantes à partir de créations existantes de grande qualité.
LLM
Un LLM, ou grand modèle de langage, est un modèle d’intelligence artificielle entraîné sur une vaste quantité de données textuelles, ce qui lui permet de générer du texte d’apparence humaine à partir de prompts. Pour les développeurs de logiciels, cela pourrait consister à utiliser un LLM pour créer des applications comme un chatbot de service client automatisé ou un outil de revue de code qui génère des commentaires en langage naturel pour expliquer les problèmes potentiels du code.
Combiner plusieurs IA ou IA hybride
L’IA hybride est une approche qui combine différentes méthodes d’intelligence artificielle — comme l’IA symbolique et l’apprentissage automatique — avec des éléments d’intelligence humaine, afin de tirer parti des forces de chacune et d’en compenser les faiblesses. Dans le développement logiciel, cela pourrait consister à créer un système qui utilise une IA fondée sur des règles pour prendre les premières décisions, l’apprentissage automatique pour reconnaître des schémas et établir des prédictions, et l’intelligence humaine pour les tâches qui nécessitent de la créativité, de l’empathie ou un jugement complexe — comme l’approbation finale d’un contenu généré ou la résolution de problèmes complexes. Par exemple, l’équipe sécurité de Snyk utilise le moteur Snyk Code et des technologies de ML pour créer la base de connaissances de Snyk Code. Autre exemple : Code Fix utilise une IA générative pour élaborer des suggestions de correction et une IA logique pour les produire, puis vérifier leur faisabilité.
Les modèles d’IA à l’épreuve
En résumé, l’IA ne se limite pas aux LLM et est déjà intégrée à de nombreuses solutions. Les LLM offrent une nouvelle interface remarquable et des possibilités infinies, mais ils ne sont pas les seuls outils à notre disposition. En intégrant d’autres composantes de l’IA, on élargit la couverture, l’intelligence et les possibilités de l’IA dans la sécurité des applications.
Pour en savoir plus sur l’intégration réussie de l’IA dans votre organisation, consultez notre récent antisèche sur les bonnes pratiques d’utilisation de l’IA dans le SDLC.
Références
1 Certains soutiennent que les mythes de la Grèce antique mentionnaient déjà des machines intelligentes et que l’idée de l’intelligence artificielle remonte en réalité à plusieurs milliers d’années (voir https://en.wikipedia.org/wiki/History_of_artificial_intelligence).
2 https://homes.cs.washington.edu/~pedrod/papers/aaai06c.pdf
3 Un inconvénient général : chaque cas d’usage nécessite une supervision humaine.
