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

Βελτιώστε την απόδοση τιμής της εκπαίδευσης του μοντέλου σας χρησιμοποιώντας ετερογενή συμπλέγματα Amazon SageMaker

Αυτή η ανάρτηση συντάχθηκε με τον Chaim Rand από το Mobileye.

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

Για την αντιμετώπιση αυτού του ζητήματος, τον Ιούλιο του 2022, εμείς ξεκίνησε ετερογενείς συστάδες για Amazon Sage Maker μοντέλο εκπαίδευσης, το οποίο σας δίνει τη δυνατότητα να ξεκινήσετε εργασίες εκπαίδευσης που χρησιμοποιούν διαφορετικούς τύπους παρουσιών σε μία εργασία. Αυτό επιτρέπει την εκφόρτωση τμημάτων του αγωγού προεπεξεργασίας δεδομένων σε υπολογιστική βελτιστοποίηση τύπους περιπτώσεων, ενώ η εργασία βαθιάς νευρωνικού δικτύου (DNN) συνεχίζει να εκτελείται GPU ή επιταχυνόμενος υπολογισμός τύποι παρουσίας. Τα σημεία αναφοράς μας δείχνουν όφελος απόδοσης τιμής έως και 46% μετά την ενεργοποίηση ετερογενών συμπλεγμάτων σε ένα εκπαιδευτικό μοντέλο υπολογιστικής όρασης TensorFlow με CPU.

Για παρόμοια περίπτωση χρήσης, mobileye, μια εταιρεία ανάπτυξης τεχνολογιών αυτόνομων οχημάτων, είχε να μοιραστεί τα εξής:

«Μετακινώντας την εκπαίδευση όρασης υπολογιστικού μοντέλου βαθιάς μάθησης συνδεδεμένης με CPU για εκτέλεση πολλαπλών τύπων παρουσιών (CPU και επιταχυντές GPU/ML), χρησιμοποιώντας ένα tf.data.service βασισμένη στη λύση που κατασκευάσαμε, καταφέραμε να μειώσουμε τον χρόνο προπόνησης κατά 40%, ενώ μειώσαμε το κόστος προπόνησης κατά 30%. Είμαστε ενθουσιασμένοι που τα ετερογενή συμπλέγματα μας επιτρέπουν να τρέξουμε αυτήν τη λύση στο Amazon SageMaker.»

— AI Engineering, Mobileye

Σε αυτήν την ανάρτηση, συζητάμε τα ακόλουθα θέματα:

  • Πώς τα ετερογενή συμπλέγματα βοηθούν στην εξάλειψη των σημείων συμφόρησης της CPU
  • Πότε να χρησιμοποιείτε ετερογενή συμπλέγματα και άλλες εναλλακτικές λύσεις
  • Υλοποιήσεις αναφοράς σε PyTorch και TensorFlow
  • Αποτελέσματα αναφοράς απόδοσης
  • Ετερογενή συμπλέγματα στο Mobileye

AWS παράδειγμα επιταχυνόμενης υπολογιστικής Η οικογένεια περιλαμβάνει επιταχυντές από προσαρμοσμένα τσιπ AWS (Αίσθηση AWS, Aws trainium), NVIDIA (GPU), Και Επιταχυντές Γκαουντί από τη Habana Labs (εταιρεία Intel). Σημειώστε ότι σε αυτήν την ανάρτηση, χρησιμοποιούμε τους όρους GPU και Accelerator εναλλακτικά.

Πώς τα ετερογενή συμπλέγματα αφαιρούν τα σημεία συμφόρησης στην επεξεργασία δεδομένων

Οι επιστήμονες δεδομένων που εκπαιδεύουν μοντέλα βαθιάς μάθησης στοχεύουν στη μεγιστοποίηση της απόδοσης κόστους της εκπαίδευσης και στην ελαχιστοποίηση του χρόνου εκπαίδευσης. Για να επιτευχθεί αυτό, ένας βασικός στόχος βελτιστοποίησης είναι να έχουμε υψηλή χρήση GPU, τον πιο ακριβό και σπάνιο πόρο εντός του Amazon Elastic Compute Cloud (Amazon EC2) παράδειγμα. Αυτό μπορεί να είναι πιο δύσκολο με φόρτους εργασίας ML που συνδυάζουν τη διάδοση του κλασικού μοντέλου νευρωνικών δικτύων έντασης GPU προς τα εμπρός και προς τα πίσω με εργασίες έντασης CPU, όπως η επεξεργασία δεδομένων και η αύξηση στην όραση υπολογιστή ή η εκτέλεση μιας προσομοίωσης περιβάλλοντος στην ενισχυτική μάθηση. Αυτοί οι φόρτοι εργασίας μπορεί να καταλήξουν να είναι δεσμευμένοι με CPU, όπου η ύπαρξη περισσότερης CPU θα είχε ως αποτέλεσμα υψηλότερη απόδοση και ταχύτερη και φθηνότερη εκπαίδευση, καθώς οι υπάρχοντες επιταχυντές είναι εν μέρει αδρανείς. Σε ορισμένες περιπτώσεις, τα σημεία συμφόρησης της CPU μπορούν να επιλυθούν με εναλλαγή σε άλλο τύπο παρουσίας με υψηλότερο λόγο CPU:GPU. Ωστόσο, υπάρχουν περιπτώσεις όπου η μετάβαση σε άλλο τύπο παρουσίας ενδέχεται να μην είναι δυνατή λόγω της αρχιτεκτονικής, της αποθήκευσης ή των εξαρτήσεων δικτύου της οικογένειας παρουσιών.

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

Για παράδειγμα, εξετάστε έναν ισχυρό τύπο παρουσίας GPU, ml.p4d.24xlarge (96 vCPU, 8 x NVIDIA A100 GPU), με αναλογία CPU:GPU 12:1. Ας υποθέσουμε ότι η εργασία εκπαίδευσής σας χρειάζεται 20 vCPU για να προεπεξεργαστεί αρκετά δεδομένα για να διατηρήσει μια GPU 100% χρησιμοποιημένη. Επομένως, για να διατηρήσετε και τις 8 GPU 100% χρησιμοποιημένες, χρειάζεστε έναν τύπο παρουσίας 160 vCPU. Ωστόσο, το ml.p4d.24xlarge δεν έχει 64 vCPU, ή 40%, περιορίζοντας τη χρήση GPU στο 60%, όπως απεικονίζεται στα αριστερά του παρακάτω διαγράμματος. Θα βοηθούσε η προσθήκη άλλης παρουσίας ml.p4d.24xlarge; Όχι, γιατί η αναλογία CPU:GPU της εργασίας θα παραμείνει η ίδια.

Με ετερογενή συμπλέγματα, μπορούμε να προσθέσουμε δύο ml.c5.18xlarge (72 vCPU), όπως φαίνεται στα δεξιά του διαγράμματος. Το καθαρό συνολικό vCPU σε αυτό το σύμπλεγμα είναι 210 (96+2*72), που οδηγεί σε αναλογία CPU:GPU σε 30:1. Κάθε μία από αυτές τις βελτιστοποιημένες υπολογιστικές παρουσίες θα φορτωθεί με μια εργασία προεπεξεργασίας δεδομένων που απαιτεί ένταση CPU και θα επιτρέψει την αποτελεσματική χρήση της GPU. Παρά το πρόσθετο κόστος του ml.c5.18xlarge, η υψηλότερη χρήση GPU επιτρέπει ταχύτερη επεξεργασία και, επομένως, πλεονεκτήματα απόδοσης υψηλότερης τιμής.

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

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

Ο γρήγορος τρόπος για να εντοπίσετε ένα σημείο συμφόρησης της CPU είναι η παρακολούθηση της CPU και της GPU μετρήσεις χρήσης για θέσεις εργασίας εκπαίδευσης SageMaker σε amazoncloudwatch. Μπορείτε να αποκτήσετε πρόσβαση σε αυτές τις προβολές από το Κονσόλα διαχείρισης AWS στον υπερσύνδεσμο μετρήσεων παρουσίας της σελίδας εργασίας εκπαίδευσης. Επιλέξτε τις σχετικές μετρήσεις και αλλάξτε από ανάλυση 5 λεπτών σε 1 λεπτό. Λάβετε υπόψη ότι η κλίμακα είναι 100% ανά vCPU ή GPU, επομένως το ποσοστό χρήσης για παράδειγμα με 4 vCPU/GPU θα μπορούσε να φτάσει το 400%. Το παρακάτω σχήμα είναι ένα τέτοιο παράδειγμα από τις μετρήσεις του CloudWatch, όπου η CPU χρησιμοποιείται περίπου 100%, υποδεικνύοντας μια συμφόρηση της CPU, ενώ η GPU υποχρησιμοποιείται.

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

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

Εάν καταλήξετε στο συμπέρασμα ότι η εργασία σας θα μπορούσε να επωφεληθεί από μια υψηλότερη αναλογία υπολογισμού CPU:GPU, εξετάστε πρώτα την κλιμάκωση σε έναν άλλο τύπο παρουσίας στην ίδια οικογένεια παρουσιών, εάν είναι διαθέσιμος. Για παράδειγμα, εάν εκπαιδεύετε το μοντέλο σας σε ml.g5.8xlarge (32 vCPU, 1 GPU), εξετάστε το ενδεχόμενο κλιμάκωσης έως το ml.g5.16xlarge (64 vCPU, 1 GPU). Εναλλακτικά, εάν εκπαιδεύετε το μοντέλο σας χρησιμοποιώντας παράδειγμα πολλαπλών GPU ml.g5.12xlarge (48 vCPU, 4 GPU), εξετάστε το ενδεχόμενο κλιμάκωσης έως ml.g5.24xlarge (96 vCPU, 4 GPU). Αναφέρομαι στο G5 για περισσότερες λεπτομέρειες.

Μερικές φορές, η κλιμάκωση δεν αποτελεί επιλογή, επειδή δεν υπάρχει τύπος παρουσίας με υψηλότερη αναλογία vCPU:GPU στην ίδια οικογένεια παρουσιών. Για παράδειγμα, εάν εκπαιδεύετε το μοντέλο σε ml.trn1.32xlarge, ml.p4d.24xlarge ή ml.g5.48xlarge, θα πρέπει να εξετάσετε ετερογενή συμπλέγματα για εκπαίδευση μοντέλων SageMaker.

Εκτός από την κλιμάκωση, θα θέλαμε να σημειώσουμε ότι υπάρχουν πρόσθετες εναλλακτικές λύσεις σε ένα ετερογενές σύμπλεγμα, όπως το NVIDIA DALI, το οποίο εκφορτώνει την προεπεξεργασία εικόνας στη GPU. Για περισσότερες πληροφορίες, ανατρέξτε στο Ξεπερνώντας τα σημεία συμφόρησης στην προεπεξεργασία δεδομένων με την υπηρεσία δεδομένων TensorFlow, το NVIDIA DALI και άλλες μεθόδους.

Για να απλοποιήσετε τη λήψη αποφάσεων, ανατρέξτε στο ακόλουθο διάγραμμα ροής.

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

Πώς να χρησιμοποιήσετε ετερογενή συμπλέγματα SageMaker

Για να ξεκινήσετε γρήγορα, μπορείτε να μεταβείτε απευθείας στα παραδείγματα TensorFlow ή PyTorch που παρέχονται ως μέρος αυτής της ανάρτησης.

Σε αυτήν την ενότητα, σας καθοδηγούμε πώς να χρησιμοποιήσετε ένα ετερογενές σύμπλεγμα SageMaker με ένα απλό παράδειγμα. Υποθέτουμε ότι γνωρίζετε ήδη πώς να εκπαιδεύσετε ένα μοντέλο με το SageMaker Python SDK και την κλάση Estimator. Εάν όχι, ανατρέξτε στο Χρήση του SageMaker Python SDK πριν συνεχίσετε.

Πριν από αυτήν τη δυνατότητα, αρχικοποιήσατε την κλάση Εκτιμητής της εργασίας εκπαίδευσης με το InstanceCount και παραμέτρους InstanceType, που υποθέτει σιωπηρά ότι έχετε μόνο έναν τύπο παρουσίας (ένα ομοιογενές σύμπλεγμα). Με την κυκλοφορία ετερογενών συστάδων, παρουσιάσαμε το νέο sagemaker.instance_group.InstanceGroup τάξη. Αυτό αντιπροσωπεύει μια ομάδα μίας ή περισσότερων παρουσιών ενός συγκεκριμένου τύπου παρουσίας, σχεδιασμένη να φέρει έναν λογικό ρόλο (όπως επεξεργασία δεδομένων ή βελτιστοποίηση νευρωνικού δικτύου. Μπορείτε να έχετε δύο ή περισσότερες ομάδες και να καθορίσετε ένα προσαρμοσμένο όνομα για κάθε ομάδα παρουσίας, την παρουσία τύπο και τον αριθμό των παρουσιών για κάθε ομάδα παρουσιών. Για περισσότερες πληροφορίες, ανατρέξτε στο Χρήση του SageMaker Python SDK και Χρήση των χαμηλού επιπέδου SageMaker API.

Αφού ορίσετε τις ομάδες παρουσιών, πρέπει να τροποποιήσετε το σενάριο εκπαίδευσης για να διαβάσετε το SageMaker πληροφορίες για το περιβάλλον εκπαίδευσης που περιλαμβάνει ετερογενή διαμόρφωση συμπλέγματος. Η διαμόρφωση περιέχει πληροφορίες όπως οι τρέχουσες ομάδες παρουσιών, οι τρέχοντες κεντρικοί υπολογιστές σε κάθε ομάδα και σε ποια ομάδα βρίσκεται ο τρέχων κεντρικός υπολογιστής με την κατάταξή τους. Μπορείτε να δημιουργήσετε λογική στο σενάριο εκπαίδευσης για να εκχωρήσετε τις ομάδες παρουσιών σε ορισμένες εργασίες εκπαίδευσης και επεξεργασίας δεδομένων. Επιπλέον, το σενάριο εκπαίδευσης σας πρέπει να φροντίζει για την επικοινωνία μεταξύ ομάδων ή τους κατανεμημένους μηχανισμούς φόρτωσης δεδομένων (για παράδειγμα, tf.data.service σε TensorFlow ή γενικό gRPC πελάτης-διακομιστής) ή οποιοδήποτε άλλο πλαίσιο (για παράδειγμα, Apache Spark).

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

  1. Κατά τον ορισμό και την εκκίνηση της εργασίας εκπαίδευσης, διαμορφώνουμε δύο ομάδες παρουσιών που χρησιμοποιούνται ως ορίσματα στον εκτιμητή SageMaker:
    from sagemaker.instance_group import InstanceGroup
    data_group = InstanceGroup("data_group", "ml.c5.18xlarge", 2)
    dnn_group = InstanceGroup("dnn_group", "ml.p4d.24xlarge", 1)
    
    from sagemaker.pytorch import PyTorch
    estimator = PyTorch(...,
        entry_point='launcher.py',
        instance_groups=[data_group, dnn_group]
    )
  2. Στο σενάριο εκπαίδευσης σημείου εισόδου (με όνομα launcher.py), διαβάζουμε την ετερογενή διαμόρφωση συμπλέγματος για το εάν το στιγμιότυπο θα εκτελέσει τον κώδικα προεπεξεργασίας ή DNN:
    from sagemaker_training import environment
    env = environment.Environment()
    if env.current_instance_group == 'data_group': ...;

Με αυτό, ας συνοψίσουμε τις εργασίες που κάνει το SageMaker για λογαριασμό σας και τις εργασίες για τις οποίες είστε υπεύθυνος.

Το SageMaker εκτελεί τις ακόλουθες εργασίες:

  1. Παρέχετε διαφορετικούς τύπους παρουσιών σύμφωνα με τον ορισμό της ομάδας παρουσιών.
  2. Παροχή καναλιών εισόδου σε όλες ή σε συγκεκριμένες ομάδες παρουσιών.
  3. Διανείμετε σενάρια εκπαίδευσης και εξαρτήσεις σε περιπτώσεις.
  4. Ρυθμίστε ένα σύμπλεγμα MPI σε μια συγκεκριμένη ομάδα παρουσιών, εάν έχει οριστεί.

Είστε υπεύθυνοι για τις ακόλουθες εργασίες:

  1. Τροποποιήστε το σενάριο εργασίας έναρξης εκπαίδευσης για να καθορίσετε ομάδες παρουσιών.
  2. Εφαρμόστε μια διοχέτευση κατανεμημένων δεδομένων (για παράδειγμα, tf.data.service).
  3. Τροποποιήστε το σενάριο του σημείου εισόδου σας (βλ launcher.py στο παράδειγμα σημειωματάριο) να είναι ένα ενιαίο σημείο εισόδου που θα εκτελείται σε όλες τις παρουσίες, θα εντοπίζει σε ποια ομάδα παρουσιών εκτελείται και θα ενεργοποιεί τη σχετική συμπεριφορά (όπως επεξεργασία δεδομένων ή βελτιστοποίηση DNN).
  4. Όταν τελειώσει ο βρόχος εκπαίδευσης, πρέπει να βεβαιωθείτε ότι η διαδικασία του σημείου εισόδου εξέρχεται σε όλες τις παρουσίες σε όλες τις ομάδες παρουσιών. Αυτό είναι σημαντικό επειδή το SageMaker περιμένει να ολοκληρωθεί η επεξεργασία όλων των περιπτώσεων προτού επισημάνει την εργασία ως ολοκληρωμένη και σταματήσει τη χρέωση. ο launcher.py Το σενάριο στα παραδείγματα σημειωματάρια TensorFlow και PyTorch παρέχει μια υλοποίηση αναφοράς παρουσιών ομάδων δεδομένων σηματοδότησης για έξοδο όταν οι παρουσίες ομάδας DNN τελειώσουν την εργασία τους.

Παραδείγματα σημειωματάριων για ετερογενή συμπλέγματα SageMaker

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

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

Ετερογενές σύμπλεγμα με χρήση κατανεμημένου φορτωτή δεδομένων που βασίζεται στο tf.data.service (TensorFlow)

Αυτός ο διαλογισμός στα σημειωματάριο δείχνει πώς να εφαρμόσετε ένα ετερογενές σύμπλεγμα για εκπαίδευση του SageMaker χρησιμοποιώντας το TensorFlow's tf.data.service βασισμένος αγωγός κατανεμημένων δεδομένων. Εκπαιδεύουμε ένα μοντέλο όρασης υπολογιστή βαθιάς μάθησης Resnet50 που απαιτεί αύξηση δεδομένων με ένταση CPU. Χρησιμοποιεί Horvod για παραλληλισμό κατανεμημένων δεδομένων πολλαπλών GPU.

Εκτελούμε τον φόρτο εργασίας σε δύο διαμορφώσεις: πρώτα ως ομοιογενές σύμπλεγμα, μεμονωμένη περίπτωση ml.p4d.24xlarge, χρησιμοποιώντας ένα τυπικό tf.data αγωγός που παρουσιάζει σημεία συμφόρησης CPU που οδηγούν σε χαμηλότερη χρήση GPU. Στη δεύτερη εκτέλεση, μεταβαίνουμε από έναν τύπο μεμονωμένης παρουσίας σε δύο ομάδες παρουσιών χρησιμοποιώντας ένα ετερογενές σύμπλεγμα SageMaker. Αυτή η εκτέλεση εκφορτώνει μέρος της επεξεργασίας δεδομένων σε πρόσθετες παρουσίες CPU (χρησιμοποιώντας tf.data.service).

Στη συνέχεια συγκρίνουμε τις ομοιογενείς και ετερογενείς διαμορφώσεις και βρίσκουμε βασικά οφέλη απόδοσης τιμών. Όπως φαίνεται στον παρακάτω πίνακα, η ετερογενής εργασία (86ms/βήμα) είναι 2.2 φορές πιο γρήγορη στην εκπαίδευση από την ομοιογενή εργασία (192ms/βήμα), γεγονός που καθιστά 46% φθηνότερη την εκπαίδευση ενός μοντέλου.

Παράδειγμα 1 (TF) ml.p4d.24xl ml.c5.18xl Τιμή ανά ώρα* Μέσος χρόνος βήματος Κόστος ανά βήμα Βελτίωση Απόδοσης Τιμών
Ομοιογενής 1 0 $37.688 ms 192 $0.201 .
Ετερογενής 1 2 $45.032 ms 86 $0.108 46%

* Η τιμή ανά ώρα βασίζεται στο us-east-1 Τιμολόγηση SageMaker κατ' απαίτηση

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

Ετερογενές σύμπλεγμα με χρήση κατανεμημένου φορτωτή δεδομένων βάσει πελάτη-διακομιστή gRPC (PyTorch)

Αυτός ο διαλογισμός στα σημειωματάριο δείχνει ένα δείγμα φόρτου εργασίας χρησιμοποιώντας ένα ετερογενές σύμπλεγμα για την εκπαίδευση του SageMaker χρησιμοποιώντας έναν κατανεμημένο φορτωτή δεδομένων βάσει πελάτη-διακομιστή gRPC. Αυτό το παράδειγμα χρησιμοποιεί μια ενιαία GPU. Χρησιμοποιούμε το μοντέλο PyTorch με βάση τα ακόλουθα επίσημο παράδειγμα MNIST. Ο κώδικας εκπαίδευσης έχει τροποποιηθεί για να είναι βαρύς στην προεπεξεργασία δεδομένων. Εκπαιδεύουμε αυτό το μοντέλο τόσο σε ομοιογενή όσο και σε ετερογενή λειτουργία συμπλέγματος και συγκρίνουμε την απόδοση τιμών.

Σε αυτό το παράδειγμα, υποθέσαμε ότι ο φόρτος εργασίας δεν μπορεί να επωφεληθεί από πολλές GPU και εξαρτάται από μια συγκεκριμένη αρχιτεκτονική GPU (NVIDIA V100). Εκτελέσαμε τόσο ομοιογενείς όσο και ετερογενείς εργασίες κατάρτισης και βρήκαμε βασικά οφέλη απόδοσης τιμών, όπως φαίνεται στον παρακάτω πίνακα. Η ετερογενής εργασία (1.19 δευτ./βήμα) είναι 6.5 φορές πιο γρήγορη στην εκπαίδευση από την ομοιογενή εργασία (0.18 δευτ./βήμα), καθιστώντας 77% φθηνότερη την εκπαίδευση ενός μοντέλου.

Παράδειγμα 2 (PT) ml.p3.2xl ml.c5.9xl Τιμή ανά ώρα* Μέσος χρόνος βήματος Κόστος ανά βήμα Βελτίωση Απόδοσης Τιμών
Ομοιογενής 1 0 $3.825 ms 1193 $0.127 .
Ετερογενής 1 1 $5.661 ms 184 $0.029 77%

* Η τιμή ανά ώρα βασίζεται στο us-east-1 Τιμολόγηση SageMaker κατ' απαίτηση

Αυτό είναι δυνατό επειδή με υψηλότερο αριθμό CPU, θα μπορούσαμε να χρησιμοποιήσουμε 32 εργάτες φόρτωσης δεδομένων (σε σύγκριση με 8 με ml.p3.2xlarge) για την προεπεξεργασία των δεδομένων και να διατηρήσουμε τη GPU κοντά στο 100% που χρησιμοποιείται σε συχνά διαστήματα. Δείτε το σημειωματάριο για περισσότερες λεπτομέρειες και γραφήματα.

Ετερογενή συμπλέγματα στο Mobileye

Η Mobileye, μια εταιρεία Intel, αναπτύσσει προηγμένα συστήματα υποστήριξης οδηγού (ADAS) και τεχνολογίες αυτόνομων οχημάτων με στόχο να φέρει επανάσταση στον κλάδο των μεταφορών, να κάνει τους δρόμους ασφαλέστερους και να σώσει ζωές. Αυτές οι τεχνολογίες ενεργοποιούνται χρησιμοποιώντας εξελιγμένα μοντέλα υπολογιστικής όρασης (CV) που εκπαιδεύονται χρησιμοποιώντας το SageMaker σε μεγάλες ποσότητες δεδομένων που είναι αποθηκευμένα σε Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3). Αυτά τα μοντέλα χρησιμοποιούν τεχνικές νευρωνικών δικτύων βαθιάς μάθησης τελευταίας τεχνολογίας.

Παρατηρήσαμε ότι για ένα από τα μοντέλα βιογραφικών μας, η συμφόρηση της CPU προκλήθηκε κυρίως από βαριά προεπεξεργασία δεδομένων που οδήγησε σε υποχρησιμοποίηση GPU. Για αυτόν τον συγκεκριμένο φόρτο εργασίας, αρχίσαμε να αναζητούμε εναλλακτικές λύσεις, αξιολογήσαμε τεχνολογίες αγωγών κατανεμημένων δεδομένων με ετερογενή συμπλέγματα που βασίζονται σε περιπτώσεις EC2 και καταλήξαμε σε υλοποιήσεις αναφοράς και για τα δύο TensorFlow και PyTorch. Η κυκλοφορία του ετερογενούς συμπλέγματος SageMaker μας επιτρέπει να εκτελούμε αυτόν και παρόμοιους φόρτους εργασίας στο SageMaker για να επιτύχουμε βελτιωμένα οφέλη απόδοσης τιμών.

Κρίσεις

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

  • Η δυνατότητα ετερογενούς συμπλέγματος είναι διαθέσιμη μέσω του SageMaker PyTorch και TensorFlow κλάσεις εκτιμητή πλαισίου. Τα υποστηριζόμενα πλαίσια είναι PyTorch έκδοση 1.10 ή νεότερη έκδοση και TensorFlow έκδοση 2.6 ή νεότερη έκδοση.
  • Όλες οι ομάδες παρουσίας μοιράζονται την ίδια εικόνα Docker.
  • Όλες οι ομάδες παρουσίας μοιράζονται το ίδιο σενάριο εκπαίδευσης. Επομένως, το σενάριο εκπαίδευσης θα πρέπει να τροποποιηθεί για να ανιχνεύσει σε ποια ομάδα παρουσιών ανήκει και το fork να εκτελείται ανάλογα.
  • Τα ονόματα κεντρικών υπολογιστών παρουσιών εκπαίδευσης (για παράδειγμα, alog-1, algo-2 και ούτω καθεξής) εκχωρούνται τυχαία και δεν υποδεικνύουν σε ποια ομάδα παρουσιών ανήκουν. Για να αποκτήσετε το ρόλο του στιγμιότυπου, συνιστούμε να αποκτήσετε τη συνδρομή της ομάδας παρουσίας κατά τη διάρκεια του χρόνου εκτέλεσης. Αυτό είναι επίσης σχετικό κατά τον έλεγχο των log in CloudWatch, επειδή το όνομα της ροής καταγραφής [training-job-name]/algo-[instance-number-in-cluster]-[epoch_timestamp] έχει το όνομα κεντρικού υπολογιστή.
  • Μια κατανεμημένη στρατηγική εκπαίδευσης (συνήθως ένα σύμπλεγμα MPI) μπορεί να εφαρμοστεί μόνο σε μία ομάδα παρουσίας.
  • SageMaker Διαχειριζόμενες ζεστές πισίνες και SageMaker Τοπική λειτουργία επί του παρόντος δεν μπορεί να χρησιμοποιηθεί με ετερογενή εκπαίδευση συστάδων.

Συμπέρασμα

Σε αυτήν την ανάρτηση, συζητήσαμε πότε και πώς να χρησιμοποιήσετε τη δυνατότητα ετερογενούς συμπλέγματος της εκπαίδευσης του SageMaker. Επιδείξαμε 46% βελτίωση της απόδοσης της τιμής σε μια περίπτωση χρήσης πραγματικού κόσμου και σας βοηθήσαμε να ξεκινήσετε γρήγορα με το πρόγραμμα φόρτωσης κατανεμημένων δεδομένων (tf.data.service και gRPC client-server) υλοποιήσεις. Μπορείτε να χρησιμοποιήσετε αυτές τις υλοποιήσεις με ελάχιστες αλλαγές κώδικα στα υπάρχοντα σενάρια εκπαίδευσης.

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


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

Βελτιώστε την απόδοση τιμής της εκπαίδευσης του μοντέλου σας χρησιμοποιώντας ετερογενή συμπλέγματα του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Gili Nachum είναι ανώτερος αρχιτέκτονας εξειδικευμένων λύσεων AI/ML που εργάζεται ως μέλος της ομάδας EMEA Amazon Machine Learning. Η Gili είναι παθιασμένη με τις προκλήσεις της εκπαίδευσης μοντέλων βαθιάς μάθησης και το πώς η μηχανική μάθηση αλλάζει τον κόσμο όπως τον ξέρουμε. Στον ελεύθερο χρόνο του, ο Τζίλι απολαμβάνει να παίζει πινγκ πονγκ.

Βελτιώστε την απόδοση τιμής της εκπαίδευσης του μοντέλου σας χρησιμοποιώντας ετερογενή συμπλέγματα του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Hrushikesh Ganggur είναι ένας κύριος αρχιτέκτονας λύσεων για startups AI/ML με εξειδίκευση τόσο στην Εκπαίδευση ML όσο και στη Δικτύωση AWS. Βοηθά τις νεοφυείς επιχειρήσεις στις τεχνολογίες Autonomous Vehicle, Robotics, CV, NLP, MLOps, ML Platform και Robotics Process Automation να λειτουργούν αποτελεσματικά και αποτελεσματικά στο AWS. Πριν από την ένταξή του στην AWS, η Hrushikesh απέκτησε 20+ χρόνια εμπειρίας στον κλάδο, κυρίως σε πλατφόρμες Cloud και Data.

Βελτιώστε την απόδοση τιμής της εκπαίδευσης του μοντέλου σας χρησιμοποιώντας ετερογενή συμπλέγματα του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Gal Oshri είναι Ανώτερος Διευθυντής Προϊόντων στην ομάδα του Amazon SageMaker. Διαθέτει 7 χρόνια εμπειρίας σε εργαλεία, πλαίσια και υπηρεσίες Μηχανικής Μάθησης.

Βελτιώστε την απόδοση τιμής της εκπαίδευσης του μοντέλου σας χρησιμοποιώντας ετερογενή συμπλέγματα του Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Τσαϊμ Ραντ είναι ένας προγραμματιστής αλγορίθμων μηχανικής μάθησης που εργάζεται σε τεχνολογίες βαθιάς μάθησης και όρασης υπολογιστών για λύσεις αυτόνομων οχημάτων στο Mobileye, μια εταιρεία Intel. Δείτε το δικό του ιστολόγια.

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

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