Intelligence Artificielle et Supervision des Systèmes d’information
- Zoom
- 11 mars 2021
L’actualité récente illustre abondamment l’exigence du public en matière de fiabilité, de sécurité et de disponibilité des systèmes d’information. Qu’il s’agisse de prestations essentielles comme le paiement à distance ou la gestion de son contrat d’électricité, ou de nice to have , comme les réseaux sociaux ou les plateformes de jeux en ligne, les utilisateurs exigent une protection stricte de leur vie privée, mais aussi une forte disponibilité du système d’information ainsi qu’une protection robuste contre les attaques malveillantes. En d’autres termes : la fidélité des usagers à un prestataire est fortement conditionnée par la qualité de son système d’information.
De nombreux travaux sont en cours dans ce domaine, avec des perspectives diverses (disponibilité, détection de fraudes, cybersécurité, protection des données personnelles, … ) et mettent en œuvre des techniques variées, notamment de l’intelligence artificielle. Ce domaine de l’informatique, le Machine Learning, permet aux ordinateurs « d’apprendre » en observant le monde réel, sans que l’homme n’intervienne pour définir une méthode explicite de résolution du problème posé. L’intelligence artificielle foisonne actuellement d’applications nouvelles, du langage naturel à la reconnaissance de visages, mais aussi, en particulier, en matière de supervision de systèmes d’informations complexes et largement distribués.
Notons qu’il est fréquent qu’un système d’information d’une grande banque, ou d’une grande entreprise nationale comporte plusieurs dizaines de milliers d’équipements ou de serveurs, qui sont supervisés en temps réel, et dont la disponibilité doit être garantie sans discontinuer, 24h/24 et 7 jours sur 7.
Compte tenu de ces exigences, un des axes d’investigation est de tenter de prédire les incidents. En effet, si on dispose d’une prédiction fiable, on peut envisager des solutions palliatives, avant la survenue de l’incident, qui permettent de contourner le problème. Il s’agit donc de mettre en œuvre un système d’apprentissage machine adapté à la prédiction des alertes des systèmes d’information, qui procède en deux temps : dans un premier temps, le système observe le réseau, et « apprend » à distinguer les situations normales des situations anormales. En particulier, on cherche à dégager des « profils » annonciateurs d’alertes, une sorte de signature d’un bon ou d’un mauvais fonctionnement ultérieur à travers les observations présentes. Dans un second temps, lorsqu’un tel apprentissage est acquis par la machine avec un bon niveau de fiabilité, on applique en temps réel le modèle obtenu pour prédire les alertes pendant le fonctionnement même du système d’information.
Le problème de la prédiction d’alertes est ardu, et ses solutions ne semblent pas universelles : elles semblent dépendre fortement du système d’information considéré. Toutefois, on arrive à obtenir dans certaines situations des résultats remarquables. En particulier, dans le cadre de travaux que j’ai récemment conduits, nous avons obtenu pour neuf serveurs, des prédictions d’alertes d’une fiabilité très encourageante. Ces résultats sont illustrés dans la video qui suit.
Cette video est un enregistrement accéléré d’écran, lors d’un fonctionnement de notre logiciel de prédiction d’alertes : une heure en temps réel correspond à une seconde en video.
Le logiciel de prédiction d’alertes a effectué une première phase d’apprentissage (training) sur la base des informations de supervision du réseau, sur les données de 18 mois, s’écoulant jusqu’au 31 mai 2019, pour neuf serveurs. Pour des raisons évidentes de commodité, cet apprentissage ne s’est pas fait en temps réel, mais sur la base des informations historiques enregistrées au niveau de la salle de supervision. Ensuite, en utilisant les données du 1er au 23 juin 2019, le logiciel a tenté de prédire les alertes, en calculant heure par heure la probabilité qu’un incident se produise dans l’heure qui suit.
A chacun des neuf serveurs est associée une case. Cette probabilité d’incident du serveur qui est calculée heure après heure est affichée dans la case associée à l’aide d’un code couleur : rouge pour une quasi certitude d’alerte (probabilité voisine de 1), bleu lorsque la probabilité d’alerte est très faible. Par ailleurs, pour chaque serveur, un « X » est affiché dans la case correspondante si une alerte a réellement été observée pendant l’heure considérée.
Ainsi, un bon fonctionnement de notre système prédictif est illustrée par la présence d’un « X » uniquement lorsque le code couleur de la case considérée tire vers le rouge. La video permet de constater la fiabilité des prédictions obtenues.
Ces travaux, qui nécessitent encore d’être étendus et généralisés, sont très encourageants pour faire de la prédiction d’alertes dans des systèmes d’information complexes. Des recherches sont en cours, en partenariat avec la société HN-Services qui m’en a confié la responsabilité, avec le soutien de l’ANRT (Agence Nationale Recherche et Technologie).