Förra året tillkännagav vi den allmänna tillgängligheten av RStudio på Amazon SageMaker, branschens första fullt hanterade RStudio Workbench integrerade utvecklingsmiljö (IDE) i molnet. Du kan snabbt starta den välbekanta RStudio IDE och ringa upp och ner de underliggande beräkningsresurserna utan att avbryta ditt arbete, vilket gör det enkelt att bygga maskininlärning (ML) och analyslösningar i R i skala.
Med en ständigt ökande datavolym som genereras växer datauppsättningar som används för ML och statistisk analys i takt. Med detta medför utmaningarna med ökad utvecklingstid och hantering av datorinfrastruktur. För att lösa dessa utmaningar har datavetare försökt implementera parallella databehandlingstekniker. Parallell databehandling, eller dataparallellisering, tar stora befintliga datamängder och distribuerar dem över flera processorer eller noder för att arbeta på datan samtidigt. Detta kan möjliggöra snabbare bearbetningstid för större datauppsättningar, tillsammans med optimerad användning på dator. Detta kan hjälpa ML-utövare att skapa återanvändbara mönster för datauppsättningsgenerering och även hjälpa till att minska belastningen och kostnaden för datorinfrastruktur.
Lösningsöversikt
Inom Amazon SageMaker, många kunder använder SageMaker-bearbetning för att hjälpa till att implementera parallell databehandling. Med SageMaker Processing kan du använda en förenklad, hanterad upplevelse på SageMaker för att köra dina databearbetningsarbetsbelastningar, såsom funktionsteknik, datavalidering, modellutvärdering och modelltolkning. Detta ger många fördelar eftersom det inte finns någon långvarig infrastruktur att hantera – bearbetningsinstanser snurrar ner när jobb är klara, miljöer kan standardiseras via behållare, data inom Amazon enkel lagringstjänst (Amazon S3) är inbyggt fördelat över instanser, och infrastrukturinställningarna är flexibla när det gäller minne, beräkning och lagring.
SageMaker Processing erbjuder alternativ för hur man distribuerar data. För parallell databehandling måste du använda ShardedByS3Key-alternativet för S3DataDistributionType. När denna parameter är vald tar SageMaker Processing den angivna n instanser och distribuera objekt 1/n objekt från indatakällan över instanserna. Till exempel, om två instanser är försedda med fyra dataobjekt, får varje instans två objekt.
SageMaker Processing kräver tre komponenter för att köra bearbetningsjobb:
- En behållarbild som har din kod och dina beroenden för att köra dina databearbetningsbelastningar
- En sökväg till en indatakälla inom Amazon S3
- En sökväg till en utdatakälla inom Amazon S3
Processen visas i följande diagram.
I det här inlägget visar vi dig hur du använder RStudio på SageMaker för att samverka med en serie SageMaker Processing-jobb för att skapa en parallell databehandlingspipeline med hjälp av R programmeringsspråk.
Lösningen består av följande steg:
- Ställ in RStudio-projektet.
- Bygg och registrera bearbetningsbehållarebilden.
- Kör bearbetningspipelinen i två steg:
- Det första steget tar flera datafiler och bearbetar dem över en serie bearbetningsjobb.
- Det andra steget sammanfogar utdatafilerna och delar upp dem i tåg-, test- och valideringsdatauppsättningar.
Förutsättningar
Fyll i följande förutsättningar:
- Ställ in RStudio på SageMaker Workbench. För mer information, se Tillkännager Fullt Managed RStudio på Amazon SageMaker för dataforskare.
- Skapa en användare med RStudio på SageMaker med lämpliga åtkomstbehörigheter.
Ställ in RStudio-projektet
Utför följande steg för att ställa in RStudio-projektet:
- Navigera till din Amazon SageMaker Studio kontrollpanelen på SageMaker-konsolen.
- Starta din app i RStudio-miljön.
- Starta en ny RStudio-session.
- För Sessionens namn, ange ett namn.
- För Typ av instans och Bild, använd standardinställningarna.
- Välja Börja sessionen.
- Navigera in i sessionen.
- Välja Nytt projekt, Versionskontroll, Och sedan Välj Git.
- För Repository URL, stiga på
https://github.com/aws-samples/aws-parallel-data-processing-r.git
- Lämna de återstående alternativen som standard och välj Skapa projekt.
Du kan navigera till aws-parallel-data-processing-R
katalogen på Filer fliken för att visa arkivet. Förvaret innehåller följande filer:
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
Bygg behållaren
I det här steget bygger vi vår bearbetningsbehållarebild och skjuter den till Amazon Elastic Container Registry (Amazon ECR). Slutför följande steg:
- Navigera till
Container_Build.rmd
fil. - installera SageMaker Studio Image Build CLI genom att köra följande cell. Se till att du har de nödvändiga behörigheterna innan du slutför det här steget, detta är en CLI designad för att pusha och registrera behållarbilder i Studio.
- Kör nästa cell för att bygga och registrera vår bearbetningsbehållare:
När jobbet har körts får du en utdata som ser ut så här:
Kör bearbetningspipeline
När du har byggt behållaren, navigera till Parallel_Data_Processing.rmd
fil. Den här filen innehåller en serie steg som hjälper oss att skapa vår parallella databehandlingspipeline med SageMaker Processing. Följande diagram visar stegen i pipelinen som vi slutför.
Börja med att köra paketimportsteget. Importera de nödvändiga RStudio-paketen tillsammans med SageMaker SDK:
Ställ nu in din SageMaker exekveringsroll och miljödetaljer:
Initiera behållaren som vi byggde och registrerade i det tidigare steget:
Härifrån dyker vi mer detaljerat in i vart och ett av bearbetningsstegen.
Ladda upp datasetet
För vårt exempel använder vi Databas för bankmarknadsföring från UCI. Vi har redan delat upp datasetet i flera mindre filer. Kör följande kod för att ladda upp filerna till Amazon S3:
När filerna har laddats upp går du vidare till nästa steg.
Utför parallell databehandling
I det här steget tar vi datafilerna och utför funktionsteknik för att filtrera bort vissa kolumner. Det här jobbet är fördelat över en serie bearbetningsinstanser (för vårt exempel använder vi två).
Vi använder filter.R
fil för att bearbeta data och konfigurera jobbet enligt följande:
Som nämnts tidigare, när du kör ett parallellt databearbetningsjobb måste du justera indataparametern med hur data ska delas och typen av data. Därför tillhandahåller vi skärningsmetoden av S3Prefix
:
När du har infogat dessa parametrar kommer SageMaker Processing att fördela data lika över antalet valda instanser.
Justera parametrarna efter behov och kör sedan cellen för att instansiera jobbet.
Generera utbildnings-, test- och valideringsdatauppsättningar
I det här steget tar vi de bearbetade datafilerna, kombinerar dem och delar upp dem i test-, tränings- och valideringsdatauppsättningar. Detta gör att vi kan använda data för att bygga vår modell.
Vi använder process.R
fil för att bearbeta data och konfigurera jobbet enligt följande:
Justera parametrarna är nödvändiga och kör sedan cellen för att instansiera jobbet.
Kör rörledningen
När alla steg har instansierats startar du bearbetningspipelinen för att köra varje steg genom att köra följande cell:
Den tid varje av dessa jobb tar kommer att variera baserat på instansstorleken och antalet valda.
Navigera till SageMaker-konsolen för att se alla dina bearbetningsjobb.
Vi börjar med filtreringsjobbet, som visas i följande skärmdump.
När det är klart flyttas pipelinen till databearbetningsjobbet.
När båda jobben är klara, navigera till din S3-skopa. Titta inuti sagemaker-rstudio-example
mapp, under processed
. Du kan se filerna för tåg-, test- och valideringsdatauppsättningarna.
Slutsats
Med en ökad mängd data som kommer att krävas för att bygga allt mer sofistikerade modeller behöver vi ändra vårt synsätt på hur vi behandlar data. Parallell databehandling är en effektiv metod för att påskynda generering av dataset, och om den kombineras med moderna molnmiljöer och verktyg som RStudio på SageMaker och SageMaker Processing, kan den ta bort mycket av det odifferentierade tunga lyftet av infrastrukturhantering, generering av kodkod och miljöhantering. I det här inlägget gick vi igenom hur du kan implementera parallell databehandling inom RStudio på SageMaker. Vi uppmuntrar dig att prova det genom att klona GitHub-förvaret, och om du har förslag på hur du kan göra upplevelsen bättre, skicka in ett problem eller en pull-förfrågan.
För att lära dig mer om funktionerna och tjänsterna som används i den här lösningen, se RStudio på Amazon SageMaker och Amazon SageMaker-bearbetning.
Om författarna
Raj Pathak är en lösningsarkitekt och teknisk rådgivare till Fortune 50 och medelstora FSI-kunder (Banking, Insurance, Capital Markets) i Kanada och USA. Raj är specialiserad på maskininlärning med applikationer inom dokumentextraktion, kontaktcentertransformation och datorseende.
Jake Wen är en lösningsarkitekt på AWS med passion för ML-utbildning och Natural Language Processing. Jake hjälper Small Medium Business-kunder med design och tankeledarskap att bygga och distribuera applikationer i stor skala. Utanför jobbet tycker han om att vandra.
Aditi Rajnish är en första års programvaruingenjörsstudent vid University of Waterloo. Hennes intressen inkluderar datorseende, naturlig språkbehandling och edge computing. Hon brinner också för samhällsbaserad STEM-uppsökande och opinionsbildning. På fritiden kan hon hittas på att klättra, spela piano eller lära sig att baka den perfekta scones.
Sean Morgan är AI/ML Solutions Architect på AWS. Han har erfarenhet inom halvledarforskning och akademisk forskning och använder sin erfarenhet för att hjälpa kunder att nå sina mål på AWS. På sin fritid är Sean en aktiv bidragsgivare och underhållare med öppen källkod och är specialintressegruppledare för TensorFlow-tillägg.
Paul Wu är en lösningsarkitekt som arbetar i AWS Greenfield Business i Texas. Hans expertområden inkluderar containrar och migrationer.
- AI
- ai konst
- ai art generator
- har robot
- Amazon SageMaker
- artificiell intelligens
- artificiell intelligenscertifiering
- artificiell intelligens inom bankväsendet
- artificiell intelligens robot
- robotar med artificiell intelligens
- programvara för artificiell intelligens
- AWS maskininlärning
- blockchain
- blockchain konferens ai
- coingenius
- konversationskonstnärlig intelligens
- kryptokonferens ai
- dalls
- djupt lärande
- du har google
- maskininlärning
- plato
- plato ai
- Platon Data Intelligence
- Platon spel
- PlatonData
- platogaming
- skala ai
- syntax
- zephyrnet