Εκμάθηση μεταφοράς για μοντέλα ταξινόμησης κειμένου TensorFlow στο Amazon SageMaker

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

Αυτή η ανάρτηση είναι η τρίτη σε μια σειρά σχετικά με τους νέους ενσωματωμένους αλγόριθμους στο SageMaker. Στο πρώτη θέση, δείξαμε πώς το SageMaker παρέχει έναν ενσωματωμένο αλγόριθμο για την ταξινόμηση εικόνων. Στο δεύτερη θέση, δείξαμε πώς το SageMaker παρέχει έναν ενσωματωμένο αλγόριθμο για την ανίχνευση αντικειμένων. Σήμερα, ανακοινώνουμε ότι το SageMaker παρέχει έναν νέο ενσωματωμένο αλγόριθμο για ταξινόμηση κειμένου χρησιμοποιώντας το TensorFlow. Αυτός ο εποπτευόμενος αλγόριθμος μάθησης υποστηρίζει τη μεταφορά μάθησης για πολλά προεκπαιδευμένα μοντέλα που είναι διαθέσιμα σε Κόμβος TensorFlow. Παίρνει ένα κομμάτι κειμένου ως είσοδο και εξάγει την πιθανότητα για κάθε μια από τις ετικέτες κλάσης. Μπορείτε να βελτιστοποιήσετε αυτά τα προεκπαιδευμένα μοντέλα χρησιμοποιώντας εκμάθηση μεταφοράς ακόμα και όταν δεν είναι διαθέσιμο ένα μεγάλο σώμα κειμένου. Είναι διαθέσιμο μέσω του SageMaker ενσωματωμένοι αλγόριθμοι, καθώς και μέσω του SageMaker JumpStart UI in Στούντιο Amazon SageMaker. Για περισσότερες πληροφορίες, ανατρέξτε στο Ταξινόμηση κειμένου και το παράδειγμα σημειωματάριο Εισαγωγή στο JumpStart – Ταξινόμηση κειμένων.

Η ταξινόμηση κειμένου με το TensorFlow στο SageMaker παρέχει εκμάθηση μεταφοράς σε πολλά προεκπαιδευμένα μοντέλα που είναι διαθέσιμα στο TensorFlow Hub. Σύμφωνα με τον αριθμό των ετικετών κλάσης στα δεδομένα εκπαίδευσης, ένα επίπεδο ταξινόμησης προσαρτάται στο προεκπαιδευμένο μοντέλο διανομέα TensorFlow. Το επίπεδο ταξινόμησης αποτελείται από ένα στρώμα εγκατάλειψης και ένα πυκνό στρώμα, πλήρως συνδεδεμένο στρώμα, με κανονικοποιητή 2 κανόνων, το οποίο αρχικοποιείται με τυχαία βάρη. Το μοντέλο εκπαίδευσης έχει υπερ-παραμέτρους για το ποσοστό εγκατάλειψης του στρώματος εγκατάλειψης και συντελεστή τακτοποίησης L2 για το πυκνό στρώμα. Στη συνέχεια, είτε ολόκληρο το δίκτυο, συμπεριλαμβανομένου του προεκπαιδευμένου μοντέλου, είτε μόνο το ανώτερο επίπεδο ταξινόμησης μπορεί να προσαρμοστεί με ακρίβεια στα νέα δεδομένα εκπαίδευσης. Σε αυτόν τον τρόπο εκμάθησης μεταφοράς, η εκπαίδευση μπορεί να επιτευχθεί ακόμη και με μικρότερο σύνολο δεδομένων.

Πώς να χρησιμοποιήσετε τον νέο αλγόριθμο ταξινόμησης κειμένου TensorFlow

Αυτή η ενότητα περιγράφει τον τρόπο χρήσης του αλγόριθμου ταξινόμησης κειμένου TensorFlow με το SDK SageMaker Python. Για πληροφορίες σχετικά με τον τρόπο χρήσης του από τη διεπαφή χρήστη του Studio, βλ SageMaker JumpStart.

Ο αλγόριθμος υποστηρίζει την εκμάθηση μεταφοράς για τα προεκπαιδευμένα μοντέλα που αναφέρονται στο Μοντέλα Tensorflow. Κάθε μοντέλο προσδιορίζεται από ένα μοναδικό model_id. Ο ακόλουθος κώδικας δείχνει πώς να τελειοποιήσετε το βασικό μοντέλο BERT που προσδιορίζεται από model_id tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2 σε ένα προσαρμοσμένο σύνολο δεδομένων εκπαίδευσης. Για κάθε model_id, για να ξεκινήσει μια εργασία εκπαίδευσης SageMaker μέσω του Εκτιμητής κλάση του SageMaker Python SDK, πρέπει να ανακτήσετε το URI εικόνας Docker, το URI σεναρίου εκπαίδευσης και το προεκπαιδευμένο URI μοντέλου μέσω των βοηθητικών λειτουργιών που παρέχονται στο SageMaker. Το εκπαιδευτικό σενάριο URI περιέχει όλο τον απαραίτητο κώδικα για την επεξεργασία δεδομένων, τη φόρτωση του προεκπαιδευμένου μοντέλου, την εκπαίδευση του μοντέλου και την αποθήκευση του εκπαιδευμένου μοντέλου για συμπέρασμα. Το προεκπαιδευμένο μοντέλο URI περιέχει τον προεκπαιδευμένο ορισμό της αρχιτεκτονικής του μοντέλου και τις παραμέτρους του μοντέλου. Το προεκπαιδευμένο μοντέλο URI είναι συγκεκριμένο για το συγκεκριμένο μοντέλο. Τα προ-εκπαιδευμένα μοντέλα tarball έχουν προκαταλεχθεί από το TensorFlow και έχουν αποθηκευτεί με την κατάλληλη υπογραφή μοντέλου στο Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κουβάδες, έτσι ώστε η εργασία εκπαίδευσης να εκτελείται σε απομόνωση δικτύου. Δείτε τον παρακάτω κώδικα:

from sagemaker import image_uris, model_uris, script_urisfrom sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2", "*"
training_instance_type = "ml.p3.2xlarge"
# Retrieve the docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")# Retrieve the pre-trained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-tensorflow-tc-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

Με αυτά τα τεχνουργήματα εκπαίδευσης για συγκεκριμένο μοντέλο, μπορείτε να κατασκευάσετε ένα αντικείμενο του Εκτιμητής τάξη:

# Create SageMaker Estimator instance
tf_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,)

Στη συνέχεια, για μεταφορά εκμάθησης στο προσαρμοσμένο σύνολο δεδομένων σας, ίσως χρειαστεί να αλλάξετε τις προεπιλεγμένες τιμές των υπερπαραμέτρων εκπαίδευσης, οι οποίες παρατίθενται στο Υπερπαραμέτρους. Μπορείτε να ανακτήσετε ένα λεξικό Python αυτών των υπερπαραμέτρων με τις προεπιλεγμένες τιμές τους καλώντας hyperparameters.retrieve_default, ενημερώστε τα όπως απαιτείται και μετά περάστε τα στην κλάση Εκτιμητής. Σημειώστε ότι οι προεπιλεγμένες τιμές ορισμένων από τις υπερπαραμέτρους είναι διαφορετικές για διαφορετικά μοντέλα. Για μεγάλα μοντέλα, το προεπιλεγμένο μέγεθος παρτίδας είναι μικρότερο και το train_only_top_layer Η υπερπαράμετρος έχει οριστεί σε True. Η υπερπαράμετρος Train_only_top_layer καθορίζει ποιες παράμετροι του μοντέλου αλλάζουν κατά τη διαδικασία λεπτομέρειας. Αν train_only_top_layer is True, τότε οι παράμετροι των επιπέδων ταξινόμησης αλλάζουν και οι υπόλοιπες παράμετροι παραμένουν σταθερές κατά τη διαδικασία λεπτομέρειας. Από την άλλη, αν train_only_top_layer is False, τότε όλες οι παράμετροι του μοντέλου ρυθμίζονται με ακρίβεια. Δείτε τον παρακάτω κώδικα:

from sagemaker import hyperparameters# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

Παρέχουμε το SST2 ως προεπιλεγμένο σύνολο δεδομένων για τη λεπτομερή ρύθμιση των μοντέλων. Το σύνολο δεδομένων περιέχει θετικές και αρνητικές κριτικές ταινιών. Έχει γίνει λήψη από TensorFlow υπό Άδεια χρήσης Apache 2.0. Ο παρακάτω κώδικας παρέχει το προεπιλεγμένο σύνολο δεδομένων εκπαίδευσης που φιλοξενείται σε κάδους S3.

# Sample training data is available in this bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/SST2/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

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

# Launch a SageMaker Training job by passing s3 path of the training data
tf_od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Για περισσότερες πληροφορίες σχετικά με τον τρόπο χρήσης του νέου αλγόριθμου ταξινόμησης κειμένου SageMaker TensorFlow για τη μεταφορά μάθησης σε ένα προσαρμοσμένο σύνολο δεδομένων, αναπτύξτε το βελτιστοποιημένο μοντέλο, εκτελέστε συμπέρασμα στο αναπτυγμένο μοντέλο και αναπτύξτε το προεκπαιδευμένο μοντέλο ως έχει, χωρίς προηγούμενη λεπτομέρεια σε ένα προσαρμοσμένο σύνολο δεδομένων, δείτε το ακόλουθο παράδειγμα σημειωματάριου: Εισαγωγή στο JumpStart – Ταξινόμηση κειμένων.

Διεπαφή εισόδου/εξόδου για τον αλγόριθμο ταξινόμησης κειμένου TensorFlow

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

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

  • Input – Ένας κατάλογος που περιέχει ένα αρχείο data.csv. Κάθε γραμμή της πρώτης στήλης πρέπει να έχει ακέραιες ετικέτες κλάσεων μεταξύ 0 και του αριθμού των κλάσεων. Κάθε σειρά της δεύτερης στήλης πρέπει να έχει τα αντίστοιχα δεδομένα κειμένου.
  • Έξοδος – Ένα βελτιστοποιημένο μοντέλο που μπορεί να αναπτυχθεί για συμπεράσματα ή να εκπαιδευτεί περαιτέρω χρησιμοποιώντας σταδιακή εκπαίδευση. Μια κλάση αντιστοίχισης αρχείων με ευρετήρια σε ετικέτες κλάσεων αποθηκεύεται μαζί με τα μοντέλα.

Το παρακάτω είναι ένα παράδειγμα αρχείου εισόδου CSV. Σημειώστε ότι το αρχείο δεν πρέπει να έχει καμία κεφαλίδα. Το αρχείο θα πρέπει να φιλοξενείται σε έναν κάδο S3 με μια διαδρομή παρόμοια με την ακόλουθη: s3://bucket_name/input_directory/. Σημειώστε ότι το συρόμενο / απαιτείται.

|0 |hide new secretions from the parental units|
|0 |contains no wit , only labored gags|
|1 |that loves its characters and communicates something rather beautiful about human nature|
|...|...|

Συμπέρασμα με τον αλγόριθμο ταξινόμησης κειμένου TensorFlow

Τα παραγόμενα μοντέλα μπορούν να φιλοξενηθούν για συμπεράσματα και κείμενο υποστήριξης ως το application/x-text Τύπος περιεχομένου. Η έξοδος περιέχει τις τιμές πιθανότητας, τις ετικέτες κλάσεων για όλες τις κλάσεις και την προβλεπόμενη ετικέτα που αντιστοιχεί στον δείκτη κλάσης με την υψηλότερη πιθανότητα κωδικοποιημένη σε μορφή JSON. Το μοντέλο επεξεργάζεται μία μόνο συμβολοσειρά ανά αίτημα και βγάζει μόνο μία γραμμή. Το παρακάτω είναι ένα παράδειγμα απάντησης σε μορφή JSON:

accept: application/json;verbose
{"probabilities": [prob_0, prob_1, prob_2, ...],
 "labels": [label_0, label_1, label_2, ...],
 "predicted_label": predicted_label}

If accept έχει οριστεί σε application/json, τότε το μοντέλο βγάζει μόνο πιθανότητες. Για περισσότερες λεπτομέρειες σχετικά με την εκπαίδευση και τα συμπεράσματα, ανατρέξτε στο δείγμα σημειωματάριου Εισαγωγή στο Εισαγωγή στο JumpStart – Ταξινόμηση κειμένων.

Χρησιμοποιήστε τους ενσωματωμένους αλγόριθμους του SageMaker μέσω του JumpStart UI

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

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

Βελτιστοποιήστε το προεκπαιδευμένο μοντέλο

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

Αναπτύξτε το τελειοποιημένο μοντέλο

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

Συμπέρασμα

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

Για περισσότερες πληροφορίες, δείτε το τεκμηρίωση και το παράδειγμα σημειωματάριο Εισαγωγή στο JumpStart – Ταξινόμηση κειμένων.


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

Εκμάθηση μεταφοράς για μοντέλα ταξινόμησης κειμένου TensorFlow στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Δρ Vivek Madan είναι Εφαρμοσμένος Επιστήμονας με το Ομάδα Amazon SageMaker JumpStart. Πήρε το διδακτορικό του από το Πανεπιστήμιο του Ιλινόις στο Urbana-Champaign και ήταν μεταδιδακτορικός ερευνητής στο Georgia Tech. Είναι ενεργός ερευνητής στη μηχανική μάθηση και στο σχεδιασμό αλγορίθμων και έχει δημοσιεύσει εργασίες σε συνέδρια EMNLP, ICLR, COLT, FOCS και SODA.

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

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

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

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