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

Εκτελέστε αυτόματο συντονισμό μοντέλων με το Amazon SageMaker JumpStart

Τον Δεκέμβριο του 2020, η AWS ανακοίνωσε τη γενική διαθεσιμότητα Amazon SageMaker JumpStart, μια ικανότητα του Amazon Sage Maker που σας βοηθά να ξεκινήσετε γρήγορα και εύκολα με τη μηχανική εκμάθηση (ML). Τον Μάρτιο του 2022 κι εμείς ανακοίνωσε την υποστήριξη για API στο JumpStart. Το JumpStart παρέχει λεπτομερή ρύθμιση με ένα κλικ και ανάπτυξη μιας μεγάλης ποικιλίας προεκπαιδευμένων μοντέλων σε δημοφιλείς εργασίες ML, καθώς και μια επιλογή από ολοκληρωμένες λύσεις που λύνουν κοινά επιχειρηματικά προβλήματα. Αυτά τα χαρακτηριστικά αφαιρούν τη βαριά ανύψωση από κάθε βήμα της διαδικασίας ML, καθιστώντας απλούστερη την ανάπτυξη μοντέλων υψηλής ποιότητας και μειώνοντας το χρόνο μέχρι την ανάπτυξη.

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

Αυτόματος συντονισμός μοντέλου SageMaker

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

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

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

Ο αυτόματος συντονισμός μοντέλου χρησιμοποιεί είτε α Bayesian (προεπιλογή) ή α τυχαίος στρατηγική αναζήτησης για να βρείτε τις καλύτερες τιμές για υπερπαραμέτρους. Η Bayesian αναζήτηση αντιμετωπίζει τον συντονισμό υπερπαραμέτρων όπως α οπισθοδρόμηση πρόβλημα. Κατά την επιλογή των καλύτερων υπερπαραμέτρων για την επόμενη εργασία εκπαίδευσης, λαμβάνει υπόψη όλα όσα γνωρίζει για το πρόβλημα μέχρι στιγμής και επιτρέπει στον αλγόριθμο να εκμεταλλευτεί τα πιο γνωστά αποτελέσματα.

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

Το JumpStart υποστηρίζει αυτήν τη στιγμή 10 παραδείγματα φορητών υπολογιστών με αυτόματο συντονισμό μοντέλων. Υποστηρίζει επίσης τέσσερις δημοφιλείς αλγόριθμους για τη μοντελοποίηση δεδομένων σε πίνακα. Οι εργασίες και οι σύνδεσμοι προς τα δείγματα των σημειωματάριων τους συνοψίζονται στον παρακάτω πίνακα.

Έργο Προεκπαιδευμένα Μοντέλα Υποστηρίζει προσαρμοσμένο σύνολο δεδομένων Πλαίσια που υποστηρίζονται Παραδείγματα φορητών υπολογιστών
Ταξινόμηση εικόνας Ναί Ναί PyTorch, TensorFlow Εισαγωγή στο JumpStart – Ταξινόμηση εικόνων
Ανίχνευση αντικειμένων Ναί Ναί PyTorch, TensorFlow, MXNet Εισαγωγή στο JumpStart – Ανίχνευση αντικειμένων
Σημασιολογική κατάτμηση Ναί Ναί MX Net Εισαγωγή στο JumpStart – Semantic Segmentation
Ταξινόμηση κειμένου Ναί Ναί TensorFlow Εισαγωγή στο JumpStart – Ταξινόμηση κειμένων
Ταξινόμηση ζευγών προτάσεων Ναί Ναί TensorFlow, Αγκαλιασμένο πρόσωπο Εισαγωγή στο JumpStart – Ταξινόμηση ζευγών προτάσεων
Απάντηση στην ερώτηση Ναί Ναί PyTorch Εισαγωγή στο JumpStart – Απαντήσεις σε ερωτήσεις
Ταξινόμηση πίνακα Ναί Ναί LightGBM, CatBoost, XGBoost, Linear Learner Εισαγωγή στο JumpStart – Ταξινόμηση σε πίνακα – LightGBM, CatBoost
Εισαγωγή στο JumpStart – Ταξινόμηση σε πίνακα – XGBoost, Linear Learner
Πίνακας παλινδρόμησης Ναί Ναί LightGBM, CatBoost, XGBoost, Linear Learner Εισαγωγή στο JumpStart – Tabular Regression – LightGBM, CatBoost
Εισαγωγή στο JumpStart – Tabular Regression – XGBoost, Linear Learner

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

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

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

Στις επόμενες ενότητες, παρέχουμε μια αναλυτική περιγραφή του τρόπου εκτέλεσης του αυτόματου συντονισμού μοντέλων με το JumpStart χρησιμοποιώντας τον αλγόριθμο LightGBM. Παρέχουμε ένα συνοδευτικό σημειωματάριο για αυτήν την περιήγηση.

Ακολουθούμε τα ακόλουθα βήματα υψηλού επιπέδου:

  1. Ανακτήστε το προεκπαιδευμένο μοντέλο και το κοντέινερ εικόνων του JumpStart.
  2. Ορισμός στατικών υπερπαραμέτρων.
  3. Ορίστε τις συντονίσιμες περιοχές υπερπαραμέτρων.
  4. Εκκινήστε τον αυτόματο συντονισμό μοντέλου.
  5. Εκτελέστε την εργασία συντονισμού.
  6. Αναπτύξτε το καλύτερο μοντέλο σε ένα τελικό σημείο.

Ανακτήστε το προεκπαιδευμένο μοντέλο και το κοντέινερ εικόνων του JumpStart

Σε αυτήν την ενότητα, επιλέγουμε το μοντέλο ταξινόμησης LightGBM για τελειοποίηση. Χρησιμοποιούμε τον τύπο στιγμιότυπου ml.m5.xlarge στον οποίο εκτελείται το μοντέλο. Στη συνέχεια ανακτούμε το εκπαιδευτικό κοντέινερ Docker, την πηγή του αλγορίθμου εκπαίδευσης και το προεκπαιδευμένο μοντέλο. Δείτε τον παρακάτω κώδικα:

training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve(
    region=None,
    framework=None,
    model_id=train_model_id,
    model_version=train_model_version,
    image_scope=train_scope,
    instance_type=training_instance_type,
)
# Retrieve the training script
train_source_uri = script_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
)
# Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

Ορισμός στατικών υπερπαραμέτρων

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

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values

Ορίστε τις συντονίσιμες περιοχές υπερπαραμέτρων

Στη συνέχεια ορίζουμε τα εύρη υπερπαραμέτρων που πρέπει να είναι βελτιστοποιημένη με αυτόματο συντονισμό μοντέλου. Ορίζουμε το όνομα της υπερπαραμέτρου όπως αναμένεται από το μοντέλο και, στη συνέχεια, τα εύρη τιμών που θα δοκιμαστούν για αυτήν την υπερπαράμετρο. Ο αυτόματος συντονισμός μοντέλου αντλεί δείγματα (ίσα με το max_jobs παράμετρος) από το χώρο των υπερπαραμέτρων, χρησιμοποιώντας μια τεχνική που ονομάζεται Bayesian search. Για κάθε τραβηγμένο δείγμα υπερπαραμέτρου, ο δέκτης δημιουργεί μια εργασία εκπαίδευσης για την αξιολόγηση του μοντέλου με αυτήν τη διαμόρφωση. Δείτε τον παρακάτω κώδικα:

hyperparameter_ranges = {
    "learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
    "num_boost_round": IntegerParameter(2, 30),
    "early_stopping_rounds": IntegerParameter(2, 30),
    "num_leaves": IntegerParameter(10, 50),
    "feature_fraction": ContinuousParameter(0, 1),
    "bagging_fraction": ContinuousParameter(0, 1),
    "bagging_freq": IntegerParameter(1, 10),
    "max_depth": IntegerParameter(5, 30),
    "min_data_in_leaf": IntegerParameter(5, 50),
}

Εκκινήστε τον αυτόματο συντονισμό μοντέλου

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

Η HyperparameterTuner δέχεται ως παραμέτρους το αντικείμενο Εκτιμητής, τη μετρική στόχο βάσει της οποίας αποφασίζεται το καλύτερο σύνολο υπερπαραμέτρων, τον συνολικό αριθμό εργασιών εκπαίδευσης (max_jobs) για να ξεκινήσετε για την εργασία συντονισμού υπερπαραμέτρων και τις μέγιστες παράλληλες εργασίες εκπαίδευσης που θα εκτελεστούν (max_parallel_jobs). Οι εργασίες εκπαίδευσης εκτελούνται με τον αλγόριθμο LightGBM και τις τιμές υπερπαραμέτρου που έχουν τις ελάχιστες mlogloss επιλέγεται η μέτρηση. Για περισσότερες πληροφορίες σχετικά με τη διαμόρφωση του αυτόματου συντονισμού μοντέλου, βλ Βέλτιστες πρακτικές για συντονισμό υπερπαραμέτρων.

# Create SageMaker Estimator instance
tabular_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
) tuner = HyperparameterTuner(
    estimator=tabular_estimator,
    objective_metric_name="multi_logloss",
    hyperparameter_ranges=hyperparameter_ranges,
    metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=2,
    objective_type="Minimize",
    base_tuning_job_name=training_job_name,
)

Στον προηγούμενο κώδικα, λέμε στον δέκτη να εκτελέσει το πολύ 10 πειράματα (max_jobs) και μόνο δύο ταυτόχρονα πειράματα κάθε φορά (max_parallel_jobs). Και οι δύο αυτές παράμετροι κρατούν υπό έλεγχο το κόστος και τον χρόνο προπόνησής σας.

Εκτελέστε την εργασία συντονισμού

Για να ξεκινήσουμε την εργασία συντονισμού του SageMaker, καλούμε τη μέθοδο προσαρμογής του αντικειμένου συντονισμού υπερπαραμέτρων και περνάμε το Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) διαδρομή των δεδομένων εκπαίδευσης:

tuner.fit({"training": training_dataset_s3_path}, logs=True)

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

Αναπτύξτε το καλύτερο μοντέλο σε ένα τελικό σημείο

Όταν ολοκληρωθεί η εργασία συντονισμού, το καλύτερο μοντέλο έχει επιλεγεί και αποθηκευτεί στο Amazon S3. Μπορούμε τώρα να αναπτύξουμε αυτό το μοντέλο καλώντας τη μέθοδο ανάπτυξης του HyperparameterTuner αντικείμενο και μεταβίβαση των απαραίτητων παραμέτρων, όπως ο αριθμός των παρουσιών που θα χρησιμοποιηθούν για το δημιουργημένο τελικό σημείο, ο τύπος τους, η εικόνα που θα αναπτυχθεί και το σενάριο που θα εκτελεστεί:

tuner.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    entry_point="inference.py",
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    endpoint_name=endpoint_name,
    enable_network_isolation=True
)

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

Συμπέρασμα

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

Σε αυτήν την ανάρτηση, δείξαμε την αξία της εκτέλεσης αυτόματου συντονισμού μοντέλων σε ένα προεκπαιδευμένο μοντέλο του JumpStart χρησιμοποιώντας SageMaker API. Χρησιμοποιήσαμε τον αλγόριθμο LightGBM και ορίσαμε το πολύ 10 εργασίες εκπαίδευσης. Παρέχαμε επίσης συνδέσμους για παραδείγματα σημειωματάριων που παρουσιάζουν τα πλαίσια ML που υποστηρίζουν τη βελτιστοποίηση μοντέλων JumpStart.

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


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

Εκτελέστε αυτόματο συντονισμό μοντέλων με το Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Νταγκ Μπάγια είναι αρχιτέκτονας Senior Partner Solution με έμφαση στα δεδομένα και την ανάλυση. Ο Doug συνεργάζεται στενά με τους συνεργάτες της AWS, βοηθώντας τους να ενσωματώσουν λύσεις δεδομένων και αναλυτικών στοιχείων στο cloud.

Εκτελέστε αυτόματο συντονισμό μοντέλων με το Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Kruthi Jayasimha Ράο είναι Αρχιτέκτονας Partner Solutions στην ομάδα Scale-PSA. Η Kruthi πραγματοποιεί τεχνικές επικυρώσεις για τους Συνεργάτες, επιτρέποντάς τους να προχωρήσουν στη Διαδρομή Συνεργατών.

Εκτελέστε αυτόματο συντονισμό μοντέλων με το Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Γιάννης Μητρόπουλος είναι Μηχανικός Ανάπτυξης Λογισμικού για τη SageMaker Αυτόματος συντονισμός μοντέλου.

Εκτελέστε αυτόματο συντονισμό μοντέλων με το Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Δρ Ashish Khetan είναι Ανώτερος Εφαρμοσμένος Επιστήμονας με Amazon SageMaker JumpStart και  Ενσωματωμένοι αλγόριθμοι Amazon SageMaker και βοηθά στην ανάπτυξη αλγορίθμων μηχανικής μάθησης. Είναι ενεργός ερευνητής στη μηχανική μάθηση και στα στατιστικά συμπεράσματα και έχει δημοσιεύσει πολλές εργασίες σε συνέδρια NeurIPS, ICML, ICLR, JMLR και ACL.

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

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