Rinnakkais tietojenkäsittely Amazon SageMakerin RStudion kanssa

Viime vuonna julkistimme yleisen saatavuuden RStudio Amazon SageMakerissa, alan ensimmäinen täysin hallittu RStudio Workbench integroitu kehitysympäristö (IDE) pilvessä. Voit nopeasti käynnistää tutun RStudio IDE:n ja soittaa ylös ja alas taustalla oleviin laskentaresursseihin keskeyttämättä työtäsi, mikä tekee koneoppimis- (ML) ja analytiikkaratkaisujen rakentamisesta helppoa mittakaavassa R:ssä.

Yhä kasvavan datamäärän myötä ML- ja tilastoanalyysiin käytettävät tietojoukot kasvavat rinnakkain. Tämä tuo mukanaan lisääntyneen kehitysajan ja laskentainfrastruktuurin hallinnan haasteet. Näiden haasteiden ratkaisemiseksi datatieteilijät ovat pyrkineet toteuttamaan rinnakkaisia ​​tietojenkäsittelytekniikoita. Rinnakkais tietojenkäsittely tai tietojen rinnastaminen, ottaa suuria olemassa olevia tietojoukkoja ja jakaa ne useille prosessoreille tai solmuille toimiakseen datalla samanaikaisesti. Tämä voi mahdollistaa suurempien tietojoukkojen nopeamman käsittelyajan sekä optimoidun käytön laskennassa. Tämä voi auttaa ML-harjoittajia luomaan uudelleenkäytettäviä malleja tietojoukon luomista varten ja auttaa myös vähentämään laskentainfrastruktuurin kuormitusta ja kustannuksia.

Ratkaisun yleiskatsaus

Sisällä Amazon Sage Maker, monet asiakkaat käyttävät SageMaker-käsittely auttaa toteuttamaan rinnakkaista tietojenkäsittelyä. SageMaker Processingin avulla voit käyttää SageMakerin yksinkertaistettua, hallittua kokemusta tietojenkäsittelyn työkuormien suorittamiseen, kuten ominaisuuksien suunnitteluun, tietojen validointiin, mallien arviointiin ja mallien tulkintaan. Tämä tuo monia etuja, koska hallitavissa ei ole pitkäkestoista infrastruktuuria – prosessointiinstanssit hiipuvat, kun työt ovat valmiit, ympäristöjä voidaan standardoida säilöjen ja sisällä olevien tietojen avulla. Amazonin yksinkertainen tallennuspalvelu (Amazon S3) on natiivisti hajautettu esiintymien kesken, ja infrastruktuuriasetukset ovat joustavia muistin, laskennan ja tallennustilan suhteen.

SageMaker Processing tarjoaa vaihtoehtoja tietojen jakamiseen. Rinnakkaiseen tietojenkäsittelyyn on käytettävä ShardedByS3Key-vaihtoehto S3DataDistributionTypelle. Kun tämä parametri valitaan, SageMaker Processing ottaa toimitetun n esiintymiä ja jakaa objekteja 1/n objektit syöttötietolähteestä instansseissa. Jos esimerkiksi kahdessa ilmentymässä on neljä tietoobjektia, jokainen ilmentymä vastaanottaa kaksi objektia.

SageMaker Processing vaatii kolme komponenttia käsittelytöiden suorittamiseen:

  • Säilön kuva, jossa on koodisi ja riippuvuutesi tietojenkäsittelyn työkuormien suorittamista varten
  • Polku syötetietolähteeseen Amazon S3:ssa
  • Polku lähtötietolähteeseen Amazon S3:ssa

Prosessi on kuvattu seuraavassa kaaviossa.

Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Tässä viestissä näytämme, kuinka voit käyttää RStudioa SageMakerissa yhdistämään useita SageMaker Processing -töitä rinnakkaisen tietojenkäsittelyputken luomiseen käyttämällä R-ohjelmointikieli.

Ratkaisu koostuu seuraavista vaiheista:

  1. Määritä RStudio-projekti.
  2. Rakenna ja rekisteröi käsittelysäiliön kuva.
  3. Suorita kaksivaiheinen käsittelyputki:
    1. Ensimmäinen vaihe ottaa useita datatiedostoja ja käsittelee ne useiden käsittelytöiden kesken.
    2. Toinen vaihe ketjuttaa tulostiedostot ja jakaa ne harjoitus-, testi- ja validointitietojoukoiksi.

Edellytykset

Täytä seuraavat edellytykset:

  1. Asenna RStudio SageMaker Workbenchissä. Lisätietoja on kohdassa Täysin hallinnoidun RStudion julkaiseminen Amazon SageMaker for Data Scientists -palvelussa.
  2. Luo käyttäjä RStudiolla SageMakerissa, jolla on asianmukaiset käyttöoikeudet.

Määritä RStudio-projekti

Voit määrittää RStudio-projektin suorittamalla seuraavat vaiheet:

  1. Siirry omaan Amazon SageMaker Studio ohjauspaneeli SageMaker-konsolissa.
  2. Käynnistä sovelluksesi RStudio-ympäristössä.
    Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.
  3. Aloita uusi RStudio-istunto.
  4. varten Istunnon nimi, kirjoita nimi.
  5. varten Esimerkkilaji ja Kuva, käytä oletusasetuksia.
  6. Valita Aloita istunto.
    Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.
  7. Siirry istuntoon.
  8. Valita Uusi projekti, VersionhallintaJa sitten Valitse Git.
  9. varten Tietovaraston URL-osoite, tulla sisään https://github.com/aws-samples/aws-parallel-data-processing-r.git
  10. Jätä loput vaihtoehdot oletusasetuksiksi ja valitse Luo projekti.
    Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Voit navigoida kohtaan aws-parallel-data-processing-R hakemistossa Asiakirjat -välilehti nähdäksesi arkiston. Arkisto sisältää seuraavat tiedostot:

  • 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

Rakenna kontti

Tässä vaiheessa rakennamme käsittelykonttikuvamme ja siirrämme sen Amazonin elastisten säiliörekisteri (Amazon ECR). Suorita seuraavat vaiheet:

  1. Siirry Container_Build.rmd tiedosto.
  2. Asenna SageMaker Studio Image Build CLI suorittamalla seuraavan solun. Varmista, että sinulla on tarvittavat käyttöoikeudet ennen tämän vaiheen suorittamista. Tämä on CLI, joka on suunniteltu siirtämään ja rekisteröimään säilökuvia Studiossa.
    pip install sagemaker-studio-image-build

  3. Suorita seuraava solu rakentaaksesi ja rekisteröidäksesi käsittelysäiliömme:
    /home/sagemaker-user/.local/bin/sm-docker build . --file ./docker/Dockerfile-Processing --repository sagemaker-rstudio-parallel-processing:1.0

Kun työ on suoritettu onnistuneesti, saat tulosteen, joka näyttää seuraavalta:

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

Suorita käsittelyputki

Kun olet rakentanut säilön, siirry kohtaan Parallel_Data_Processing.rmd tiedosto. Tämä tiedosto sisältää sarjan vaiheita, jotka auttavat meitä luomaan rinnakkaisen tietojenkäsittelyprosessin SageMaker Processingin avulla. Seuraava kaavio kuvaa suorittamamme putkilinjan vaiheet.

Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Aloita suorittamalla paketin tuontivaihe. Tuo tarvittavat RStudio-paketit SageMaker SDK:n kanssa:

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')

Määritä nyt SageMaker-suoritusrooli ja ympäristötiedot:

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)

Alusta kontti, jonka rakensimme ja rekisteröimme edellisessä vaiheessa:

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

Tästä eteenpäin sukeltaamme jokaiseen käsittelyvaiheeseen yksityiskohtaisemmin.

Lataa tietojoukko

Esimerkkissämme käytämme Pankkimarkkinoinnin tietojoukko UCI:ltä. Olemme jo jakaneet tietojoukon useisiin pienempiin tiedostoihin. Suorita seuraava koodi ladataksesi tiedostot Amazon S3:een:

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")

Kun tiedostot on ladattu, siirry seuraavaan vaiheeseen.

Suorita tietojen rinnakkaiskäsittely

Tässä vaiheessa otamme datatiedostot ja suoritamme ominaisuussuunnittelun tiettyjen sarakkeiden suodattamiseksi. Tämä työ on hajautettu useille käsittelyesiintymille (esimerkissämme käytämme kahta).

Käytämme filter.R tiedostoa tietojen käsittelemiseksi ja määritä työ seuraavasti:

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))

Kuten aiemmin mainittiin, kun suoritat rinnakkaista tietojenkäsittelytyötä, sinun on säädettävä syöttöparametria sen mukaan, kuinka tiedot jaetaan, ja tietojen tyyppi. Siksi tarjoamme sirpalointimenetelmän S3Prefix:

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

Kun olet lisännyt nämä parametrit, SageMaker Processing jakaa tiedot tasaisesti valittujen esiintymien lukumäärälle.

Säädä parametreja tarpeen mukaan ja suorita sitten solu suorittaaksesi työn.

Luo koulutus-, testi- ja validointitietojoukkoja

Tässä vaiheessa otamme käsitellyt datatiedostot, yhdistämme ne ja jaamme ne testi-, koulutus- ja validointitietojoukoiksi. Tämä antaa meille mahdollisuuden käyttää tietoja mallimme rakentamiseen.

Käytämme process.R tiedostoa tietojen käsittelemiseksi ja määritä työ seuraavasti:

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))

Säädä parametrit ovat tarpeen ja suorita sitten solu suorittaaksesi työn.

Suorita putki

Kun kaikki vaiheet on luotu, käynnistä käsittelyputki suorittaaksesi jokaisen vaiheen suorittamalla seuraavan solun:

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()

Kunkin näistä töistä kuluva aika vaihtelee valitun ilmentymän koon ja lukumäärän mukaan.

Siirry SageMaker-konsoliin nähdäksesi kaikki käsittelytyösi.

Aloitamme suodatustyöstä, kuten seuraavassa kuvakaappauksessa näkyy.

Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Kun se on valmis, liukuhihna siirtyy tietojenkäsittelytyöhön.

Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Kun molemmat työt ovat valmiit, siirry S3-säihösi. Katso sisään sagemaker-rstudio-example kansio, alla processed. Näet juna-, testi- ja validointitietojoukon tiedostot.

Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Yhteenveto

Koska tietomäärä on kasvanut entistä kehittyneempien mallien rakentamiseen, meidän on muutettava lähestymistapaamme tietojen käsittelyyn. Rinnakkainen tietojenkäsittely on tehokas tapa nopeuttaa tietojoukon luomista, ja yhdistettynä nykyaikaisiin pilviympäristöihin ja -työkaluihin, kuten RStudio on SageMaker ja SageMaker Processing, se voi poistaa suuren osan infrastruktuurin hallinnan, yleiskoodin luomisen ja ympäristönhallinnan raskaita tekijöitä. Tässä viestissä kävimme läpi, kuinka voit toteuttaa rinnakkaisen tiedonkäsittelyn RStudiossa SageMakerissa. Suosittelemme sinua kokeilemaan sitä kloonaamalla GitHub-arkisto, ja jos sinulla on ehdotuksia kokemuksen parantamiseksi, lähetä ongelma tai vetopyyntö.

Lisätietoja tässä ratkaisussa käytetyistä ominaisuuksista ja palveluista on kohdassa RStudio Amazon SageMakerissa ja Amazon SageMaker -käsittely.


Tietoja kirjoittajista

Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai. Raj Pathak on ratkaisuarkkitehti ja tekninen neuvonantaja Fortune 50- ja keskikokoisille FSI-asiakkaille (pankkitoiminta, vakuutus, pääomamarkkinat) Kanadassa ja Yhdysvalloissa. Raj on erikoistunut koneoppimiseen dokumenttien purkamisen, yhteyskeskuksen muuntamisen ja tietokonenäön sovelluksilla.

Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Jake Wen on AWS:n ratkaisuarkkitehti, joka on intohimoinen ML-koulutukseen ja luonnollisen kielen käsittelyyn. Jake auttaa pienyritysasiakkaita suunnittelu- ja ajatusjohtajuudella rakentamaan ja ottamaan käyttöön sovelluksia mittakaavassa. Työn ulkopuolella hän harrastaa patikointia.

Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Aditi Rajnish on ensimmäisen vuoden ohjelmistotekniikan opiskelija Waterloon yliopistossa. Hänen kiinnostuksen kohteitaan ovat tietokonenäkö, luonnollisen kielen käsittely ja reunalaskenta. Hän on myös intohimoinen yhteisöpohjaiseen STEM-yhteistyöhön ja edunvalvontaan. Vapaa-ajallaan hän voi tavata kalliokiipeilyä, soittaa pianoa tai oppia leipomaan täydellisen sconsin.

Sean MorganSean Morgan on AI/ML Solutions -arkkitehti AWS:ssä. Hänellä on kokemusta puolijohteiden ja akateemisen tutkimuksen aloilta, ja hän käyttää kokemustaan ​​auttaakseen asiakkaita saavuttamaan tavoitteensa AWS:ssä. Vapaa-ajallaan Sean on aktiivinen avoimen lähdekoodin avustaja ja ylläpitäjä sekä TensorFlow-lisäosien sidosryhmien johtaja.

Rinnakkais tietojenkäsittely RStudion kanssa Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Paul Wu on ratkaisuarkkitehti, joka työskentelee AWS:n Greenfield Businessissa Texasissa. Hänen osaamisalueitaan ovat kontit ja migraatiot.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen