Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Η βιομηχανική ανάπτυξη συστημάτων λογισμικού απαιτεί μεγάλη προσοχή στην ανοχή σφαλμάτων του τελικού προϊόντος, καθώς και ταχεία απόκριση σε αστοχίες και αστοχίες, εάν παρουσιαστούν. Η παρακολούθηση, φυσικά, βοηθά στην αντιμετώπιση αστοχιών και αστοχιών πιο αποτελεσματικά και γρήγορα, αλλά όχι αρκετά. Πρώτον, είναι πολύ δύσκολο να παρακολουθείτε μεγάλο αριθμό διακομιστών - απαιτείται μεγάλος αριθμός ατόμων. Δεύτερον, πρέπει να έχετε καλή κατανόηση του τρόπου λειτουργίας της εφαρμογής για να προβλέψετε την κατάστασή της. Επομένως, χρειαζόμαστε πολλούς ανθρώπους που να έχουν καλή κατανόηση των συστημάτων που αναπτύσσουμε, της απόδοσης και των δυνατοτήτων τους. Ας υποθέσουμε ότι ακόμα κι αν βρείτε αρκετούς ανθρώπους πρόθυμους να το κάνουν αυτό, χρειάζεται πολύς χρόνος για να τους εκπαιδεύσετε.

Τι να κάνω? Εδώ έρχεται να μας βοηθήσει η τεχνητή νοημοσύνη. Το άρθρο θα μιλήσει για προγνωστική συντήρηση (προβλεπτική συντήρηση). Αυτή η προσέγγιση κερδίζει ενεργά δημοτικότητα. Έχει γραφτεί μεγάλος αριθμός άρθρων, συμπεριλαμβανομένου του Habré. Οι μεγάλες εταιρείες κάνουν πλήρη χρήση αυτής της προσέγγισης για να διατηρήσουν την απόδοση των διακομιστών τους. Αφού μελετήσαμε έναν μεγάλο αριθμό άρθρων, αποφασίσαμε να δοκιμάσουμε αυτήν την προσέγγιση. Τι προέκυψε από αυτό;

Εισαγωγή

Το αναπτυγμένο σύστημα λογισμικού αργά ή γρήγορα τίθεται σε λειτουργία. Είναι σημαντικό για τον χρήστη το σύστημα να λειτουργεί χωρίς αστοχίες. Εάν συμβεί κάτι έκτακτο, θα πρέπει να επιλυθεί με ελάχιστη καθυστέρηση.

Για την απλούστευση της τεχνικής υποστήριξης ενός συστήματος λογισμικού, ειδικά εάν υπάρχουν πολλοί διακομιστές, χρησιμοποιούνται συνήθως προγράμματα παρακολούθησης που λαμβάνουν μετρήσεις από ένα τρέχον σύστημα λογισμικού, καθιστούν δυνατή τη διάγνωση της κατάστασής του και βοηθούν στον προσδιορισμό του τι ακριβώς προκάλεσε την αποτυχία. Αυτή η διαδικασία ονομάζεται παρακολούθηση συστήματος λογισμικού.

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Εικόνα 1. Διεπαφή παρακολούθησης Grafana

Οι μετρήσεις είναι διάφοροι δείκτες ενός συστήματος λογισμικού, του περιβάλλοντος εκτέλεσής του ή του φυσικού υπολογιστή στον οποίο λειτουργεί το σύστημα με μια χρονική σήμανση της στιγμής λήψης των μετρήσεων. Στη στατική ανάλυση, αυτές οι μετρήσεις ονομάζονται χρονοσειρές. Για την παρακολούθηση της κατάστασης του συστήματος λογισμικού, οι μετρήσεις εμφανίζονται με τη μορφή γραφημάτων: ο χρόνος είναι στον άξονα X και οι τιμές είναι κατά μήκος του άξονα Y (Εικόνα 1). Αρκετές χιλιάδες μετρήσεις μπορούν να ληφθούν από ένα τρέχον σύστημα λογισμικού (από κάθε κόμβο). Αποτελούν έναν χώρο μετρήσεων (πολυδιάστατες χρονοσειρές).

Δεδομένου ότι ένας μεγάλος αριθμός μετρήσεων συλλέγεται για πολύπλοκα συστήματα λογισμικού, η χειροκίνητη παρακολούθηση γίνεται δύσκολη υπόθεση. Για να μειωθεί ο όγκος των δεδομένων που αναλύονται από τον διαχειριστή, τα εργαλεία παρακολούθησης περιέχουν εργαλεία για την αυτόματη αναγνώριση πιθανών προβλημάτων. Για παράδειγμα, μπορείτε να διαμορφώσετε μια σκανδάλη ώστε να ενεργοποιείται όταν ο ελεύθερος χώρος στο δίσκο πέσει κάτω από ένα καθορισμένο όριο. Μπορείτε επίσης να διαγνώσετε αυτόματα έναν τερματισμό λειτουργίας διακομιστή ή μια κρίσιμη επιβράδυνση στην ταχύτητα εξυπηρέτησης. Στην πράξη, τα εργαλεία παρακολούθησης κάνουν καλή δουλειά στον εντοπισμό βλαβών που έχουν ήδη συμβεί ή στον εντοπισμό απλών συμπτωμάτων μελλοντικών βλαβών, αλλά γενικά, η πρόβλεψη μιας πιθανής αστοχίας παραμένει ένα δύσκολο καρύδι για αυτά. Η πρόβλεψη μέσω της μη αυτόματης ανάλυσης μετρήσεων απαιτεί τη συμμετοχή ειδικευμένων ειδικών. Είναι χαμηλή παραγωγικότητα. Οι περισσότερες πιθανές αποτυχίες μπορεί να περάσουν απαρατήρητες.

Πρόσφατα, η λεγόμενη προγνωστική συντήρηση συστημάτων λογισμικού έχει γίνει όλο και πιο δημοφιλής μεταξύ μεγάλων εταιρειών ανάπτυξης λογισμικού πληροφορικής. Η ουσία αυτής της προσέγγισης είναι η εύρεση προβλημάτων που οδηγούν σε υποβάθμιση του συστήματος στα αρχικά στάδια, πριν αποτύχει, χρησιμοποιώντας τεχνητή νοημοσύνη. Αυτή η προσέγγιση δεν αποκλείει εντελώς τη χειροκίνητη παρακολούθηση του συστήματος. Είναι βοηθητικό στη διαδικασία παρακολούθησης στο σύνολό της.

Το κύριο εργαλείο για την υλοποίηση της προγνωστικής συντήρησης είναι το έργο της αναζήτησης ανωμαλιών σε χρονοσειρές, αφού όταν εμφανίζεται μια ανωμαλία στα δεδομένα υπάρχει μεγάλη πιθανότητα ότι μετά από κάποιο χρονικό διάστημα θα υπάρξει αποτυχία ή αποτυχία. Μια ανωμαλία είναι μια ορισμένη απόκλιση στην απόδοση ενός συστήματος λογισμικού, όπως ο εντοπισμός υποβάθμισης στην ταχύτητα εκτέλεσης ενός τύπου αιτήματος ή μια μείωση του μέσου αριθμού των εξυπηρετούμενων αιτημάτων σε σταθερό επίπεδο περιόδων σύνδεσης πελάτη.

Το έργο της αναζήτησης ανωμαλιών για συστήματα λογισμικού έχει τις δικές του ιδιαιτερότητες. Θεωρητικά, για κάθε σύστημα λογισμικού είναι απαραίτητο να αναπτυχθούν ή να τελειοποιηθούν οι υπάρχουσες μέθοδοι, καθώς η αναζήτηση για ανωμαλίες εξαρτάται πολύ από τα δεδομένα στα οποία εκτελείται και τα δεδομένα των συστημάτων λογισμικού ποικίλλουν σημαντικά ανάλογα με τα εργαλεία για την υλοποίηση του συστήματος. , μέχρι τον υπολογιστή στον οποίο εκτελείται.

Μέθοδοι αναζήτησης ανωμαλιών κατά την πρόβλεψη αστοχιών συστημάτων λογισμικού

Πρώτα απ 'όλα, αξίζει να πούμε ότι η ιδέα της πρόβλεψης αποτυχιών εμπνεύστηκε από το άρθρο "Μηχανική μάθηση στην παρακολούθηση πληροφορικής". Για να ελεγχθεί η αποτελεσματικότητα της προσέγγισης με αυτόματη αναζήτηση ανωμαλιών, επιλέχθηκε το λογισμικό σύστημα Web-Consolidation, το οποίο είναι ένα από τα έργα της εταιρείας NPO Krista. Προηγουμένως γινόταν χειροκίνητη παρακολούθηση με βάση τις μετρήσεις που ελήφθησαν. Δεδομένου ότι το σύστημα είναι αρκετά περίπλοκο, λαμβάνεται ένας μεγάλος αριθμός μετρήσεων για αυτό: δείκτες JVM (φορτίο συλλογής απορριμμάτων), δείκτες του λειτουργικού συστήματος κάτω από το οποίο εκτελείται ο κώδικας (εικονική μνήμη, % φορτίο CPU του λειτουργικού συστήματος), δείκτες δικτύου (φόρτο δικτύου ), τον ίδιο τον διακομιστή (φόρτο CPU, μνήμη), μετρήσεις wildfly και τις μετρήσεις της εφαρμογής για όλα τα κρίσιμα υποσυστήματα.

Όλες οι μετρήσεις λαμβάνονται από το σύστημα χρησιμοποιώντας γραφίτη. Αρχικά, η βάση δεδομένων whisper χρησιμοποιήθηκε ως τυπική λύση για το grafana, αλλά καθώς η βάση πελατών μεγάλωνε, ο γραφίτης δεν μπορούσε πλέον να αντεπεξέλθει, έχοντας εξαντλήσει τη χωρητικότητα του υποσυστήματος του δίσκου DC. Μετά από αυτό, αποφασίστηκε να βρεθεί μια πιο αποτελεσματική λύση. Η επιλογή έγινε υπέρ γραφίτης+κλικ, που κατέστησε δυνατή τη μείωση του φορτίου στο υποσύστημα του δίσκου κατά μια τάξη μεγέθους και τη μείωση του κατειλημμένου χώρου στο δίσκο κατά πέντε έως έξι φορές. Ακολουθεί ένα διάγραμμα του μηχανισμού συλλογής μετρήσεων με χρήση γραφίτη+κλικ (Εικόνα 2).

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Εικόνα 2. Σχέδιο συλλογής μετρήσεων

Το διάγραμμα λαμβάνεται από εσωτερική τεκμηρίωση. Δείχνει την επικοινωνία μεταξύ του grafana (το περιβάλλον χρήστη παρακολούθησης που χρησιμοποιούμε) και του γραφίτη. Η κατάργηση των μετρήσεων από μια εφαρμογή γίνεται από ξεχωριστό λογισμικό - jmxtrans. Τα βάζει σε γραφίτη.
Το σύστημα Web Consolidation έχει μια σειρά από χαρακτηριστικά που δημιουργούν προβλήματα για την πρόβλεψη αποτυχιών:

  1. Η τάση αλλάζει συχνά. Διατίθενται διάφορες εκδόσεις για αυτό το σύστημα λογισμικού. Κάθε ένα από αυτά φέρνει αλλαγές στο τμήμα λογισμικού του συστήματος. Συνεπώς, με αυτόν τον τρόπο, οι προγραμματιστές επηρεάζουν άμεσα τις μετρήσεις ενός δεδομένου συστήματος και μπορούν να προκαλέσουν μια αλλαγή τάσης.
  2. η δυνατότητα υλοποίησης, καθώς και οι σκοποί για τους οποίους οι πελάτες χρησιμοποιούν αυτό το σύστημα, συχνά προκαλούν ανωμαλίες χωρίς προηγούμενη υποβάθμιση.
  3. το ποσοστό των ανωμαλιών σε σχέση με ολόκληρο το σύνολο δεδομένων είναι μικρό (< 5%).
  4. Ενδέχεται να υπάρχουν κενά στη λήψη δεικτών από το σύστημα. Σε ορισμένες σύντομες χρονικές περιόδους, το σύστημα παρακολούθησης αποτυγχάνει να λάβει μετρήσεις. Για παράδειγμα, εάν ο διακομιστής είναι υπερφορτωμένος. Αυτό είναι κρίσιμο για την εκπαίδευση ενός νευρωνικού δικτύου. Υπάρχει ανάγκη να καλυφθούν τα κενά συνθετικά.
  5. Οι περιπτώσεις με ανωμαλίες είναι συχνά σχετικές μόνο για μια συγκεκριμένη ημερομηνία/μήνα/ώρα (εποχικότητα). Αυτό το σύστημα έχει σαφείς κανονισμούς για τη χρήση του από τους χρήστες. Συνεπώς, οι μετρήσεις είναι σχετικές μόνο για μια συγκεκριμένη χρονική στιγμή. Το σύστημα δεν μπορεί να χρησιμοποιηθεί συνεχώς, αλλά μόνο σε μερικούς μήνες: επιλεκτικά ανάλογα με το έτος. Προκύπτουν καταστάσεις όταν η ίδια συμπεριφορά μετρήσεων σε μια περίπτωση μπορεί να οδηγήσει σε αποτυχία του συστήματος λογισμικού, αλλά όχι σε άλλη.
    Αρχικά, αναλύθηκαν μέθοδοι ανίχνευσης ανωμαλιών στην παρακολούθηση δεδομένων συστημάτων λογισμικού. Σε άρθρα σχετικά με αυτό το θέμα, όταν το ποσοστό των ανωμαλιών είναι μικρό σε σχέση με το υπόλοιπο σύνολο δεδομένων, προτείνεται συχνότερα η χρήση νευρωνικών δικτύων.

Η βασική λογική για την αναζήτηση ανωμαλιών χρησιμοποιώντας δεδομένα νευρωνικών δικτύων φαίνεται στο Σχήμα 3:

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Εικόνα 3. Αναζήτηση ανωμαλιών με χρήση νευρωνικού δικτύου

Με βάση το αποτέλεσμα της πρόβλεψης ή της αποκατάστασης του παραθύρου της τρέχουσας ροής μετρήσεων, υπολογίζεται η απόκλιση από αυτή που λαμβάνεται από το τρέχον σύστημα λογισμικού. Εάν υπάρχει μεγάλη διαφορά μεταξύ των μετρήσεων που λαμβάνονται από το σύστημα λογισμικού και το νευρωνικό δίκτυο, μπορούμε να συμπεράνουμε ότι το τρέχον τμήμα δεδομένων είναι ανώμαλο. Η ακόλουθη σειρά προβλημάτων προκύπτουν για τη χρήση των νευρωνικών δικτύων:

  1. Για να λειτουργήσει σωστά σε λειτουργία ροής, τα δεδομένα για τα μοντέλα εκπαίδευσης νευρωνικών δικτύων πρέπει να περιλαμβάνουν μόνο «κανονικά» δεδομένα.
  2. είναι απαραίτητο να υπάρχει ένα ενημερωμένο μοντέλο για σωστή ανίχνευση. Οι μεταβαλλόμενες τάσεις και η εποχικότητα στις μετρήσεις μπορεί να προκαλέσουν μεγάλο αριθμό ψευδώς θετικών στο μοντέλο. Για να το ενημερώσετε, είναι απαραίτητο να προσδιορίσετε με σαφήνεια την ώρα που το μοντέλο είναι ξεπερασμένο. Εάν ενημερώσετε το μοντέλο αργότερα ή νωρίτερα, τότε, πιθανότατα, θα ακολουθήσει ένας μεγάλος αριθμός ψευδώς θετικών.
    Επίσης, δεν πρέπει να ξεχνάμε την αναζήτηση και την πρόληψη της συχνής εμφάνισης ψευδών θετικών αποτελεσμάτων. Υποτίθεται ότι θα συμβούν συχνότερα σε καταστάσεις έκτακτης ανάγκης. Ωστόσο, μπορεί επίσης να είναι συνέπεια ενός σφάλματος νευρωνικού δικτύου λόγω ανεπαρκούς εκπαίδευσης. Είναι απαραίτητο να ελαχιστοποιηθεί ο αριθμός των ψευδώς θετικών του μοντέλου. Διαφορετικά, οι ψευδείς προβλέψεις θα σπαταλήσουν πολύ χρόνο από τον διαχειριστή που προορίζεται να ελέγξει το σύστημα. Αργά ή γρήγορα ο διαχειριστής απλώς θα σταματήσει να ανταποκρίνεται στο «παρανοϊκό» σύστημα παρακολούθησης.

Επαναλαμβανόμενο νευρωνικό δίκτυο

Για να εντοπίσετε ανωμαλίες σε χρονοσειρές, μπορείτε να χρησιμοποιήσετε επαναλαμβανόμενο νευρωνικό δίκτυο με μνήμη LSTM. Το μόνο πρόβλημα είναι ότι μπορεί να χρησιμοποιηθεί μόνο για προβλεπόμενες χρονοσειρές. Στην περίπτωσή μας, δεν είναι όλες οι μετρήσεις προβλέψιμες. Μια προσπάθεια εφαρμογής RNN LSTM σε μια χρονοσειρά φαίνεται στο Σχήμα 4.

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Εικόνα 4. Παράδειγμα επαναλαμβανόμενου νευρωνικού δικτύου με κύτταρα μνήμης LSTM

Όπως φαίνεται από το Σχήμα 4, το RNN LSTM μπόρεσε να αντιμετωπίσει την αναζήτηση ανωμαλιών σε αυτή τη χρονική περίοδο. Όταν το αποτέλεσμα έχει υψηλό σφάλμα πρόβλεψης (μέσο σφάλμα), στην πραγματικότητα έχει συμβεί μια ανωμαλία στους δείκτες. Η χρήση ενός μόνο RNN LSTM σαφώς δεν θα είναι αρκετή, καθώς μπορεί να εφαρμοστεί σε μικρό αριθμό μετρήσεων. Μπορεί να χρησιμοποιηθεί ως βοηθητική μέθοδος για την αναζήτηση ανωμαλιών.

Αυτόματος κωδικοποιητής για πρόβλεψη αποτυχίας

Αυτόματος κωδικοποιητής – ουσιαστικά ένα τεχνητό νευρωνικό δίκτυο. Το επίπεδο εισόδου είναι κωδικοποιητής, το επίπεδο εξόδου είναι αποκωδικοποιητής. Το μειονέκτημα όλων των νευρωνικών δικτύων αυτού του τύπου είναι ότι δεν εντοπίζουν καλά τις ανωμαλίες. Επιλέχθηκε μια σύγχρονη αρχιτεκτονική αυτοκωδικοποιητή.

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Εικόνα 5. Παράδειγμα λειτουργίας αυτόματου κωδικοποιητή

Οι αυτόματο κωδικοποιητές εκπαιδεύονται σε κανονικά δεδομένα και στη συνέχεια βρίσκουν κάτι ανώμαλο στα δεδομένα που τροφοδοτούνται στο μοντέλο. Ό,τι χρειάζεστε για αυτήν την εργασία. Το μόνο που μένει είναι να επιλέξετε ποιος αυτόματος κωδικοποιητής είναι κατάλληλος για αυτήν την εργασία. Η αρχιτεκτονικά απλούστερη μορφή ενός αυτόματου κωδικοποιητή είναι ένα νευρωνικό δίκτυο προς τα εμπρός, χωρίς επιστροφή, το οποίο μοιάζει πολύ με πολυστρωματικό perceptron (multilayer perceptron, MLP), με ένα στρώμα εισόδου, ένα στρώμα εξόδου και ένα ή περισσότερα κρυφά στρώματα που τα συνδέουν.
Ωστόσο, οι διαφορές μεταξύ των αυτόματων κωδικοποιητών και των MLP είναι ότι σε έναν αυτόματο κωδικοποιητή, το επίπεδο εξόδου έχει τον ίδιο αριθμό κόμβων με το επίπεδο εισόδου και ότι αντί να εκπαιδεύεται να προβλέπει μια τιμή στόχου Y που δίνεται από μια είσοδο Χ, ο αυτόματος κωδικοποιητής εκπαιδεύεται να ανακατασκευάσει τα δικά του X. Επομένως, οι Autoencoder είναι μοντέλα εκμάθησης χωρίς επίβλεψη.

Η αποστολή του αυτόματου κωδικοποιητή είναι να βρει τους δείκτες χρόνου r0 ... rn που αντιστοιχούν στα ανώμαλα στοιχεία στο διάνυσμα εισόδου X. Αυτό το αποτέλεσμα επιτυγχάνεται αναζητώντας το τετράγωνο σφάλμα.

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Εικόνα 6. Σύγχρονος αυτόματος κωδικοποιητής

Για τον αυτόματο κωδικοποιητή επιλέχθηκε σύγχρονη αρχιτεκτονική. Τα πλεονεκτήματά του: η δυνατότητα χρήσης της λειτουργίας επεξεργασίας ροής και ένας σχετικά μικρός αριθμός παραμέτρων νευρωνικών δικτύων σε σύγκριση με άλλες αρχιτεκτονικές.

Μηχανισμός ελαχιστοποίησης ψευδών θετικών

Λόγω του γεγονότος ότι προκύπτουν διάφορες μη φυσιολογικές καταστάσεις, καθώς και μια πιθανή κατάσταση ανεπαρκούς εκπαίδευσης του νευρωνικού δικτύου, για το υπό ανάπτυξη μοντέλο ανίχνευσης ανωμαλιών, αποφασίστηκε ότι ήταν απαραίτητο να αναπτυχθεί ένας μηχανισμός για την ελαχιστοποίηση των ψευδώς θετικών. Αυτός ο μηχανισμός βασίζεται σε μια βάση προτύπου που ταξινομείται από τον διαχειριστή.

Αλγόριθμος για δυναμικό μετασχηματισμό γραμμής χρόνου (Αλγόριθμος DTW, από το αγγλικό δυναμικό στρέβλωση χρόνου) σας επιτρέπει να βρείτε τη βέλτιστη αντιστοιχία μεταξύ των χρονικών ακολουθιών. Χρησιμοποιήθηκε για πρώτη φορά στην αναγνώριση ομιλίας: χρησιμοποιείται για τον προσδιορισμό του τρόπου με τον οποίο δύο σήματα ομιλίας αντιπροσωπεύουν την ίδια αρχική προφορική φράση. Στη συνέχεια, βρέθηκε εφαρμογή σε άλλους τομείς.

Η κύρια αρχή της ελαχιστοποίησης των ψευδώς θετικών είναι η συλλογή μιας βάσης δεδομένων προτύπων με τη βοήθεια ενός χειριστή που ταξινομεί ύποπτες περιπτώσεις που ανιχνεύονται χρησιμοποιώντας νευρωνικά δίκτυα. Στη συνέχεια, το ταξινομημένο πρότυπο συγκρίνεται με την περίπτωση που εντόπισε το σύστημα και εξάγεται ένα συμπέρασμα σχετικά με το εάν η υπόθεση είναι ψευδής ή οδηγεί σε αστοχία. Ο αλγόριθμος DTW χρησιμοποιείται ακριβώς για τη σύγκριση δύο χρονοσειρών. Το κύριο εργαλείο ελαχιστοποίησης εξακολουθεί να είναι η ταξινόμηση. Αναμένεται ότι μετά τη συλλογή μεγάλου αριθμού περιπτώσεων αναφοράς, το σύστημα θα αρχίσει να ζητά λιγότερα από τον χειριστή λόγω της ομοιότητας των περισσότερων περιπτώσεων και της εμφάνισης παρόμοιων περιπτώσεων.

Ως αποτέλεσμα, με βάση τις μεθόδους νευρωνικών δικτύων που περιγράφηκαν παραπάνω, κατασκευάστηκε ένα πειραματικό πρόγραμμα για την πρόβλεψη αστοχιών του συστήματος «Web-Consolidation». Ο στόχος αυτού του προγράμματος ήταν, χρησιμοποιώντας το υπάρχον αρχείο δεδομένων παρακολούθησης και πληροφοριών σχετικά με προηγούμενες αποτυχίες, να αξιολογήσει την ικανότητα αυτής της προσέγγισης για τα συστήματα λογισμικού μας. Το σχήμα του προγράμματος παρουσιάζεται παρακάτω στο Σχήμα 7.

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Εικόνα 7. Σχέδιο πρόβλεψης αποτυχίας με βάση την ανάλυση μετρικού χώρου

Στο διάγραμμα, μπορούν να διακριθούν δύο κύρια μπλοκ: η αναζήτηση ανώμαλων χρονικών περιόδων στη ροή δεδομένων παρακολούθησης (μετρικές) και ο μηχανισμός για την ελαχιστοποίηση των ψευδώς θετικών. Σημείωση: Για πειραματικούς σκοπούς, τα δεδομένα λαμβάνονται μέσω σύνδεσης JDBC από τη βάση δεδομένων στην οποία θα τα αποθηκεύσει ο γραφίτης.
Ακολουθεί η διεπαφή του συστήματος παρακολούθησης που προέκυψε ως αποτέλεσμα της ανάπτυξης (Εικόνα 8).

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Εικόνα 8. Διεπαφή του πειραματικού συστήματος παρακολούθησης

Η διεπαφή εμφανίζει το ποσοστό της ανωμαλίας με βάση τις μετρήσεις που λαμβάνονται. Στην περίπτωσή μας, η απόδειξη προσομοιώνεται. Έχουμε ήδη όλα τα δεδομένα για αρκετές εβδομάδες και τα φορτώνουμε σταδιακά για να ελέγξουμε την περίπτωση μιας ανωμαλίας που οδηγεί σε αποτυχία. Η κάτω γραμμή κατάστασης εμφανίζει το συνολικό ποσοστό ανωμαλίας δεδομένων σε μια δεδομένη στιγμή, το οποίο προσδιορίζεται χρησιμοποιώντας έναν αυτόματο κωδικοποιητή. Επίσης, εμφανίζεται ξεχωριστό ποσοστό για τις προβλεπόμενες μετρήσεις, το οποίο υπολογίζεται από το RNN LSTM.

Ένα παράδειγμα ανίχνευσης ανωμαλιών με βάση την απόδοση της CPU χρησιμοποιώντας το νευρωνικό δίκτυο RNN LSTM (Εικόνα 9).

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Εικόνα 9. Ανακάλυψη RNN LSTM

Μια αρκετά απλή περίπτωση, ουσιαστικά μια συνηθισμένη ακραία τιμή, αλλά που οδηγεί σε αποτυχία του συστήματος, υπολογίστηκε με επιτυχία χρησιμοποιώντας το RNN LSTM. Ο δείκτης ανωμαλίας σε αυτή τη χρονική περίοδο είναι 85–95%· οτιδήποτε πάνω από το 80% (το όριο καθορίστηκε πειραματικά) θεωρείται ανωμαλία.
Ένα παράδειγμα ανίχνευσης ανωμαλίας όταν το σύστημα δεν μπόρεσε να εκκινήσει μετά από μια ενημέρωση. Αυτή η κατάσταση εντοπίζεται από τον αυτόματο κωδικοποιητή (Εικόνα 10).

Αναζητούμε ανωμαλίες και προβλέπουμε αστοχίες χρησιμοποιώντας νευρωνικά δίκτυα

Εικόνα 10. Παράδειγμα ανίχνευσης αυτόματου κωδικοποιητή

Όπως μπορείτε να δείτε από το σχήμα, το PermGen έχει κολλήσει σε ένα επίπεδο. Ο αυτόματος κωδικοποιητής το βρήκε παράξενο γιατί δεν είχε ξαναδεί κάτι παρόμοιο. Εδώ η ανωμαλία παραμένει 100% μέχρι το σύστημα να επιστρέψει σε κατάσταση λειτουργίας. Εμφανίζεται μια ανωμαλία για όλες τις μετρήσεις. Όπως αναφέρθηκε προηγουμένως, ο αυτόματος κωδικοποιητής δεν μπορεί να εντοπίσει ανωμαλίες. Ο χειριστής καλείται να εκτελέσει αυτή τη λειτουργία σε αυτές τις περιπτώσεις.

Συμπέρασμα

Το "Web-Consolidation" του υπολογιστή βρίσκεται σε εξέλιξη εδώ και αρκετά χρόνια. Το σύστημα βρίσκεται σε αρκετά σταθερή κατάσταση και ο αριθμός των καταγεγραμμένων περιστατικών είναι μικρός. Ωστόσο, ήταν δυνατό να βρεθούν ανωμαλίες που οδήγησαν σε αποτυχία 5 - 10 λεπτά πριν συμβεί η αστοχία. Σε ορισμένες περιπτώσεις, η εκ των προτέρων ειδοποίηση μιας βλάβης θα βοηθούσε στην εξοικονόμηση του προγραμματισμένου χρόνου που διατίθεται για την εκτέλεση εργασιών «επισκευής».

Με βάση τα πειράματα που έγιναν, είναι πολύ νωρίς για να εξαχθούν τελικά συμπεράσματα. Μέχρι στιγμής, τα αποτελέσματα είναι αντικρουόμενα. Από τη μία πλευρά, είναι σαφές ότι οι αλγόριθμοι που βασίζονται σε νευρωνικά δίκτυα είναι ικανοί να βρίσκουν «χρήσιμες» ανωμαλίες. Από την άλλη πλευρά, παραμένει ένα μεγάλο ποσοστό ψευδώς θετικών και δεν μπορούν να εντοπιστούν όλες οι ανωμαλίες που ανιχνεύονται από εξειδικευμένο ειδικό σε ένα νευρωνικό δίκτυο. Στα μειονεκτήματα περιλαμβάνεται το γεγονός ότι πλέον το νευρωνικό δίκτυο απαιτεί εκπαίδευση με δάσκαλο για κανονική λειτουργία.

Για να αναπτυχθεί περαιτέρω το σύστημα πρόβλεψης αστοχίας και να φέρει σε ικανοποιητική κατάσταση, μπορούν να προβλεφθούν διάφοροι τρόποι. Αυτή είναι μια πιο λεπτομερής ανάλυση περιπτώσεων με ανωμαλίες που οδηγούν σε αποτυχία, λόγω αυτής της προσθήκης στη λίστα σημαντικών μετρήσεων που επηρεάζουν σε μεγάλο βαθμό την κατάσταση του συστήματος και της απόρριψης περιττών που δεν το επηρεάζουν. Επίσης, αν κινηθούμε προς αυτή την κατεύθυνση, μπορούμε να κάνουμε προσπάθειες εξειδίκευσης αλγορίθμων ειδικά για τις περιπτώσεις μας με ανωμαλίες που οδηγούν σε αστοχίες. Υπάρχει κι άλλος τρόπος. Αυτό είναι μια βελτίωση στις αρχιτεκτονικές νευρωνικών δικτύων και ως εκ τούτου αυξάνει την ακρίβεια ανίχνευσης με μείωση του χρόνου εκπαίδευσης.

Εκφράζω την ευγνωμοσύνη μου στους συναδέλφους μου που με βοήθησαν να γράψω και να διατηρήσω τη συνάφεια αυτού του άρθρου: Βίκτορ Βερμπίτσκι και Σεργκέι Φινογκένοφ.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο