Organisationer använder maskininlärning (ML) och AI-tjänster för att förbättra kundupplevelsen, minska driftskostnaderna och låsa upp nya möjligheter att förbättra affärsresultat. Data underbygger ML och AI användningsfall och är en strategisk tillgång för en organisation. Eftersom data växer i en exponentiell takt, letar organisationer efter att skapa en integrerad, kostnadseffektiv och presterande dataplattform för att förbehandla data, utföra funktionsutveckling och bygga, träna och operationalisera ML-modeller i stor skala. För att uppnå det erbjuder AWS en enhetlig modern dataplattform som drivs av Amazon enkel lagringstjänst (Amazon S3) som datasjön med specialbyggda verktyg och bearbetningsmotorer för att stödja analys och ML-arbetsbelastningar. För en enhetlig ML-upplevelse kan du använda Amazon SageMaker Studio, Som erbjuder inbyggd integration med AWS Glue interaktiva sessioner att utföra funktionsteknik i stor skala med känsligt dataskydd. I det här inlägget visar vi hur man implementerar denna lösning.
Amazon SageMaker är en helt hanterad ML-tjänst som gör att du kan bygga, träna och distribuera modeller i stor skala för ett brett spektrum av användningsfall. För modellträning kan du använda någon av de inbyggda algoritmer inom SageMaker för att snabbt komma igång med utbildning och implementering av ML-modeller.
En nyckelkomponent i modellbyggandet och utvecklingsprocessen är funktionsteknik. AWS-lim är ett av de rekommenderade alternativen för att uppnå funktionsteknik i stor skala. AWS Glue gör att du kan köra dataintegration och transformation på ett distribuerat sätt på en serverlös Apache Spark-infrastruktur och gör det enkelt att använda det populära Spark ML-biblioteket för funktionsteknik och modellutveckling. Dessutom kan du använda AWS Glue för inkrementell databehandling genom jobb bokmärken, mata in data från över 100 källor med hjälp av kontakter, och kör taggiga eller oförutsägbara arbetsbelastningar med automatisk skalning.
Ett annat viktigt krav för ML-baserade applikationer är datasäkerhet och åtkomstkontroll. Det är ett vanligt krav att ha strängare kontroll över vem som kan komma åt de känsligaste uppgifterna som en del av funktionsutvecklingen och modellbyggeprocessen genom att följa principen om minst privilegierad åtkomst. För att uppnå detta kan du använda AWS Glue-integrationen med AWS Lake Formation för ökad styrning och förvaltning av datasjötillgångar. Med Lake Formation kan du konfigurera finkornig dataåtkomstkontroll och säkerhetspolicyer ovanpå din Amazon S3-datasjö. Policyerna definieras på en central plats, vilket tillåter flera analys- och ML-tjänster, såsom AWS Glue, Amazonas Athena, och SageMaker, för att interagera med data som lagras i Amazon S3.
AWS-lim innehåller en identifiering av personligt identifierbar information (PII). transformering som ger möjlighet att upptäcka, maskera eller ta bort enheter efter behov, för ökad efterlevnad och styrning. Med PII-transformeringen kan du upptäcka PII-data i datauppsättningar och automatiskt tillämpa finkornig åtkomstkontroll med hjälp av Lake Formation för att begränsa känslig data för olika användargrupper.
Användningsfall
Vi fokuserar på ett användningsfall för benägenhetsmodeller som inkluderar en datauppsättning för kundmarknadsföring och involverar två användarpersoner: en dataingenjör och datavetare. Datauppsättningen innehåller information per kund, inklusive leadkälla, kontaktanteckningar, jobbroll, några flaggor, sidvisningar per besök och mer. Datauppsättningen innehåller också känslig information som personliga telefonnummer.
Dataingenjören är ansvarig för att bygga end-to-end databehandlingspipeline, inklusive dataförberedelse, förbearbetning och åtkomstkontroll. Dataforskaren ansvarar för funktionsutveckling och utbildning och implementering av ML-modellen. Observera att dataforskaren inte har tillgång till någon PII-känslig data för funktionsutveckling eller utbildning av ML-modellen.
Som en del av detta användningsfall bygger dataingenjören en datapipeline för att förbehandla datamängden, skannar datasetet efter eventuell PII-information och begränsar åtkomsten till PII-kolumnen till dataforskarens användare. Som ett resultat, när en dataforskare använder datamängden för att utföra funktionsutveckling och bygga ML-modeller, har de inte tillgång till den PII-känsliga kolumnen (telefonnummer, i det här fallet). Funktionskonstruktionsprocessen innebär att konvertera kolumner av typsträng till ett format som är optimalt för ML-modeller. Som ett avancerat användningsfall kan du utöka detta åtkomstmönster för att implementera säkerhet på radnivå och cellnivå med Lake Formation.
Lösningsöversikt
Lösningen innehåller följande steg på hög nivå:
- Ställ in resurser med AWS molnformation.
- Förbearbeta datasetet, inklusive PII-detektion och finkornig åtkomstkontroll, på en interaktiv AWS Glue-session.
- Utför funktionsutveckling på en interaktiv AWS Glue-session.
- Träna och distribuera en ML-modell med den inbyggda SageMaker XGBoost-algoritmen.
- Utvärdera ML-modellen.
Följande diagram illustrerar lösningsarkitekturen.
Förutsättningar
För att slutföra denna handledning måste du ha följande förutsättningar:
Konfigurera resurser med AWS CloudFormation
Det här inlägget innehåller en CloudFormation-mall för en snabb installation. Du kan granska och anpassa den för att passa dina behov. Om du föredrar att ställa in resurser på AWS Management Console och AWS CLI snarare än AWS CloudFormation, se instruktionerna i bilagan i slutet av detta inlägg.
CloudFormation-mallen genererar följande resurser:
- S3-hinkar med en exempeldatauppsättning
- An AWS Lambda funktion för att ladda datamängden
- AWS identitets- och åtkomsthantering (IAM) grupp, användare, roller och policyer
- Lake Formation data sjöinställningar och behörigheter
- SageMaker användarprofiler
Så här skapar du dina resurser:
- Logga in på konsolen.
- Välja Starta stack:
- Välja Nästa.
- För DataEngineerPwd och DataScientistPwd, ange ditt eget lösenord för dataingenjören och dataforskarens användare.
- För GlueDatabaseName, stiga på
demo
. - För GlueTableName, stiga på
web_marketing
. - För S3BucketNameForInput, stiga på
blog-studio-pii-dataset-
. - För S3BucketNameForOutput, stiga på
blog-studio-output-
. - För SageMakerDomainId, ange ditt SageMaker-domän-ID som du förberedde i de nödvändiga stegen.
- Välja Nästa.
- Välj på nästa sida Nästa.
- Granska detaljerna på den sista sidan och välj Jag erkänner att AWS CloudFormation kan skapa IAM-resurser.
- Välja Skapa.
Att skapa stack kan ta upp till 10 minuter. Stacken skapar IAM-roller och SageMaker-användarprofiler för två personas: dataingenjör och datavetare. Det skapar också en databasdemo och tabell web_marketing
med en exempeldatauppsättning.
Vid tidpunkten för stackskapandet har dataingenjörens persona fullständig åtkomst till tabellen, men dataforskarens persona har inte någon åtkomst till tabellen ännu.
Förbehandla datamängden
Låt oss börja förbearbeta data på en interaktiv AWS Glue-session. Dataingenjörens persona vill verifiera data för att se om det finns känslig data eller inte, och ge minimal åtkomstbehörighet till dataforskarens persona. Du kan ladda ner anteckningsboken från den här platsen.
- Logga in på konsolen med hjälp av datateknikeranvändaren.
- Välj på SageMaker-konsolen användare.
- Välj datateknikeranvändare och välj Öppen studio.
- Skapa en ny anteckningsbok och välj SparkAnalytics 1.0 för Bild och Limma PySpark för Kärna.
- Starta en interaktiv session med följande magi för att installera den nyare versionen av Boto3 (detta krävs för att använda
create_data_cells_filter
metod): - Initiera sessionen:
- Skapa en AWS Glue DynamicFrame från den nyskapade tabellen, och lösa valtyper baserat på katalogschema, eftersom vi vill använda schemat som definieras i katalogen istället för det automatiskt härledda schemat baserat på data:
- Validera i tabellen om det finns någon PII-data med AWS Glue PII-detektering:
- Kontrollera om kolumnerna klassificerade som PII innehåller känsliga data eller inte (om inte, uppdatera classified_map för att ta bort de icke-känsliga kolumnerna):
- Ställ in Lake Formation-behörigheter med ett datacellfilter för automatiskt upptäckta kolumner och begränsa kolumnerna till dataforskarens persona:
- Logga in på Studio som dataforskare för att se att PII-kolumnerna inte är synliga. Du kan ladda ner anteckningsboken från den här platsen.
- Skapa en ny anteckningsbok och välj SparkAnalytics 1.0 för Bild och Limma PySpark för Kärna:
Utför funktionsteknik
Vi använder Apache Spark ML-biblioteket för att utföra funktionsteknik som dataforskare och sedan skriva tillbaka utdata till Amazon S3.
- I följande cell tillämpar vi funktioner från Apache Spark ML-bibliotek:
StringIndexer
mappar en strängkolumn med etiketter till en kolumn med etikettindex.OneHotEncoder
mappar ett kategoriskt särdrag, representerat som ett etikettindex, till en binär vektor med högst ett enda ettvärde som indikerar närvaron av ett specifikt kategoriskt särdrag. Denna transformation används för ML-algoritmer som förväntar sig kontinuerliga funktioner.VectorAssembler
är en transformator som kombinerar en given lista med kolumner till en enda vektorkolumn, som sedan används för att träna ML-modeller för algoritmer som logistisk regression och beslutsträd.
- Den slutliga transformerade DataFrame kan skapas med hjälp av Pipeline-biblioteket. En pipeline anges som en sekvens av steg. Dessa steg körs i ordning och indatadataramen transformeras när den passerar genom varje steg.
- Därefter delar vi upp datasetet i träna, validerar och testar DataFrame och sparar det i S3-hinken för att träna ML-modellen (ange ditt AWS-konto-ID i följande kod):
Träna och distribuera en ML-modell
I föregående avsnitt slutförde vi funktionsteknik, som inkluderade konvertering av strängkolumner som t.ex region
, jobrole
och usedpromo
till ett format som är optimalt för ML-modeller. Vi tog även med kolumner som t.ex pageviewspervisit
och totalwebvisits
, som hjälper oss att förutsäga en kunds benägenhet att köpa en produkt.
Vi tränar nu en ML-modell genom att läsa tåg- och valideringsdataset med den inbyggda SageMaker XGBoost-algoritmen. Sedan distribuerar vi modellen och kör en noggrannhetskontroll. Du kan ladda ner anteckningsboken från den här platsen.
I följande cell läser vi data från den andra S3-skopan, som inkluderar utdata från vår funktionsteknik. Sedan använder vi den inbyggda algoritmen XGBoost för att träna modellen.
- Öppna en ny anteckningsbok. Välja Data Science för Bild och python 3 för Kärna (ange ditt AWS-konto-ID i följande kod):
- När utbildningen är klar kan vi distribuera modellen med SageMakers värdtjänster:
Utvärdera ML-modellen
Vi använder testdataset för att utvärdera modellen och ta bort slutpunkten för slutpunkten när vi är klara för att undvika pågående avgifter.
- Utvärdera modellen med följande kod:
Noggrannhetsresultatet för provkörningen var 84.6 %. Detta kan vara något annorlunda för din löpning på grund av den slumpmässiga uppdelningen av datamängden.
- Vi kan ta bort slutpunktens slutpunkt med följande kod:
Städa upp
Nu till det sista steget, att rensa upp resurserna.
- Töm de två hinkarna som skapats genom CloudFormation-stacken.
- Ta bort apparna som är kopplade till användaren
profiles data-scientist
ochdata-engineer
i Studio. - Ta bort CloudFormation-stacken.
Slutsats
I det här inlägget visade vi en lösning som gör det möjligt för personer som dataingenjörer och datavetare att utföra funktionsteknik i stor skala. Med AWS Glue interaktiva sessioner kan du enkelt uppnå funktionsteknik i stor skala med automatisk PII-detektering och finkornig åtkomstkontroll utan att behöva hantera någon underliggande infrastruktur. Genom att använda Studio som den enda ingångspunkten kan du få en förenklad och integrerad upplevelse för att bygga ett heltäckande ML-arbetsflöde: från att förbereda och säkra data till att bygga, träna, ställa in och distribuera ML-modeller. Om du vill veta mer, besök Komma igång med AWS Glue interaktiva sessioner och Amazon SageMaker Studio.
Vi är mycket glada över den här nya kapaciteten och angelägna om att se vad du ska bygga med den!
Bilaga: Ställ in resurser via konsolen och AWS CLI
Slutför instruktionerna i det här avsnittet för att ställa in resurser med hjälp av konsolen och AWS CLI istället för CloudFormation-mallen.
Förutsättningar
För att slutföra denna handledning måste du ha tillgång till AWS CLI (se Komma igång med AWS CLI) eller använd kommandoradsåtkomst från AWS CloudShell.
Konfigurera IAM-grupp, användare, roller och policyer
I det här avsnittet skapar vi två IAM-användare: dataingenjör och dataforskare, som tillhör IAM-gruppen dataplattformsgrupp. Sedan lägger vi till en enda IAM-policy till IAM-gruppen.
- På IAM-konsolen, skapa en policy på JSON-fliken för att skapa en ny IAM-hanterad policy med namnet
DataPlatformGroupPolicy
. Policyn tillåter användare i gruppen att komma åt Studio, men endast med en SageMaker-användarprofil med en tagg som matchar deras IAM-användarnamn. Använd följande JSON-policydokument för att ge behörigheter: - Skapa en IAM-grupp kallas
data-platform-group
. - Sök och bifoga den AWS-hanterade policyn med namnet DataPlatformGroupPolicy till gruppen.
- Skapa IAM-användare kallas dataingenjör och dataforskare under IAM-gruppen data-plattform-grupp.
- Skapa en ny hanterad policy heter SageMakerExecutionPolicy (ange ditt region- och konto-ID i följande kod):
- Skapa en ny hanterad policy som heter
SageMakerAdminPolicy
: - Skapa en IAM-roll för SageMaker för dataingenjören (dataingenjör), som används som motsvarande användarprofils exekveringsroll. På Bifoga behörighetspolicyn sida, är AmazonSageMakerFullAccess (AWS-hanterad policy) bifogad som standard. Du tar bort denna policy senare för att behålla minimibehörighet.
- För Rollnamn, använd namnkonventionen som introducerades i början av detta avsnitt för att namnge rollen SageMakerStudioExecutionRole_data-engineer.
- För Tags, lägg till nyckelanvändarprofilnamnet och värdedataingenjören.
- Välja Skapa roll.
- För att lägga till återstående policyer, på roller välj det rollnamn du just skapade.
- Enligt behörigheter, ta bort policyn AmazonSageMakerFullAccess.
- På Bifoga behörighetspolicyn sida, välj den AWS-hanterade policyn AwsGlueSessionUserRestrictedServiceRole och de kundhanterade policyerna SageMakerExecutionPolicy och SageMakerAdminPolicy som du skapade.
- Välja Bifoga policyer.
- Ändra din rolls förtroendeförhållande:
- Skapa en IAM-roll för SageMaker för datavetaren (data-scientist), som används som motsvarande användarprofils exekveringsroll.
- För Rollnamn, namnge rollen SageMakerStudioExecutionRole_data-scientist.
- För Tags, lägg till nyckelanvändarprofilnamnet och värdedataforskaren.
- Välja Skapa roll.
- För att lägga till återstående policyer, på roller välj det rollnamn du just skapade.
- Enligt behörigheter, ta bort policyn AmazonSageMakerFullAccess.
- På Bifoga behörighetspolicyn sida, välj den AWS-hanterade policyn AwsGlueSessionUserRestrictedServiceRole och den kundhanterade policy SageMakerExecutionPolicy som du skapade.
- Välja Bifoga policyer.
- Ändra din rolls förtroendeförhållande:
Konfigurera SageMaker användarprofiler
För att skapa dina SageMaker-användarprofiler med studiouserid
tagg, slutför följande steg:
- Använd AWS CLI eller CloudShell för att skapa Studio-användarprofilen för dataingenjören (ange ditt konto-ID och Studio-domän-ID i följande kod):
- Upprepa steget för att skapa en användarprofil för datavetaren, ersätt konto-ID och Studio-domän-ID:
Skapa S3-buckets och ladda upp exempeldataset
I det här avsnittet skapar du två S3-hinkar. Den första hinken har en exempeldatauppsättning relaterad till webbmarknadsföring. Den andra hinken används av dataforskaren för att lagra utdata från funktionstekniska uppgifter, och denna utdatadatauppsättning används för att träna ML-modellen.
Skapa först S3-hinken för indata:
- Download datasetet.
- Välj på Amazon S3-konsolen Skopor i navigeringsfönstret.
- Välja Skapa hink.
- För Region, välj regionen med SageMaker-domänen som innehåller användarprofilerna du skapade.
- För Hinkens namn, stiga på
blog-studio-pii-dataset-
. - Välja Skapa hink.
- Välj den hink du skapade och välj Ladda.
- I Välj filer avsnitt väljer Lägg till filer och ladda upp datauppsättningen du laddade ner.
Nu skapar du hinken för utdata: - På Skopor sida, välj Skapa hink.
- För Region, välj regionen med SageMaker-domänen som innehåller användarprofilerna du skapade.
- För Hinkens namn, stiga på
blog-studio-output-
. - Välja Skapa hink.
Skapa en AWS Glue-databas och tabell
I det här avsnittet skapar du en AWS Glue-databas och tabell för datamängden.
- På Lake Formation-konsolen, under Datakatalog välj i navigeringsfönstret Databaser.
- Välja Lägg till databas.
- För Namn , ange demo.
- Välja Skapa databas.
- Enligt Datakatalogväljer Bord.
- För Namn , stiga på
web_marketing
. - För Databas, Välj
demo
. - För Inkludera sökväg, ange sökvägen till din S3-skopa för indata.
- För Klassificeringväljer CSV.
- Enligt Schemaväljer Ladda upp schema.
- Ange följande JSON-array i textrutan:
- Välja Ladda.
- Välja Skicka.
- Enligt Tabelldetaljerväljer Redigera tabell.
- Enligt Tabellegenskaperväljer Lägg till.
- För Nyckel, stiga på
skip.header.line.count
Och för Värde, ange 1. - Välja Save.
Konfigurera Lake Formation-behörigheter
I det här avsnittet ställer du in Lake Formation-behörigheter för att tillåta IAM-roll SageMakerStudioExecutionRole_data-engineer
för att skapa en databas och registrera S3-platsen i Lake Formation.
Registrera först datasjöplatsen för att hantera tabeller under platsen i Lake Formation-behörigheter:
- Välja Data sjö platser.
- Välja Registrera plats.
- För Amazon S3-väg, stiga på
s3://blog-studio-pii-dataset-/
(hinken som innehåller datamängden). - Välja Registrera plats.
Nu ger du Lake Formation databas- och tabellbehörigheter till IAM-rollernaSageMakerStudioExecutionRole_data-engineer
ochSageMakerStudioExecutionRole_data-scientist
.Ge först databasbehörighet förSageMakerStudioExecutionRole_data-engineer
: - Enligt behörigheterväljer Data Lake-behörigheter.
- Enligt Datatillståndväljer Grant.
- För Mainväljer IAM-användare och rolleroch välj rollen
SageMakerStudioExecutionRole_data-engineer
. - För Policytaggar eller katalogresurserväljer Namngivna datakatalogresurser.
- För Databaser, välj demo.
- För Databasbehörigheter, välj super.
- Välja Grant.
Bevilja sedan bordstillstånd förSageMakerStudioExecutionRole_data-engineer
: - Enligt Datatillståndväljer Grant.
- För Mainväljer IAM-användare och rolleroch välj rollen
SageMakerStudioExecutionRole_data-engineer
. - För Policytaggar eller katalogresurserväljer Namngivna datakatalogresurser.
- För Databaserväljer
demo
. - För Bordväljer
web_marketing
. - För Bord behörigheter, välj super.
- För Beviljande behörigheter, välj super.
- Välja Grant.
Slutligen, ge databastillstånd förSageMakerStudioExecutionRole_data-scientist
: - Enligt Datatillståndväljer Grant.
- För Mainväljer IAM-användare och rolleroch välj rollen
SageMakerStudioExecutionRole_data-scientist
. - För Policytaggar eller katalogresurserväljer Namngivna datakatalogresurser.
- För Databaserväljer
demo
. - För Databasbehörigheter, välj Beskriv.
- Välja Grant.
Om författarna
Praveen Kumar är en Analytics Solution Architect på AWS med expertis i att designa, bygga och implementera moderna data- och analysplattformar med hjälp av molnbaserade tjänster. Hans intresseområden är serverlös teknologi, moderna molndatalager, streaming och ML-applikationer.
Noritaka Sekiyama är en främsta Big Data Architect i AWS Glue-teamet. Han tycker om att samarbeta med olika team för att leverera resultat som det här inlägget. På fritiden tycker han om att spela tv-spel med sin familj.
- Avancerat (300)
- 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 Big Data
- AWS-lim
- AWS Lake Formation
- 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
- tanke ledarskap
- zephyrnet