Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2

Aceasta este a doua parte a unei serii care prezintă ciclul de viață de învățare automată (ML) cu un model de proiectare a rețelei de date pentru o întreprindere mare cu mai multe linii de afaceri (LOB) și un Centru de excelență (CoE) pentru analiză și ML.

In parte 1, ne-am adresat personalului de administrator de date și am prezentat o configurare a rețelei de date cu mai multe conturi de producători și consumatori de date AWS. Pentru o privire de ansamblu asupra contextului de afaceri și a pașilor pentru a configura o rețea de date Formația lacului AWS și înregistrați un produs de date, consultați partea 1.

În această postare, ne adresăm echipei de analiză și platformă ML ca un consumator în rețeaua de date. Echipa platformei configurează mediul ML pentru oamenii de știință de date și îi ajută să obțină acces la produsele de date necesare în rețeaua de date. Oamenii de știință de date din această echipă le folosesc Amazon SageMaker să construiască și să antreneze un model de predicție a riscului de credit utilizând produsul de date privind riscul de credit partajat de la LoB banca de consum.

Codul pentru acest exemplu este disponibil pe GitHub.

Consumator de analize și ML într-o arhitectură de rețea de date

Să recapitulăm arhitectura de nivel înalt care evidențiază componentele cheie din arhitectura rețelei de date.

În blocul 1 al producătorului de date (stânga), există o etapă de prelucrare a datelor pentru a se asigura că datele partajate sunt bine calificate și curatate. Blocul central de guvernare a datelor 2 (centrul) acționează ca un catalog de date centralizat cu metadate ale diferitelor produse de date înregistrate. Blocul 3 de consumator de date (dreapta) solicită accesul la seturile de date din catalogul central și interogează și procesează datele pentru a construi și antrena modele ML.

Cu SageMaker, oamenii de știință de date și dezvoltatorii din ML CoE pot construi și antrena rapid și ușor modele ML, apoi le pot implementa direct într-un mediu găzduit pregătit pentru producție. SageMaker oferă acces ușor la sursele dvs. de date pentru explorare și analiză și oferă, de asemenea, algoritmi și cadre ML obișnuite, care sunt optimizate pentru a rula eficient împotriva datelor extrem de mari într-un mediu distribuit. Este ușor să începeți Amazon SageMaker Studio, un mediu de dezvoltare integrat (IDE) bazat pe web, prin completarea domeniului SageMaker procesul de bord. Pentru mai multe informații, consultați Ghid pentru dezvoltatori Amazon SageMaker.

Consumul de produse de date de către analytics și ML CoE

Următoarea diagramă de arhitectură descrie pașii necesari de către consumatorul de analiză și ML CoE pentru a obține acces la produsul de date înregistrat în catalogul central de date și pentru a procesa datele pentru a construi și a antrena un model ML.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Fluxul de lucru constă din următoarele componente:

  1. Administratorul de date producător oferă acces în contul central la baza de date și tabel la contul de consumator. Baza de date este acum reflectată ca o bază de date partajată în contul de consumator.
  2. Administratorul consumatorului creează o legătură de resurse în contul de consumator către baza de date partajată de contul central. Următoarea captură de ecran arată un exemplu în contul de consumator, cu rl_credit-card fiind legătura de resursă a credit-card Bază de date.
    Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
    Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  3. Administratorul pentru consumatori oferă Studioul Gestionarea identității și accesului AWS (IAM) accesul rolului de execuție la baza de date legată de resurse și la tabelul identificat în eticheta Lake Formation. În exemplul următor, administratorul consumatorului furnizat rolului de execuție SageMaker are permisiunea de a accesa rl_credit-card iar tabelul care satisface expresia etichetei Lake Formation.
    Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  4. Odată atribuit un rol de execuție, oamenii de știință de date din SageMaker îl pot folosi Amazon Atena pentru a interoga tabelul prin baza de date cu linkuri de resurse din Lake Formation.
    1. Pentru explorarea datelor, aceștia pot folosi notebook-urile Studio pentru a procesa datele cu interogare interactivă prin Athena.
    2. Pentru procesarea datelor și ingineria caracteristicilor, aceștia pot rula lucrări de procesare SageMaker cu o sursă de date Athena și pot scoate rezultatele înapoi la Serviciul Amazon de stocare simplă (Amazon S3).
    3. După ce datele sunt procesate și disponibile în Amazon S3 în contul ML CoE, oamenii de știință de date pot folosi joburile de instruire SageMaker pentru a instrui modele și Conducte SageMaker pentru a automatiza fluxurile de lucru pentru construirea de modele.
    4. Oamenii de știință de date pot folosi, de asemenea, registrul de modele SageMaker pentru a înregistra modelele.

Explorarea datelor

Următoarea diagramă ilustrează fluxul de lucru de explorare a datelor în contul de consumator de date.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Consumatorul începe prin a interoga un eșantion de date din credit_risk masă cu Atena într-un caiet de studio. La interogarea datelor prin Athena, rezultatele intermediare sunt salvate și în Amazon S3. Puteți folosi Biblioteca AWS Data Wrangler pentru a rula o interogare pe Athena într-un blocnotes Studio pentru explorarea datelor. Următorul exemplu de cod arată cum o interoghezi pe Athena pentru a prelua rezultatele ca un cadru de date pentru explorarea datelor:

df= wr.athena.read_sql_query('SELECT * FROM credit_card LIMIT 10;', database="rl_credit-card", ctas_approach=False)

Acum că aveți un subset de date ca cadru de date, puteți începe să explorați datele și să vedeți ce actualizări de inginerie a caracteristicilor sunt necesare pentru formarea modelului. Un exemplu de explorare a datelor este prezentat în următoarea captură de ecran.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Când interogați baza de date, puteți vedea jurnalele de acces din consola Lake Formation, așa cum se arată în următoarea captură de ecran. Aceste jurnale vă oferă informații despre cine sau ce serviciu a folosit Lake Formation, inclusiv rolul IAM și timpul de acces. Captura de ecran arată un jurnal despre accesarea tabelului de către SageMaker credit_risk în AWS Glue prin Athena. În jurnal, puteți vedea contextul de audit suplimentar care conține ID-ul de interogare care se potrivește cu ID-ul de interogare din Athena.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Următoarea captură de ecran arată ID-ul de rulare a interogării Athena care se potrivește cu ID-ul de interogare din jurnalul precedent. Aceasta arată datele accesate cu interogarea SQL. Puteți vedea ce date au fost interogate navigând la consola Athena, alegând Interogări recente fila și apoi căutați ID-ul de rulare care se potrivește cu ID-ul de interogare din contextul de audit suplimentar.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Procesarea datelor

După explorarea datelor, este posibil să doriți să preprocesați întregul set mare de date pentru inginerie de caracteristici înainte de a antrena un model. Următoarea diagramă ilustrează procedura de prelucrare a datelor.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

În acest exemplu, folosim un job de procesare SageMaker, în care definim o definiție de set de date Athena. Lucrarea de procesare interogează datele prin Athena și utilizează un script pentru a împărți datele în seturi de date de instruire, testare și validare. Rezultatele lucrării de procesare sunt salvate pe Amazon S3. Pentru a afla cum să configurați o lucrare de procesare cu Athena, consultați Utilizați Amazon Athena într-o lucrare de procesare cu Amazon SageMaker.

În acest exemplu, puteți utiliza SDK-ul Python pentru a declanșa o lucrare de procesare cu cadrul Scikit-learn. Înainte de declanșare, puteți configura parametrul intrărilor pentru a obține datele de intrare prin definiția setului de date Athena, așa cum se arată în codul următor. Setul de date conține locația pentru a descărca rezultatele din Athena în containerul de procesare și configurația pentru interogarea SQL. Când procesul de procesare este terminat, rezultatele sunt salvate în Amazon S3.

AthenaDataset = AthenaDatasetDefinition (
  catalog = 'AwsDataCatalog', 
  database = 'rl_credit-card', 
  query_string = 'SELECT * FROM "rl_credit-card"."credit_card""',                                
  output_s3_uri = 's3://sagemaker-us-east-1-********7363/athenaqueries/', 
  work_group = 'primary', 
  output_format = 'PARQUET')

dataSet = DatasetDefinition(
  athena_dataset_definition = AthenaDataset, 
  local_path='/opt/ml/processing/input/dataset.parquet')


sklearn_processor.run(
    code="processing/preprocessor.py",
    inputs=[ProcessingInput(
      input_name="dataset", 
      destination="/opt/ml/processing/input", 
      dataset_definition=dataSet)],
    outputs=[
        ProcessingOutput(
            output_name="train_data", source="/opt/ml/processing/train", destination=train_data_path
        ),
        ProcessingOutput(
            output_name="val_data", source="/opt/ml/processing/val", destination=val_data_path
        ),
        ProcessingOutput(
            output_name="model", source="/opt/ml/processing/model", destination=model_path
        ),
        ProcessingOutput(
            output_name="test_data", source="/opt/ml/processing/test", destination=test_data_path
        ),
    ],
    arguments=["--train-test-split-ratio", "0.2"],
    logs=False,
)

Antrenamentul modelului și înregistrarea modelului

După preprocesarea datelor, puteți antrena modelul cu datele preprocesate salvate în Amazon S3. Următoarea diagramă ilustrează procesul de formare și înregistrare a modelului.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Pentru operațiunile de explorare a datelor și procesare SageMaker, puteți prelua datele din rețeaua de date prin Athena. Deși SageMaker Training API nu include un parametru pentru a configura o sursă de date Athena, puteți interoga datele prin Athena în scriptul de antrenament propriu-zis.

În acest exemplu, datele preprocesate sunt acum disponibile în Amazon S3 și pot fi utilizate direct pentru a antrena un model XGBoost cu SageMaker Script Mode. Puteți furniza scriptul, hiperparametrii, tipul instanței și toți parametrii suplimentari necesari pentru a antrena cu succes modelul. Puteți declanșa estimatorul SageMaker cu datele de instruire și validare din Amazon S3. Când instruirea modelului este finalizată, puteți înregistra modelul în registrul de modele SageMaker pentru urmărirea experimentului și implementarea într-un cont de producție.

estimator = XGBoost(
    entry_point=entry_point,
    source_dir=source_dir,
    output_path=output_path,
    code_location=code_location,
    hyperparameters=hyperparameters,
    instance_type="ml.c5.xlarge",
    instance_count=1,
    framework_version="0.90-2",
    py_version="py3",
    role=role,
)

inputs = {"train": train_input_data, "validation": val_input_data}

estimator.fit(inputs, job_name=job_name)

Pasii urmatori

Puteți face actualizări incrementale ale soluției pentru a răspunde cerințelor privind actualizările de date și reinstruirea modelului, ștergerea automată a datelor intermediare în Amazon S3 și integrarea unui magazin de caracteristici. Vom discuta fiecare dintre acestea mai detaliat în secțiunile următoare.

Actualizări de date și declanșatoare de reinstruire a modelului

Următoarea diagramă ilustrează procesul de actualizare a datelor de antrenament și de declanșare a reantrenării modelului.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Procesul include următorii pași:

  1. Producătorul de date actualizează produsul de date fie cu o nouă schemă, fie cu date suplimentare la o frecvență regulată.
  2. După ce produsul de date este reînregistrat în catalogul central de date, acesta generează un Amazon CloudWatch eveniment de la formarea lacului.
  3. Evenimentul CloudWatch declanșează un AWS Lambdas funcția de sincronizare a produsului de date actualizat cu contul de consumator. Puteți utiliza acest declanșator pentru a reflecta modificările datelor, făcând următoarele:
    1. Rulați din nou crawler-ul AWS Glue.
    2. Declanșați reinstruirea modelului dacă datele depășesc un anumit prag.

Pentru mai multe detalii despre configurarea unei conducte de implementare SageMaker MLOps pentru detectarea derivei, consultați Detectarea derivei Amazon SageMaker Repo GitHub.

Ștergerea automată a datelor intermediare în Amazon S3

Puteți șterge automat datele intermediare care sunt generate de interogările Athena și stocate în Amazon S3 în contul de consumator la intervale regulate cu regulile ciclului de viață al obiectului S3. Pentru mai multe informații, consultați Gestionarea ciclului de viață al stocării.

Integrarea SageMaker Feature Store

Magazin de caracteristici SageMaker este conceput special pentru ML și poate stoca, descoperi și partaja caracteristici selectate utilizate în fluxurile de lucru de instruire și predicție. Un magazin de caracteristici poate funcționa ca o interfață centralizată între diferite echipe de producători de date și LoB-uri, permițând descoperirea și reutilizarea caracteristicilor pentru mai mulți consumatori. Magazinul de caracteristici poate acționa ca o alternativă la catalogul central de date în arhitectura mesh de date descrisă mai devreme. Pentru mai multe informații despre modelele de arhitectură pentru mai multe conturi, consultați Activați reutilizarea funcțiilor între conturi și echipe folosind Amazon SageMaker Feature Store.

Concluzie

În această serie din două părți, am arătat cum puteți construi și antrena modele ML cu o arhitectură de rețea de date cu mai multe conturi pe AWS. Am descris cerințele unei organizații tipice de servicii financiare cu mai multe LoB și un ML CoE și am ilustrat arhitectura soluției cu Lake Formation și SageMaker. Am folosit exemplul unui produs de date privind riscul de credit înregistrat în Lake Formation de către LoB banca de consum și accesat de echipa ML CoE pentru a pregăti un model ML de risc de credit cu SageMaker.

Fiecare cont de producător de date definește produse de date care sunt organizate de persoane care înțeleg datele și controlul accesului, utilizarea și limitările acestora. Produsele de date și domeniile de aplicație care le consumă sunt interconectate pentru a forma rețeaua de date. Arhitectura mesh de date permite echipelor de ML să descopere și să acceseze aceste produse de date selectate.

Lake Formation permite accesul pe mai multe conturi la metadatele Data Catalog și datele subiacente. Puteți utiliza Lake Formation pentru a crea o arhitectură de rețea de date cu mai multe conturi. SageMaker oferă o platformă ML cu capabilități cheie în ceea ce privește gestionarea datelor, experimentarea științei datelor, formarea modelelor, găzduirea modelelor, automatizarea fluxului de lucru și conducte CI/CD pentru producție. Puteți configura unul sau mai multe medii de analiză și ML CoE pentru a construi și antrena modele cu produse de date înregistrate în mai multe conturi într-o rețea de date.

Încercați Formarea AWS Cloud șabloane și cod din exemplu depozit pentru a începe.


Despre autori

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Karim Hammouda este arhitect specializat în soluții pentru Analytics la AWS, cu o pasiune pentru integrarea datelor, analiza datelor și BI. El lucrează cu clienții AWS pentru a proiecta și a construi soluții de analiză care contribuie la creșterea afacerii lor. În timpul liber, îi place să se uite la documentare TV și să joace jocuri video cu fiul său.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Hasan Poonawala este arhitect senior de soluții de specialitate AI/ML la AWS, Hasan îi ajută pe clienți să proiecteze și să implementeze aplicații de învățare automată în producție pe AWS. Are peste 12 ani de experiență de lucru ca om de știință a datelor, practician de învățare automată și dezvoltator de software. În timpul liber, lui Hasan îi place să exploreze natura și să petreacă timp cu prietenii și familia.

Creați și antrenați modele ML folosind o arhitectură de rețea de date pe AWS: Partea 2 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Benoit de Patoul este arhitect specializat în soluții AI/ML la AWS. El ajută clienții oferind îndrumări și asistență tehnică pentru a construi soluții legate de AI/ML folosind AWS. În timpul liber, îi place să cânte la pian și să petreacă timpul cu prietenii.

Timestamp-ul:

Mai mult de la Învățare automată AWS