Ξεκινώντας με την ανάπτυξη μοντέλων σε πραγματικό χρόνο στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ξεκινώντας με την ανάπτυξη μοντέλων σε πραγματικό χρόνο στο Amazon SageMaker

Amazon Sage Maker είναι μια πλήρως διαχειριζόμενη υπηρεσία που παρέχει σε κάθε προγραμματιστή και επιστήμονα δεδομένων τη δυνατότητα να δημιουργεί γρήγορα, να εκπαιδεύει και να αναπτύσσει μοντέλα μηχανικής μάθησης (ML) σε κλίμακα. Το ML πραγματοποιείται στο συμπέρασμα. Το SageMaker προσφέρει τέσσερις επιλογές συμπερασμάτων:

  1. Συμπεράσματα σε πραγματικό χρόνο
  2. Συμπεράσματα χωρίς διακομιστή
  3. Ασύγχρονη Επαγωγή
  4. Μετασχηματισμός παρτίδας

Αυτές οι τέσσερις επιλογές μπορούν να ταξινομηθούν ευρέως σε επιλογές συμπερασμάτων Online και Batch. Στο Online Inference, τα αιτήματα αναμένεται να υποβληθούν σε επεξεργασία καθώς φτάνουν και η εφαρμογή που καταναλώνει αναμένει απάντηση μετά την επεξεργασία κάθε αιτήματος. Αυτό μπορεί να συμβεί είτε συγχρόνως (συμπερασματικά σε πραγματικό χρόνο, χωρίς διακομιστή) είτε ασύγχρονα (ασύγχρονη συμπέρασμα). Σε ένα σύγχρονο μοτίβο, η εφαρμογή που καταναλώνει είναι αποκλεισμένη και δεν μπορεί να προχωρήσει μέχρι να λάβει απάντηση. Αυτοί οι φόρτοι εργασίας τείνουν να είναι εφαρμογές σε πραγματικό χρόνο, όπως ο εντοπισμός απάτης μέσω πιστωτικών καρτών στο διαδίκτυο, όπου οι απαντήσεις αναμένονται της τάξης των χιλιοστών του δευτερολέπτου έως δευτερολέπτων και τα ωφέλιμα φορτία αιτημάτων είναι μικρά (μερικά MB). Στο ασύγχρονο μοτίβο, η εμπειρία της εφαρμογής δεν αποκλείεται (για παράδειγμα, η υποβολή αξίωσης ασφάλισης μέσω μιας εφαρμογής για κινητά) και συνήθως απαιτεί μεγαλύτερα μεγέθη ωφέλιμου φορτίου ή/και μεγαλύτερους χρόνους επεξεργασίας. Στο συμπέρασμα εκτός σύνδεσης, μια συγκέντρωση (παρτίδα) αιτημάτων συμπερασμάτων επεξεργάζεται μαζί και οι απαντήσεις παρέχονται μόνο αφού ολοκληρωθεί η επεξεργασία ολόκληρης της παρτίδας. Συνήθως, αυτοί οι φόρτοι εργασίας δεν είναι ευαίσθητοι σε καθυστέρηση, περιλαμβάνουν μεγάλους όγκους (πολλαπλά GB) δεδομένων και προγραμματίζονται με κανονικό ρυθμό (για παράδειγμα, εκτελέστε ανίχνευση αντικειμένων σε πλάνα από κάμερα ασφαλείας στο τέλος της ημέρας ή επεξεργαστείτε δεδομένα μισθοδοσίας στο ΤΕΛΟΣ του μηνα).

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

Επιλογή επιλογής ανάπτυξης μοντέλου

Η επιλογή του σωστού τύπου συμπερασμάτων μπορεί να είναι δύσκολη και ο παρακάτω απλός οδηγός μπορεί να σας βοηθήσει. Δεν είναι ένα αυστηρό διάγραμμα ροής, οπότε αν διαπιστώσετε ότι μια άλλη επιλογή λειτουργεί καλύτερα για εσάς, μη διστάσετε να τα χρησιμοποιήσετε. Συγκεκριμένα, το Real-Time Inference είναι μια εξαιρετική επιλογή για τη φιλοξενία των μοντέλων σας όταν έχετε χαμηλή και σταθερή καθυστέρηση (της τάξης των χιλιοστών του δευτερολέπτου ή δευτερολέπτων) και ευαίσθητο φόρτο εργασίας. Μπορείτε να ελέγξετε τον τύπο του στιγμιότυπου και να μετρήσετε πίσω από το τελικό σας σημείο, ενώ παράλληλα κάνετε διαμόρφωση Αυτόματη κλιμάκωση πολιτική διαχείρισης της κυκλοφορίας. Υπάρχουν δύο άλλες επιλογές του SageMaker Inference που μπορείτε επίσης να χρησιμοποιήσετε για να δημιουργήσετε ένα τελικό σημείο. Το Asynchronous Inference είναι όταν έχετε μεγάλα μεγέθη ωφέλιμου φορτίου και εύρος ζώνης σχεδόν σε πραγματικό χρόνο. Αυτή είναι μια καλή επιλογή, ειδικά για μοντέλα NLP και Computer Vision που έχουν μεγαλύτερους χρόνους προεπεξεργασίας. Το συμπέρασμα χωρίς διακομιστή είναι μια εξαιρετική επιλογή όταν έχετε διακοπτόμενη κίνηση και δεν θέλετε να διαχειριστείτε την κλιμάκωση της υποδομής. Η συνταγή για τη δημιουργία ενός τελικού σημείου παραμένει η ίδια ανεξάρτητα από τον τύπο συμπερασμάτων που επιλέγετε. Σε αυτήν την ανάρτηση, θα επικεντρωθούμε στη δημιουργία ενός τελικού σημείου που βασίζεται σε στιγμιότυπα σε πραγματικό χρόνο, αλλά μπορείτε εύκολα να το προσαρμόσετε σε οποιαδήποτε από τις άλλες Επιλογές συμπερασμάτων με βάση την περίπτωση χρήσης σας. Τέλος, η εξαγωγή συμπερασμάτων παρτίδας πραγματοποιείται εκτός σύνδεσης, ώστε να μπορείτε να παρέχετε ένα σύνολο δεδομένων από τα οποία θέλετε να αντλήσετε συμπεράσματα και θα το εκτελέσουμε. Αυτό βασίζεται ομοίως σε στιγμιότυπα, ώστε να μπορείτε να επιλέξετε τη βέλτιστη παρουσία για τον φόρτο εργασίας σας. Καθώς δεν υπάρχει τελικό σημείο έναρξης και λειτουργίας, πληρώνετε μόνο για τη διάρκεια της εργασίας. Είναι καλό για την επεξεργασία gigabytes δεδομένων και η διάρκεια εργασίας μπορεί να είναι ημέρες. Υπάρχουν ενσωματωμένες λειτουργίες που διευκολύνουν την εργασία με δομημένα δεδομένα και βελτιστοποιήσεις για την αυτόματη διανομή δομημένων δεδομένων. Μερικά παραδείγματα περιπτώσεων χρήσης είναι η μοντελοποίηση τάσης, η προγνωστική συντήρηση και η πρόβλεψη ανατροπής. Όλα αυτά μπορούν να πραγματοποιηθούν μαζικά εκτός σύνδεσης επειδή δεν χρειάζεται να αντιδράσει σε ένα συγκεκριμένο συμβάν.

Φιλοξενία μοντέλου στα Endpoints του SageMaker

Στην ουσία, το SageMaker Real-Time Endpoints αποτελείται από ένα μοντέλο και την υποδομή με την οποία επιλέγετε να υποστηρίξετε το Endpoint. Το SageMaker χρησιμοποιεί κοντέινερ για να φιλοξενήσει μοντέλα, πράγμα που σημαίνει ότι χρειάζεστε ένα κοντέινερ που να ρυθμίζει σωστά το περιβάλλον για το πλαίσιο που χρησιμοποιείτε για κάθε μοντέλο που παρέχετε. Για παράδειγμα, εάν εργάζεστε με ένα μοντέλο Sklearn, πρέπει να μεταβιβάσετε τα σενάρια/δεδομένα του μοντέλου σας σε ένα κοντέινερ που ρυθμίζει σωστά το Sklearn. Ευτυχώς, το SageMaker παρέχει διαχειριζόμενες εικόνες για δημοφιλή πλαίσια, όπως TensorFlow, PyTorch, Sklearn και HuggingFace. Μπορείτε να ανακτήσετε και να χρησιμοποιήσετε αυτές τις εικόνες χρησιμοποιώντας το υψηλό επίπεδο SDK SageMaker Python και εισάγετε τα σενάρια μοντέλων και τα δεδομένα σας σε αυτά τα κοντέινερ. Σε περίπτωση που το SageMaker δεν διαθέτει υποστηριζόμενο κοντέινερ, μπορείτε επίσης Φτιάξτε το δικό σας κοντέινερ και προωθήστε τη δική σας προσαρμοσμένη εικόνα, εγκαθιστώντας τις εξαρτήσεις που είναι απαραίτητες για το μοντέλο σας.

Το SageMaker υποστηρίζει τόσο εκπαιδευμένα όσο και προεκπαιδευμένα μοντέλα. Στην προηγούμενη παράγραφο, όταν μιλάμε για σενάρια/δεδομένα μοντέλων, αναφερόμαστε σε αυτό το θέμα. Μπορείτε είτε να προσαρτήσετε ένα σενάριο στο κοντέινερ σας είτε εάν έχετε ένα προεκπαιδευμένο τεχνούργημα μοντέλου (για παράδειγμα, `μοντέλο.joblib` για το SKLearn), τότε μπορείτε να το παρέχετε μαζί με την εικόνα σας στο SageMaker. Για να κατανοήσετε το συμπέρασμα SageMaker, υπάρχουν τρεις κύριες οντότητες που θα δημιουργήσετε κατά τη διαδικασία δημιουργίας Endpoint:

  1. SageMaker Model Entity – Εδώ μπορείτε να μεταβιβάσετε τα εκπαιδευμένα δεδομένα/σενάριο μοντέλου και την εικόνα σας με την οποία εργάζεστε, είτε ανήκει στην AWS είτε έχει κατασκευαστεί από εσάς.
  2. Δημιουργία διαμόρφωσης τελικού σημείου – Εδώ ορίζετε την υποδομή σας, που σημαίνει ότι επιλέγετε τον τύπο παρουσίας, τον αριθμό, κ.λπ.
  3. Δημιουργία τελικού σημείου – Αυτό είναι το τελικό σημείο REST που φιλοξενεί το μοντέλο σας που επικαλείστε για να λάβετε απάντηση. Ας δούμε πώς μπορείτε να χρησιμοποιήσετε μια διαχειριζόμενη εικόνα SageMaker και τη δική σας προσαρμοσμένη εικόνα για να αναπτύξετε ένα τελικό σημείο.

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

  1. Πριν δημιουργήσετε ένα Endpoint, πρέπει να καταλάβετε τι τύπο μοντέλου θέλετε να φιλοξενήσετε. Εάν πρόκειται για μοντέλο Framework, όπως το TensorFlow, το PyTorch ή το MXNet, τότε μπορείτε να χρησιμοποιήσετε ένα από τα προκατασκευασμένες εικόνες πλαισίου.
    Εάν πρόκειται για προσαρμοσμένο μοντέλο ή εάν θέλετε πλήρη ευελιξία στη δημιουργία του κοντέινερ που θα εκτελέσει το SageMaker για συμπέρασμα, τότε μπορείτε να δημιουργήσετε το δικό σας κοντέινερ.

Τελικά σημεία του SageMaker αποτελούνται από α Μοντέλο SageMaker και Διαμόρφωση τελικού σημείου.
Εάν χρησιμοποιείτε το Boto3, τότε θα δημιουργήσετε και τα δύο αντικείμενα. Διαφορετικά, εάν χρησιμοποιείτε το SageMaker Python SDK, τότε η Διαμόρφωση Endpoint δημιουργείται για λογαριασμό σας όταν χρησιμοποιείτε το .deploy(..) λειτουργία.

Οντότητες SageMaker:

  • Μοντέλο SageMaker:
    • Περιέχει τις λεπτομέρειες της εικόνας συμπερασμάτων, τη θέση των τεχνουργημάτων του μοντέλου Amazon Simple Storage Service (Amazon S3), διαμόρφωση δικτύου και Διαχείριση ταυτότητας και πρόσβασης AWS (IAM) ρόλο που θα χρησιμοποιηθεί από το τελικό σημείο.
      • Το SageMaker απαιτεί τα τεχνουργήματα του μοντέλου σας να συμπιεστούν σε α .tar.gz αρχείο. Το SageMaker το εξάγει αυτόματα .tar.gz αρχείο στο /opt/ml/model/ κατάλογο στο κοντέινερ σας. Εάν χρησιμοποιείτε ένα από τα κοντέινερ πλαισίου, όπως το TensorFlow, το PyTorch ή το MXNet, τότε το κοντέινερ αναμένει ότι η δομή TAR σας θα είναι ως εξής:
        • TensorFlow
          model.tar.gz/
          |--[model_version_number]/
          |--variables
          |--saved_model.pb
          code/
          |--inference.py
          |--requirements.txt

        • PyTorch
          model.tar.gz/
          |- model.pth
          |- code/
          |- inference.py
          |- requirements.txt # only for versions 1.3.1 and higher

        • MX Net
          model.tar.gz/
          |- model-symbol.json
          |- model-shapes.json
          |- model-0000.params
          |- code/
              |- inference.py
              |- requirements.txt # only for versions 1.6.0 and higher

        • Sklearn
          model.tar.gz/
          |- model.joblib
          | code/ 
          |- inference.py

      • Όταν χρησιμοποιούμε μια εικόνα πλαισίου, μπορούμε να παρέχουμε ένα προσαρμοσμένο σενάριο σημείου εισόδου, όπου μπορούμε να εφαρμόσουμε τη δική μας προ και μετά επεξεργασία. Στην περίπτωσή μας, το σενάριο συμπερασμάτων συσκευάζεται στο model.tar.gz στον κατάλογο /code.
    • Διαμόρφωση τελικού σημείου
      • Περιέχει τις πληροφορίες υποδομής που απαιτούνται για την ανάπτυξη του μοντέλου SageMaker στο τελικό σημείο.
      • Για παράδειγμα, το μοντέλο SageMaker που δημιουργήσαμε καθορίζεται εδώ καθώς και ο τύπος παρουσίας και ο αριθμός αρχικών παρουσιών.

Frameworks και BYOC

    • Ανάκτηση εικόνων SageMaker
      • Αυτό το τμήμα δεν είναι πάντα απαραίτητο και αφαιρείται από το SageMaker Python SDK μέσω εκτιμητών. Ωστόσο, εάν θέλετε να μπορείτε να ανακτήσετε μια διαχειριζόμενη εικόνα του SageMaker για επέκταση σε αυτήν, τότε μπορείτε να λάβετε τις εικόνες που είναι διαθέσιμες μέσω του SDK. Το παρακάτω είναι ένα παράδειγμα ανάκτησης μιας εικόνας TF 2.2 για συμπεράσματα.
        import sagemaker
        tf_image = sagemaker.image_uris.retreive(framework="tensorflow", region="us-east-1",
        image_scope = "inference", version = "2.2", instance_type = "ml.c5.xlarge)
        print(tf_image)

    • Πλαίσια
      • Στην περίπτωση που θέλετε να αναπτύξετε ένα μοντέλο πλαισίου, όπως το TensorFlow, το PyTorch ή το MXNet, τότε το μόνο που χρειάζεστε είναι τα τεχνουργήματα του μοντέλου.
      • Δείτε την τεκμηρίωση για την ανάπτυξη μοντέλων απευθείας από τεχνουργήματα μοντέλων για TensorFlow, PyTorch, ή MX Net.
    • Επιλογή μεταξύ 1P και BYOC
      • Το SageMaker SDK κάνει επίσης περίληψη χειρισμού της εικόνας, όπως είδατε στην προηγούμενη ενότητα Frameworks. Διαθέτει έτοιμους εκτιμητές για το Sklearn, το TensorFlow και το PyTorch που επιλέγουν αυτόματα την εικόνα για εσάς με βάση την έκδοση που έχετε επιλέξει. Στη συνέχεια, μπορείτε να περάσετε σε ένα σενάριο εκπαίδευσης/συμπερασμάτων Λειτουργία σεναρίου σε αυτούς τους εκτιμητές.
        from sagemaker.pytorch import PyTorch #PyTorch Estimator within SageMaker SDK
        estimator_parameters = {"entry_point": "train_deploy_pytorch_without_dependencies.py",
        "source_dir": "pytorch_script","instance_type": train_instance_type,
        "instance_count": 1,"hyperparameters": hyperparameters,
        "role": role,"base_job_name": "pytorch-model","framework_version": "1.5",
        "py_version": "py3",}
        
        ## Model Training
        estimator = PyTorch(**estimator_parameters)estimator.fit(inputs)
        
        ## Deploy Trained model
        pytorch_predictor = estimator.deploy(initial_instance_count=1, instance_type="ml.m5.xlarge", endpoint_name=pytorch_endpoint_name)

      • Δεν υποστηρίζονται όλα τα πακέτα και οι εικόνες από το SageMaker και σε αυτήν την περίπτωση θα πρέπει φέρτε το δικό σας δοχείο (BYOC). Αυτό σημαίνει τη δημιουργία ενός Dockerfile που θα ρυθμίσει το κατάλληλο περιβάλλον για την υπηρεσία του μοντέλου σας. Ένα παράδειγμα αυτού είναι η λειτουργική μονάδα Spacy NLP και δεν υπάρχουν διαχειριζόμενα κοντέινερ SageMaker για αυτό το πλαίσιο. Επομένως, πρέπει να παρέχετε ένα Dockerfile που εγκαθιστά το Spacy. Μέσα στο κοντέινερ τοποθετείτε επίσης τα σενάρια συμπερασμάτων μοντέλων. Ας συζητήσουμε γρήγορα τα στοιχεία που παρέχετε σε μορφή Bring Your Own Container, καθώς αυτά παραμένουν συνεπή στα περισσότερα παραδείγματα.
        • "nginx.conf" είναι το αρχείο διαμόρφωσης για το front-end nginx. Δεν θα χρειαστεί να επεξεργαστείτε αυτό το αρχείο, εκτός αν θέλετε να συντονίσετε αυτά τα τμήματα.
        • "predictor.py" είναι το πρόγραμμα που υλοποιεί πραγματικά τον διακομιστή web Flask και τον κωδικό μοντέλου για την εφαρμογή σας. Μπορείτε να έχετε περισσότερα αρχεία Python ή συναρτήσεις στο κοντέινερ σας που μπορείτε να καλέσετε σε αυτό το αρχείο.
        • "σερβίρισμα" είναι το πρόγραμμα που ξεκινά όταν το κοντέινερ ξεκινά για φιλοξενία. Απλώς εκκινεί τον διακομιστή Gunicorn, ο οποίος εκτελεί πολλαπλές παρουσίες της εφαρμογής Flask που ορίζεται στο predictor.py. Όπως και το nginx.conf, δεν χρειάζεται να επεξεργαστείτε αυτό το αρχείο εκτός εάν υπάρχει περαιτέρω συντονισμός που θα θέλατε να εκτελέσετε.
        • "τρένο" είναι το πρόγραμμα που καλείται όταν το κοντέινερ εκτελείται για εκπαίδευση. Θα τροποποιήσετε αυτό το πρόγραμμα για να εφαρμόσετε τον αλγόριθμο προπόνησής σας. Εάν φέρνετε ένα προεκπαιδευμένο μοντέλο ή πλαίσιο όπως το Spacy, τότε δεν χρειάζεστε αυτό το αρχείο.
        • "wsgi.py" είναι ένα μικρό περιτύλιγμα που χρησιμοποιείται για την επίκληση της εφαρμογής Flask. Θα πρέπει να μπορείτε να πάρετε αυτό το αρχείο ως έχει, εκτός και αν έχετε αλλάξει το όνομα του αρχείου predictor.py. Σε αυτήν την περίπτωση, βεβαιωθείτε ότι οι χάρτες είναι σωστά εδώ.
    • Προσαρμοσμένο σενάριο συμπερασμάτων
      • Τα κοντέινερ του SageMaker Framework σάς δίνουν την ευελιξία να χειρίζεστε την προ/μετά την επεξεργασία του αιτήματος και τη φόρτωση του μοντέλου χρησιμοποιώντας ένα προσαρμοσμένο script/inference.py σημείου εισόδου.
      • Δείτε την τεκμηρίωση για τη δημιουργία ενός προσαρμοσμένου σεναρίου inference.py για TensorFlow, PyTorch και MX Net.
    • Προσαρμοσμένο δοχείο

Διαφορετικοί τρόποι με τους οποίους μπορείτε να αλληλεπιδράσετε με τα Endpoints του SageMaker

Υπάρχουν πολλές επιλογές για τη χρήση του SageMaker μέσω προγραμματισμού, ώστε να μπορείτε να καλέσετε τα αναπτυγμένα μοντέλα σας για να λάβετε συμπεράσματα. ο Διεπαφή γραμμής εντολών AWS (AWS CLI), REST API, AWS CloudFormation, AWS Cloud Development Kit (AWS CDK), και τα AWS SDK είναι κοινά εργαλεία που προσφέρονται από το AWS και υποστηρίζονται ευρέως από άλλες υπηρεσίες AWS. Για το SageMaker, έχουμε επίσης ένα SageMaker Python SDK. Τώρα, ας συγκρίνουμε τις διαφορετικές επιλογές για τη δημιουργία, την επίκληση και τη διαχείριση των τελικών σημείων του SageMaker.

Επιπροσθέτως SageMaker CLI, υπάρχουν δύο τρόποι μέσω προγραμματισμού με τους οποίους μπορείτε να αλληλεπιδράσετε με τα Endpoints στο SageMaker μέσω των SDK. Ας δούμε μερικές διαφορές μεταξύ SDK SageMaker Python και Boto3 Python SDK:

  1. Υψηλού επιπέδου SageMaker "Python" SDK – Αυτό το SDK είναι μια βιβλιοθήκη ανοιχτού κώδικα που παρέχει αφαίρεση υψηλότερου επιπέδου που προορίζεται ειδικά για την κλήση των API του SageMaker μέσω προγραμματισμού χρησιμοποιώντας Python. Το καλό μέρος αυτού του SDK είναι ότι είναι πολύ εύκολο να καλέσετε τα API του Sagemaker, έχουν ήδη γίνει πολλές εργασίες, όπως η κλήση των API σε σύγχρονη/ασύγχρονη λειτουργία (βοηθά στην αποφυγή δημοσκοπήσεων), απλούστερο σχήμα αιτήματος/απόκρισης, πολύ λιγότερο κώδικα και πολλά απλούστερος κώδικας. Το SageMaker Python SDK παρέχει αρκετές αφαιρέσεις υψηλού επιπέδου για εργασία με το SageMaker. Το πακέτο έχει σκοπό να απλοποιήσει διαφορετικές διαδικασίες ML στο SageMaker.
  2. Χαμηλού επιπέδου AWS SDK (Boto3 SDK) – Αυτό το SDK λειτουργεί στο χαμηλότερο επίπεδο, επιτρέποντας στον χρήστη να επιλέξει από τις υποστηριζόμενες γλώσσες προγραμματισμού και να καλέσει οποιαδήποτε υπηρεσία AWS μέσω προγραμματισμού. Αυτό δεν αφορά μόνο το SageMaker, αλλά μπορεί να χρησιμοποιηθεί γενικά για όλες τις υπηρεσίες AWS. Τα χαμηλού επιπέδου AWS SDK είναι διαθέσιμα σε διάφορες γλώσσες προγραμματισμού, όπως .NET, Python, Java, Node.js, κ.λπ. Ένα από τα δημοφιλή SDK που χρησιμοποιούνται είναι το boto3 python SDK, το οποίο είναι δημοφιλές στην κοινότητα των επιστημόνων δεδομένων για ML. Το καλό μέρος αυτού του SDK είναι ότι είναι πολύ ελαφρύ και είναι διαθέσιμο από προεπιλογή εγκατεστημένο AWS Lambda Χρόνος εκτέλεσης. Επιπλέον, μπορείτε να χρησιμοποιήσετε αυτό το SDK για να αλληλεπιδράσετε με οποιαδήποτε υπηρεσία AWS εκτός του SageMaker.

Και τα δύο αυτά SDK μπορούν να χρησιμοποιηθούν για τις ίδιες εργασίες, αλλά σε ορισμένες περιπτώσεις είναι πιο διαισθητικό να χρησιμοποιείτε το ένα περισσότερο από το άλλο. Το SageMaker Python SDK συνιστάται για εύκολη δοκιμή ενώ το AWS SDK/Boto3 συνιστάται για περιπτώσεις χρήσης παραγωγής για καλύτερο έλεγχο της απόδοσης. Για παράδειγμα, το SageMaker ως υπηρεσία παρέχει προκατασκευασμένες και διατηρημένες εικόνες για δημοφιλή πλαίσια, όπως το Sklearn, το PyTorch και το TensorFlow. Μπορεί να είναι ιδιαίτερα χρήσιμο να χρησιμοποιήσετε το SageMaker SDK για να ανακτήσετε εικόνες βαθιάς εκμάθησης, να εκπαιδεύσετε μοντέλα χρησιμοποιώντας Εκτιμητέςκαι αναπτύξτε εύκολα το μοντέλο χρησιμοποιώντας μια απλή κλήση API. Μπορείτε να βρείτε ένα παράδειγμα για να το δείξετε στην πράξη εδώ.

Από την άλλη πλευρά, μερικές φορές έχετε προεκπαιδευμένα μοντέλα ή διαφορετικά πλαίσια που μπορεί να χρησιμοποιείτε. Αυτό απαιτεί μεγαλύτερη προσαρμογή και το SageMaker SDK δεν το προσφέρει πάντα αυτό. Έχουμε τρία σημαντικά βήματα και αντίστοιχες κλήσεις boto3 API που πρέπει να εκτελέσουμε για να αναπτύξουμε ένα τελικό σημείο: Δημιουργία μοντέλου, Δημιουργία διαμόρφωσης τελικού σημείου, να Δημιουργία Τελικού Σημείου. Οι δύο πρώτες οντότητες αφαιρέθηκαν με το SageMaker SDK με τα υποστηριζόμενα πλαίσια, αλλά βλέπουμε αυτές τις λεπτομέρειες με το Boto3 SDK. Μπορείτε να βρείτε ένα εκτενές παράδειγμα για την επίδειξη των βημάτων που απαιτούνται για τη χρήση ενός Boto3 SDK για τη δημιουργία και τη διαχείριση ενός τελικού σημείου εδώ.

Θέματα φιλοξενίας SageMaker

Το SageMaker Real-Time Inference έχει δύο κύριες βελτιστοποιήσεις που μπορείτε να εξετάσετε: 1/ Βελτιστοποίηση απόδοσης και 2/ Βελτιστοποίηση κόστους. Ας δούμε πρώτα βελτιστοποίηση απόδοσης, καθώς όταν έχουμε να κάνουμε με φόρτους εργασίας ευαίσθητους σε καθυστέρηση, κάθε χιλιοστό του δευτερολέπτου είναι κρίσιμο. Υπάρχουν διάφορα κουμπιά που μπορείτε να ρυθμίσετε για να βελτιστοποιήσετε την καθυστέρηση και την απόδοση. Σε επίπεδο παράδειγμα, μπορείτε να χρησιμοποιήσετε Σύσταση συμπερασμάτων, το ενσωματωμένο μας εργαλείο δοκιμής φορτίου, για να σας βοηθήσει να επιλέξετε τον σωστό τύπο παρουσίας και να μετρήσετε τον φόρτο εργασίας σας. Η χρήση του κατάλληλου συνδυασμού υπολογιστών θα σας βοηθήσει τόσο με την απόδοση όσο και με το κόστος. Μπορείτε επίσης να συντονιστείτε σε επίπεδο κοντέινερ και πλαισίου.
Οι ερωτήσεις που πρέπει να κάνετε στον εαυτό σας περιλαμβάνουν:

  1. Τι πλαίσιο χρησιμοποιείτε;
  2. Υπάρχουν μεταβλητές περιβάλλοντος που μπορείτε να συντονίσετε στο κοντέινερ σας;

Ένα παράδειγμα αυτού είναι η μεγιστοποίηση Απόδοση TensorFlow με δοχεία SageMaker. Ένα άλλο παράδειγμα βελτιστοποίησης επιπέδου κοντέινερ είναι χρησιμοποιώντας gRPC αντί να ΑΝΑΠΑΥΣΤΕ πίσω από το τελικό σας σημείο. Τέλος, μπορείτε επίσης να βελτιστοποιήσετε σε επίπεδο σεναρίου. Ο κώδικας συμπερασμάτων σας παίρνει επιπλέον χρόνο σε συγκεκριμένα μπλοκ; Ο χρονισμός κάθε γραμμής του σεναρίου σας θα σας βοηθήσει να συλλάβετε τυχόν σημεία συμφόρησης στον κώδικά σας.

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

  1. Τελικά σημεία πολλαπλών μοντέλων (MME)
    • Μπορείτε να φιλοξενήσετε χιλιάδες μοντέλα πίσω από ένα μόνο τελικό σημείο. Αυτό είναι τέλειο για περιπτώσεις χρήσης όπου δεν χρειάζεστε ένα αποκλειστικό τελικό σημείο για κάθε ένα από τα μοντέλα σας. Το MME λειτουργεί καλύτερα όταν τα μοντέλα έχουν παρόμοιο μέγεθος και λανθάνουσα κατάσταση και ανήκουν στο ίδιο πλαίσιο ML. Αυτά μπορούν να χρησιμοποιηθούν συνήθως όταν δεν χρειάζεται να καλείτε το ίδιο μοντέλο ανά πάσα στιγμή. Μπορείτε να φορτώσετε δυναμικά το αντίστοιχο μοντέλο στο SageMaker Endpoint για να εξυπηρετήσετε το αίτημά σας. Μπορείτε να βρείτε ένα παράδειγμα που δείχνει το MME σε δράση εδώ. Εάν θέλετε να μάθετε περισσότερα σχετικά με τις διάφορες προειδοποιήσεις και τις βέλτιστες πρακτικές για τη φιλοξενία μοντέλων στο MME, τότε ανατρέξτε στην ανάρτηση εδώ.
  2. Τελικά σημεία πολλαπλών κοντέινερ (MCE)
    • Αντί να χρησιμοποιείτε πολλά τελικά σημεία για τη φιλοξενία πολλών κοντέινερ, μπορείτε να εξετάσετε τη φιλοξενία έως και 15 κοντέινερ σε ένα μόνο τελικό σημείο. Κάθε ένα από αυτά τα δοχεία μπορεί να κληθεί απευθείας. Επομένως, μπορείτε να εξετάσετε τη φιλοξενία διαφορετικών μοντέλων διαφορετικών πλαισίων σε ένα μόνο τελικό σημείο. Αυτή η επιλογή είναι καλύτερη όταν τα δοχεία παρουσιάζουν παρόμοια χαρακτηριστικά χρήσης και απόδοσης. Μπορείτε να βρείτε ένα παράδειγμα που παρουσιάζει το MCE εδώ. Εάν θέλετε να μάθετε περισσότερα σχετικά με τις διάφορες προειδοποιήσεις και τις βέλτιστες πρακτικές για τη φιλοξενία μοντέλων στο MCE, τότε ανατρέξτε στην ανάρτηση εδώ.
  3. Σειριακός αγωγός συμπερασμάτων (SIP)
    • Εάν έχετε μια διοχέτευση βημάτων στη λογική συμπερασμάτων σας, τότε μπορείτε να χρησιμοποιήσετε το Serial Inference Pipeline (SIP). Το SIP σάς επιτρέπει να συνδέσετε 2-15 δοχεία μαζί πίσω από ένα μόνο τελικό σημείο. Το SIP λειτουργεί καλά όταν έχετε βήματα προεπεξεργασίας και μεταεπεξεργασίας. Εάν θέλετε να μάθετε περισσότερα σχετικά με τα μοτίβα σχεδίασης για σειριακούς αγωγούς συμπερασμάτων, ανατρέξτε στην ανάρτηση εδώ.

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

Το SageMaker προσφέρει επίσης Αποταμιευτικά σχέδια. Τα αποταμιευτικά προγράμματα μπορούν να μειώσουν το κόστος σας έως και 64%. Αυτή είναι μια δέσμευση διάρκειας 1 ή 3 ετών για σταθερή ποσότητα χρήσης ($/ώρα). Δες αυτό σύνδεσμος Για περισσότερες πληροφορίες. Και δείτε αυτό σύνδεσμος για καλύτερη βελτιστοποίηση του κόστους για το Inference στο Amazon SageMaker.

Συμπέρασμα

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

Δείτε το αντίστοιχο Αποθετήριο GitHub και δοκιμάστε τα παραδείγματα.


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

Ξεκινώντας με την ανάπτυξη μοντέλων σε πραγματικό χρόνο στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Raghu Ramesha είναι αρχιτέκτονας ML Solutions με την ομάδα του Amazon SageMaker Service. Επικεντρώνεται στο να βοηθά τους πελάτες να δημιουργήσουν, να αναπτύξουν και να μεταφέρουν φόρτους εργασίας παραγωγής ML στο SageMaker σε κλίμακα. Ειδικεύεται σε τομείς μηχανικής μάθησης, τεχνητής νοημοσύνης και όρασης υπολογιστών και είναι κάτοχος μεταπτυχιακού τίτλου στην Επιστήμη Υπολογιστών από το UT Dallas. Στον ελεύθερο χρόνο του, του αρέσουν τα ταξίδια και η φωτογραφία.

Ξεκινώντας με την ανάπτυξη μοντέλων σε πραγματικό χρόνο στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ram Vegiraju είναι αρχιτέκτονας ML με την ομάδα του SageMaker Service. Επικεντρώνεται στο να βοηθά τους πελάτες να δημιουργήσουν και να βελτιστοποιήσουν τις λύσεις AI/ML τους στο Amazon SageMaker. Στον ελεύθερο χρόνο του λατρεύει τα ταξίδια και το γράψιμο.

Ξεκινώντας με την ανάπτυξη μοντέλων σε πραγματικό χρόνο στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Μαρκ Καρπ είναι αρχιτέκτονας ML με την ομάδα του SageMaker Service. Επικεντρώνεται στο να βοηθά τους πελάτες να σχεδιάζουν, να αναπτύσσουν και να διαχειρίζονται φόρτους εργασίας ML σε κλίμακα. Στον ελεύθερο χρόνο του, του αρέσει να ταξιδεύει και να εξερευνά νέα μέρη.

Ξεκινώντας με την ανάπτυξη μοντέλων σε πραγματικό χρόνο στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Dhawal Patel είναι Κύριος Αρχιτέκτονας Μηχανικής Μάθησης στο AWS. Έχει συνεργαστεί με οργανισμούς που κυμαίνονται από μεγάλες επιχειρήσεις έως νεοφυείς επιχειρήσεις μεσαίου μεγέθους για προβλήματα που σχετίζονται με τους κατανεμημένους υπολογιστές και την τεχνητή νοημοσύνη. Εστιάζει στη βαθιά μάθηση, συμπεριλαμβανομένων των τομέων NLP και όρασης υπολογιστή. Βοηθά τους πελάτες να επιτύχουν συμπεράσματα μοντέλων υψηλής απόδοσης στο Amazon SageMaker.

Ξεκινώντας με την ανάπτυξη μοντέλων σε πραγματικό χρόνο στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Saurabh Trikande είναι Ανώτερος Διευθυντής Προϊόντων για το Amazon SageMaker Inference. Είναι παθιασμένος με τη συνεργασία με πελάτες και παρακινείται από τον στόχο του εκδημοκρατισμού της μηχανικής μάθησης. Εστιάζει στις βασικές προκλήσεις που σχετίζονται με την ανάπτυξη πολύπλοκων εφαρμογών ML, μοντέλων ML πολλαπλών μισθωτών, βελτιστοποιήσεις κόστους και καθιστώντας την ανάπτυξη μοντέλων βαθιάς μάθησης πιο προσιτή. Στον ελεύθερο χρόνο του, ο Saurabh απολαμβάνει την πεζοπορία, μαθαίνει για καινοτόμες τεχνολογίες, ακολουθεί το TechCrunch και περνά χρόνο με την οικογένειά του.

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

Περισσότερα από Μηχανική εκμάθηση AWS