Η τεχνητή νοημοσύνη (AI) έχει γίνει ένα σημαντικό και δημοφιλές θέμα στην τεχνολογική κοινότητα. Καθώς η τεχνητή νοημοσύνη έχει εξελιχθεί, έχουμε δει να εμφανίζονται διαφορετικοί τύποι μοντέλων μηχανικής μάθησης (ML). Μια προσέγγιση, γνωστή ως μοντελοποίηση συνόλου, έχει κερδίσει γρήγορα έλξη μεταξύ των επιστημόνων δεδομένων και των επαγγελματιών. Σε αυτήν την ανάρτηση, συζητάμε τι είναι τα μοντέλα συνόλου και γιατί η χρήση τους μπορεί να είναι ευεργετική. Στη συνέχεια, παρέχουμε ένα παράδειγμα για το πώς μπορείτε να εκπαιδεύσετε, να βελτιστοποιήσετε και να αναπτύξετε τα προσαρμοσμένα σύνολά σας χρησιμοποιώντας Amazon Sage Maker.
Η εκμάθηση συνόλου αναφέρεται στη χρήση πολλαπλών μοντέλων και αλγορίθμων μάθησης για την απόκτηση ακριβέστερων προβλέψεων από οποιονδήποτε μεμονωμένο, μεμονωμένο αλγόριθμο μάθησης. Έχει αποδειχθεί ότι είναι αποτελεσματικά σε διάφορες εφαρμογές και περιβάλλοντα μάθησης όπως η ασφάλεια στον κυβερνοχώρο [1] και ο εντοπισμός απάτης, η τηλεπισκόπηση, η πρόβλεψη των καλύτερων επόμενων βημάτων στη λήψη οικονομικών αποφάσεων, η ιατρική διάγνωση, ακόμη και η όραση υπολογιστή και η επεξεργασία φυσικής γλώσσας (NLP). καθήκοντα. Τείνουμε να κατηγοριοποιούμε τα σύνολα με βάση τις τεχνικές που χρησιμοποιούνται για την εκπαίδευσή τους, τη σύνθεσή τους και τον τρόπο που συγχωνεύουν τις διαφορετικές προβλέψεις σε ένα ενιαίο συμπέρασμα. Αυτές οι κατηγορίες περιλαμβάνουν:
- Ενίσχυση – Εκπαίδευση διαδοχικά πολλών αδύναμων μαθητών, όπου σε κάθε λανθασμένη πρόβλεψη από προηγούμενους μαθητές στη σειρά δίνεται μεγαλύτερη βαρύτητα και συμβολή στον επόμενο μαθητή, δημιουργώντας έτσι έναν πιο δυνατό μαθητή. Παραδείγματα περιλαμβάνουν το AdaBoost, το Gradient Boosting και το XGBoost.
- Σακκόπανο – Χρησιμοποιεί πολλαπλά μοντέλα για να μειώσει τη διακύμανση ενός μεμονωμένου μοντέλου. Παραδείγματα περιλαμβάνουν το Random Forest και τα Extra Trees.
- Στοίβαξη (ανάμιξη) – Χρησιμοποιεί συχνά ετερογενή μοντέλα, όπου οι προβλέψεις κάθε μεμονωμένου εκτιμητή στοιβάζονται μαζί και χρησιμοποιούνται ως είσοδος σε έναν τελικό εκτιμητή που χειρίζεται την πρόβλεψη. Αυτή η διαδικασία εκπαίδευσης του τελικού εκτιμητή χρησιμοποιεί συχνά διασταυρούμενη επικύρωση.
Υπάρχουν πολλές μέθοδοι συνδυασμού των προβλέψεων σε μία που παράγει τελικά το μοντέλο, για παράδειγμα, χρησιμοποιώντας έναν μετα-εκτιμητή όπως ο γραμμικός εκπαιδευόμενος, μια μέθοδος ψηφοφορίας που χρησιμοποιεί πολλαπλά μοντέλα για να κάνει μια πρόβλεψη με βάση την πλειοψηφία για εργασίες ταξινόμησης, ή ένα σύνολο με μέσο όρο για παλινδρόμηση.
Αν και αρκετές βιβλιοθήκες και πλαίσια παρέχουν υλοποιήσεις μοντέλων συνόλων, όπως το XGBoost, το CatBoost ή το τυχαίο δάσος του scikit-learn, σε αυτήν την ανάρτηση εστιάζουμε στο να φέρετε τα δικά σας μοντέλα και να τα χρησιμοποιήσετε ως σύνολο στοίβαξης. Ωστόσο, αντί να χρησιμοποιούμε αποκλειστικούς πόρους για κάθε μοντέλο (αποκλειστικές εργασίες εκπαίδευσης και συντονισμού και φιλοξενία τελικών σημείων ανά μοντέλο), εκπαιδεύουμε, συντονίζουμε και αναπτύσσουμε ένα προσαρμοσμένο σύνολο (πολλά μοντέλα) χρησιμοποιώντας μία εργασία εκπαίδευσης SageMaker και μία εργασία συντονισμού και ανάπτυξη σε ένα μόνο τελικό σημείο, μειώνοντας έτσι το πιθανό κόστος και τα λειτουργικά έξοδα.
BYOE: Φέρτε το δικό σας σύνολο
Υπάρχουν διάφοροι τρόποι εκπαίδευσης και ανάπτυξης ετερογενών μοντέλων συνόλων με το SageMaker: μπορείτε να εκπαιδεύσετε κάθε μοντέλο σε ξεχωριστή εργασία κατάρτισης και βελτιστοποιήστε κάθε μοντέλο ξεχωριστά χρησιμοποιώντας Αυτόματος συντονισμός μοντέλων Amazon SageMaker. Κατά τη φιλοξενία αυτών των μοντέλων, το SageMaker παρέχει διάφορους οικονομικά αποδοτικούς τρόπους φιλοξενίας πολλαπλών μοντέλων στην ίδια υποδομή μισθωτή. Λεπτομερή μοτίβα ανάπτυξης για αυτού του είδους τις ρυθμίσεις μπορείτε να βρείτε στο Μοτίβα φιλοξενίας μοντέλων στο Amazon SageMaker, Μέρος 1: Κοινά μοτίβα σχεδίασης για τη δημιουργία εφαρμογών ML στο Amazon SageMaker. Αυτά τα μοτίβα περιλαμβάνουν τη χρήση πολλαπλών τελικών σημείων (για κάθε εκπαιδευμένο μοντέλο) ή ενός μεμονωμένου τελικό σημείο πολλαπλών μοντέλων, ή ακόμα και ένα single τελικό σημείο πολλαπλών κοντέινερ όπου τα εμπορευματοκιβώτια μπορούν να κληθούν μεμονωμένα ή να συνδεθούν με αλυσίδα σε αγωγό. Όλες αυτές οι λύσεις περιλαμβάνουν έναν μετα-εκτιμητή (για παράδειγμα σε ένα AWS Lambda συνάρτηση) που καλεί κάθε μοντέλο και υλοποιεί τη συνάρτηση ανάμειξης ή ψηφοφορίας.
Ωστόσο, η εκτέλεση πολλαπλών εργασιών εκπαίδευσης μπορεί να οδηγήσει σε λειτουργικά έξοδα και έξοδα, ειδικά εάν το σύνολό σας απαιτεί εκπαίδευση στα ίδια δεδομένα. Ομοίως, η φιλοξενία διαφορετικών μοντέλων σε ξεχωριστά τελικά σημεία ή κοντέινερ και ο συνδυασμός των αποτελεσμάτων πρόβλεψής τους για καλύτερη ακρίβεια απαιτεί πολλαπλές επικλήσεις και επομένως εισάγει πρόσθετες προσπάθειες διαχείρισης, κόστους και παρακολούθησης. Για παράδειγμα, το SageMaker υποστηρίζει συνόλων ML μοντέλων χρησιμοποιώντας Triton Inference Server, αλλά αυτή η λύση απαιτεί τα μοντέλα ή τα σύνολα μοντέλων να υποστηρίζονται από το backend Triton. Επιπλέον, απαιτούνται πρόσθετες προσπάθειες από τον πελάτη για τη ρύθμιση του διακομιστή Triton και πρόσθετη εκμάθηση για την κατανόηση του τρόπου λειτουργίας των διαφορετικών πλαισίων υποστήριξης Triton. Ως εκ τούτου, οι πελάτες προτιμούν έναν πιο απλό τρόπο εφαρμογής λύσεων όπου χρειάζεται μόνο να στείλουν την επίκληση μία φορά στο τελικό σημείο και να έχουν την ευελιξία να ελέγχουν πώς συγκεντρώνονται τα αποτελέσματα για να δημιουργήσουν το τελικό αποτέλεσμα.
Επισκόπηση λύσεων
Για να αντιμετωπίσουμε αυτές τις ανησυχίες, παρουσιάζουμε ένα παράδειγμα εκπαίδευσης συνόλου χρησιμοποιώντας μια εργασία εκπαίδευσης, βελτιστοποιώντας τις υπερπαραμέτρους του μοντέλου και αναπτύσσοντάς το χρησιμοποιώντας ένα μόνο κοντέινερ σε ένα τελικό σημείο χωρίς διακομιστή. Χρησιμοποιούμε δύο μοντέλα για τη στοίβα συνόλου μας: CatBoost και XGBoost (και τα δύο είναι ενισχυτικά σύνολα). Για τα δεδομένα μας, χρησιμοποιούμε το σύνολο δεδομένων διαβήτη [2] από τη βιβλιοθήκη scikit-learn: Αποτελείται από 10 χαρακτηριστικά (ηλικία, φύλο, μάζα σώματος, αρτηριακή πίεση και έξι μετρήσεις ορού αίματος) και το μοντέλο μας προβλέπει την εξέλιξη της νόσου 1 χρόνο μετά τη συλλογή των βασικών χαρακτηριστικών (μια παλινδρόμηση μοντέλο).
Μπορείτε να βρείτε το πλήρες αποθετήριο κωδικών στο GitHub.
Εκπαιδεύστε πολλά μοντέλα σε μία εργασία SageMaker
Για την εκπαίδευση των μοντέλων μας, χρησιμοποιούμε εκπαιδευτικές εργασίες SageMaker σε λειτουργία Script. Με τη λειτουργία Script, μπορείτε να γράψετε προσαρμοσμένη εκπαίδευση (και αργότερα κώδικα συμπερασμάτων) ενώ χρησιμοποιείτε κοντέινερ πλαισίου SageMaker. Τα κοντέινερ πλαισίου σάς επιτρέπουν να χρησιμοποιείτε έτοιμα περιβάλλοντα τα οποία διαχειρίζεται το AWS που περιλαμβάνουν όλες τις απαραίτητες ρυθμίσεις παραμέτρων και λειτουργικές μονάδες. Για να δείξουμε πώς μπορείτε να προσαρμόσετε ένα κοντέινερ πλαισίου, για παράδειγμα, χρησιμοποιούμε το προκατασκευασμένο κοντέινερ SKLearn, το οποίο δεν περιλαμβάνει τα πακέτα XGBoost και CatBoost. Υπάρχουν δύο επιλογές για να προσθέσετε αυτά τα πακέτα: είτε επεκτείνετε το ενσωματωμένο δοχείο για να εγκαταστήσετε το CatBoost και το XGBoost (και στη συνέχεια να το αναπτύξετε ως προσαρμοσμένο κοντέινερ) ή να χρησιμοποιήσετε τη δυνατότητα λειτουργίας σεναρίου εργασίας εκπαίδευσης SageMaker, η οποία σας επιτρέπει να παρέχετε requirements.txt
αρχείο κατά τη δημιουργία του εκτιμητή εκπαίδευσης. Η εργασία εκπαίδευσης SageMaker εγκαθιστά τις καταχωρημένες βιβλιοθήκες στο requirements.txt
αρχείο κατά τη διάρκεια του χρόνου εκτέλεσης. Με αυτόν τον τρόπο, δεν χρειάζεται να διαχειρίζεστε το δικό σας αποθετήριο εικόνων Docker και παρέχει μεγαλύτερη ευελιξία στην εκτέλεση σεναρίων εκπαίδευσης που χρειάζονται πρόσθετα πακέτα Python.
Το παρακάτω μπλοκ κώδικα δείχνει τον κώδικα που χρησιμοποιούμε για να ξεκινήσουμε την εκπαίδευση. ο entry_point
παράμετρος δείχνει το σενάριο προπόνησής μας. Χρησιμοποιούμε επίσης δύο από τις συναρπαστικές δυνατότητες του SageMaker SDK API:
- Αρχικά, καθορίζουμε την τοπική διαδρομή προς τον κατάλογο προέλευσης και τις εξαρτήσεις στο
source_dir
καιdependencies
παραμέτρους, αντίστοιχα. Το SDK θα συμπιέσει και θα ανεβάσει αυτούς τους καταλόγους σε Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) και το SageMaker θα τα διαθέσουν στην παρουσία εκπαίδευσης στον κατάλογο εργασίας/opt/ml/code
. - Δεύτερον, χρησιμοποιούμε το SDK
SKLearn
αντικείμενο εκτιμητή με την προτιμώμενη έκδοση Python και πλαίσιο, έτσι ώστε το SageMaker να τραβήξει το αντίστοιχο κοντέινερ. Έχουμε επίσης ορίσει μια προσαρμοσμένη μέτρηση εκπαίδευσης "validation:rmse
', τα οποία θα εκπέμπονται στα αρχεία καταγραφής εκπαίδευσης και θα καταγράφονται από το SageMaker. Αργότερα, χρησιμοποιούμε αυτή τη μέτρηση ως αντικειμενική μέτρηση στην εργασία συντονισμού.
hyperparameters = {"num_round": 6, "max_depth": 5}
estimator_parameters = {
"entry_point": "multi_model_hpo.py",
"source_dir": "code",
"dependencies": ["my_custom_library"],
"instance_type": training_instance_type,
"instance_count": 1,
"hyperparameters": hyperparameters,
"role": role,
"base_job_name": "xgboost-model",
"framework_version": "1.0-1",
"keep_alive_period_in_seconds": 60,
"metric_definitions":[
{'Name': 'validation:rmse', 'Regex': 'validation-rmse:(.*?);'}
]
}
estimator = SKLearn(**estimator_parameters)
Στη συνέχεια, γράφουμε το σενάριο εκπαίδευσης (multi_model_hpo.py). Το σενάριό μας ακολουθεί μια απλή ροή: σύλληψη υπερπαραμέτρων με το οποίο διαμορφώθηκε η εργασία και εκπαιδεύστε το μοντέλο CatBoost και Μοντέλο XGBoost. Εφαρμόζουμε επίσης α k-πτυχίο σταυρό συνάρτηση επικύρωσης. Δείτε τον παρακάτω κώδικα:
if __name__ == "__main__":
parser = argparse.ArgumentParser() # Sagemaker specific arguments. Defaults are set in the environment variables.
parser.add_argument("--output-data-dir", type=str, default=os.environ["SM_OUTPUT_DATA_DIR"])
parser.add_argument("--model-dir", type=str, default=os.environ["SM_MODEL_DIR"])
parser.add_argument("--train", type=str, default=os.environ["SM_CHANNEL_TRAIN"])
parser.add_argument("--validation", type=str, default=os.environ["SM_CHANNEL_VALIDATION"])
.
.
.
"""
Train catboost
"""
K = args.k_fold
catboost_hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
}
rmse_list, model_catboost = cross_validation_catboost(train_df, K, catboost_hyperparameters)
.
.
.
"""
Train the XGBoost model
""" hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
"objective": args.objective,
"num_round": args.num_round,
} rmse_list, model_xgb = cross_validation(train_df, K, hyperparameters)
Αφού εκπαιδευτούν τα μοντέλα, υπολογίζουμε τον μέσο όρο των προβλέψεων CatBoost και XGBoost. Το αποτέλεσμα, pred_mean
, είναι η τελική πρόβλεψη του συνόλου μας. Στη συνέχεια, καθορίζουμε το mean_squared_error
έναντι του συνόλου επικύρωσης. val_rmse
χρησιμοποιείται για την αξιολόγηση όλου του συνόλου κατά τη διάρκεια της προπόνησης. Σημειώστε ότι εκτυπώνουμε επίσης την τιμή RMSE σε ένα μοτίβο που ταιριάζει στο regex που χρησιμοποιήσαμε στο metric_definitions
. Αργότερα, το SageMaker Automatic Model Tuning θα το χρησιμοποιήσει για να καταγράψει την αντικειμενική μέτρηση. Δείτε τον παρακάτω κώδικα:
pred_mean = np.mean(np.array([pred_catboost, pred_xgb]), axis=0)
val_rmse = mean_squared_error(y_validation, pred_mean, squared=False)
print(f"Final evaluation result: validation-rmse:{val_rmse}")
Τέλος, το σενάριό μας αποθηκεύει και τα δύο τεχνουργήματα του μοντέλου στον φάκελο εξόδου που βρίσκεται στο /opt/ml/model
.
Όταν ολοκληρωθεί μια εργασία εκπαίδευσης, το SageMaker συσκευάζει και αντιγράφει το περιεχόμενο του /opt/ml/model
κατάλογο ως ένα μεμονωμένο αντικείμενο σε συμπιεσμένη μορφή TAR στη θέση S3 που καθορίσατε στη διαμόρφωση εργασίας. Στην περίπτωσή μας, το SageMaker ομαδοποιεί τα δύο μοντέλα σε ένα αρχείο TAR και το ανεβάζει στο Amazon S3 στο τέλος της εργασίας εκπαίδευσης. Δείτε τον παρακάτω κώδικα:
model_file_name = 'catboost-regressor-model.dump'
# Save CatBoost model
path = os.path.join(args.model_dir, model_file_name)
print('saving model file to {}'.format(path))
model.save_model(path)
.
.
.
# Save XGBoost model
model_location = args.model_dir + "/xgboost-model"
pickle.dump(model, open(model_location, "wb"))
logging.info("Stored trained model at {}".format(model_location))
Συνοπτικά, θα πρέπει να παρατηρήσετε ότι σε αυτή τη διαδικασία κατεβάσαμε τα δεδομένα μία φορά και εκπαιδεύσαμε δύο μοντέλα χρησιμοποιώντας μία μόνο εργασία εκπαίδευσης.
Αυτόματο συντονισμό μοντέλου συνόλου
Επειδή δημιουργούμε μια συλλογή μοντέλων ML, η εξερεύνηση όλων των πιθανών μεταθέσεων υπερπαραμέτρων δεν είναι πρακτική. Προσφορές SageMaker Αυτόματος συντονισμός μοντέλου (AMT), το οποίο αναζητά τις καλύτερες υπερπαραμέτρους μοντέλου εστιάζοντας στους πιο πολλά υποσχόμενους συνδυασμούς τιμών εντός των περιοχών που καθορίζετε (εναπόκειται σε εσάς να ορίσετε τα σωστά εύρη προς εξερεύνηση). Το SageMaker υποστηρίζει πολλαπλές μεθόδους βελτιστοποίησης για να μπορείτε να διαλέξετε.
Ξεκινάμε ορίζοντας τα δύο μέρη της διαδικασίας βελτιστοποίησης: την αντικειμενική μέτρηση και τις υπερπαράμετρους που θέλουμε να συντονίσουμε. Στο παράδειγμά μας, χρησιμοποιούμε την επικύρωση RMSE ως μέτρηση στόχου και συντονίζουμε eta
και max_depth
(για άλλες υπερπαράμετρους, ανατρέξτε στο Υπερπαραμέτρους XGBoost και Υπερπαράμετροι CatBoost):
from sagemaker.tuner import (
IntegerParameter,
ContinuousParameter,
HyperparameterTuner,
) hyperparameter_ranges = {
"eta": ContinuousParameter(0.2, 0.3),
"max_depth": IntegerParameter(3, 4)
}
metric_definitions = [{"Name": "validation:rmse", "Regex": "validation-rmse:([0-9.]+)"}]
objective_metric_name = "validation:rmse"
Πρέπει επίσης να διασφαλίσουμε στο σενάριο εκπαίδευσης ότι οι υπερπαράμετροι μας δεν είναι κωδικοποιημένες και αντλούνται από τα ορίσματα χρόνου εκτέλεσης του SageMaker:
catboost_hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
}
Το SageMaker γράφει επίσης τις υπερπαραμέτρους σε ένα αρχείο JSON και μπορεί να διαβαστεί από αυτό /opt/ml/input/config/hyperparameters.json
στην περίπτωση της εκπαίδευσης.
Όπως το CatBoost, καταγράφουμε επίσης τις υπερπαραμέτρους για το μοντέλο XGBoost (προσέξτε το objective
και num_round
δεν είναι συντονισμένοι):
catboost_hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
}
Τέλος, ξεκινάμε την εργασία συντονισμού υπερπαραμέτρων χρησιμοποιώντας αυτές τις διαμορφώσεις:
tuner = HyperparameterTuner(
estimator,
objective_metric_name,
hyperparameter_ranges,
max_jobs=4,
max_parallel_jobs=2,
objective_type='Minimize'
)
tuner.fit({"train": train_location, "validation": validation_location}, include_cls_metadata=False)
Όταν ολοκληρωθεί η εργασία, μπορείτε να ανακτήσετε τις τιμές για την καλύτερη εργασία εκπαίδευσης (με ελάχιστο RMSE):
job_name=tuner.latest_tuning_job.name
attached_tuner = HyperparameterTuner.attach(job_name)
attached_tuner.describe()["BestTrainingJob"]
Για περισσότερες πληροφορίες σχετικά με το AMT, ανατρέξτε στο Εκτελέστε αυτόματο συντονισμό μοντέλου με το SageMaker.
Ανάπτυξη
Για να αναπτύξουμε το προσαρμοσμένο μας σύνολο, πρέπει να παρέχουμε ένα σενάριο για να χειριστούμε το αίτημα συμπερασμάτων και να διαμορφώσουμε τη φιλοξενία του SageMaker. Σε αυτό το παράδειγμα, χρησιμοποιήσαμε ένα μόνο αρχείο που περιλαμβάνει και τον κώδικα εκπαίδευσης και συμπερασμάτων (multi_model_hpo.py). Το SageMaker χρησιμοποιεί τον κωδικό κάτω από το if _ name _ == "_ main _"
για την εκπαίδευση και τις λειτουργίες model_fn
, input_fn
, να predict_fn
κατά την ανάπτυξη και εξυπηρέτηση του μοντέλου.
Σενάριο συμπερασμάτων
Όπως και με την εκπαίδευση, χρησιμοποιούμε το κοντέινερ πλαισίου SageMaker SKLearn με το δικό μας σενάριο συμπερασμάτων. Το σενάριο θα εφαρμόσει τρεις μεθόδους που απαιτούνται από το SageMaker.
Πρώτον, η model_fn
Η μέθοδος διαβάζει τα αποθηκευμένα αρχεία τεχνουργημάτων μοντέλων και τα φορτώνει στη μνήμη. Στην περίπτωσή μας, η μέθοδος επιστρέφει το σύνολο μας ως all_model
, που είναι μια λίστα Python, αλλά μπορείτε επίσης να χρησιμοποιήσετε ένα λεξικό με ονόματα μοντέλων ως κλειδιά.
def model_fn(model_dir):
catboost_model = CatBoostRegressor()
catboost_model.load_model(os.path.join(model_dir, model_file_name))
model_file = "xgboost-model"
model = pickle.load(open(os.path.join(model_dir, model_file), "rb"))
all_model = [catboost_model, model]
return all_model
Δεύτερον, η input_fn
Η μέθοδος εκτοπίζει τα δεδομένα εισόδου αιτήματος που πρέπει να διαβιβαστούν στον χειριστή συμπερασμάτων μας. Για περισσότερες πληροφορίες σχετικά με τους χειριστές εισόδου, ανατρέξτε στο Προσαρμογή του δικού σας κοντέινερ συμπερασμάτων.
def input_fn(input_data, content_type):
dtype=None
payload = StringIO(input_data)
return np.genfromtxt(payload, dtype=dtype, delimiter=",")
Τρίτον, η predict_fn
Η μέθοδος είναι υπεύθυνη για τη λήψη προβλέψεων από τα μοντέλα. Η μέθοδος παίρνει το μοντέλο και τα δεδομένα που επιστρέφονται από input_fn
ως παραμέτρους και επιστρέφει την τελική πρόβλεψη. Στο παράδειγμά μας, παίρνουμε το αποτέλεσμα CatBoost από το πρώτο μέλος της λίστας μοντέλων (model[0]
) και το XGBoost από το δεύτερο μέλος (model[1]
), και χρησιμοποιούμε μια συνάρτηση ανάμειξης που επιστρέφει τον μέσο όρο και των δύο προβλέψεων:
def predict_fn(input_data, model):
predictions_catb = model[0].predict(input_data)
dtest = xgb.DMatrix(input_data)
predictions_xgb = model[1].predict(dtest,
ntree_limit=getattr(model, "best_ntree_limit", 0),
validate_features=False)
return np.mean(np.array([predictions_catb, predictions_xgb]), axis=0)
Τώρα που έχουμε τα εκπαιδευμένα μοντέλα μας και το σενάριο συμπερασμάτων, μπορούμε να διαμορφώσουμε το περιβάλλον για να αναπτύξουμε το σύνολο μας.
Συμπεράσματα χωρίς διακομιστή SageMaker
Αν και υπάρχουν πολλές επιλογές φιλοξενίας στο SageMaker, σε αυτό το παράδειγμα, χρησιμοποιούμε ένα τελικό σημείο χωρίς διακομιστή. Τα τελικά σημεία χωρίς διακομιστή εκκινούν αυτόματα υπολογιστικούς πόρους και τους κλιμακώνουν μέσα και έξω ανάλογα με την κίνηση. Αυτό αφαιρεί την αδιαφοροποίητη βαρύτητα των διακομιστών διαχείρισης. Αυτή η επιλογή είναι ιδανική για φόρτους εργασίας που έχουν περιόδους αδράνειας μεταξύ εκρήξεων κυκλοφορίας και μπορούν να ανεχθούν ψυχρές εκκινήσεις.
Η διαμόρφωση του τερματικού σημείου χωρίς διακομιστή είναι απλή, επειδή δεν χρειάζεται να επιλέγουμε τύπους παρουσιών ή να διαχειριζόμαστε πολιτικές κλιμάκωσης. Χρειάζεται μόνο να παρέχουμε δύο παραμέτρους: μέγεθος μνήμης και μέγιστη ταυτόχρονη. Το τελικό σημείο χωρίς διακομιστή εκχωρεί αυτόματα υπολογιστικούς πόρους ανάλογα με τη μνήμη που επιλέγετε. Εάν επιλέξετε μεγαλύτερο μέγεθος μνήμης, το κοντέινερ σας έχει πρόσβαση σε περισσότερες vCPU. Θα πρέπει πάντα να επιλέγετε το μέγεθος της μνήμης του τελικού σας σημείου ανάλογα με το μέγεθος του μοντέλου σας. Η δεύτερη παράμετρος που πρέπει να παρέχουμε είναι η μέγιστη ταυτόχρονη. Για ένα μόνο τελικό σημείο, αυτή η παράμετρος μπορεί να ρυθμιστεί έως και 200 (από τη στιγμή που γράφονται αυτές οι γραμμές, το όριο για τον συνολικό αριθμό των τερματικών σημείων χωρίς διακομιστή σε μια Περιοχή είναι 50). Θα πρέπει να λάβετε υπόψη ότι η μέγιστη συγχρονισμός για ένα μεμονωμένο τελικό σημείο εμποδίζει αυτό το τελικό σημείο να δεχτεί όλες τις επιτρεπόμενες κλήσεις για τον λογαριασμό σας, επειδή οποιεσδήποτε κλήσεις τελικού σημείου πέραν του μέγιστου περιορίζονται (για περισσότερες πληροφορίες σχετικά με τη συνολική συγχρονισμό για όλα τα τελικά σημεία χωρίς διακομιστή ανά περιοχή, ανατρέξτε προς την Τελικά σημεία και ποσοστώσεις του Amazon SageMaker).
from sagemaker.serverless.serverless_inference_config import ServerlessInferenceConfig
serverless_config = ServerlessInferenceConfig(
memory_size_in_mb=6144,
max_concurrency=1,
)
Τώρα που διαμορφώσαμε το τελικό σημείο, μπορούμε τελικά να αναπτύξουμε το μοντέλο που επιλέχθηκε στην εργασία βελτιστοποίησης υπερπαραμέτρων:
estimator=attached_tuner.best_estimator()
predictor = estimator.deploy(serverless_inference_config=serverless_config)
εκκαθάριση
Παρόλο που τα τελικά σημεία χωρίς διακομιστή έχουν μηδενικό κόστος όταν δεν χρησιμοποιούνται, όταν ολοκληρώσετε την εκτέλεση αυτού του παραδείγματος, θα πρέπει να φροντίσετε να διαγράψετε το τελικό σημείο:
predictor.delete_endpoint(predictor.endpoint)
Συμπέρασμα
Σε αυτήν την ανάρτηση, καλύψαμε μια προσέγγιση για την εκπαίδευση, τη βελτιστοποίηση και την ανάπτυξη ενός προσαρμοσμένου συνόλου. Αναλύσαμε τη διαδικασία χρήσης μιας μεμονωμένης εργασίας εκπαίδευσης για την εκπαίδευση πολλών μοντέλων, τον τρόπο χρήσης του αυτόματου συντονισμού μοντέλων για τη βελτιστοποίηση των υπερπαραμέτρων του συνόλου και τον τρόπο ανάπτυξης ενός μόνο τερματικού σημείου χωρίς διακομιστή που συνδυάζει τα συμπεράσματα από πολλά μοντέλα.
Η χρήση αυτής της μεθόδου επιλύει πιθανά προβλήματα κόστους και λειτουργίας. Το κόστος μιας εργασίας εκπαίδευσης βασίζεται στους πόρους που χρησιμοποιείτε για τη διάρκεια χρήσης. Με τη λήψη των δεδομένων μόνο μία φορά για την εκπαίδευση των δύο μοντέλων, μειώσαμε κατά το ήμισυ τη φάση λήψης δεδομένων της εργασίας και τον χρησιμοποιούμενο όγκο που αποθηκεύει τα δεδομένα, μειώνοντας έτσι το συνολικό κόστος της εργασίας εκπαίδευσης. Επιπλέον, η εργασία AMT έτρεξε τέσσερις εργασίες εκπαίδευσης, καθεμία με τον προαναφερθέντα μειωμένο χρόνο και αποθήκευση, έτσι ώστε να αντιπροσωπεύουν 4 φορές εξοικονόμηση κόστους! Όσον αφορά την ανάπτυξη μοντέλου σε ένα τελικό σημείο χωρίς διακομιστή, επειδή πληρώνετε επίσης για την ποσότητα των δεδομένων που υποβάλλονται σε επεξεργασία, επικαλώντας το τελικό σημείο μόνο μία φορά για δύο μοντέλα, πληρώνετε το ήμισυ των χρεώσεων δεδομένων εισόδου/εξόδου.
Αν και αυτή η ανάρτηση έδειξε τα πλεονεκτήματα μόνο με δύο μοντέλα, μπορείτε να χρησιμοποιήσετε αυτήν τη μέθοδο για να εκπαιδεύσετε, να συντονίσετε και να αναπτύξετε πολλά μοντέλα συνόλου για να δείτε ακόμα μεγαλύτερο αποτέλεσμα.
αναφορές
[1] Raj Kumar, P. Arun; Selvakumar, S. (2011). «Κατανεμημένη ανίχνευση επίθεσης άρνησης υπηρεσίας χρησιμοποιώντας ένα σύνολο νευρωνικών ταξινομητών». Επικοινωνίες Υπολογιστών. 34 (11): 1328–1341. doi:10.1016/j.comcom.2011.01.012.
[2] Bradley Efron, Trevor Hastie, Iain Johnstone και Robert Tibshirani (2004) «Least Angle Regression», Annals of Statistics (με συζήτηση), 407-499. (https://web.stanford.edu/~hastie/Papers/LARS/LeastAngle_2002.pdf)
Σχετικά με τους Συγγραφείς
Melanie Li, PhD, είναι Ανώτερος Ειδικός AI/ML TAM στο AWS με έδρα το Σίδνεϊ της Αυστραλίας. Βοηθά εταιρικούς πελάτες να δημιουργήσουν λύσεις αξιοποιώντας τα υπερσύγχρονα εργαλεία AI/ML στο AWS και παρέχει καθοδήγηση για την αρχιτεκτονική και την εφαρμογή λύσεων μηχανικής μάθησης με βέλτιστες πρακτικές. Στον ελεύθερο χρόνο της, της αρέσει να εξερευνά τη φύση σε εξωτερικούς χώρους και να περνά χρόνο με την οικογένεια και τους φίλους.
Ούρι Ρόζενμπεργκ είναι ο Ειδικός Τεχνικός Διευθυντής AI & ML για την Ευρώπη, τη Μέση Ανατολή και την Αφρική. Με έδρα το Ισραήλ, η Uri εργάζεται για να ενδυναμώσει τους εταιρικούς πελάτες να σχεδιάζουν, να δημιουργούν και να λειτουργούν φόρτους εργασίας ML σε κλίμακα. Στον ελεύθερο χρόνο του, του αρέσει η ποδηλασία, η πεζοπορία και η ελαχιστοποίηση των RMSE.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- PlatoData.Network Vertical Generative Ai. Ενδυναμώστε τον εαυτό σας. Πρόσβαση εδώ.
- PlatoAiStream. Web3 Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- PlatoESG. Αυτοκίνητο / EVs, Ανθρακας, Cleantech, Ενέργεια, Περιβάλλον, Ηλιακός, Διαχείριση των αποβλήτων. Πρόσβαση εδώ.
- BlockOffsets. Εκσυγχρονισμός της περιβαλλοντικής αντιστάθμισης ιδιοκτησίας. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/machine-learning/efficiently-train-tune-and-deploy-custom-ensembles-using-amazon-sagemaker/
- :έχει
- :είναι
- :δεν
- :που
- ][Π
- $UP
- 1
- 10
- 100
- 11
- 200
- 2011
- 50
- 60
- 7
- a
- Σχετικα
- πρόσβαση
- Σύμφωνα με
- Λογαριασμός
- ακρίβεια
- ακριβής
- προσθέτω
- Πρόσθετος
- Επιπλέον
- διεύθυνση
- Αφρική
- Μετά το
- κατά
- την ηλικία του
- AI
- AI / ML
- αλγόριθμος
- αλγόριθμοι
- Όλα
- επιτρέπεται
- επιτρέπει
- Επίσης
- πάντοτε
- Amazon
- Amazon Sage Maker
- Amazon υπηρεσίες Web
- μεταξύ των
- ποσό
- an
- και
- κάθε
- εφαρμογές
- πλησιάζω
- ΕΙΝΑΙ
- επιχειρήματα
- AS
- At
- επίθεση
- Australia
- Αυτόματο
- αυτομάτως
- διαθέσιμος
- κατά μέσο όρο
- μακριά
- AWS
- Backend
- βασίζονται
- Baseline
- BE
- επειδή
- γίνονται
- ήταν
- είναι
- ευεργετική
- οφέλη
- ΚΑΛΎΤΕΡΟΣ
- βέλτιστες πρακτικές
- Καλύτερα
- μεταξύ
- Πέρα
- ανάμειξης
- μείγματα
- Αποκλεισμός
- αίμα
- Αρτηριακή πίεση
- σώμα
- ενίσχυση
- και οι δύο
- φέρω
- Φέρνοντας
- χτίζω
- Κτίριο
- ενσωματωμένο
- δέσμες
- αλλά
- by
- υπολογίσει
- CAN
- πιάνω
- συλλαμβάνονται
- περίπτωση
- κατηγορίες
- αλυσίδα
- φορτία
- Επιλέξτε
- ταξινόμηση
- κωδικός
- κρύο
- συλλογή
- συνδυασμοί
- συνδυάζοντας
- Κοινός
- Διαβιβάσεις
- κοινότητα
- συναρπαστικό
- πλήρης
- Υπολογίστε
- υπολογιστή
- Computer Vision
- Πιθανά ερωτήματα
- διαμόρφωση
- έχει ρυθμιστεί
- αποτελείται
- Δοχείο
- Εμπορευματοκιβώτια
- περιεχόμενο
- έλεγχος
- Αντίστοιχος
- Κόστος
- αποδοτική
- καλύπτονται
- δημιουργία
- έθιμο
- πελάτης
- Πελάτες
- προσαρμόσετε
- Κυβερνασφάλεια
- ημερομηνία
- Λήψη Αποφάσεων
- αφιερωμένο
- προεπιλογές
- ορίζεται
- ορίζεται
- καθορίζοντας
- αποδεικνύουν
- Denial of Service
- Σε συνάρτηση
- παρατάσσω
- ανάπτυξη
- ανάπτυξη
- Υπηρεσίες
- σχεδιαστικά πρότυπα
- λεπτομερής
- Ανίχνευση
- Προσδιορίστε
- διαφορετικές
- Κατάλογοι
- συζητήσουν
- συζήτηση
- Νόσος
- διάφορα
- Λιμενεργάτης
- Όχι
- Μην
- κατεβάσετε
- χωματερή
- διάρκεια
- κατά την διάρκεια
- κάθε
- Ανατολή
- αποτέλεσμα
- αποτελεσματικός
- αποτελεσματικά
- προσπάθειες
- είτε
- αναδύονται
- εξουσιοδοτώ
- ενεργοποιήσετε
- τέλος
- Τελικό σημείο
- εξασφαλίζω
- Εταιρεία
- Περιβάλλον
- περιβάλλοντα
- ειδικά
- Ευρώπη
- εκτίμηση
- Even
- εξελίχθηκε
- παράδειγμα
- παραδείγματα
- διερευνήσει
- Εξερευνώντας
- επιπλέον
- οικογένεια
- Χαρακτηριστικό
- Χαρακτηριστικά
- Αρχεία
- Αρχεία
- τελικός
- Τελικά
- οικονομικός
- Όνομα
- Ευελιξία
- ροή
- Συγκέντρωση
- εστιάζοντας
- Εξής
- εξής
- Για
- δάσος
- μορφή
- Βρέθηκαν
- τέσσερα
- Πλαίσιο
- πλαισίων
- απάτη
- ανίχνευση απάτης
- φίλους
- από
- πλήρη
- λειτουργία
- λειτουργίες
- Επί πλέον
- Κέρδος
- κερδίζει
- παράγουν
- παίρνω
- να πάρει
- δεδομένου
- μεγαλύτερη
- καθοδήγηση
- Ήμισυ
- λαβή
- Handles
- Έχω
- he
- βαριά
- βαριά ανύψωση
- βοηθά
- αυτήν
- υψηλότερο
- του
- οικοδεσπότης
- φιλοξενία
- Πως
- Πώς να
- Ωστόσο
- HTML
- http
- HTTPS
- Βελτιστοποίηση υπερπαραμέτρων
- Ρύθμιση υπερπαραμέτρων
- ιδανικό
- Idle
- if
- εικόνα
- εφαρμογή
- εκτελεστικών
- υλοποιεί
- σημαντικό
- in
- περιλαμβάνουν
- περιλαμβάνει
- ατομικές
- Μεμονωμένα
- πληροφορίες
- Υποδομή
- εισαγωγή
- εγκαθιστώ
- παράδειγμα
- αντί
- Νοημοσύνη
- σε
- εισαγάγει
- Εισάγει
- επικαλείται
- επικαλείται
- Ισραήλ
- θέματα
- IT
- Δουλειά
- Θέσεις εργασίας
- jpg
- json
- πλήκτρα
- Είδος
- γνωστός
- Γλώσσα
- μεγαλύτερος
- αργότερα
- ξεκινήσει
- μάθηση
- μόχλευσης
- Li
- βιβλιοθήκες
- Βιβλιοθήκη
- ανύψωση
- LIMIT
- Λιστα
- Εισηγμένες
- φορτία
- τοπικός
- που βρίσκεται
- τοποθεσία
- ξύλευση
- ΦΑΊΝΕΤΑΙ
- αγαπά
- μηχανή
- μάθηση μηχανής
- Κυρίως
- Η πλειοψηφία
- κάνω
- διαχείριση
- διαχειρίζεται
- διαχείριση
- διευθυντής
- διαχείριση
- Μάζα
- ανώτατο όριο
- εννοώ
- μετρήσεις
- ιατρικών
- μέλος
- Μνήμη
- πηγαίνω
- μέθοδος
- μέθοδοι
- μετρικός
- Μέσο
- Μέση Ανατολή
- ενδέχεται να
- ελάχιστος
- ελαχιστοποιώντας
- ML
- Τρόπος
- μοντέλο
- μοντέλα
- ενότητες
- παρακολούθηση
- περισσότερο
- πλέον
- πολλαπλούς
- όνομα
- ονόματα
- Φυσικό
- Επεξεργασία φυσικής γλώσσας
- Φύση
- απαραίτητος
- Ανάγκη
- επόμενη
- nlp
- Ειδοποίηση..
- αριθμός
- πολυάριθμες
- αντικείμενο
- σκοπός
- of
- προσφορές
- συχνά
- on
- μια φορά
- ONE
- αποκλειστικά
- λειτουργούν
- επιχειρήσεων
- βελτιστοποίηση
- Βελτιστοποίηση
- βελτιστοποίηση
- Επιλογή
- Επιλογές
- or
- OS
- ΑΛΛΑ
- δικός μας
- έξω
- ύπαιθρο
- παραγωγή
- φόρμες
- δική
- Packages
- παράμετρος
- παράμετροι
- μέρος
- εξαρτήματα
- πέρασε
- μονοπάτι
- πρότυπο
- πρότυπα
- Πληρωμή
- για
- έμμηνα
- φάση
- αγωγού
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- σημεία
- Πολιτικές
- Δημοφιλής
- δυνατός
- Θέση
- δυναμικού
- πρακτικές
- προβλέποντας
- πρόβλεψη
- Προβλέψεις
- Predictor
- Προβλέπει
- προτιμώ
- προτιμάται
- χυτρα
- αποτρέπει
- προηγούμενος
- διαδικασία
- διαδικασια μας
- Επεξεργασμένο
- μεταποίηση
- παράγει
- εξέλιξη
- υποσχόμενος
- αποδεδειγμένη
- παρέχουν
- παρέχει
- Python
- τυχαίος
- ταχέως
- Διάβασε
- μείωση
- Μειωμένος
- μείωση
- αναφέρεται
- σχέση
- ρεγεξ
- περιοχή
- μακρινός
- Αποθήκη
- εκπροσωπώ
- ζητήσει
- απαιτείται
- Απαιτεί
- Υποστηρικτικό υλικό
- αντίστοιχα
- υπεύθυνος
- αποτέλεσμα
- Αποτελέσματα
- απόδοση
- Επιστροφές
- δεξιά
- ROBERT
- Ρόλος
- τρέξιμο
- τρέξιμο
- s
- σοφός
- Αυτόματος συντονισμός μοντέλων SageMaker
- ίδιο
- Αποθήκευση
- οικονομία
- Κλίμακα
- απολέπιση
- επιστήμονες
- scikit-μάθετε
- Εφαρμογές
- SDK
- Δεύτερος
- δείτε
- δει
- επιλέγονται
- στείλετε
- αρχαιότερος
- ξεχωριστό
- Ακολουθία
- Ορρός
- Χωρίς διακομιστή
- Διακομιστές
- υπηρεσία
- Υπηρεσίες
- εξυπηρετούν
- σειρά
- ρυθμίσεις
- διάφοροι
- Φύλο
- αυτή
- θα πρέπει να
- έδειξε
- Δείχνει
- Ομοίως
- Απλούς
- ενιαίας
- ΕΞΙ
- Μέγεθος
- So
- λύση
- Λύσεις
- Λύει
- Πηγή
- ειδικός
- συγκεκριμένες
- καθορίζεται
- δαπανήσει
- σωρός
- στοιβάζονται
- στοίβαξη
- stanford
- Εκκίνηση
- ξεκινά
- state-of-the-art
- στατιστική
- Βήματα
- χώρος στο δίσκο
- αποθηκεύονται
- καταστήματα
- ειλικρινής
- ισχυρότερη
- τέτοιος
- ΠΕΡΙΛΗΨΗ
- υποστηριζόνται!
- Υποστηρίζει
- βέβαιος
- sydney
- παίρνει
- λήψη
- στόχος
- εργασίες
- Τεχνικός
- τεχνικές
- Τεχνολογία
- ενοικιαστής
- από
- ότι
- Η
- τους
- Τους
- τότε
- Εκεί.
- εκ τούτου
- επομένως
- Αυτοί
- αυτοί
- αυτό
- εκείνοι
- αν και?
- τρία
- Μέσω
- ώρα
- φορές
- προς την
- μαζι
- εργαλεία
- τοπικός
- Σύνολο
- έλξη
- ΚΙΝΗΣΗ στους ΔΡΟΜΟΥΣ
- Τρένο
- εκπαιδευμένο
- Εκπαίδευση
- Δέντρα
- Trevor
- Τρίτωνος
- δύο
- τύποι
- υπό
- καταλαβαίνω
- Χρήση
- χρήση
- μεταχειρισμένος
- χρησιμοποιεί
- χρησιμοποιώντας
- επικύρωση
- αξία
- Αξίες
- διάφορα
- εκδοχή
- όραμα
- τόμος
- Ψηφοφορία
- θέλω
- ήταν
- Τρόπος..
- τρόπους
- we
- ιστός
- διαδικτυακές υπηρεσίες
- βάρος
- ήταν
- Τι
- πότε
- Ποιό
- ενώ
- ολόκληρο
- WHY
- θα
- με
- εντός
- Εργασία
- εργαζόμενος
- λειτουργεί
- γράφω
- γραφή
- XGBoost
- έτος
- Εσείς
- Σας
- zephyrnet
- μηδέν