Πώς το Logz.io επιταχύνει τις προτάσεις ML και τις λύσεις ανίχνευσης ανωμαλιών με το Amazon SageMaker

Κόμβος πηγής: 1594837

Logz.io είναι ένας AWS Partner Network (APN) Advanced Technology Partner με Ικανότητες AWS σε DevOps, Ασφάλεια και Δεδομένα & Analytics. Το Logz.io προσφέρει μια πλατφόρμα παρατηρητικότητας λογισμικού ως υπηρεσίας (SaaS) που βασίζεται στις καλύτερες λύσεις λογισμικού ανοιχτού κώδικα στην κατηγορία για αναλυτικά στοιχεία καταγραφής, μετρήσεων και ανίχνευσης. Οι πελάτες στέλνουν αυξανόμενο όγκο δεδομένων στο Logz.io από διάφορες πηγές δεδομένων για να διαχειριστούν την υγεία και την απόδοση των εφαρμογών και των υπηρεσιών τους. Μπορεί να είναι συντριπτικό για νέους χρήστες που θέλουν να πλοηγηθούν στους διάφορους πίνακες εργαλείων που κατασκευάστηκαν με την πάροδο του χρόνου, να επεξεργαστούν διαφορετικές ειδοποιήσεις ειδοποιήσεων και να συνδέσουν τις κουκκίδες κατά την αντιμετώπιση προβλημάτων παραγωγής.

Ο μέσος χρόνος ανίχνευσης (MTTD) και ο μέσος χρόνος για την ανάλυση (MTTR) είναι βασικές μετρήσεις για τους πελάτες μας. Υπολογίζονται με τη μέτρηση του χρόνου που ένας χρήστης στην πλατφόρμα μας αρχίζει να διερευνά ένα ζήτημα (όπως η υπηρεσία παραγωγής κάτω) μέχρι το σημείο που σταματά να κάνει ενέργειες στην πλατφόρμα που σχετίζονται με τη συγκεκριμένη έρευνα.

Για να βοηθήσει τους πελάτες να μειώσουν το MTTD και το MTTR, το Logz.io στρέφεται στη μηχανική εκμάθηση (ML) για να παρέχει συστάσεις για σχετικούς πίνακες εργαλείων και ερωτήματα και να πραγματοποιεί εντοπισμό ανωμαλιών μέσω αυτοεκμάθησης. Ως αποτέλεσμα, ο μέσος χρήστης εξοπλίζεται με τη συγκεντρωτική εμπειρία ολόκληρης της εταιρείας του, αξιοποιώντας τη σοφία πολλών. Βρήκαμε ότι η λύση μας μπορεί να μειώσει το MTTR έως και 20%.

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

Σε αυτήν την ανάρτηση, μοιραζόμαστε τον τρόπο χρήσης του Logz.io Amazon Sage Maker για να μειώσουμε τον χρόνο και την προσπάθεια για την απόδειξη της ιδέας (POC), τα πειράματα από την έρευνα έως την αξιολόγηση παραγωγής και τον τρόπο με τον οποίο μειώσαμε το κόστος συμπερασμάτων παραγωγής μας.

Η πρόκληση

Μέχρι να χρησιμοποιήσει το Logz.io το SageMaker, ο χρόνος μεταξύ της έρευνας έως τις δοκιμές POC και των πειραμάτων στην παραγωγή ήταν αρκετά μεγάλος. Αυτό συνέβη επειδή χρειαζόμασταν να δημιουργήσουμε θέσεις εργασίας στο Spark για τη συλλογή, τον καθαρισμό και την κανονικοποίηση των δεδομένων. Το DevOps απαίτησε αυτήν την εργασία για να διαβάσει κάθε πηγή δεδομένων. Τα DevOps και οι δεξιότητες μηχανικής δεδομένων δεν αποτελούν μέρος της ομάδας μας ML και αυτό προκάλεσε μεγάλη εξάρτηση μεταξύ των ομάδων.

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

Φάση έρευνας

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

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

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

Φάση αξιολόγησης

Κατά τη διάρκεια αυτής της φάσης, αξιολογήσαμε μερικές πλατφόρμες ML για να υποστηρίξουμε τόσο τις απαιτήσεις εκπαίδευσης όσο και τις απαιτήσεις εξυπηρέτησης. Διαπιστώσαμε ότι το SageMaker είναι το πιο κατάλληλο για τις περιπτώσεις χρήσης μας επειδή υποστηρίζει τόσο την εκπαίδευση όσο και την εξαγωγή συμπερασμάτων. Επιπλέον, είναι προσαρμόσιμο, ώστε να μπορούμε να το προσαρμόσουμε σύμφωνα με την ερευνητική διαδικασία που προτιμάμε.

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

Αξιολογήσαμε πολλές λύσεις και τελικά επιλέξαμε την ακόλουθη αρχιτεκτονική:

  • DataPlate – Η έκδοση ανοιχτού κώδικα του DataPlate μας βοήθησε να τραβήξουμε και να ενώσουμε τα δεδομένα μας εύκολα χρησιμοποιώντας το Spark μας EMR Αμαζονίου συμπλέγματα με μια απλή SQL, ενώ παρακολουθεί την πρόσβαση στα δεδομένα
  • Παρουσίαση και επεξεργασία εργασιών σημειωματάριου SageMaker – Αυτό μας βοήθησε με την επεκτασιμότητα του χρόνου εκτέλεσης και την ευελιξία των τύπων μηχανών και των πλαισίων ML, ενώ συνεργαζόταν ο κώδικάς μας μέσω μιας σύνδεσης Git

Αρχιτεκτονική λύσης φάσης έρευνας

Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική λύσης της ερευνητικής φάσης και αποτελείται από τα ακόλουθα στοιχεία:

  • Σημειωματάρια SageMaker – Οι επιστήμονες δεδομένων τα χρησιμοποιούν φορητούς υπολογιστές να διεξάγουν την έρευνά τους.
  • Λειτουργία AWS Lambda - AWS Lambda είναι μια λύση χωρίς διακομιστή που εκτελεί μια εργασία επεξεργασίας κατά παραγγελία. Η εργασία χρησιμοποιεί ένα κοντέινερ Docker με το σημειωματάριο που θέλουμε να εκτελέσουμε κατά τη διάρκεια του πειράματός μας, μαζί με όλα τα κοινά μας αρχεία που πρέπει να υποστηρίζουν το σημειωματάριο (requirements.txt και ο κωδικός συναρτήσεων πολλαπλής επεξεργασίας σε ξεχωριστό σημειωματάριο).
  • ECR Amazon - Μητρώο εμπορευματοκιβωτίων Amazon Elastic (Amazon ECR) αποθηκεύει το κοντέινερ Docker.
  • Εργασία επεξεργασίας SageMaker – Μπορούμε να το κάνουμε αυτό εργασία επεξεργασίας δεδομένων σε οποιοδήποτε μηχάνημα ML και τρέχει το notebook μας με παραμέτρους.
  • DataPlate – Αυτή η υπηρεσία μας βοηθά να χρησιμοποιούμε την SQL και να ενώνουμε εύκολα πολλές πηγές δεδομένων. Το μεταφράζει σε κώδικα Spark και τον βελτιστοποιεί, ενώ παρακολουθεί την πρόσβαση στα δεδομένα και συμβάλλει στη μείωση των παραβιάσεων δεδομένων. Η έκδοση Xtra παρείχε ακόμη περισσότερες δυνατότητες.
  • EMR Αμαζονίου – Αυτή η υπηρεσία εκτελεί τις εξαγωγές δεδομένων μας ως φόρτους εργασίας μέσω του Spark, επικοινωνώντας με όλους τους πόρους δεδομένων μας.

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

Αφού δοκιμάσαμε τα πλαίσια ML, επιλέξαμε τον πυρήνα SageMaker MXNet για τις φάσεις ομαδοποίησης και κατάταξης.

Για να δοκιμάσουμε τον κώδικα του notebook στα δεδομένα παραγωγής μας, εκτελέσαμε το notebook ενσωματώνοντάς το μέσω Docker στο Amazon ECS και το εκτελέσαμε ως εργασία επεξεργασίας για να επικυρώσουμε το μέγιστο χρόνο εκτέλεσης σε διαφορετικούς τύπους μηχανημάτων.

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

Η λύση συμπερασμάτων παραγωγής σε πραγματικό χρόνο

Στη φάση της έρευνας χρησιμοποιήσαμε Παρκέ Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) αρχεία για να διατηρήσουμε τις συστάσεις μας. Αυτά καταναλώνονται μία φορά την ημέρα από τον μηχανολογικό αγωγό μας για να επισυνάψουμε τις συστάσεις στον μηχανισμό ειδοποιήσεών μας.

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

Για να εφαρμόσουμε αυτήν τη λύση σε κλίμακα, δοκιμάσαμε τις περισσότερες από τις λύσεις τελικού σημείου του SageMaker στην έρευνά μας για τον εντοπισμό ανωμαλιών. Δοκιμάσαμε 500 από τα προκατασκευασμένα μοντέλα με ένα μηχάνημα μεμονωμένων τελικών σημείων διαφόρων τύπων και χρησιμοποιήσαμε ταυτόχρονους πελάτες πολλαπλών νημάτων για την εκτέλεση αιτημάτων στο τελικό σημείο. Μετρήσαμε τον χρόνο απόκρισης, την CPU, τη μνήμη και άλλες μετρήσεις (για περισσότερες πληροφορίες, βλ Παρακολουθήστε το Amazon SageMaker με το Amazon CloudWatch). Διαπιστώσαμε ότι το τελικό σημείο πολλαπλών μοντέλων ταιριάζει απόλυτα στις περιπτώσεις χρήσης μας.

Ένα τελικό σημείο πολλαπλών μοντέλων μπορεί να μειώσει δραματικά το κόστος μας σε σύγκριση με ένα μεμονωμένο τελικό σημείο ή ακόμα και με Kubernetes για τη χρήση υπηρεσιών Ιστού Flask (ή άλλων Python). Η πρώτη μας υπόθεση ήταν ότι πρέπει να παρέχουμε ένα μόνο τελικό σημείο, χρησιμοποιώντας ένα μικρό μηχάνημα 4-vCPU, για κάθε πελάτη, και κατά μέσο όρο να ρωτήσουμε τέσσερα αποκλειστικά μοντέλα, επειδή κάθε vCPU εξυπηρετεί ένα μοντέλο. Με το τελικό σημείο πολλαπλών μοντέλων, θα μπορούσαμε να συγκεντρώσουμε περισσότερους πελάτες σε ένα μόνο μηχάνημα πολλαπλών σημείων.

Είχαμε ένα μοντέλο και αρχεία κωδικοποίησης ανά πελάτη, και αφού κάναμε δοκιμές φόρτωσης, αποφασίσαμε ότι μπορούσαμε να εξυπηρετήσουμε 50 πελάτες, ο καθένας χρησιμοποιώντας 10 μοντέλα και ακόμη και τη μικρότερη παρουσία ml.t2.medium για τις λύσεις μας.

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

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

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

Το αποτέλεσμα

Σε αυτήν την ενότητα, εξετάζουμε τα βήματα και το αποτέλεσμα της διαδικασίας.

Χρησιμοποιούμε τη διαμόρφωση του notebook κύκλου ζωής για να επιτρέψουμε την εκτέλεση των notebook ως εργασίες επεξεργασίας, ενσωματώνοντας το notebook σε ένα κοντέινερ Docker προκειμένου να επικυρωθεί ο κώδικας πιο γρήγορα και να χρησιμοποιηθεί ο μηχανισμός αυτόματης διακοπής:

#!/bin/bash # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
# http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License. set -e # OVERVIEW
# This script installs the sagemaker_run_notebook extension package in SageMaker Notebook Instance
#
# There are two parameters you need to set:
# 1. S3_LOCATION is the place in S3 where you put the extension tarball
# 2. TARBALL is the name of the tar file that you uploaded to S3. You should just need to check
# that you have the version right.
sudo -u ec2-user -i <<'EOF'
# PARAMETERS
VERSION=0.18.0
EXTENSION_NAME=sagemaker_run_notebook
# Set up the user setting and workspace directories
mkdir -p /home/ec2-user/SageMaker/.jupyter-user/{workspaces,user-settings}
# Run in the conda environment that the Jupyter server uses so that our changes are picked up
source /home/ec2-user/anaconda3/bin/activate JupyterSystemEnv
# Install the extension and rebuild JupyterLab so it picks up the new UI
aws s3 cp s3://aws-emr-resources-11111111-us-east-1/infra-sagemaker/sagemaker_run_notebook-0.18.0-Logz-latest.tar.gz ./sagemaker_run_notebook-0.18.0-Logz-latest.tar.gz
pip install sagemaker_run_notebook-0.18.0-Logz-latest.tar.gz jupyter lab build
source /home/ec2-user/anaconda3/bin/deactivate
EOF # sudo -u ec2-user -i <<'EOF'
# PARAMETERS
for PACKAGE in pandas dataplate awswrangler==2.0.0 ipynb==0.5.1 prison==0.1.3 PyMySQL==0.10.1 requests==2.25.0 scipy==1.5.4 dtaidistance joblib sagemaker_run_notebook-0.18.0-Logz-latest.tar.gz fuzzywuzzy==0.18.0; do echo $PACKAGE # Note that "base" is special environment name, include it there as well. for env in base /home/ec2-user/anaconda3/envs/*; do source /home/ec2-user/anaconda3/bin/activate $(basename "$env") if [ $env = 'JupyterSystemEnv' ]; then continue fi pip install --upgrade "$PACKAGE" source /home/ec2-user/anaconda3/bin/deactivate done
done
jupyter lab build # Tell Jupyter to use the user-settings and workspaces directory on the EBS
# volume.
echo "export JUPYTERLAB_SETTINGS_DIR=/home/ec2-user/SageMaker/.jupyter-user/user-settings" >> /etc/profile.d/jupyter-env.sh
echo "export JUPYTERLAB_WORKSPACES_DIR=/home/ec2-user/SageMaker/.jupyter-user/workspaces" >> /etc/profile.d/jupyter-env.sh # The Jupyter server needs to be restarted to pick up the server part of the
# extension. This needs to be done as root.
initctl restart jupyter-server --no-wait # OVERVIEW
# This script stops a SageMaker notebook once it's idle for more than 2 hour (default time)
# You can change the idle time for stop using the environment variable below.
# If you want the notebook the stop only if no browsers are open, remove the --ignore-connections flag
#
# Note that this script will fail if either condition is not met
# 1. Ensure the Notebook Instance has internet connectivity to fetch the example config
# 2. Ensure the Notebook Instance execution role permissions to SageMaker:StopNotebookInstance to stop the notebook
# and SageMaker:DescribeNotebookInstance to describe the notebook.
# PARAMETERS
IDLE_TIME=3600 echo "Fetching the autostop script"
wget https://raw.githubusercontent.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/master/scripts/auto-stop-idle/autostop.py echo "Starting the SageMaker autostop script in cron" (crontab -l 2>/dev/null; echo "*/5 * * * * /usr/bin/python $PWD/autostop.py --time $IDLE_TIME --ignore-connections") | crontab -

Κλωνοποιούμε το σοφός-τρέξιμο-σημειωματάριο έργο GitHub και προσθέστε τα ακόλουθα στο κοντέινερ:

  • Οι απαιτήσεις μας για pip
  • Η δυνατότητα εκτέλεσης φορητών υπολογιστών μέσα από ένα σημειωματάριο, η οποία μας δίνει τη δυνατότητα πολλαπλής επεξεργασίας για να χρησιμοποιήσουμε όλους τους πυρήνες ml.m5.12xlarge instance

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

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

Μπορούμε επίσης να δημιουργήσουμε εργασίες προγραμματισμού που εκτελούν σημειωματάρια (ακόμα και περιορίζουν τον χρόνο εκτέλεσης).

Μπορούμε επίσης να παρατηρήσουμε τις τελευταίες εκτελέσεις και τις λεπτομέρειες τους, όπως ο χρόνος επεξεργασίας.

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

Η ανασκόπηση των αποτελεσμάτων του σημειωματάριου έχει τη μορφή τυπικού σημειωματάριου μόνο για ανάγνωση.

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

  • Έκρηξη JSON
  • Βρείτε σχετικές σειρές σε ένα DataFrame ενώ το κύριο σημειωματάριο χωρίζει το DataFrame #cpu-cores στοιχεία
  • Εκτέλεση ενεργειών ομαδοποίησης ανά τύπο ειδοποίησης ταυτόχρονα

Στη συνέχεια, προσθέτουμε αυτά τα λειτουργικά σημειωματάρια στο κοντέινερ που εκτελεί το σημειωματάριο ως εργασία επεξεργασίας. Δείτε το ακόλουθο αρχείο Docker (προσέξτε τις εντολές COPY):

ARG BASE_IMAGE=need_an_image
FROM $BASE_IMAGE ENV JUPYTER_ENABLE_LAB yes
ENV PYTHONUNBUFFERED TRUE COPY requirements.txt /tmp/requirements.txt
RUN pip install papermill jupyter nteract-scrapbook boto3 requests==2.20.1
RUN pip install -r /tmp/requirements.txt ENV PYTHONUNBUFFERED=TRUE
ENV PATH="/opt/program:${PATH}" # Set up the program in the image
COPY multiprocessDownloadNormalizeFunctions.ipynb /tmp/multiprocessDownloadNormalizeFunctions.ipynb
COPY multiprocessFunctions.ipynb /tmp/multiprocessFunctions.ipynb
COPY run_notebook execute.py /opt/program/
ENTRYPOINT ["/bin/bash"] # because there is a bug where you have to be root to access the directories
USER root

Αποτελέσματα

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

Κατά τη διάρκεια της αξιολόγησης συμπερασμάτων, αξιολογήσαμε διάφορες λύσεις τελικού σημείου του SageMaker. Διαπιστώσαμε ότι η χρήση ενός τελικού σημείου πολλαπλών μοντέλων μπορεί να μας βοηθήσει να εξυπηρετήσουμε περίπου 50 πελάτες, ο καθένας από τους οποίους έχει πολλαπλά (περίπου 10) μοντέλα σε μία μόνο παρουσία, τα οποία μπορούν να ανταποκριθούν στους περιορισμούς χαμηλής καθυστέρησης και επομένως να μας εξοικονομήσουν έως και 80% του κόστους .

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

Συμπέρασμα και επόμενα βήματα

Σε αυτήν την ανάρτηση, μοιραστήκαμε πώς το Logz.io χρησιμοποίησε το SageMaker για να βελτιώσει το MTTD και το MTTR.

Ως επόμενο βήμα, εξετάζουμε το ενδεχόμενο να επεκτείνουμε τη λύση με τα ακόλουθα χαρακτηριστικά:

Σας ενθαρρύνουμε να δοκιμάσετε Σημειωματάρια SageMaker. Για περισσότερα παραδείγματα, ρίξτε μια ματιά στο Παραδείγματα SageMaker GitHub repo.


Σχετικά με τους Συγγραφείς

Amit Gross ηγείται του τμήματος Έρευνας του Logz.io, το οποίο είναι υπεύθυνο για τις λύσεις τεχνητής νοημοσύνης όλων των προϊόντων Logz.io, από τη φάση της έρευνας έως τη φάση της ολοκλήρωσης. Πριν από το Logz.io, η Amit διοικούσε τόσο τις Ερευνητικές Ομάδες Επιστήμης Δεδομένων όσο και τις Ερευνητικές Ομάδες Ασφάλειας στην Here inc. και Cellebrite Inc. Ο Amit έχει M.Sc στην επιστήμη των υπολογιστών από το Πανεπιστήμιο του Τελ Αβίβ.

Γιανίβ Βάκνιν είναι ειδικός μηχανικής μάθησης στο Amazon Web Services. Πριν από το AWS, ο Yaniv κατείχε ηγετικές θέσεις σε startups και Enterprise με τεχνητή νοημοσύνη, συμπεριλαμβανομένου του συνιδρυτή και διευθύνοντος συμβούλου του Dipsee.ai. Η Yaniv συνεργάζεται με πελάτες της AWS για να αξιοποιήσει τη δύναμη της Μηχανικής Μάθησης για την επίλυση εργασιών του πραγματικού κόσμου και την εξαγωγή αξίας. Στον ελεύθερο χρόνο του, ο Yaniv απολαμβάνει να παίζει ποδόσφαιρο με τα αγόρια του.

Εϊτάν Σέλα είναι Αρχιτέκτονας λύσεων Specialist Machine Learning με τις Υπηρεσίες Ιστού της Amazon. Συνεργάζεται με πελάτες AWS για να παρέχει καθοδήγηση και τεχνική βοήθεια, βοηθώντας τους να δημιουργήσουν και να λειτουργήσουν λύσεις μηχανικής εκμάθησης στο AWS. Στον ελεύθερο χρόνο του, ο Eitan απολαμβάνει το τζόκινγκ και την ανάγνωση των πιο πρόσφατων άρθρων μηχανικής εκμάθησης.

Πηγή: https://aws.amazon.com/blogs/machine-learning/how-logz-io-accelerates-ml-recommendations-and-anomaly-detection-solutions-with-amazon-sagemaker/

Σφραγίδα ώρας:

Περισσότερα από Ιστολόγιο μηχανικής εκμάθησης AWS