Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg

Astăzi, companiile înființează magazine de caracteristici pentru a oferi un depozit central pentru a scala dezvoltarea ML în unitățile de afaceri și echipele de știință a datelor. Pe măsură ce datele caracteristicilor cresc în dimensiune și complexitate, oamenii de știință de date trebuie să fie capabili să interogheze eficient aceste depozite de caracteristici pentru a extrage seturi de date pentru experimentare, antrenament de model și scoring lot.

Magazinul de caracteristici Amazon SageMaker este o soluție special creată de gestionare a caracteristicilor care îi ajută pe oamenii de știință de date și inginerii ML să stocheze, să descopere și să partajeze în siguranță datele selectate utilizate în fluxurile de lucru de instruire și predicție. SageMaker Feature Store acceptă acum Apache Iceberg ca format de tabel pentru stocarea caracteristicilor. Acest lucru accelerează dezvoltarea modelului, permițând o performanță mai rapidă a interogărilor atunci când extrageți seturi de date de antrenament ML, profitând de compactarea tabelului Iceberg. În funcție de designul grupurilor de caracteristici și de scara acestora, puteți experimenta îmbunătățiri ale performanței interogărilor de antrenament de 10x până la 100x utilizând această nouă capacitate.

Până la sfârșitul acestei postări, veți ști cum să creați grupuri de caracteristici folosind formatul Iceberg, să executați procedurile de gestionare a tabelelor Iceberg folosind Amazon Atena, și programați aceste sarcini să ruleze în mod autonom. Dacă sunteți utilizator Spark, veți învăța și cum să executați aceleași proceduri folosind Spark și să le încorporați în propriul mediu și automatizare Spark.

Magazinul de funcții SageMaker și Apache Iceberg

Magazinul de caracteristici Amazon SageMaker este un magazin centralizat pentru caracteristici și metadate asociate, permițând caracteristicilor să fie ușor descoperite și reutilizate de echipele de cercetători care lucrează la diferite proiecte sau modele ML.

SageMaker Feature Store constă dintr-un mod online și unul offline pentru gestionarea funcțiilor. Magazinul online este folosit pentru cazuri de utilizare a inferenței în timp real cu latență scăzută. Magazinul offline este folosit în principal pentru predicții pe lot și pentru instruirea modelelor. Magazinul offline este un magazin care poate fi doar atașat și poate fi folosit pentru a stoca și a accesa datele istorice ale caracteristicilor. Cu magazinul offline, utilizatorii pot stoca și servi funcții pentru explorare și scorul lot și pot extrage seturi de date corecte la un moment dat pentru antrenamentul modelului.

Datele din magazinul offline sunt stocate într-un compartiment Amazon Simple Storage Service (Amazon S3) în contul dvs. AWS. SageMaker Feature Store creează automat un catalog de date AWS Glue în timpul creării grupului de caracteristici. Clienții pot accesa, de asemenea, datele magazinului offline folosind un timp de execuție Spark și pot efectua procesarea datelor mari pentru analiza caracteristicilor ML și cazuri de utilizare a ingineriei caracteristicilor.

Formatele de tabel oferă o modalitate de a abstractiza fișierele de date ca tabel. De-a lungul anilor, au apărut multe formate de tabel pentru a sprijini tranzacțiile ACID, guvernanța și cazurile de utilizare a catalogului. Apache Iceberg este un format de tabel deschis pentru seturi de date analitice foarte mari. Gestionează colecții mari de fișiere sub formă de tabele și acceptă operațiuni moderne de lac de date analitice, cum ar fi interogări de inserare, actualizare, ștergere și călătorie în timp la nivel de înregistrare. Iceberg urmărește fișierele de date individuale într-un tabel și nu în directoare. Acest lucru le permite scriitorilor să creeze fișiere de date la locul lor (fișierele nu sunt mutate sau modificate) și să adauge fișiere la tabel doar într-un commit explicit. Starea tabelului este menținută în fișierele de metadate. Toate modificările aduse stării tabelului creează o nouă versiune a fișierului de metadate care înlocuiește atomic metadatele mai vechi. Fișierul de metadate de tabel urmărește schema tabelului, configurația de partiționare și alte proprietăți.

Iceberg are integrări cu serviciile AWS. De exemplu, puteți utiliza AWS Adeziv Catalog de date ca metamagazin pentru tabelele Iceberg și Athena acceptă interogări de citire, călătorie în timp, scriere și DDL pentru tabelele Apache Iceberg care utilizează formatul Apache Parquet pentru date și catalogul AWS Glue pentru metamagazinul lor.

Cu SageMaker Feature Store, puteți acum să creați grupuri de caracteristici cu formatul de tabel Iceberg ca alternativă la formatul standard Glue implicit. Cu aceasta, clienții pot folosi noul format de tabel pentru a utiliza funcțiile Iceberg de compactare a fișierelor și tăiere a datelor pentru a satisface cazurile de utilizare și cerințele de optimizare. De asemenea, Iceberg le permite clienților să efectueze ștergere, interogări de călătorie în timp, tranzacții cu concurență ridicată și interogări cu performanță mai ridicată.

Combinând Iceberg ca format de tabel și operațiuni de întreținere a tabelului, cum ar fi compactarea, clienții obțin performanțe de interogare mai rapide atunci când lucrează cu grupuri de caracteristici offline la scară, permițându-le să construiască mai rapid seturi de date de antrenament ML.

Următoarea diagramă arată structura magazinului offline folosind Iceberg ca format de tabel.

În secțiunile următoare, veți învăța cum să creați grupuri de caracteristici folosind formatul Iceberg, să executați procedurile de gestionare a tabelelor Iceberg utilizând AWS Athena și să utilizați serviciile AWS pentru a programa aceste sarcini să ruleze la cerere sau la o programare. Dacă sunteți utilizator Spark, veți învăța și cum să executați aceleași proceduri folosind Spark.

Pentru instrucțiuni pas cu pas, oferim și a caiet de probă, care poate fi găsit în GitHub. În această postare, vom evidenția cele mai importante părți.

Crearea de grupuri de caracteristici folosind formatul de tabel Iceberg

Mai întâi trebuie să selectați Iceberg ca format de tabel atunci când creați noi grupuri de caracteristici. Un nou parametru opțional TableFormat poate fi setat fie interactiv utilizând Amazon SageMaker Studio, fie prin cod folosind API-ul sau SDK-ul. Acest parametru acceptă valorile ICEBERG or GLUE (pentru formatul actual AWS Glue). Următorul fragment de cod vă arată cum să creați un grup de caracteristici folosind formatul Iceberg și FeatureGroup.create API al SDK-ului SageMaker.

orders_feature_group_iceberg.create(
s3_uri=f"s3://{s3_bucket_name}/{prefix}",
record_identifier_name=record_identifier_feature_name,
event_time_feature_name=event_time_feature_name,
role_arn=role,
enable_online_store=True,
table_format=TableFormatEnum.ICEBERG
)

Tabelul va fi creat și înregistrat automat în AWS Glue Data Catalog.

Acum, că orders_feature_group_iceberg este creat, puteți asimila caracteristici folosind conducta de asimilare dorită. În acest exemplu, ingerăm înregistrări folosind FeatureGroup.ingest() API, care ingerează înregistrări dintr-un Pandas DataFrame. De asemenea, puteți utiliza FeatureGroup().put_record API pentru a ingera înregistrări individuale sau pentru a gestiona sursele de streaming. Utilizatorii Spark pot, de asemenea, să ingereze cadre de date Spark folosind sistemul nostru Conector Spark.

orders_fg = FeatureGroup(name=orders_feature_group_iceberg_name,
sagemaker_session=feature_store_session)
orders_fg.ingest(data_frame=order_data, wait=True)

Puteți verifica dacă înregistrările au fost ingerate cu succes executând o interogare în magazinul de funcții offline. De asemenea, puteți naviga la locația S3 și puteți vedea noua structură a folderelor.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Executarea procedurilor de gestionare a mesei Iceberg

Amazon Atena este un motor de interogare SQL fără server care acceptă în mod nativ procedurile de gestionare a Iceberg. În această secțiune, veți folosi Athena pentru a compacta manual grupul de caracteristici offline pe care l-ați creat. Rețineți că va trebui să utilizați versiunea 3 a motorului Athena. Pentru aceasta, puteți crea un nou grup de lucru sau puteți configura un grup de lucru existent și selectați versiunea 3 a motorului Athena recomandat. Pentru mai multe informații și instrucțiuni pentru schimbarea versiunii motorului Athena, consultați Schimbarea versiunilor de motor Athena.

Pe măsură ce datele se acumulează într-un tabel Iceberg, interogările pot deveni treptat mai puțin eficiente din cauza timpului crescut de procesare necesar pentru a deschide fișiere suplimentare. Compactarea optimizează aspectul structural al tabelului fără a modifica conținutul acestuia.

Pentru a efectua compactarea, utilizați OPTIMIZE table REWRITE DATA comandă de întreținere a mesei de compactare în Athena. Următoarea sintaxă arată cum să optimizați aspectul datelor unui grup de caracteristici stocat folosind formatul de tabel Iceberg. The sagemaker_featurestore reprezintă numele bazei de date SageMaker Feature Store și orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 este numele tabelului nostru de grup de caracteristici.

OPTIMIZE sagemaker_featurestore.orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 REWRITE DATA USING BIN_PACK

După ce rulați comanda de optimizare, utilizați VACUUM procedura, care efectuează expirarea instantaneului și elimină fișierele orfane. Aceste acțiuni reduc dimensiunea metadatelor și elimină fișierele care nu sunt în starea curentă a tabelului și sunt, de asemenea, mai vechi decât perioada de păstrare specificată pentru tabel.

VACUUM sagemaker_featurestore.orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334

Rețineți că proprietățile tabelului sunt configurabile folosind Athena ALTER TABLE. Pentru un exemplu despre cum să faceți acest lucru, consultați documentație Athena. Pentru VACUUM, vacuum_min_snapshots_to_keep și vacuum_max_snapshot_age_seconds poate fi folosit pentru a configura parametrii de tăiere instantanee.

Să aruncăm o privire asupra impactului de performanță al rulării compactării pe un exemplu de tabel de grup de caracteristici. În scopuri de testare, am ingerat aceleași înregistrări ale caracteristicilor comenzilor în două grupuri de caracteristici, orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003 și orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334, folosind o lucrare de procesare SageMaker paralelizată cu Scikit-Learn, care are ca rezultat 49,908,135 de obiecte stocate în Amazon S3 și o dimensiune totală de 106.5 GiB.

Efectuăm o interogare pentru a selecta cel mai recent instantaneu fără duplicate și fără înregistrări șterse din grupul de caracteristici orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003. Înainte de compactare, interogarea a durat 1 oră 27 minute.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Apoi rulăm compactarea orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 folosind interogarea Athena OPTIMIZE, care a compactat tabelul grupului de caracteristici la 109,851 de obiecte în Amazon S3 și o dimensiune totală de 2.5 GiB. Dacă apoi rulăm aceeași interogare după compactare, timpul de rulare a scăzut la 1min 13sec.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Odată cu compactarea fișierelor Iceberg, timpul de execuție a interogărilor s-a îmbunătățit semnificativ. Pentru aceeași interogare, timpul de rulare a scăzut de la 1h 27min la 1min 13sec, ceea ce este de 71 de ori mai rapid.

Programarea compactării Icebergului cu serviciile AWS

În această secțiune, veți învăța cum să automatizați procedurile de gestionare a tabelelor pentru a vă compacta magazinul de caracteristici offline. Următoarea diagramă ilustrează arhitectura pentru crearea grupurilor de caracteristici în format tabel Iceberg și o soluție complet automatizată de gestionare a tabelelor, care include operațiuni de compactare și curățare a fișierelor.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

La un nivel înalt, creați un grup de caracteristici folosind formatul de tabel Iceberg și introduceți înregistrări în magazinul de caracteristici online. Valorile caracteristicilor sunt replicate automat din magazinul online în magazinul istoric offline. Athena este folosită pentru a rula procedurile de gestionare a Aisbergului. Pentru a programa procedurile, configurați un AWS Adeziv job folosind un script shell Python și creați un program de lucru AWS Glue.

Configurare AWS Glue Job

Utilizați o lucrare AWS Glue pentru a executa operațiunile de întreținere a tabelului Iceberg într-un program. În primul rând, trebuie să creați un rol IAM pentru AWS Glue pentru a avea permisiuni de a accesa Amazon Athena, Amazon S3 și CloudWatch.

Apoi, trebuie să creați un script Python pentru a rula procedurile Iceberg. Puteți găsi exemplu de script în GitHub. Scriptul va executa interogarea OPTIMIZE folosind boto3.

optimize_sql = f"optimize {database}.{table} rewrite data using bin_pack"

Scriptul a fost parametrizat folosind AWS Glue getResolvedOptions(args, options) funcție de utilitate care vă oferă acces la argumentele care sunt transmise scriptului dvs. atunci când rulați un job. În acest exemplu, regiunea AWS, baza de date Iceberg și tabelul pentru grupul dvs. de caracteristici, grupul de lucru Athena și folderul cu rezultatele locației de ieșire Athena pot fi transmise ca parametri la job, făcând acest script reutilizabil în mediul dvs.

În cele din urmă, creați jobul AWS Glue real pentru a rula scriptul ca shell în AWS Glue.

  • Navigați la consola AWS Glue.
  • Alege Locuri de munca fila din AWS Glue Studio.
  • Selectați Editor de script Python Shell.
  • Alege Încărcați și editați un script existent. Clic Crea.
  • Detaliile postului butonul vă permite să configurați lucrarea AWS Glue. Trebuie să selectați rolul IAM pe care l-ați creat mai devreme. Selectați Python 3.9 sau cea mai recentă versiune Python disponibilă.
  • În aceeași filă, puteți defini și o serie de alte opțiuni de configurare, cum ar fi Numărul de reîncercări or Timp expirat. În Proprietăți avansate, puteți adăuga parametri de job pentru a executa scriptul, așa cum se arată în exemplul de captură de ecran de mai jos.
  • Clic Economisiți.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

În orarele fila, puteți defini programul pentru a rula procedurile de întreținere a magazinului de caracteristici. De exemplu, următoarea captură de ecran vă arată cum să rulați jobul la un program la fiecare 6 ore.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Puteți monitoriza rulările de job pentru a înțelege valorile de rulare, cum ar fi starea de finalizare, durata și ora de începere. De asemenea, puteți verifica jurnalele CloudWatch pentru lucrarea AWS Glue pentru a verifica dacă procedurile rulează cu succes.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Executarea sarcinilor de gestionare a tabelelor Iceberg cu Spark

Clienții pot folosi Spark și pentru a gestiona lucrările de compactare și metodele de întreținere. Pentru mai multe detalii despre procedurile Spark, consultați Documentația Spark.

Mai întâi trebuie să configurați unele dintre proprietățile comune.

%%configure -f
{
  "conf": {
    "spark.sql.catalog.smfs": "org.apache.iceberg.spark.SparkCatalog",
    "spark.sql.catalog.smfs.catalog-impl": "org.apache.iceberg.aws.glue.GlueCatalog",
    "spark.sql.catalog.smfs.warehouse": "",
    "spark.sql.extensions":"org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",
    "spark.sql.catalog.smfs.glue.skip-name-validation": "true"
  }
}

Următorul cod poate fi utilizat pentru a optimiza grupurile de caracteristici prin Spark.

spark.sql(f"""CALL smfs.system.rewrite_data_files(table => '{DATABASE}.`{ICEBERG_TABLE}`')""")

Puteți executa apoi următoarele două proceduri de întreținere a tabelului pentru a elimina instantaneele mai vechi și fișierele orfane care nu mai sunt necesare.

spark.sql(f"""CALL smfs.system.expire_snapshots(table => '{DATABASE}.`{ICEBERG_TABLE}`', older_than => TIMESTAMP '{one_day_ago}', retain_last => 1)""")
spark.sql(f"""CALL smfs.system.remove_orphan_files(table => '{DATABASE}.`{ICEBERG_TABLE}`')""")

Puteți apoi să încorporați comenzile Spark de mai sus în mediul dvs. Spark. De exemplu, puteți crea un job care efectuează optimizarea de mai sus într-un program dorit sau într-o conductă după asimilare.

Pentru a explora exemplul complet de cod și a-l încerca în propriul cont, consultați GitHub repo.

Concluzie

Magazinul de caracteristici SageMaker oferă o soluție special concepută de management al caracteristicilor pentru a ajuta organizațiile să extindă dezvoltarea ML în echipele de știință a datelor. În această postare, am explicat cum puteți utiliza Apache Iceberg ca format de tabel și operațiuni de întreținere a tabelului, cum ar fi compactarea, pentru a beneficia de interogări semnificativ mai rapide atunci când lucrați cu grupuri de caracteristici offline la scară și, ca rezultat, pentru a construi mai rapid seturi de date de antrenament. Încercați și spuneți-ne ce părere aveți în comentarii.


Despre autori

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Arnaud Lauer este arhitect senior de soluții pentru parteneri în echipa din sectorul public la AWS. El le permite partenerilor și clienților să înțeleagă cum să folosească cel mai bine tehnologiile AWS pentru a traduce nevoile afacerii în soluții. El aduce peste 17 ani de experiență în furnizarea și arhitectura de proiecte de transformare digitală într-o gamă largă de industrii, inclusiv sectorul public, energie și bunuri de larg consum. Arnaud deține 12 certificări AWS, inclusiv Certificarea de specialitate ML.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Ioan Catana este arhitect de soluții specializat în inteligență artificială și învățare automată la AWS. El îi ajută pe clienți să își dezvolte și să-și scaleze soluțiile ML în AWS Cloud. Ioan are peste 20 de ani de experiență, mai ales în proiectarea arhitecturii software și ingineria cloud.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Mark Roy este un arhitect principal de învățare automată pentru AWS, ajutând clienții să proiecteze și să construiască soluții AI / ML. Munca lui Mark acoperă o gamă largă de cazuri de utilizare ML, cu un interes principal în viziunea pe computer, învățarea profundă și scalarea ML în întreaga întreprindere. A ajutat companii din multe industrii, inclusiv asigurări, servicii financiare, mass-media și divertisment, asistență medicală, utilități și producție. Mark deține șase certificări AWS, inclusiv certificarea ML Specialty. Înainte de a se alătura AWS, Mark a fost arhitect, dezvoltator și lider în tehnologie timp de peste 25 de ani, inclusiv 19 ani în servicii financiare.

Accelerează dezvoltarea ML folosind Magazinul de caracteristici SageMaker și compactarea magazinului offline Apache Iceberg PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Brandon Chatham este inginer software cu echipa SageMaker Feature Store. Este profund pasionat de construirea de sisteme elegante care aduc la îndemâna oamenilor datele mari și învățarea automată.

Timestamp-ul:

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