Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker

Πέρυσι, ανακοινώσαμε τη γενική διαθεσιμότητα του RStudio στο Amazon SageMaker, το πρώτο πλήρως διαχειριζόμενο περιβάλλον ανάπτυξης RStudio Workbench (IDE) του κλάδου στο cloud. Μπορείτε να εκκινήσετε γρήγορα το γνωστό RStudio IDE και να καλέσετε πάνω-κάτω τους υποκείμενους υπολογιστικούς πόρους χωρίς να διακόπτετε την εργασία σας, καθιστώντας εύκολη τη δημιουργία λύσεων μηχανικής εκμάθησης (ML) και αναλυτικών στοιχείων σε R σε κλίμακα.

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

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

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

Το SageMaker Processing προσφέρει επιλογές για τον τρόπο διανομής δεδομένων. Για παράλληλη επεξεργασία δεδομένων, πρέπει να χρησιμοποιήσετε το Επιλογή ShardedByS3Key για το S3DataDistributionType. Όταν επιλεγεί αυτή η παράμετρος, το SageMaker Processing λαμβάνει το παρεχόμενο n στιγμιότυπα και διανομή αντικειμένων 1/n αντικείμενα από την πηγή δεδομένων εισόδου σε όλες τις παρουσίες. Για παράδειγμα, εάν παρέχονται δύο στιγμιότυπα με τέσσερα αντικείμενα δεδομένων, κάθε στιγμιότυπο λαμβάνει δύο αντικείμενα.

Το SageMaker Processing απαιτεί τρία στοιχεία για την εκτέλεση εργασιών επεξεργασίας:

  • Μια εικόνα κοντέινερ που περιέχει τον κωδικό και τις εξαρτήσεις σας για την εκτέλεση του φόρτου εργασίας επεξεργασίας δεδομένων σας
  • Μια διαδρομή προς μια πηγή δεδομένων εισόδου στο Amazon S3
  • Μια διαδρομή προς μια πηγή δεδομένων εξόδου στο Amazon S3

Η διαδικασία απεικονίζεται στο παρακάτω διάγραμμα.

Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Σε αυτήν την ανάρτηση, σας δείχνουμε πώς να χρησιμοποιείτε το RStudio στο SageMaker για διασύνδεση με μια σειρά εργασιών Επεξεργασίας SageMaker για να δημιουργήσετε έναν παράλληλο αγωγό επεξεργασίας δεδομένων χρησιμοποιώντας το Γλώσσα προγραμματισμού R.

Η λύση αποτελείται από τα ακόλουθα βήματα:

  1. Ρυθμίστε το έργο RStudio.
  2. Δημιουργήστε και καταχωρίστε την εικόνα του κοντέινερ επεξεργασίας.
  3. Εκτελέστε τη διοχέτευση επεξεργασίας δύο βημάτων:
    1. Το πρώτο βήμα παίρνει πολλά αρχεία δεδομένων και τα επεξεργάζεται σε μια σειρά εργασιών επεξεργασίας.
    2. Το δεύτερο βήμα συνενώνει τα αρχεία εξόδου και τα χωρίζει σε σύνολα δεδομένων εκπαίδευσης, δοκιμής και επικύρωσης.

Προϋποθέσεις

Συμπληρώστε τις παρακάτω προϋποθέσεις:

  1. Ρυθμίστε το RStudio στο SageMaker Workbench. Για περισσότερες πληροφορίες, ανατρέξτε στο Ανακοινώνουμε το πλήρως διαχειριζόμενο RStudio στο Amazon SageMaker για Επιστήμονες Δεδομένων.
  2. Δημιουργήστε έναν χρήστη με το RStudio στο SageMaker με τα κατάλληλα δικαιώματα πρόσβασης.

Ρυθμίστε το έργο RStudio

Για να ρυθμίσετε το έργο RStudio, ολοκληρώστε τα παρακάτω βήματα:

  1. Πλοηγηθείτε στο δικό σας Στούντιο Amazon SageMaker πίνακα ελέγχου στην κονσόλα SageMaker.
  2. Εκκινήστε την εφαρμογή σας στο περιβάλλον RStudio.
    Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
  3. Ξεκινήστε μια νέα περίοδο λειτουργίας RStudio.
  4. Για Όνομα συνεδρίας, πληκτρολογήστε ένα όνομα.
  5. Για Τύπος συμβολής και Εικόνα, χρησιμοποιήστε τις προεπιλεγμένες ρυθμίσεις.
  6. Επιλέξτε Έναρξη συνεδρίας.
    Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
  7. Πλοηγηθείτε στη συνεδρία.
  8. Επιλέξτε νέο Έργο, Έλεγχος έκδοσης, και μετά Επιλέξτε Git.
  9. Για URL αποθετηρίου, εισαγω https://github.com/aws-samples/aws-parallel-data-processing-r.git
  10. Αφήστε τις υπόλοιπες επιλογές ως προεπιλογές και επιλέξτε Δημιουργία έργου.
    Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Μπορείτε να πλοηγηθείτε στο aws-parallel-data-processing-R κατάλογο στο Αρχεία καρτέλα για να δείτε το αποθετήριο. Το αποθετήριο περιέχει τα ακόλουθα αρχεία:

  • Container_Build.rmd
  • /dataset
    • bank-additional-full-data1.csv
    • bank-additional-full-data2.csv
    • bank-additional-full-data3.csv
    • bank-additional-full-data4.csv
  • /docker
  • Dockerfile-Processing
  • Parallel_Data_Processing.rmd
  • /preprocessing
    • filter.R
    • process.R

Φτιάξτε το δοχείο

Σε αυτό το βήμα, χτίζουμε την εικόνα του κοντέινερ επεξεργασίας μας και την σπρώχνουμε σε Μητρώο εμπορευματοκιβωτίων Amazon Elastic (Amazon ECR). Ολοκληρώστε τα παρακάτω βήματα:

  1. Πλοηγηθείτε με το Container_Build.rmd αρχείο.
  2. εγκαταστήστε το SageMaker Studio Image Build CLI εκτελώντας το παρακάτω κελί. Βεβαιωθείτε ότι έχετε τα απαιτούμενα δικαιώματα πριν ολοκληρώσετε αυτό το βήμα, πρόκειται για ένα CLI που έχει σχεδιαστεί για την προώθηση και την καταχώρηση εικόνων κοντέινερ μέσα στο Studio.
    pip install sagemaker-studio-image-build

  3. Εκτελέστε το επόμενο κελί για να δημιουργήσετε και να καταχωρήσετε το κοντέινερ επεξεργασίας:
    /home/sagemaker-user/.local/bin/sm-docker build . --file ./docker/Dockerfile-Processing --repository sagemaker-rstudio-parallel-processing:1.0

Μετά την επιτυχή εκτέλεση της εργασίας, λαμβάνετε ένα αποτέλεσμα που μοιάζει με το ακόλουθο:

Image URI: <Account_Number>.dkr.ecr.<Region>.amazonaws.com/sagemaker-rstudio- parallel-processing:1.0

Εκτελέστε τον αγωγό επεξεργασίας

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

Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ξεκινήστε εκτελώντας το βήμα εισαγωγής πακέτου. Εισαγάγετε τα απαιτούμενα πακέτα RStudio μαζί με το SageMaker SDK:

suppressWarnings(library(dplyr))
suppressWarnings(library(reticulate))
suppressWarnings(library(readr))
path_to_python <- system(‘which python’, intern = TRUE)

use_python(path_to_python)
sagemaker <- import('sagemaker')

Ρυθμίστε τώρα τον ρόλο εκτέλεσης του SageMaker και τις λεπτομέρειες περιβάλλοντος:

role = sagemaker$get_execution_role()
session = sagemaker$Session()
bucket = session$default_bucket()
account_id <- session$account_id()
region <- session$boto_region_name
local_path <- dirname(rstudioapi::getSourceEditorContext()$path)

Αρχικοποιήστε το κοντέινερ που δημιουργήσαμε και καταχωρήσαμε στο προηγούμενο βήμα:

container_uri <- paste(account_id, "dkr.ecr", region, "amazonaws.com/sagemaker-rstudio-parallel-processing:1.0", sep=".")
print(container_uri)

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

Ανεβάστε το σύνολο δεδομένων

Για το παράδειγμά μας, χρησιμοποιούμε το Δεδομένα τραπεζικού μάρκετινγκ από την UCI. Έχουμε ήδη χωρίσει το σύνολο δεδομένων σε πολλά μικρότερα αρχεία. Εκτελέστε τον ακόλουθο κώδικα για να ανεβάσετε τα αρχεία στο Amazon S3:

local_dataset_path <- paste0(local_path,"/dataset/")

dataset_files <- list.files(path=local_dataset_path, pattern=".csv$", full.names=TRUE)
for (file in dataset_files){
  session$upload_data(file, bucket=bucket, key_prefix="sagemaker-rstudio-example/split")
}

input_s3_split_location <- paste0("s3://", bucket, "/sagemaker-rstudio-example/split")

Μετά τη μεταφόρτωση των αρχείων, προχωρήστε στο επόμενο βήμα.

Εκτελέστε παράλληλη επεξεργασία δεδομένων

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

Χρησιμοποιούμε το filter.R αρχείο για την επεξεργασία των δεδομένων και διαμορφώστε την εργασία ως εξής:

filter_processor <- sagemaker$processing$ScriptProcessor(command=list("Rscript"),
                                                        image_uri=container_uri,
                                                        role=role,
                                                        instance_count=2L,
                                                        instance_type="ml.m5.large")

output_s3_filter_location <- paste0("s3://", bucket, "/sagemaker-rstudio-example/filtered")
s3_filter_input <- sagemaker$processing$ProcessingInput(source=input_s3_split_location,
                                                        destination="/opt/ml/processing/input",
                                                        s3_data_distribution_type="ShardedByS3Key",
                                                        s3_data_type="S3Prefix")
s3_filter_output <- sagemaker$processing$ProcessingOutput(output_name="bank-additional-full-filtered",
                                                         destination=output_s3_filter_location,
                                                         source="/opt/ml/processing/output")

filtering_step <- sagemaker$workflow$steps$ProcessingStep(name="FilterProcessingStep",
                                                      code=paste0(local_path, "/preprocessing/filter.R"),
                                                      processor=filter_processor,
                                                      inputs=list(s3_filter_input),
                                                      outputs=list(s3_filter_output))

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

s3_data_distribution_type="ShardedByS3Key",
                                                      s3_data_type="S3Prefix")

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

Προσαρμόστε τις παραμέτρους όπως απαιτείται και, στη συνέχεια, εκτελέστε το κελί για να δημιουργήσετε την εργασία.

Δημιουργήστε σύνολα δεδομένων εκπαίδευσης, δοκιμών και επικύρωσης

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

Χρησιμοποιούμε το process.R αρχείο για την επεξεργασία των δεδομένων και διαμορφώστε την εργασία ως εξής:

script_processor <- sagemaker$processing$ScriptProcessor(command=list("Rscript"),
                                                         image_uri=container_uri,
                                                         role=role,
                                                         instance_count=1L,
                                                         instance_type="ml.m5.large")

output_s3_processed_location <- paste0("s3://", bucket, "/sagemaker-rstudio-example/processed")
s3_processed_input <- sagemaker$processing$ProcessingInput(source=output_s3_filter_location,
                                                         destination="/opt/ml/processing/input",
                                                         s3_data_type="S3Prefix")
s3_processed_output <- sagemaker$processing$ProcessingOutput(output_name="bank-additional-full-processed",
                                                         destination=output_s3_processed_location,
                                                         source="/opt/ml/processing/output")

processing_step <- sagemaker$workflow$steps$ProcessingStep(name="ProcessingStep",
                                                      code=paste0(local_path, "/preprocessing/process.R"),
                                                      processor=script_processor,
                                                      inputs=list(s3_processed_input),
                                                      outputs=list(s3_processed_output),
                                                      depends_on=list(filtering_step))

Προσαρμόστε τις απαραίτητες παραμέτρους και, στη συνέχεια, εκτελέστε το κελί για να δημιουργήσετε την εργασία.

Εκτελέστε τον αγωγό

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

pipeline = sagemaker$workflow$pipeline$Pipeline(
  name="BankAdditionalPipelineUsingR",
  steps=list(filtering_step, processing_step)
)

upserted <- pipeline$upsert(role_arn=role)
execution <- pipeline$start()

execution$describe()
execution$wait()

Ο χρόνος που χρειάζεται καθεμία από αυτές τις εργασίες θα ποικίλλει ανάλογα με το μέγεθος του στιγμιότυπου και τον αριθμό που έχει επιλεγεί.

Μεταβείτε στην κονσόλα SageMaker για να δείτε όλες τις εργασίες επεξεργασίας σας.

Ξεκινάμε με την εργασία φιλτραρίσματος, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

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

Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Όταν ολοκληρωθούν και οι δύο εργασίες, μεταβείτε στον κάδο S3. Κοιτάξτε μέσα στο sagemaker-rstudio-example φάκελος, κάτω processed. Μπορείτε να δείτε τα αρχεία για τα σύνολα δεδομένων τρένου, δοκιμής και επικύρωσης.

Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Συμπέρασμα

Με έναν αυξημένο όγκο δεδομένων που θα απαιτηθεί για τη δημιουργία ολοένα και πιο εξελιγμένων μοντέλων, πρέπει να αλλάξουμε την προσέγγισή μας στον τρόπο επεξεργασίας των δεδομένων. Η παράλληλη επεξεργασία δεδομένων είναι μια αποτελεσματική μέθοδος για την επιτάχυνση της δημιουργίας δεδομένων και εάν συνδυαστεί με σύγχρονα περιβάλλοντα cloud και εργαλεία όπως το RStudio στο SageMaker και το SageMaker Processing, μπορεί να αφαιρέσει μεγάλο μέρος της αδιαφοροποίητης βαριάς διαχείρισης υποδομής, δημιουργίας κώδικα boilerplate και διαχείρισης περιβάλλοντος. Σε αυτήν την ανάρτηση, εξετάσαμε πώς μπορείτε να εφαρμόσετε παράλληλη επεξεργασία δεδομένων στο RStudio στο SageMaker. Σας ενθαρρύνουμε να το δοκιμάσετε κλωνοποιώντας το αποθετήριο GitHub και αν έχετε προτάσεις για το πώς να βελτιώσετε την εμπειρία, υποβάλετε ένα πρόβλημα ή ένα αίτημα έλξης.

Για να μάθετε περισσότερα σχετικά με τις δυνατότητες και τις υπηρεσίες που χρησιμοποιούνται σε αυτήν τη λύση, ανατρέξτε στο RStudio στο Amazon SageMaker και Επεξεργασία Amazon SageMaker.


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

Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται. Raj Pathak είναι αρχιτέκτονας λύσεων και τεχνικός σύμβουλος πελατών του Fortune 50 και μεσαίου μεγέθους FSI (Τράπεζες, Ασφάλειες, Κεφαλαιαγορές) σε όλο τον Καναδά και τις Ηνωμένες Πολιτείες. Η Raj ειδικεύεται στη Μηχανική Εκμάθηση με εφαρμογές στην Εξαγωγή Εγγράφων, στον Μετασχηματισμό Κέντρου Επαφής και στην Όραση Υπολογιστών.

Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Τζέικ Γουέν είναι Αρχιτέκτονας Λύσεων στο AWS με πάθος για την εκπαίδευση ML και την Επεξεργασία Φυσικής Γλώσσας. Ο Jake βοηθά τους πελάτες μικρομεσαίων επιχειρήσεων με ηγετικό σχεδιασμό και σκέψη να δημιουργούν και να αναπτύσσουν εφαρμογές σε κλίμακα. Εκτός δουλειάς, του αρέσει η πεζοπορία.

Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Aditi Rajnish είναι πρωτοετής φοιτητής μηχανικής λογισμικού στο Πανεπιστήμιο του Waterloo. Τα ενδιαφέροντά της περιλαμβάνουν την όραση υπολογιστών, την επεξεργασία φυσικής γλώσσας και τον υπολογισμό αιχμής. Είναι επίσης παθιασμένη με την προσέγγιση και την υπεράσπιση του STEM που βασίζεται στην κοινότητα. Στον ελεύθερο χρόνο της, μπορεί να βρεθεί να σκαρφαλώνει, να παίζει πιάνο ή να μαθαίνει πώς να ψήνει το τέλειο scone.

Σον ΜόργκανΣον Μόργκαν είναι αρχιτέκτονας λύσεων AI/ML στην AWS. Έχει εμπειρία στους τομείς των ημιαγωγών και της ακαδημαϊκής έρευνας και χρησιμοποιεί την εμπειρία του για να βοηθήσει τους πελάτες να επιτύχουν τους στόχους τους στο AWS. Στον ελεύθερο χρόνο του, ο Sean είναι ενεργός συνεργάτης και συντηρητής ανοιχτού κώδικα και είναι ο επικεφαλής της ομάδας ειδικών συμφερόντων για τα πρόσθετα TensorFlow.

Παράλληλη επεξεργασία δεδομένων με το RStudio στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Πολ Γου είναι αρχιτέκτονας λύσεων που εργάζεται στο Greenfield Business της AWS στο Τέξας. Οι τομείς εξειδίκευσής του περιλαμβάνουν εμπορευματοκιβώτια και μεταναστεύσεις.

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

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