Εκτελέστε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με τα τελικά σημεία πολλαπλών μοντέλων του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εκτελέστε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με τερματικά σημεία πολλαπλών μοντέλων του Amazon SageMaker

Καθώς η υιοθέτηση της τεχνητής νοημοσύνης επιταχύνεται σε ολόκληρο τον κλάδο, οι πελάτες κατασκευάζουν εξελιγμένα μοντέλα που εκμεταλλεύονται τις νέες επιστημονικές ανακαλύψεις στη βαθιά μάθηση. Αυτά τα μοντέλα επόμενης γενιάς σάς επιτρέπουν να επιτύχετε κορυφαίες επιδόσεις που μοιάζουν με τον άνθρωπο στους τομείς της επεξεργασίας φυσικής γλώσσας (NLP), της όρασης υπολογιστή, της αναγνώρισης ομιλίας, της ιατρικής έρευνας, της ασφάλειας στον κυβερνοχώρο, της πρόβλεψης δομής πρωτεϊνών και πολλών άλλων . Για παράδειγμα, μεγάλα γλωσσικά μοντέλα όπως τα GPT-3, OPT και BLOOM μπορούν να μεταφράζουν, να συνοψίζουν και να γράφουν κείμενο με ανθρώπινες αποχρώσεις. Στον χώρο της όρασης υπολογιστή, τα μοντέλα διάχυσης κειμένου σε εικόνα όπως το DALL-E και το Imagen μπορούν να δημιουργήσουν φωτορεαλιστικές εικόνες από φυσική γλώσσα με υψηλότερο επίπεδο οπτικής και γλωσσικής κατανόησης από τον κόσμο γύρω μας. Αυτά τα πολυτροπικά μοντέλα παρέχουν πλουσιότερες δυνατότητες για διάφορες εργασίες κατάντη και τη δυνατότητα λεπτομέρειας τους για συγκεκριμένους τομείς και προσφέρουν ισχυρές επιχειρηματικές ευκαιρίες στους πελάτες μας.

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

Amazon Sage Maker Τα τελικά σημεία πολλαπλών μοντέλων (MME) παρέχουν έναν επεκτάσιμο και οικονομικά αποδοτικό τρόπο για την ανάπτυξη μεγάλου αριθμού μοντέλων βαθιάς εκμάθησης. Τα MME είναι μια δημοφιλής επιλογή φιλοξενίας για να φιλοξενούν εκατοντάδες μοντέλα που βασίζονται σε CPU μεταξύ πελατών όπως οι Zendesk, Veeva και AT&T. Προηγουμένως, είχατε περιορισμένες επιλογές για την ανάπτυξη εκατοντάδων μοντέλων βαθιάς εκμάθησης που χρειάζονταν επιταχυνόμενους υπολογισμούς με GPU. Σήμερα, ανακοινώνουμε την υποστήριξη MME για GPU. Τώρα μπορείτε να αναπτύξετε χιλιάδες μοντέλα βαθιάς εκμάθησης πίσω από ένα τελικό σημείο του SageMaker. Τα MME μπορούν πλέον να εκτελούν πολλά μοντέλα σε έναν πυρήνα GPU, να μοιράζονται παρουσίες GPU πίσω από ένα τελικό σημείο σε πολλά μοντέλα και να φορτώνουν και να ξεφορτώνουν δυναμικά μοντέλα με βάση την εισερχόμενη κίνηση. Με αυτό, μπορείτε να εξοικονομήσετε σημαντικά κόστος και να επιτύχετε την καλύτερη απόδοση τιμής.

Σε αυτήν την ανάρτηση, δείχνουμε πώς να εκτελείτε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με SageMaker MME.

SageMaker MME

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

Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική ενός SageMaker MME.

Το SageMaker MME κατεβάζει δυναμικά μοντέλα από Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) όταν γίνεται επίκληση, αντί να γίνεται λήψη όλων των μοντέλων όταν δημιουργείται για πρώτη φορά το τελικό σημείο. Ως αποτέλεσμα, μια αρχική επίκληση σε ένα μοντέλο μπορεί να δει υψηλότερο λανθάνοντα χρόνο συμπερασμάτων από τα επόμενα συμπεράσματα, τα οποία ολοκληρώνονται με χαμηλό λανθάνοντα χρόνο. Εάν το μοντέλο έχει ήδη φορτωθεί στο κοντέινερ κατά την κλήση, τότε το βήμα λήψης και φόρτωσης παραλείπεται και το μοντέλο επιστρέφει τα συμπεράσματα με χαμηλή καθυστέρηση. Για παράδειγμα, υποθέστε ότι έχετε ένα μοντέλο που χρησιμοποιείται μόνο λίγες φορές την ημέρα. Φορτώνεται αυτόματα κατ' απαίτηση, ενώ τα μοντέλα με συχνή πρόσβαση διατηρούνται στη μνήμη και καλούνται με σταθερά χαμηλή καθυστέρηση.

SageMaker MME με υποστήριξη GPU

Τα MME SageMaker με GPU λειτουργούν χρησιμοποιώντας NVIDIA Triton Inference Server. Το NVIDIA Triton Inference Server είναι ένα λογισμικό παροχής συμπερασμάτων ανοιχτού κώδικα που απλοποιεί τη διαδικασία εξυπηρέτησης συμπερασμάτων και παρέχει υψηλή απόδοση συμπερασμάτων. Το Triton υποστηρίζει όλα τα κύρια πλαίσια εκπαίδευσης και συμπερασμάτων, όπως TensorFlow, NVIDIA® TensorRT™, PyTorch, MXNet, Python, ONNX, XGBoost, Scikit-learn, RandomForest, OpenVINO, προσαρμοσμένη C++ και άλλα. Προσφέρει δυναμική παρτίδα, ταυτόχρονες διαδρομές, κβαντισμό μετά την εκπαίδευση και βέλτιστη διαμόρφωση μοντέλου για την επίτευξη συμπερασμάτων υψηλής απόδοσης. Επιπλέον, ο NVIDIA Triton Inference Server έχει επεκταθεί για εφαρμογή Συμβόλαιο MME API, για να ενσωματωθεί με το MME.

Το παρακάτω διάγραμμα απεικονίζει μια ροή εργασίας MME.

Εκτελέστε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με τα τελικά σημεία πολλαπλών μοντέλων του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Τα βήματα της ροής εργασιών είναι τα εξής:

  1. Το SageMaker MME λαμβάνει ένα αίτημα επίκλησης HTTP για ένα συγκεκριμένο μοντέλο χρησιμοποιώντας TargetModel στο αίτημα μαζί με το ωφέλιμο φορτίο.
  2. Το SageMaker δρομολογεί την κυκλοφορία στη δεξιά εμφάνιση πίσω από το τελικό σημείο όπου φορτώνεται το μοντέλο-στόχος. Το SageMaker κατανοεί το μοτίβο κίνησης σε όλα τα μοντέλα πίσω από το MME και δρομολογεί έξυπνα τα αιτήματα.
  3. Το SageMaker φροντίζει για τη διαχείριση του μοντέλου πίσω από το τελικό σημείο, φορτώνει δυναμικά το μοντέλο στη μνήμη του κοντέινερ και ξεφορτώνει το μοντέλο που βασίζεται από τον κοινόχρηστο στόλο παρουσιών GPU για να προσφέρει την καλύτερη απόδοση τιμής.
  4. Το SageMaker κατεβάζει δυναμικά μοντέλα από το Amazon S3 στον όγκο αποθήκευσης της παρουσίας. Εάν το μοντέλο που επικαλείται δεν είναι διαθέσιμο στον τόμο αποθήκευσης της παρουσίας, το μοντέλο μεταφορτώνεται στον τόμο αποθήκευσης της παρουσίας. Εάν ο όγκος αποθήκευσης της παρουσίας φτάσει σε χωρητικότητα, το SageMaker διαγράφει τυχόν μοντέλα που δεν χρησιμοποιούνται από τον όγκο αποθήκευσης.
  5. Το SageMaker φορτώνει το μοντέλο στη μνήμη του κοντέινερ NVIDIA Triton σε μια παρουσία με επιτάχυνση GPU και εξυπηρετεί το αίτημα συμπερασμάτων. Ο πυρήνας της GPU είναι κοινός σε όλα τα μοντέλα σε μια περίπτωση. Εάν το μοντέλο έχει ήδη φορτωθεί στη μνήμη του κοντέινερ, τα επόμενα αιτήματα εξυπηρετούνται πιο γρήγορα επειδή το SageMaker δεν χρειάζεται να το κατεβάσει και να το φορτώσει ξανά.
  6. Το SageMaker φροντίζει για τη διαμόρφωση της κυκλοφορίας στο τελικό σημείο MME και διατηρεί βέλτιστα αντίγραφα μοντέλων σε παρουσίες GPU για καλύτερη απόδοση τιμής. Συνεχίζει να δρομολογεί την κυκλοφορία στο στιγμιότυπο όπου φορτώνεται το μοντέλο. Εάν οι πόροι της παρουσίας φτάσουν σε χωρητικότητα λόγω υψηλής χρήσης, το SageMaker ξεφορτώνει τα λιγότερο χρησιμοποιούμενα μοντέλα από το κοντέινερ για να ελευθερώσει πόρους για τη φόρτωση μοντέλων που χρησιμοποιούνται πιο συχνά.

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

Επισκόπηση λύσεων

Σε αυτήν την ανάρτηση, σας δείχνουμε πώς να χρησιμοποιείτε τις νέες δυνατότητες των MME SageMaker με GPU με θήκη χρήσης όρασης υπολογιστή. Για λόγους επίδειξης, χρησιμοποιούμε ένα προεκπαιδευμένο μοντέλο συνελικτικού νευρωνικού δικτύου ResNet-50 που μπορεί να ταξινομήσει τις εικόνες σε 1,000 κατηγορίες. Συζητάμε πώς να κάνουμε τα εξής:

  • Χρησιμοποιήστε ένα κοντέινερ συμπερασμάτων NVIDIA Triton σε SageMaker MME, χρησιμοποιώντας διαφορετικά backend πλαισίου μοντέλων Triton, όπως PyTorch και TensorRT
  • Μετατρέψτε τα μοντέλα ResNet-50 σε βελτιστοποιημένη μορφή κινητήρα TensorRT και αναπτύξτε τα με ένα SageMaker MME
  • Ρυθμίστε πολιτικές αυτόματης κλιμάκωσης για το MME
  • Λάβετε πληροφορίες σχετικά με τις μετρήσεις παρουσίας και επίκλησης χρησιμοποιώντας amazoncloudwatch

Δημιουργήστε τεχνουργήματα μοντέλων

Αυτή η ενότητα περιγράφει τα βήματα για την προετοιμασία ενός προεκπαιδευμένου μοντέλου ResNet-50 που θα αναπτυχθεί σε ένα SageMaker MME χρησιμοποιώντας τις διαμορφώσεις μοντέλων του Triton Inference Server. Μπορείτε να αναπαράγετε όλα τα βήματα χρησιμοποιώντας το σημειωματάριο βήμα προς βήμα GitHub.

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

Προετοιμάστε ένα μοντέλο PyTorch

Αρχικά, φορτώνουμε ένα προεκπαιδευμένο μοντέλο ResNet50 χρησιμοποιώντας το πακέτο μοντέλων torchvision. Αποθηκεύουμε το μοντέλο ως αρχείο model.pt σε βελτιστοποιημένη και σειριακή μορφή TorchScript. Το TorchScript συγκεντρώνει ένα μπροστινό πέρασμα του μοντέλου ResNet50 σε λειτουργία ανυπομονησίας με εισόδους παραδειγμάτων, έτσι περνάμε μια παρουσία μιας εικόνας RGB με τρία έγχρωμα κανάλια διαστάσεων 224 x 224.

Στη συνέχεια, πρέπει να προετοιμάσουμε τα μοντέλα για το Triton Inference Server. Ο ακόλουθος κώδικας δείχνει το αποθετήριο μοντέλου για το backend πλαισίου PyTorch. Το Triton χρησιμοποιεί το αρχείο model.pt που τοποθετείται στο αποθετήριο μοντέλων για την προβολή προβλέψεων.

resnet
├── 1
│   └── model.pt
└── config.pbtxt

Το αρχείο διαμόρφωσης μοντέλου config.pbtxt πρέπει να καθορίσετε το όνομα του μοντέλου (resnet), την πλατφόρμα και τις ιδιότητες υποστήριξης (pytorch_libtorch), max_batch_size (128), και τους τανυστές εισόδου και εξόδου μαζί με τον τύπο δεδομένων (TYPE_FP32) πληροφορίες. Επιπλέον, μπορείτε να καθορίσετε instance_group και dynamic_batching ιδιότητες για την επίτευξη συμπερασμάτων υψηλής απόδοσης. Δείτε τον παρακάτω κώδικα:

name: "resnet"
platform: "pytorch_libtorch"
max_batch_size: 128
input {
  name: "INPUT__0"
  data_type: TYPE_FP32
  dims: 3
  dims: 224
  dims: 224
}
output {
  name: "OUTPUT__0"
  data_type: TYPE_FP32
  dims: 1000
}

Προετοιμάστε το μοντέλο TensorRT

NVIDIA TensorRT είναι ένα SDK για εξαγωγή συμπερασμάτων βαθιάς μάθησης υψηλής απόδοσης και περιλαμβάνει βελτιστοποιητή συμπερασμάτων βαθιάς μάθησης και χρόνο εκτέλεσης που παρέχει χαμηλό λανθάνοντα χρόνο και υψηλή απόδοση για εφαρμογές συμπερασμάτων. Χρησιμοποιούμε το εργαλείο γραμμής εντολών trtexec για να δημιουργήσετε έναν σειριακό κινητήρα TensorRT από ένα ONNX μορφή μοντέλου. Ολοκληρώστε τα παρακάτω βήματα για να μετατρέψετε ένα προεκπαιδευμένο μοντέλο ResNet-50 σε NVIDIA TensorRT:

  1. Εξάγετε το προεκπαιδευμένο μοντέλο ResNet-50 σε μορφή ONNX χρησιμοποιώντας πυρσός.onnx.Αυτό το βήμα εκτελεί το μοντέλο μία φορά για να ανιχνεύσει την εκτέλεση του με ένα δείγμα εισόδου και, στη συνέχεια, εξάγει το μοντέλο ανίχνευσης στο καθορισμένο αρχείο model.onnx.
  2. Χρησιμοποιήστε το trtexec για να δημιουργήσετε ένα σχέδιο κινητήρα TensorRT από το model.onnx αρχείο. Μπορείτε προαιρετικά να μειώσετε την ακρίβεια των υπολογισμών κινητής υποδιαστολής, είτε απλώς εκτελώντας τους σε κινητή υποδιαστολή 16 bit είτε κβαντίζοντας τις τιμές κινητής υποδιαστολής έτσι ώστε οι υπολογισμοί να μπορούν να εκτελούνται χρησιμοποιώντας ακέραιους αριθμούς 8 bit.

Ο ακόλουθος κώδικας δείχνει τη δομή του αποθετηρίου του μοντέλου για το μοντέλο TensorRT:

resnet
├── 1
│   └── model.plan
└── config.pbtxt

Για το μοντέλο TensorRT, καθορίζουμε tensorrt_plan ως πλατφόρμα και εισάγετε τις προδιαγραφές Tensor της εικόνας διαστάσεων 224 x 224, η οποία έχει τα χρωματικά κανάλια. Ο τανυστής εξόδου με 1,000 διαστάσεις είναι τύπου TYPE_FP32, που αντιστοιχεί στις διάφορες κατηγορίες αντικειμένων. Δείτε τον παρακάτω κώδικα:

name: "resnet"
platform: "tensorrt_plan"
max_batch_size: 128
input {
  name: "input"
  data_type: TYPE_FP32
  dims: 3
  dims: 224
  dims: 224
}
output {
  name: "output"
  data_type: TYPE_FP32
  dims: 1000
}
model_warmup {
    name: "bs128 Warmup"
    batch_size: 128
    inputs: {
        key: "input"
        value: {
            data_type: TYPE_FP32
            dims: 3
            dims: 224
            dims: 224
            zero_data: false
        }
    }
}

Αποθηκεύστε αντικείμενα μοντέλων στο Amazon S3

Το SageMaker αναμένει τα τεχνουργήματα του μοντέλου .tar.gz μορφή. Θα πρέπει επίσης να ικανοποιούν τις απαιτήσεις κοντέινερ Triton, όπως όνομα μοντέλου, έκδοση, config.pbtxt αρχεία και πολλά άλλα. tar ο φάκελος που περιέχει το αρχείο μοντέλου ως .tar.gz και ανεβάστε το στο Amazon S3:

!mkdir -p triton-serve-pt/resnet/1/
!mv -f workspace/model.pt triton-serve-pt/resnet/1/
!tar -C triton-serve-pt/ -czf resnet_pt_v0.tar.gz resnet
model_uri_pt = sagemaker_session.upload_data(path="resnet_pt_v0.tar.gz", key_prefix="resnet-mme-gpu")
!mkdir -p triton-serve-trt/resnet/1/
!mv -f workspace/model.plan triton-serve-trt/resnet/1/
!tar -C triton-serve-trt/ -czf resnet_trt_v0.tar.gz resnet
model_uri_trt = sagemaker_session.upload_data(path="resnet_trt_v0.tar.gz", key_prefix="resnet-mme-gpu")

Τώρα που έχουμε ανεβάσει τα τεχνουργήματα του μοντέλου στο Amazon S3, μπορούμε να δημιουργήσουμε ένα SageMaker MME.

Αναπτύξτε μοντέλα με MME

Τώρα αναπτύσσουμε ένα μοντέλο ResNet-50 με δύο διαφορετικά backends πλαισίου (PyTorch και TensorRT) σε ένα SageMaker MME.

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

Χρησιμοποιούμε το AWS SDK για Python (Boto3) APIs δημιουργία_μοντέλου, create_endpoint_config, να δημιουργία_τελικού σημείου για να δημιουργήσετε ένα MME.

Καθορίστε το δοχείο σερβιρίσματος

Στον ορισμό του κοντέινερ, ορίστε το model_data_url για να καθορίσετε τον κατάλογο S3 που περιέχει όλα τα μοντέλα που χρησιμοποιεί το SageMaker MME για τη φόρτωση και την προβολή προβλέψεων. Σειρά Mode προς την MultiModel για να υποδείξει ότι το SageMaker δημιουργεί το τελικό σημείο με προδιαγραφές κοντέινερ MME. Ορίζουμε το κοντέινερ με μια εικόνα που υποστηρίζει την ανάπτυξη MME με GPU. Δείτε τον παρακάτω κώδικα:

container = {
"Image": ,
"ModelDataUrl": ,
"Mode": "MultiModel"
}

Δημιουργήστε ένα αντικείμενο πολλαπλών μοντέλων

Χρησιμοποιήστε τον πελάτη SageMaker Boto3 για να δημιουργήσετε το μοντέλο χρησιμοποιώντας το create_model API. Περνάμε τον ορισμό του κοντέινερ στο API δημιουργίας μοντέλου μαζί με ModelName και ExecutionRoleArn:

create_model_response = sm_client.create_model(
    ModelName=, ExecutionRoleArn=role, PrimaryContainer=container
)

Ορίστε διαμορφώσεις MME

Δημιουργήστε διαμορφώσεις MME χρησιμοποιώντας το create_endpoint_config Boto3 API. Καθορίστε μια παρουσία ταχείας υπολογιστικής GPU στο InstanceType (χρησιμοποιούμε τον τύπο παρουσίας g4dn.4xlarge). Συνιστούμε να διαμορφώσετε τα τελικά σημεία σας με τουλάχιστον δύο παρουσίες. Αυτό επιτρέπει στο SageMaker να παρέχει ένα εξαιρετικά διαθέσιμο σύνολο προβλέψεων σε πολλές Ζώνες Διαθεσιμότητας για τα μοντέλα.

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

create_endpoint_config_response = sm_client.create_endpoint_config(
    EndpointConfigName=,
    ProductionVariants=[
        {
            "InstanceType": "ml.g4dn.4xlarge",
            "InitialVariantWeight": 1,
            "InitialInstanceCount": 2,
            "ModelName": ,
            "VariantName": "AllTraffic",
        }
    ],
)

Δημιουργήστε ένα MME

Με την προηγούμενη διαμόρφωση τελικού σημείου, δημιουργούμε ένα SageMaker MME χρησιμοποιώντας το δημιουργία_τελικού σημείου API. Το SageMaker δημιουργεί το MME, εκκινεί το παράδειγμα υπολογισμού ML g4dn.4xlarge και αναπτύσσει τα μοντέλα PyTorch και TensorRT ResNet-50 σε αυτά. Δείτε τον παρακάτω κώδικα:

create_endpoint_response = sm_client.create_endpoint(
    EndpointName=, EndpointConfigName=
)

Επικαλέστε το μοντέλο προορισμού στο MME

Αφού δημιουργήσουμε το τελικό σημείο, μπορούμε να στείλουμε ένα αίτημα συμπερασμάτων στο MME χρησιμοποιώντας το invoke_enpoint API. Καθορίζουμε το TargetModel στην κλήση επίκλησης και περάστε στο ωφέλιμο φορτίο για κάθε τύπο μοντέλου. Ο παρακάτω κώδικας είναι ένα δείγμα επίκλησης για το μοντέλο PyTorch και το μοντέλο TensorRT:

runtime_sm_client.invoke_endpoint(
    EndpointName=,
    ContentType="application/octet-stream",
    Body=json.dumps(pt_payload),
    TargetModel='resnet_pt_v0.tar.gz', #PyTorch Model
)
runtime_sm_client.invoke_endpoint(
    EndpointName=, 
    ContentType="application/octet-stream", 
    Body=json.dumps(trt_payload),
    TargetModel='resnet_trt_v0.tar.gz' #TensorRT Model
)

Ρυθμίστε πολιτικές αυτόματης κλιμάκωσης για το GPU MME

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

Στην ακόλουθη πολιτική κλιμάκωσης, χρησιμοποιούμε την προσαρμοσμένη μέτρηση GPUUtilization στο TargetTrackingScalingPolicyConfiguration διαμόρφωση και ρύθμιση α TargetValue of 60.0 για την τιμή στόχο αυτής της μέτρησης. Αυτή η πολιτική αυτόματης κλιμάκωσης προβλέπει πρόσθετες παρουσίες έως MaxCapacity όταν η χρήση της GPU είναι μεγαλύτερη από 60%.

auto_scaling_client = boto3.client('application-autoscaling')

resource_id='endpoint/' +  + '/variant/' + 'AllTraffic' 
response = auto_scaling_client.register_scalable_target(
    ServiceNamespace='sagemaker',
    ResourceId=resource_id,
    ScalableDimension='sagemaker:variant:DesiredInstanceCount',
    MinCapacity=1,
    MaxCapacity=5
)

response = auto_scaling_client.put_scaling_policy(
    PolicyName='GPUUtil-ScalingPolicy',
    ServiceNamespace='sagemaker',
    ResourceId=resource_id,
    ScalableDimension='sagemaker:variant:DesiredInstanceCount', 
    PolicyType='TargetTrackingScaling',
    TargetTrackingScalingPolicyConfiguration={
        'TargetValue': 60.0, 
        'CustomizedMetricSpecification':
        {
            'MetricName': 'GPUUtilization',
            'Namespace': '/aws/sagemaker/Endpoints',
            'Dimensions': [
                {'Name': 'EndpointName', 'Value':  },
                {'Name': 'VariantName','Value': 'AllTraffic'}
            ],
            'Statistic': 'Average',
            'Unit': 'Percent'
        },
        'ScaleInCooldown': 600,
        'ScaleOutCooldown': 200 
    }
)

Συνιστούμε τη χρήση GPUUtilization or InvocationsPerInstance για να διαμορφώσετε τις πολιτικές αυτόματης κλιμάκωσης για το MME σας. Για περισσότερες λεπτομέρειες, βλ Ορισμός πολιτικών αυτόματης κλιμάκωσης για αναπτύξεις τελικού σημείου πολλαπλών μοντέλων

Μετρήσεις CloudWatch για MME GPU

Τα SageMaker MME παρέχουν τις ακόλουθες μετρήσεις σε επίπεδο παρουσίας για παρακολούθηση:

  • LoadedModelCount – Αριθμός μοντέλων που έχουν φορτωθεί στα δοχεία
  • Χρήση GPU – Ποσοστό μονάδων GPU που χρησιμοποιούνται από τα κοντέινερ
  • GPUMemoryUtilization – Ποσοστό μνήμης GPU που χρησιμοποιείται από τα κοντέινερ
  • DiskUtilization – Ποσοστό χώρου στο δίσκο που χρησιμοποιείται από τα κοντέινερ

Αυτές οι μετρήσεις σάς επιτρέπουν να προγραμματίζετε την αποτελεσματική χρήση των πόρων παρουσίας GPU. Στο παρακάτω γράφημα, βλέπουμε GPUMemoryUtilization ήταν 38.3% όταν περισσότερα από 16 μοντέλα ResNet-50 φορτώθηκαν στο κοντέινερ. Το άθροισμα της χρήσης κάθε μεμονωμένου πυρήνα CPU (CPUUtilization) ήταν 60.9% και το ποσοστό της μνήμης που χρησιμοποιήθηκε από τα κοντέινερ (MemoryUtilization) ήταν 9.36%.

Εκτελέστε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με τα τελικά σημεία πολλαπλών μοντέλων του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Τα SageMaker MME παρέχουν επίσης μετρήσεις φόρτωσης μοντέλων για τη λήψη πληροφοριών σε επίπεδο επίκλησης μοντέλου:

  • ModelLoadingWaitTime – Χρονικό διάστημα για τη λήψη ή τη φόρτωση του μοντέλου
  • ModelUnloadingTime – Χρονικό διάστημα για την εκφόρτωση του μοντέλου από το δοχείο
  • ModelDownloadingTime – Ώρα να κατεβάσετε το μοντέλο από το Amazon S3
  • ModelCacheHit – Αριθμός επικλήσεων στο μοντέλο που έχουν ήδη φορτωθεί στο κοντέινερ

Στο παρακάτω γράφημα, μπορούμε να παρατηρήσουμε ότι χρειάστηκαν 8.22 δευτερόλεπτα για να απαντήσει ένα μοντέλο σε ένα αίτημα συμπερασμάτων (ModelLatency) και 24.1 χιλιοστά του δευτερολέπτου προστέθηκαν στον λανθάνοντα χρόνο από άκρο σε άκρο λόγω των γενικών εξόδων του SageMaker (OverheadLatency). Μπορούμε επίσης να δούμε τυχόν μετρήσεις σφαλμάτων από κλήσεις για επίκληση κλήσης API τελικού σημείου, όπως π.χ Invocation4XXErrors και Invocation5XXErrors.

Εκτελέστε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με τα τελικά σημεία πολλαπλών μοντέλων του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

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

Χαρακτηριστικά

Σε αυτήν την ανάρτηση, μάθατε για τη νέα υποστήριξη πολλαπλών μοντέλων SageMaker για GPU, η οποία σας δίνει τη δυνατότητα να φιλοξενείτε οικονομικά εκατοντάδες μοντέλα βαθιάς εκμάθησης σε επιταχυνόμενο υπολογιστικό υλικό. Μάθατε πώς να χρησιμοποιείτε τον NVIDIA Triton Inference Server, ο οποίος δημιουργεί μια διαμόρφωση αποθετηρίου μοντέλων για διαφορετικά backends πλαισίου και πώς να αναπτύσσετε ένα MME με αυτόματη κλιμάκωση. Αυτή η δυνατότητα θα σας επιτρέψει να κλιμακώσετε εκατοντάδες υπερ-εξατομικευμένα μοντέλα που είναι βελτιωμένα για να καλύπτουν μοναδικές εμπειρίες τελικού χρήστη σε εφαρμογές τεχνητής νοημοσύνης. Μπορείτε επίσης να αξιοποιήσετε αυτήν τη δυνατότητα για να επιτύχετε την απαιτούμενη απόδοση τιμής για την εφαρμογή συμπερασμάτων σας χρησιμοποιώντας κλασματικές GPU.

Για να ξεκινήσετε με την υποστήριξη MME για GPU, βλ Υποστήριξη τελικού σημείου πολλαπλών μοντέλων για GPU.


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

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

Εκτελέστε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με τα τελικά σημεία πολλαπλών μοντέλων του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Vikram Elango είναι Senior AI/ML Specialist Solutions Architect στην Amazon Web Services, με έδρα τη Βιρτζίνια των ΗΠΑ. Η Vikram βοηθά τους πελάτες του παγκόσμιου χρηματοοικονομικού και ασφαλιστικού κλάδου με το σχεδιασμό, την υλοποίηση και την ηγετική σκέψη να δημιουργήσουν και να αναπτύξουν εφαρμογές μηχανικής εκμάθησης σε κλίμακα. Επί του παρόντος επικεντρώνεται στην επεξεργασία φυσικής γλώσσας, στην υπεύθυνη τεχνητή νοημοσύνη, στη βελτιστοποίηση συμπερασμάτων και στην κλιμάκωση της ML σε όλη την επιχείρηση. Στον ελεύθερο χρόνο του, του αρέσει να ταξιδεύει, να κάνει πεζοπορία, να μαγειρεύει και να κατασκηνώνει με την οικογένειά του.

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

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

Εκτελέστε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με τα τελικά σημεία πολλαπλών μοντέλων του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Νικίλ Κουλκάρνι είναι προγραμματιστής λογισμικού με το AWS Machine Learning, που εστιάζει στο να κάνει τους φόρτους εργασίας μηχανικής εκμάθησης πιο αποδοτικούς στο cloud και είναι συνδημιουργός των AWS Deep Learning Containers για εκπαίδευση και εξαγωγή συμπερασμάτων. Είναι παθιασμένος με τα κατανεμημένα συστήματα Deep Learning. Εκτός δουλειάς, του αρέσει να διαβάζει βιβλία, να ασχολείται με την κιθάρα και να φτιάχνει πίτσα.

Εκτελέστε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με τα τελικά σημεία πολλαπλών μοντέλων του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Τζιαόνγκ Λιου είναι αρχιτέκτονας λύσεων στην ομάδα του Cloud Service Provider της NVIDIA. Βοηθά τους πελάτες στην υιοθέτηση λύσεων μηχανικής μάθησης και τεχνητής νοημοσύνης που αξιοποιούν την επιτάχυνση της NVIDIA για την αντιμετώπιση των προκλήσεων εκπαίδευσης και συμπερασμάτων τους. Στον ελεύθερο χρόνο του, του αρέσει το origami, τα DIY projects και το μπάσκετ.

Εκτελέστε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με τα τελικά σημεία πολλαπλών μοντέλων του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ελιούθ Τριάνα είναι Υπεύθυνος Σχέσεων Προγραμματιστή στην ομάδα NVIDIA-AWS. Συνδέει τους ηγέτες προϊόντων, τους προγραμματιστές και τους επιστήμονες της Amazon και της AWS με τεχνολόγους και ηγέτες προϊόντων της NVIDIA για να επιταχύνει τον φόρτο εργασίας του Amazon ML/DL, τα προϊόντα EC2 και τις υπηρεσίες AWS AI. Επιπλέον, ο Eliuth είναι παθιασμένος ποδηλάτης βουνού, σκιέρ και παίκτης πόκερ.

Εκτελέστε πολλά μοντέλα βαθιάς εκμάθησης σε GPU με τα τελικά σημεία πολλαπλών μοντέλων του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Μαξιμιλιάνο Μακάντι είναι Κύριος Μηχανικός στην AWS αυτήν τη στιγμή με DynamoDB, ήμουν στην ομάδα εκκίνησης του SageMaker στο re:Invent 2017 και πέρασα τα επόμενα 5 χρόνια στην πλατφόρμα φιλοξενίας προσθέτοντας κάθε είδους πελάτες που αντιμετωπίζουν χαρακτηριστικά. Στον ελεύθερο χρόνο μου μαζεύω, επισκευάζω και παίζω με vintage κονσόλες βιντεοπαιχνιδιών.

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

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