Νέοι ενσωματωμένοι αλγόριθμοι Amazon SageMaker για μοντελοποίηση δεδομένων σε πίνακα: LightGBM, CatBoost, AutoGluon-Tabular και TabTransformer

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

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

Από σήμερα, το SageMaker παρέχει τέσσερις νέους ενσωματωμένους αλγόριθμους μοντελοποίησης δεδομένων σε πίνακα: LightGBM, CatBoost, AutoGluon-Tabular και TabTransformer. Μπορείτε να χρησιμοποιήσετε αυτούς τους δημοφιλείς, προηγμένους αλγόριθμους τόσο για εργασίες ταξινόμησης πινάκων όσο και για εργασίες παλινδρόμησης. Είναι διαθέσιμα μέσω του ενσωματωμένοι αλγόριθμοι στην κονσόλα SageMaker καθώς και μέσω του Amazon SageMaker JumpStart UI μέσα Στούντιο Amazon SageMaker.

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

Απόδειξη με έγγραφα Παραδείγματα φορητών υπολογιστών Πηγή
Αλγόριθμος LightGBM Οπισθοδρόμηση, Ταξινόμηση LightGBM
Αλγόριθμος CatBoost Οπισθοδρόμηση, Ταξινόμηση CatBoost
Αλγόριθμος AutoGluon-Tabular Οπισθοδρόμηση, Ταξινόμηση AutoGluon-Tabular
Αλγόριθμος TabTransformer Οπισθοδρόμηση, Ταξινόμηση TabTransformer

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

LightGBM

LightGBM είναι μια δημοφιλής και αποτελεσματική εφαρμογή ανοιχτού κώδικα του αλγόριθμου Gradient Boosting Decision Tree (GBDT). Ο GBDT είναι ένας εποπτευόμενος αλγόριθμος μάθησης που επιχειρεί να προβλέψει με ακρίβεια μια μεταβλητή στόχο συνδυάζοντας ένα σύνολο εκτιμήσεων από ένα σύνολο απλούστερων και ασθενέστερων μοντέλων. Το LightGBM χρησιμοποιεί πρόσθετες τεχνικές για να βελτιώσει σημαντικά την αποτελεσματικότητα και την επεκτασιμότητα του συμβατικού GBDT.

CatBoost

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

AutoGluon-Tabular

AutoGluon-Tabular είναι ένα έργο AutoML ανοιχτού κώδικα που αναπτύχθηκε και διατηρείται από την Amazon, το οποίο εκτελεί προηγμένη επεξεργασία δεδομένων, βαθιά εκμάθηση και σύνθεση στοίβας πολλαπλών επιπέδων. Αναγνωρίζει αυτόματα τον τύπο δεδομένων σε κάθε στήλη για ισχυρή προεπεξεργασία δεδομένων, συμπεριλαμβανομένου του ειδικού χειρισμού των πεδίων κειμένου. Το AutoGluon ταιριάζει σε διάφορα μοντέλα που κυμαίνονται από δέντρα με ενισχυμένα ράφι μέχρι προσαρμοσμένα μοντέλα νευρωνικών δικτύων. Αυτά τα μοντέλα συναρμολογούνται με έναν καινοτόμο τρόπο: τα μοντέλα στοιβάζονται σε πολλαπλά επίπεδα και εκπαιδεύονται με τρόπο επίπεδο επιπέδου που εγγυάται ότι τα ανεπεξέργαστα δεδομένα μπορούν να μεταφραστούν σε προβλέψεις υψηλής ποιότητας εντός ενός δεδομένου χρονικού περιορισμού. Η υπερβολική προσαρμογή μετριάζεται καθ' όλη τη διάρκεια αυτής της διαδικασίας με το διαχωρισμό των δεδομένων με διάφορους τρόπους με την προσεκτική παρακολούθηση παραδειγμάτων που δεν είναι διπλό. Το AutoGluon είναι βελτιστοποιημένο για απόδοση και η χρήση του εκτός συσκευασίας έχει επιτύχει αρκετές θέσεις κορυφαίων 3 και 10 σε διαγωνισμούς επιστήμης δεδομένων.

TabTransformer

TabTransformer είναι μια νέα αρχιτεκτονική μοντελοποίησης δεδομένων με βαθιές πινακίδες για εποπτευόμενη μάθηση. Το TabTransformer είναι κατασκευασμένο πάνω σε Transformers που βασίζονται στην αυτοπροσοχή. Τα επίπεδα μετασχηματιστή μετατρέπουν τις ενσωματώσεις κατηγορικών χαρακτηριστικών σε ισχυρές ενσωματώσεις με βάση τα συμφραζόμενα για την επίτευξη υψηλότερης ακρίβειας πρόβλεψης. Επιπλέον, οι ενσωματώσεις με βάση τα συμφραζόμενα που μάθαμε από το TabTransformer είναι εξαιρετικά ανθεκτικές τόσο σε λειτουργίες δεδομένων που λείπουν όσο και σε θορυβώδη χαρακτηριστικά και παρέχουν καλύτερη ερμηνεία. Αυτό το μοντέλο είναι προϊόν πρόσφατου Επιστήμη του Αμαζονίου έρευνας (χαρτί και επίσημο ανάρτηση εδώ) και έχει υιοθετηθεί ευρέως από την κοινότητα ML, με διάφορες υλοποιήσεις τρίτων (KerasAutoGluon,) και λειτουργίες κοινωνικών μέσων όπως tweetsπρος την επιστήμη των δεδομένων, μεσαίο και Kaggle.

Πλεονεκτήματα των ενσωματωμένων αλγορίθμων SageMaker

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

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

Ας δούμε τώρα πώς να εκπαιδεύσετε έναν από αυτούς τους ενσωματωμένους αλγόριθμους.

Εκπαιδεύστε έναν ενσωματωμένο αλγόριθμο χρησιμοποιώντας το SageMaker SDK

Για να εκπαιδεύσουμε ένα επιλεγμένο μοντέλο, πρέπει να λάβουμε το URI αυτού του μοντέλου, καθώς και αυτό του σεναρίου εκπαίδευσης και της εικόνας του κοντέινερ που χρησιμοποιείται για την εκπαίδευση. Ευτυχώς, αυτές οι τρεις είσοδοι εξαρτώνται αποκλειστικά από το όνομα του μοντέλου, την έκδοση (για μια λίστα με τα διαθέσιμα μοντέλα, βλ. Διαθέσιμος πίνακας μοντέλων JumpStart), και τον τύπο του στιγμιότυπου στο οποίο θέλετε να εκπαιδεύσετε. Αυτό αποδεικνύεται στο ακόλουθο απόσπασμα κώδικα:

from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "lightgbm-classification-model", "*", "training"
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 model artifact; in the tabular case, the model is not pre-trained train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

Η train_model_id αλλαγές σε lightgbm-regression-model αν έχουμε να κάνουμε με πρόβλημα παλινδρόμησης. Τα αναγνωριστικά για όλα τα άλλα μοντέλα που παρουσιάζονται σε αυτήν την ανάρτηση παρατίθενται στον παρακάτω πίνακα.

Μοντέλο Τύπος προβλήματος Αναγνωριστικό μοντέλου
LightGBM Ταξινόμηση lightgbm-classification-model
. Οπισθοδρόμηση lightgbm-regression-model
CatBoost Ταξινόμηση catboost-classification-model
. Οπισθοδρόμηση catboost-regression-model
AutoGluon-Tabular Ταξινόμηση autogluon-classification-ensemble
. Οπισθοδρόμηση autogluon-regression-ensemble
TabTransformer Ταξινόμηση pytorch-tabtransformerclassification-model
. Οπισθοδρόμηση pytorch-tabtransformerregression-model

Στη συνέχεια ορίζουμε πού είναι η είσοδος μας Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3). Χρησιμοποιούμε ένα δημόσιο δείγμα δεδομένων για αυτό το παράδειγμα. Καθορίζουμε επίσης πού θέλουμε να πάει η έξοδος μας και ανακτούμε την προεπιλεγμένη λίστα των υπερπαραμέτρων που απαιτούνται για την εκπαίδευση του επιλεγμένου μοντέλου. Μπορείτε να αλλάξετε την αξία τους σύμφωνα με τις προτιμήσεις σας.

import sagemaker
from sagemaker import hyperparameters sess = sagemaker.Session()
region = sess.boto_session.region_name # URI of sample training dataset
training_dataset_s3_path = f"s3:///jumpstart-cache-prod-{region}/training-datasets/tabular_multiclass/" # URI for output artifacts output_bucket = sess.default_bucket()
s3_output_location = f"s3://{output_bucket}/jumpstart-example-tabular-training/output" # Retrieve the default hyper-parameters for training
hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version
) # [Optional] Override default hyperparameters with custom values
hyperparameters[ "num_boost_round"
] = "500" # The same hyperparameter is named as "iterations" for CatBoost

Τέλος, εγκαινιάζουμε ένα SageMaker Estimator με όλες τις ανακτημένες εισόδους και ξεκινήστε την εργασία εκπαίδευσης με .fit, μεταβιβάζοντάς το URI συνόλου δεδομένων εκπαίδευσης. ο entry_point Το σενάριο που παρέχεται ονομάζεται transfer_learning.py (το ίδιο για άλλες εργασίες και αλγόριθμους) και το κανάλι δεδομένων εισόδου μεταβιβάστηκε στο .fit πρέπει να κατονομαστεί training.

from sagemaker.estimator import Estimator
from sagemaker.utils import name_from_base # Unique training job name
training_job_name = name_from_base(f"built-in-example-{model_id}") # Create SageMaker Estimator instance
tc_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,
) # Launch a SageMaker Training job by passing s3 path of the training data
tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)

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

Εκπαιδεύστε έναν ενσωματωμένο αλγόριθμο χρησιμοποιώντας το SageMaker JumpStart

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

Για περισσότερες πληροφορίες, ανατρέξτε στο Εκτελέστε ταξινόμηση κειμένου με το Amazon SageMaker JumpStart χρησιμοποιώντας μοντέλα TensorFlow Hub και Hugging Face.

Συμπέρασμα

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

Φέρτε το δικό σας σύνολο δεδομένων και δοκιμάστε αυτούς τους νέους αλγόριθμους στο SageMaker και δείτε τα δείγματα σημειωματάριων για να χρησιμοποιήσετε ενσωματωμένους αλγόριθμους που είναι διαθέσιμοι στο GitHub.


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

Δόκτωρ Σιν Χουάνγκ είναι Applied Scientist για τους ενσωματωμένους αλγόριθμους Amazon SageMaker JumpStart και Amazon SageMaker. Επικεντρώνεται στην ανάπτυξη κλιμακούμενων αλγορίθμων μηχανικής μάθησης. Τα ερευνητικά του ενδιαφέροντα είναι στον τομέα της επεξεργασίας φυσικής γλώσσας, της εξηγήσιμης βαθιάς εκμάθησης σε δεδομένα πινάκων και της ισχυρής ανάλυσης της μη παραμετρικής ομαδοποίησης χωροχρόνου. Έχει δημοσιεύσει πολλές εργασίες σε συνέδρια ACL, ICDM, KDD και Royal Statistical Society: Series A.

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

Τζοάο Μούρα είναι Αρχιτέκτονας Ειδικών Λύσεων AI/ML στο Amazon Web Services. Επικεντρώνεται κυρίως σε περιπτώσεις χρήσης NLP και βοηθά τους πελάτες να βελτιστοποιήσουν την εκπαίδευση και την ανάπτυξη του μοντέλου Deep Learning. Είναι επίσης ενεργός υποστηρικτής των λύσεων ML χαμηλού κώδικα και του υλικού εξειδικευμένου για ML.

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

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