Νοημοσύνη δεδομένων Πλάτωνα.
Κάθετη Αναζήτηση & Αι.

Το Amazon SageMaker Automatic Model Tuning υποστηρίζει πλέον τις εναλλακτικές περιπτώσεις εκπαίδευσης SageMaker

Ημερομηνία:

Σήμερα Amazon Sage Maker ανακοίνωσε την υποστήριξη εναλλακτικών περιπτώσεων εκπαίδευσης του SageMaker για Amazon SageMaker Automatic Model Tuning (AMT) που επιτρέπουν στους χρήστες να προσδιορίζουν εναλλακτικές διαμορφώσεις πόρων υπολογισμού.

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

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

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

Στις ακόλουθες ενότητες, ακολουθούμε αυτά τα βήματα υψηλού επιπέδου για την αντιμετώπιση του ICE:

  1. Καθορισμός παραμέτρων εργασίας συντονισμού HyperParameter
  2. Καθορίστε τις παραμέτρους εργασίας εκπαίδευσης
  3. Δημιουργήστε την εργασία συντονισμού υπερπαραμέτρων
  4. Περιγράψτε την εργασία κατάρτισης

Καθορισμός παραμέτρων εργασίας συντονισμού HyperParameter

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

Η ResourceLimits Το αντικείμενο καθορίζει τον μέγιστο αριθμό εργασιών εκπαίδευσης και παράλληλων εργασιών εκπαίδευσης για αυτήν την εργασία συντονισμού. Σε αυτό το παράδειγμα, κάνουμε ένα τυχαία αναζήτηση στρατηγική και καθορίζοντας το πολύ 10 θέσεις εργασίας (MaxNumberOfTrainingJobs) και 5 ταυτόχρονες δουλειές (MaxParallelTrainingJobs) κάθε φορά.

Η ParameterRanges αντικείμενο καθορίζει τις περιοχές των υπερπαραμέτρων που αναζητά αυτή η εργασία συντονισμού. Καθορίζουμε το όνομα, καθώς και την ελάχιστη και μέγιστη τιμή της υπερπαραμέτρου προς αναζήτηση. Σε αυτό το παράδειγμα, ορίζουμε τις ελάχιστες και μέγιστες τιμές για τις περιοχές παραμέτρων Continuous και Integer και το όνομα της υπερπαραμέτρου (“eta”, “max_depth”).

AmtTuningJobConfig={
            "Strategy": "Random",
            "ResourceLimits": {
              "MaxNumberOfTrainingJobs": 10,
              "MaxParallelTrainingJobs": 5
            },
            "HyperParameterTuningJobObjective": {
              "MetricName": "validation:rmse",
              "Type": "Minimize"
            },
            "ParameterRanges": {
              "CategoricalParameterRanges": [],
              "ContinuousParameterRanges": [
                {
                    "MaxValue": "1",
                    "MinValue": "0",
                    "Name": "eta"
                }
              ],
              "IntegerParameterRanges": [
                {
                  "MaxValue": "6",
                  "MinValue": "2",
                  "Name": "max_depth"
                }
              ]
            }
          }

Καθορίστε τις παραμέτρους εργασίας εκπαίδευσης

Στον ορισμό της εργασίας εκπαίδευσης, ορίζουμε την είσοδο που απαιτείται για την εκτέλεση μιας εργασίας εκπαίδευσης χρησιμοποιώντας τον αλγόριθμο που καθορίζουμε. Μετά την ολοκλήρωση της εκπαίδευσης, το SageMaker αποθηκεύει τα τεχνουργήματα του μοντέλου που προκύπτουν σε ένα Υπηρεσία απλής αποθήκευσης Amazon (Amazon S3) τοποθεσία που καθορίζετε.

Προηγουμένως, καθορίσαμε τον τύπο παρουσίας, τον αριθμό και το μέγεθος του όγκου κάτω από το ResourceConfig παράμετρος. Όταν η παρουσία υπό αυτήν την παράμετρο δεν ήταν διαθέσιμη, παρουσιάστηκε σφάλμα ανεπαρκούς χωρητικότητας (ICE).

Για να αποφευχθεί αυτό, έχουμε τώρα το HyperParameterTuningResourceConfig παράμετρος κάτω από το TrainingJobDefinition, όπου καθορίζουμε μια λίστα περιπτώσεων στις οποίες θα επανέλθουμε. Η μορφή αυτών των περιπτώσεων είναι η ίδια όπως στο ResourceConfig. Η εργασία θα διασχίσει τη λίστα από πάνω προς τα κάτω για να βρει μια διαθέσιμη διαμόρφωση παρουσίας. Εάν μια παρουσία δεν είναι διαθέσιμη, τότε αντί για Σφάλμα Ανεπαρκούς Χωρητικότητας (ICE), επιλέγεται η επόμενη παρουσία στη λίστα, ξεπερνώντας έτσι το ICE.

TrainingJobDefinition={
            "HyperParameterTuningResourceConfig": {
      		"InstanceConfigs": [
            		{
                		"InstanceType": "ml.m4.xlarge",
                		"InstanceCount": 1,
                		"VolumeSizeInGB": 5
            		},
            		{
                		"InstanceType": "ml.m5.4xlarge",
                		"InstanceCount": 1,
                		"VolumeSizeInGB": 5
            		}
        		 ]
    		  },
            "AlgorithmSpecification": {
              "TrainingImage": "433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest",
              "TrainingInputMode": "File"
            },
            "InputDataConfig": [
              {
                "ChannelName": "train",
                "CompressionType": "None",
                "ContentType": "json",
                "DataSource": {
                  "S3DataSource": {
                    "S3DataDistributionType": "FullyReplicated",
                    "S3DataType": "S3Prefix",
                    "S3Uri": "s3://<bucket>/test/"
                  }
                },
                "RecordWrapperType": "None"
              }
            ],
            "OutputDataConfig": {
              "S3OutputPath": "s3://<bucket>/output/"
            },
            "RoleArn": "arn:aws:iam::340308762637:role/service-role/AmazonSageMaker-ExecutionRole-20201117T142856",
            "StoppingCondition": {
              "MaxRuntimeInSeconds": 259200
            },
            "StaticHyperParameters": {
              "training_script_loc": "q2bn-sagemaker-test_6"
            },
          }

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

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

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

import boto3
sm = boto3.client('sagemaker')     
                    
sm.create_hyper_parameter_tuning_job(
    HyperParameterTuningJobName="my-job-name",
    HyperParameterTuningJobConfig=AmtTuningJobConfig,
    TrainingJobDefinition=TrainingJobDefinition) 

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

Περιγράψτε τις εργασίες κατάρτισης

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

def list_instances(name):
    job_list = []
    instances = []
    def _get_training_jobs(name, next=None):
        if next:
            list = sm.list_training_jobs_for_hyper_parameter_tuning_job(
            HyperParameterTuningJobName=name, NextToken=next)
        else:
            list = sm.list_training_jobs_for_hyper_parameter_tuning_job(
            HyperParameterTuningJobName=name)
        for jobs in list['TrainingJobSummaries']:
            job_list.append(jobs['TrainingJobName'])
        next = list.get('NextToken', None)
        if next:
            _get_training_jobs(name, next=next)
            pass
        else:
            pass
    _get_training_jobs(name)


    for job_name in job_list:
        ec2 = sm.describe_training_job(
        TrainingJobName=job_name
        )
        instances.append(ec2['ResourceConfig'])
    return instances

list_instances("my-job-name")  

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

Συμπέρασμα

Σε αυτήν την ανάρτηση, δείξαμε πώς μπορείτε τώρα να ορίσετε μια ομάδα περιπτώσεων στις οποίες το πείραμά σας AMT μπορεί να επιστρέψει στην περίπτωση InsufficientCapacityError. Είδαμε πώς να ορίσουμε μια διαμόρφωση εργασίας συντονισμού υπερπαραμέτρων, καθώς και να καθορίσουμε τον μέγιστο αριθμό εργασιών εκπαίδευσης και τις μέγιστες παράλληλες εργασίες. Τέλος, είδαμε πώς να ξεπεράσουμε το InsufficientCapacityError χρησιμοποιώντας το HyperParameterTuningResourceConfig παράμετρος, η οποία μπορεί να καθοριστεί στον ορισμό της εργασίας εκπαίδευσης.

Για να μάθετε περισσότερα για το AMT, επισκεφτείτε Αυτόματος συντονισμός μοντέλων Amazon SageMaker.


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

Νταγκ Μπάγια είναι αρχιτέκτονας Senior Partner Solution με έμφαση στα δεδομένα και την ανάλυση. Ο Doug συνεργάζεται στενά με τους συνεργάτες της AWS, βοηθώντας τους να ενσωματώσουν λύσεις δεδομένων και αναλυτικών στοιχείων στο cloud.

Kruthi Jayasimha Ράο είναι Αρχιτέκτονας Partner Solutions στην ομάδα Scale-PSA. Η Kruthi πραγματοποιεί τεχνικές επικυρώσεις για τους Συνεργάτες, επιτρέποντάς τους να προχωρήσουν στη Διαδρομή Συνεργατών.

Μπέρναρντ Τζόλανς είναι Μηχανικός Ανάπτυξης Λογισμικού για το Amazon SageMaker Automatic Model Tuning.

spot_img

Τελευταία Νοημοσύνη

spot_img

Συνομιλία με μας

Γεια σου! Πώς μπορώ να σε βοηθήσω?