Thèse de Youcef Remil


Sujet :
Recherche et développement de nouvelles méthodes AIOps pour la maintenance prédictive d'un grand parc de serveurs d'applications

Résumé :

Le processus de collecte et d'analyse de grands volumes de données pour répondre à des questions à but prédictif, explicatif, ou décisionnel, est connu sous le nom ''science de données''. Celle-ci a été reconnue comme nouvelle discipline qui s'appuie sur des théories et des principes établis de la statistique et de l'analyse de données, mais aussi, qui exploite pleinement la puissance croissante des outils informatiques. Cette discipline connaît aujourd'hui un succès remarquable tant dans le monde industriel que dans le milieu scientifique. Cette réussite s'explique d'une part par l'omniprésence actuelle de données en grande quantité et variété, et d'autre part par la prise de conscience des grands enjeux qui se cachent derrière l'analyse de ces données. Cette discipline a permis d'atteindre des progrès remarquables dans l'automatisation de tâches complexes dans divers domaines. Le domaine de maintenance est en train de muter des systèmes traditionnels à base de règles d'alertes, vers des systèmes beaucoup plus automatisés grâce aux méthodes automatiques de détection d'anomalie et de prédiction de panne. 
Les solutions classiques de maintenance et de monitoring de serveurs sont généralement basées sur des systèmes à bases de règles. Plus en détails, ces systèmes nécessitent de déclarer explicitement des règles d'alertes sur les flux de données (e.g., générer une alerte si l'espace utilisé d'un disque dur d'un serveur dépasse 95%). Ces systèmes sont limités car ils ne permettent pas un passage efficace à l'échelle. Avec le temps, quelques règles deviennent obsolètes, et de nouvelles règles apparaissent. Mais aussi, quand le nombre de serveurs et d'applications à monitorer augmente, le nombre de règles peut se multiplier, en multipliant aussi le nombre d'alertes. La gestion de l'ensemble des règles et des alertes peut devenir fastidieuse⁠.  L'objectif principal de la thèse est de concevoir et mettre en œuvre des méthodes d'intelligence artificielle afin d'automatiser au maximum le processus de maintenance préventive et corrective. La réalisation de ce projet nécessite toutefois de répondre à plusieurs problématiques complexes liées d'un côté à la nature et la quantité des données, et d'un autre côté aux contraintes applicatives. En effet, cela nécessite de traiter efficacement et en temps réel un flux de données qui sont hétérogènes et en évolution continue, et réussir à en extraire des informations utiles et actionnables. Les complexités et les enjeux liés à cette problématique font d'elle un sujet de recherche très actif

Objectifs de la thèse : 

1. Proposition de méthodes de détection d'anomalie en temps réel.

Un objectif principal de la thèse est de proposer de nouvelles méthodes de détection d'anomalies sur les séries temporelles. Ces techniques permettent d'analyser les données afin d'identifier des événements ou des observations rares qui soulèvent des suspicions car ils sont significativement différents du reste des données. Dans notre cas d'étude, ces événements peuvent correspondre à un dysfonctionnement qui va probablement conduire à une panne future d'un serveur ou une application ou même à un comportement suspect lié à une intrusion. Plusieurs méthodes supervisées ont été proposées, mais elles nécessitent une base de données d'apprentissage dans laquelle les anomalies sont déjà spécifiées, et cela n'est pas toujours disponible dans la pratique. Par ailleurs, il existe des méthodes qui ont besoin de scannerka toute la base de données afin de détecter les anomalies. Ces méthodes ne sont pas adaptées à des problématiques de détection en temps réel. D'autres méthodes nécessitent des temps importants de traitement pour accomplir la tâche. Mais dans un contexte réaliste, nous avons besoin d'approches efficaces qui sont capables de traiter de grandes quantités de données, et en identifier les anomalies dans des temps raisonnables. L'objectif est donc de proposer des méthodes de détection d'anomalie qui respectent les contraintes suivantes ⁠: 
La détection doit être en temps réel. En d’autres termes, l'algorithme doit identifier l'anomalie en connaissant seulement l'état présent et passé, et sans information sur l'état futur.
L'algorithme doit être non supervisé, sans nécessiter des données manuellement annotées, et des paramétrages laborieux pour chaque cas d'étude.
L'algorithme doit apprendre en continue et s'adapter à un environnement dynamique et à la Dérive conceptuelle (concept drift), sachant que les flux de données sont généralement non stationnaires.
L'algorithme doit détecter l'anomalie le plus tôt possible.
L'algorithme doit minimiser les erreurs (les fausses alertes et les anomalies non détectées).
L'algorithme doit pouvoir interagir avec un utilisateur expert et apprendre à partir de son feedback. En effet, il doit apprendre à ne pas générer de fausses alertes.

2. Fouille de motifs sur les flux de données.

Cette partie consiste à l'élaboration et l'expérimentation de nouvelles méthodes de fouilles de motifs principalement appliquées à la maintenance préventive, mais capables d'être généralisées à un spectre d'applications plus large. Nous souhaitons investiguer des langages de motifs et des contraintes adaptés à la nature de données analysées (séries temporelles) ainsi qu'à l'application étudiée (maintenance préventive). Le problème modélisé doit permettre d'extraire des informations utiles et actionnables sur l'état de santé des serveurs supervisés. La recherche de causalité est un domaine très étudié de fouille données, mais il reste encore un sujet complexe. Nous sommes capables aujourd'hui d'extraire très efficacement les corrélations dans les données, mais ces corrélations ne décrivent pas nécessairement des phénomènes de causalité

3. Interprétation et explicabilité de modèles de classification non intelligibles.

Des modèles d'apprentissage automatique peuvent être utilisés pour classifier les anomalies sur les différents signaux et applications, prédire les pannes futures, ou prédire simplement le comportement futur d'une série temporelle. Cela nécessite de construire un modèle qui arrive à effectuer efficacement la prédiction tout en minimisant les erreurs. Cependant, il est tout aussi important de pouvoir comprendre les prédictions fournies par un tel modèle dans notre contexte d'application. Par exemple, si un modèle prédit qu'il y a un grand risque de panne sur un serveur particulier, il faut être capable de comprendre pourquoi le modèle fournit de telles prédictions. Cela permet d'un côté de vérifier que le raisonnement du modèle est correct, et d'un autre côté d'avoir des indices qui aideront à faire des actions correctives qui éviteront cette panne potentielle. Plusieurs modèles existants sont reconnus comme interprétables (e.g., régression linéaire, arbre de décision). Toutefois, leur efficacité est limitée quand il s'agit de tâches de prédiction difficiles où il faut identifier des structures complexes dans des données hétérogènes comme celles de notre problème. Pour cela, plusieurs modèles plus sophistiqués ont été proposés (e.g., réseaux de neurones, SVM). Particulièrement pour les tâches de prédiction liées aux séries temporelles, les réseaux de neurones récurrents (RNN) et les LSTM ont montré une très bonne performance⁠. Néanmoins, ces modèles sont opaques et fonctionnent comme des boites noires. Dans cette thèse, nous envisageons de proposer des méthodes qui visent à interpréter les classifications faites particulièrement sur les séries temporelles, en profitant des caractéristiques spécifiques à ce type de données pour pouvoir répondre efficacement à ce problème.
 


Encadrant : Jean-Francois Boulicaut
Co-encadrant : Mehdi Kaytoue