Organizațiile folosesc servicii de învățare automată (ML) și AI pentru a îmbunătăți experiența clienților, a reduce costurile operaționale și a debloca noi posibilități de îmbunătățire a rezultatelor afacerii. Datele stau la baza cazurilor de utilizare ML și AI și sunt un activ strategic pentru o organizație. Pe măsură ce datele cresc într-un ritm exponențial, organizațiile caută să creeze o platformă de date integrată, rentabilă și performantă pentru a preprocesa datele, a realiza inginerie de caracteristici și a construi, antrena și operaționaliza modele ML la scară. Pentru a realiza acest lucru, AWS oferă o platformă de date modernă unificată, care este alimentată de Serviciul Amazon de stocare simplă (Amazon S3) ca lac de date cu instrumente special concepute și motoare de procesare pentru a sprijini sarcinile de analiză și ML. Pentru o experiență ML unificată, puteți utiliza Amazon SageMaker Studio, care oferă integrare nativă cu sesiunile interactive AWS Glue pentru a efectua inginerie de caracteristici la scară cu protecție a datelor sensibile. În această postare, demonstrăm cum să implementăm această soluție.
Amazon SageMaker este un serviciu ML gestionat complet care vă permite să construiți, să antrenezi și să implementați modele la scară pentru o gamă largă de cazuri de utilizare. Pentru antrenamentul modelului, puteți utiliza oricare dintre algoritmi încorporați în SageMaker pentru a începe formarea și implementarea rapidă a modelelor ML.
O componentă cheie a procesului de construire și dezvoltare a modelelor este ingineria caracteristicilor. AWS Adeziv este una dintre opțiunile recomandate pentru a realiza ingineria caracteristicilor la scară. AWS Glue vă permite să rulați integrarea și transformarea datelor într-un mod distribuit pe o infrastructură Apache Spark fără server și facilitează utilizarea popularei biblioteci Spark ML pentru inginerie de caracteristici și dezvoltare de modele. În plus, puteți utiliza AWS Glue pentru procesarea incrementală a datelor marcaje de locuri de muncă, ingerați date din peste 100 de surse folosind conectoriși rulați încărcături de lucru înțepenite sau imprevizibile folosind scalare automată.
O altă cerință importantă pentru aplicațiile bazate pe ML este securitatea datelor și controlul accesului. Este o cerere obișnuită de a avea un control mai strict asupra cine poate accesa cele mai sensibile date, ca parte a procesului de inginerie a caracteristicilor și de construire a modelului, urmând principiul accesului cu cel mai mic privilegiu. Pentru a realiza acest lucru, puteți utiliza integrarea AWS Glue cu Formația lacului AWS pentru o guvernanță și management sporit al activelor lacurilor de date. Cu Lake Formation, puteți configura controlul precis al accesului la date și politicile de securitate pe deasupra lacului dvs. de date Amazon S3. Politicile sunt definite într-o locație centrală, permițând mai multe servicii de analiză și ML, cum ar fi AWS Glue, Amazon Atena, și SageMaker, pentru a interacționa cu datele stocate în Amazon S3.
AWS Glue include a detectarea informațiilor de identificare personală (PII). transformare care oferă capacitatea de a detecta, masca sau elimina entități după cum este necesar, pentru o conformitate și guvernare sporite. Cu transformarea PII, puteți detecta datele PII în seturi de date și puteți aplica automat un control de acces precis folosind Lake Formation pentru a restricționa datele sensibile pentru diferite grupuri de utilizatori.
Utilizare caz
Ne concentrăm pe un caz de utilizare a modelului de înclinație care include un set de date de marketing pentru clienți și implică două persoane de utilizator: un inginer de date și un cercetător de date. Setul de date conține informații pentru fiecare client, inclusiv sursa potențială, notele de contact, rolul postului, câteva semnale, vizualizări de pagină per vizită și multe altele. Setul de date include, de asemenea, informații sensibile, cum ar fi numerele de telefon personale.
Inginerul de date este responsabil pentru construirea conductei de procesare a datelor end-to-end, inclusiv pregătirea datelor, preprocesarea și controlul accesului. Specialistul de date este responsabil pentru ingineria caracteristicilor și pentru instruirea și implementarea modelului ML. Rețineți că cercetătorul de date nu are voie să acceseze date sensibile PII pentru inginerie de caracteristici sau pentru antrenamentul modelului ML.
Ca parte a acestui caz de utilizare, inginerul de date construiește o conductă de date pentru a preprocesa setul de date, scanează setul de date pentru orice informație PII și restricționează accesul coloanei PII la utilizatorul de date. Ca urmare, atunci când un cercetător de date utilizează setul de date pentru a efectua inginerie de caracteristici și pentru a construi modele ML, nu are acces la coloana sensibilă la PII (numerele de telefon, în acest caz). Procesul de inginerie a caracteristicilor implică conversia coloanelor de tip șir într-un format care este optim pentru modelele ML. Ca un caz de utilizare avansat, puteți extinde acest model de acces pentru a implementa securitatea la nivel de rând și la nivel de celulă folosind Lake Formation.
Prezentare generală a soluțiilor
Soluția conține următorii pași de nivel înalt:
- Configurați resurse cu Formarea AWS Cloud.
- Preprocesează setul de date, inclusiv detectarea PII și controlul precis al accesului, într-o sesiune interactivă AWS Glue.
- Efectuați inginerie de caracteristici pe o sesiune interactivă AWS Glue.
- Antrenează și implementează un model ML folosind algoritmul XGBoost încorporat SageMaker.
- Evaluați modelul ML.
Următoarea diagramă ilustrează arhitectura soluției.
Cerințe preliminare
Pentru a finaliza acest tutorial, trebuie să aveți următoarele cerințe preliminare:
Configurați resurse cu AWS CloudFormation
Această postare include un șablon CloudFormation pentru o configurare rapidă. Îl puteți revizui și personaliza în funcție de nevoile dvs. Dacă preferați să configurați resurse pe Consola de administrare AWS și AWS CLI, mai degrabă decât AWS CloudFormation, consultați instrucțiunile din apendicele de la sfârșitul acestei postări.
Șablonul CloudFormation generează următoarele resurse:
- Bucket S3 cu un set de date eșantion
- An AWS Lambdas funcția de încărcare a setului de date
- Gestionarea identității și accesului AWS (IAM), utilizatori, roluri și politici
- Setări și permisiuni ale lacului de date Lake Formation
- Profiluri de utilizator SageMaker
Pentru a vă crea resursele, parcurgeți următorii pași:
- Conectați-vă la consolă.
- Alege Lansați Stack:
- Alege Pagina Următoare →.
- Pentru DataIngineerPwd și DataScientistPwd, introduceți propria parolă pentru inginerul de date și pentru utilizatorii de date.
- Pentru GlueDatabaseName, introduce
demo
. - Pentru GlueTableName, introduce
web_marketing
. - Pentru S3BucketNameForInput, introduce
blog-studio-pii-dataset-
. - Pentru S3BucketNameForOutput, introduce
blog-studio-output-
. - Pentru SageMakerDomainId, introduceți ID-ul domeniului SageMaker pe care l-ați pregătit în pașii necesari.
- Alege Pagina Următoare →.
- Pe pagina următoare, alegeți Pagina Următoare →.
- Consultați detaliile de pe pagina finală și selectați Recunosc că AWS CloudFormation ar putea crea resurse IAM.
- Alege Crea.
Crearea stivei poate dura până la 10 minute. Stiva creează roluri IAM și profiluri de utilizator SageMaker pentru două persoane: inginer de date și cercetător de date. De asemenea, creează o bază de date demonstrativă și un tabel web_marketing
cu un set de date eșantion.
La momentul creării stivei, persoana inginer de date are acces complet la tabel, dar persoana cercetător de date nu are încă acces la tabel.
Preprocesează setul de date
Să începem preprocesarea datelor într-o sesiune interactivă AWS Glue. Inginerul de date dorește să verifice datele pentru a vedea dacă există sau nu date sensibile și să acorde permisiunea minimă de acces personalului de date. Puteți descărca notebook de pe această locație.
- Conectați-vă la consolă utilizând utilizatorul data-inginer.
- Pe consola SageMaker, alegeți Utilizatori.
- Selectați utilizatorul inginer de date și alegeți Deschide Studio.
- Creați un nou caiet și alegeți SparkAnalytics 1.0 pentru Imagine și Lipici PySpark pentru Nucleu.
- Începeți o sesiune interactivă cu următoarea magie pentru a instala versiunea mai nouă de Boto3 (acest lucru este necesar pentru utilizarea programului
create_data_cells_filter
metodă): - Inițializați sesiunea:
- Creați un AWS Glue DynamicFrame din tabelul nou creat și rezolva tipurile de alegeri bazat pe schema de catalog, deoarece dorim să folosim schema definită în catalog în loc de schema dedusă automat pe baza datelor:
- Validați în tabel dacă există date PII utilizând detectarea PII AWS Glue:
- Verificați dacă coloanele clasificate ca PII conțin sau nu date sensibile (dacă nu, actualizați classified_map pentru a elimina coloanele nesensibile):
- Configurați permisiunile Lake Formation folosind un filtru de celule de date pentru coloanele detectate automat și restricționați coloanele la persoana de date:
- Conectați-vă la Studio ca cercetător de date pentru a vedea că coloanele PII nu sunt vizibile. Puteți descărca notebook de pe această locație.
- Creați un nou caiet și alegeți SparkAnalytics 1.0 pentru Imagine și Lipici PySpark pentru Nucleu:
Efectuați ingineria caracteristicilor
Folosim biblioteca Apache Spark ML pentru a efectua ingineria caracteristicilor ca utilizator de date și apoi scriem înapoi rezultatul pe Amazon S3.
- În celula următoare, aplicăm caracteristici din Biblioteca Apache Spark ML:
StringIndexer
mapează o coloană de șir de etichete la o coloană de indici de etichete.OneHotEncoder
mapează o caracteristică categorială, reprezentată ca un indice de etichetă, la un vector binar cu cel mult o singură valoare care indică prezența unei caracteristici categoriale specifice. Această transformare este utilizată pentru algoritmii ML care așteaptă funcții continue.VectorAssembler
este un transformator care combină o listă dată de coloane într-o singură coloană vectorială, care este apoi utilizată în antrenarea modelelor ML pentru algoritmi precum regresia logistică și arbori de decizie.
- DataFrame transformat final poate fi creat folosind biblioteca Pipeline. O conductă este specificată ca o secvență de etape. Aceste etape sunt rulate în ordine, iar DataFrame-ul de intrare este transformat pe măsură ce trece prin fiecare etapă.
- Apoi, împărțim setul de date în tren, validăm și testăm DataFrame și îl salvăm în compartimentul S3 pentru a antrena modelul ML (furnizați ID-ul contului dvs. AWS în următorul cod):
Antrenează și implementează un model ML
În secțiunea anterioară, am finalizat ingineria caracteristicilor, care a inclus conversia coloanelor de șir, cum ar fi region
, jobrole
, și usedpromo
într-un format optim pentru modelele ML. Am inclus și coloane precum pageviewspervisit
și totalwebvisits
, care ne va ajuta să anticipăm tendința unui client de a cumpăra un produs.
Acum antrenăm un model ML citind trenul și setul de date de validare folosind algoritmul XGBoost încorporat SageMaker. Apoi implementăm modelul și efectuăm o verificare a preciziei. Puteți descărca notebook de pe această locație.
În celula următoare, citim date din a doua găleată S3, care include rezultatul operațiunilor noastre de inginerie a caracteristicilor. Apoi folosim algoritmul încorporat XGBoost pentru a antrena modelul.
- Deschideți un blocnotes nou. Alege Știința datelor pentru Imagine și Python 3 pentru Nucleu (furnizați ID-ul contului dvs. AWS în următorul cod):
- Când instruirea este finalizată, putem implementa modelul utilizând serviciile de găzduire SageMaker:
Evaluați modelul ML
Folosim setul de date de testare pentru a evalua modelul și pentru a șterge punctul final de inferență când am terminat, pentru a evita orice taxe în curs.
- Evaluați modelul cu următorul cod:
Rezultatul de acuratețe pentru analiza probei a fost de 84.6 %. Acest lucru ar putea fi ușor diferit pentru rularea dvs. din cauza împărțirii aleatorii a setului de date.
- Putem șterge punctul final de inferență cu următorul cod:
A curăța
Acum, la pasul final, curățarea resurselor.
- Goliți cele două găleți create prin stiva CloudFormation.
- Ștergeți aplicațiile asociate cu utilizatorul
profiles data-scientist
șidata-engineer
în cadrul Studioului. - Ștergeți stiva CloudFormation.
Concluzie
În această postare, am demonstrat o soluție care permite persoanelor precum inginerii de date și oamenii de știință de date să efectueze ingineria caracteristicilor la scară. Cu sesiunile interactive AWS Glue, puteți realiza cu ușurință inginerie de caracteristici la scară, cu detectarea automată a PII și controlul precis al accesului, fără a fi nevoie să gestionați nicio infrastructură subiacentă. Folosind Studio ca punct unic de intrare, puteți obține o experiență simplificată și integrată pentru a construi un flux de lucru ML end-to-end: de la pregătirea și securizarea datelor până la construirea, instruirea, reglarea și implementarea modelelor ML. Pentru a afla mai multe, vizitați Noțiuni introductive despre sesiunile interactive AWS Glue și Amazon SageMaker Studio.
Suntem foarte încântați de această nouă capacitate și dornici să vedem ce veți construi cu ea!
Anexă: Configurați resurse prin consolă și AWS CLI
Completați instrucțiunile din această secțiune pentru a configura resursele utilizând consola și AWS CLI în loc de șablonul CloudFormation.
Cerințe preliminare
Pentru a finaliza acest tutorial, trebuie să aveți acces la AWS CLI (consultați Noțiuni introductive cu AWS CLI) sau utilizați accesul la linia de comandă de la AWS CloudShell.
Configurați grupul IAM, utilizatorii, rolurile și politicile
În această secțiune, creăm doi utilizatori IAM: data-inginer și data-scientist, care aparțin grupului IAM data-platform-group. Apoi adăugăm o singură politică IAM la grupul IAM.
- Pe consola IAM, creați o politică în fila JSON pentru a crea o nouă politică gestionată IAM numită
DataPlatformGroupPolicy
. Politica permite utilizatorilor din grup să acceseze Studio, dar numai folosind un profil de utilizator SageMaker cu o etichetă care se potrivește cu numele lor de utilizator IAM. Utilizați următorul document de politică JSON pentru a furniza permisiuni: - Creați un grup IAM denumit
data-platform-group
. - Căutați și atașați la grup politica gestionată AWS numită DataPlatformGroupPolicy.
- Creați utilizatori IAM numit inginer de date și om de știință de date în cadrul grupului IAM grup de platformă de date.
- Creați o nouă politică gestionată numit SageMakerExecutionPolicy (furnizați regiunea și ID-ul contului în următorul cod):
- Creați o nouă politică gestionată numit
SageMakerAdminPolicy
: - Creați un rol IAM pentru SageMaker pentru inginerul de date (inginer de date), care este utilizat ca rol de execuție al profilului de utilizator corespunzător. Pe Atașați politica de permisiuni pagina, AmazonSageMakerFullAccess (politica gestionată AWS) este atașat implicit. Eliminați această politică mai târziu pentru a menține privilegiul minim.
- Pentru Nume rol, utilizați convenția de denumire introdusă la începutul acestei secțiuni pentru a denumi rolul SageMakerStudioExecutionRole_data-inginer.
- Pentru Tag-uri, adăugați cheia userprofilename și valoarea data-ingineer.
- Alege Creare rol.
- Pentru a adăuga politicile rămase, pe Roluri pagina, alegeți numele rolului pe care tocmai l-ați creat.
- În Permisiuni, eliminați politica AmazonSageMakerFullAccess.
- Pe Atașați politica de permisiuni pagina, selectați politica gestionată AWS AwsGlueSessionUserRestrictedServiceRole și politicile gestionate de client SageMakerExecutionPolicy și SageMakerAdminPolicy pe care le-ați creat.
- Alege Atașați politicile.
- Modifica relația de încredere a rolului tău:
- Creați un rol IAM pentru SageMaker pentru data scientist (data-scientist), care este utilizat ca rol de execuție al profilului de utilizator corespunzător.
- Pentru Nume rol, denumește rolul SageMakerStudioExecutionRole_data-scientist.
- Pentru Tag-uri, adăugați cheia userprofilename și valoarea data-scientist.
- Alege Creare rol.
- Pentru a adăuga politicile rămase, pe Roluri pagina, alegeți numele rolului pe care tocmai l-ați creat.
- În Permisiuni, eliminați politica AmazonSageMakerFullAccess.
- Pe Atașați politica de permisiuni pagina, selectați politica gestionată AWS AwsGlueSessionUserRestrictedServiceRole și politica gestionată de client SageMakerExecutionPolicy pe care ați creat-o.
- Alege Atașați politicile.
- Modifica relația de încredere a rolului tău:
Configurați profilurile de utilizator SageMaker
Pentru a vă crea profilurile de utilizator SageMaker cu studiouserid
etichetă, parcurgeți următorii pași:
- Utilizați AWS CLI sau CloudShell pentru a crea profilul de utilizator Studio pentru inginerul de date (furnizați ID-ul contului și ID-ul domeniului Studio în următorul cod):
- Repetați pasul pentru a crea un profil de utilizator pentru cercetătorul de date, înlocuind ID-ul contului și ID-ul domeniului Studio:
Creați compartimente S3 și încărcați setul de date eșantion
În această secțiune, creați două compartimente S3. Prima găleată are un set de date eșantion legat de marketingul web. A doua găleată este folosită de cercetătorul de date pentru a stoca rezultatele din sarcinile de inginerie a caracteristicilor, iar acest set de date de ieșire este folosit pentru a antrena modelul ML.
Mai întâi, creați compartimentul S3 pentru datele de intrare:
- Descarcă setul de date.
- În consola Amazon S3, alegeți Cupă în panoul de navigare.
- Alege Creați găleată.
- Pentru Regiune, alegeți Regiunea cu domeniul SageMaker care include profilurile de utilizator pe care le-ați creat.
- Pentru Numele cupei, introduce
blog-studio-pii-dataset-
. - Alege Creați găleată.
- Selectați găleata pe care ați creat-o și alegeți Încărcați.
- În selectaţi fișierele secțiune, pentru a alege Adăugați fișiere și încărcați setul de date pe care l-ați descărcat.
Acum creați compartimentul pentru datele de ieșire: - Pe Cupă pagina, alege Creați găleată.
- Pentru Regiune, alegeți Regiunea cu domeniul SageMaker care include profilurile de utilizator pe care le-ați creat.
- Pentru Numele cupei, introduce
blog-studio-output-
. - Alege Creați găleată.
Creați o bază de date și un tabel AWS Glue
În această secțiune, creați o bază de date și un tabel AWS Glue pentru setul de date.
- Pe consola Lake Formation, sub Catalog de date în panoul de navigare, alegeți Baze de date.
- Alege Adăugați o bază de date.
- Pentru Nume si Prenume, intrați în demo.
- Alege Creați o bază de date.
- În Catalog de date, alege Mese.
- Pentru Nume si Prenume, introduce
web_marketing
. - Pentru Baza de date, Selectați
demo
. - Pentru Includeți calea, introduceți calea compartimentului dvs. S3 pentru datele de intrare.
- Pentru Clasificare, alege CSV.
- În Schemă, alege Încărcați schema.
- Introduceți următoarea matrice JSON în caseta de text:
- Alege Încărcați.
- Alege Trimite mesaj.
- În Detalii tabel, alege Editați tabelul.
- În Proprietățile tabelului, alege Adăuga.
- Pentru Cheie, introduce
skip.header.line.count
, Și pentru Valoare, introduceți 1. - Alege Economisiți.
Configurați permisiunile Lake Formation
În această secțiune, configurați permisiunile Lake Formation pentru a permite rolul IAM SageMakerStudioExecutionRole_data-engineer
pentru a crea o bază de date și a înregistra locația S3 în Lake Formation.
Mai întâi, înregistrați locația lacului de date pentru a gestiona tabelele sub locația din permisiunile Lake Formation:
- Alege Locațiile lacului de date.
- Alege Înregistrați locația.
- Pentru Calea Amazon S3, introduce
s3://blog-studio-pii-dataset-/
(găleata care conține setul de date). - Alege Înregistrați locația.
Acum acordați permisiuni pentru bazele de date și tabele Lake Formation rolurilor IAMSageMakerStudioExecutionRole_data-engineer
șiSageMakerStudioExecutionRole_data-scientist
.În primul rând, acordați permisiunea bazei de date pentruSageMakerStudioExecutionRole_data-engineer
: - În Permisiuni, alege Permisiunile lacului de date.
- În Permisiunea datelor, alege Grant.
- Pentru Directorii, alege Utilizatori și roluri IAMși selectați rolul
SageMakerStudioExecutionRole_data-engineer
. - Pentru Etichete de politică sau resurse de catalog, alege Resurse de catalog de date denumite.
- Pentru Baze de date, alegeți demo.
- Pentru Permisiuni baza de date, selecta Super.
- Alege Grant.
Apoi, acordați permisiunea de masă pentruSageMakerStudioExecutionRole_data-engineer
: - În Permisiunea datelor, alege Grant.
- Pentru Directorii, alege Utilizatori și roluri IAMși selectați rolul
SageMakerStudioExecutionRole_data-engineer
. - Pentru Etichete de politică sau resurse de catalog, alege Resurse de catalog de date denumite.
- Pentru Baze de date, alege
demo
. - Pentru Mese, alege
web_marketing
. - Pentru Tabel permisiuni, selecta Super.
- Pentru Acordabil permisiuni, selecta Super.
- Alege Grant.
În cele din urmă, acordați permisiunea bazei de date pentruSageMakerStudioExecutionRole_data-scientist
: - În Permisiunea datelor, alege Grant.
- Pentru Directorii, alege Utilizatori și roluri IAMși selectați rolul
SageMakerStudioExecutionRole_data-scientist
. - Pentru Etichete de politică sau resurse de catalog, alege Resurse de catalog de date denumite.
- Pentru Baze de date, alege
demo
. - Pentru Permisiuni baza de date, selecta Descrie.
- Alege Grant.
Despre Autori
Praveen Kumar este arhitect de soluții de analiză la AWS, cu experiență în proiectarea, construirea și implementarea platformelor moderne de date și analiză care utilizează servicii native din cloud. Domeniile sale de interes sunt tehnologia fără server, depozitele moderne de date în cloud, streaming și aplicațiile ML.
Noritaka Sekiyama este arhitect principal de date mari în echipa AWS Glue. Îi place să colaboreze cu diferite echipe pentru a oferi rezultate ca această postare. În timpul liber, îi place să joace jocuri video cu familia.
- Avansat (300)
- AI
- ai art
- ai art generator
- ai robot
- Amazon SageMaker
- inteligență artificială
- certificare de inteligență artificială
- inteligența artificială în domeniul bancar
- robot cu inteligență artificială
- roboți cu inteligență artificială
- software de inteligență artificială
- AWS Big Data
- AWS Adeziv
- Formația lacului AWS
- Învățare automată AWS
- blockchain
- conferință blockchain ai
- coingenius
- inteligența artificială conversațională
- criptoconferință ai
- dall-e
- învățare profundă
- google ai
- masina de învățare
- Plato
- platoul ai
- Informații despre date Platon
- Jocul lui Platon
- PlatoData
- platogaming
- scara ai
- sintaxă
- conducerea gândirii
- zephyrnet