Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälätiivistystä

Nykyään yritykset perustavat ominaisuuskauppoja tarjotakseen keskitetyn tietovaraston ML-kehityksen skaalaamiseksi liiketoimintayksiköiden ja tietotieteiden ryhmien välillä. Ominaisuustietojen koon ja monimutkaisuuden kasvaessa datatieteilijöiden on voitava tehdä tehokkaasti kyselyitä näistä ominaisuusvarastoista kerätäkseen tietojoukkoja kokeilua, mallin koulutusta ja eräpisteytystä varten.

Amazon SageMaker -ominaisuuskauppa on tarkoitukseen rakennettu ominaisuuksien hallintaratkaisu, joka auttaa tietotieteilijöitä ja ML-insinöörejä turvallisesti tallentamaan, löytämään ja jakamaan koulutus- ja ennakointityönkuluissa käytettävää kuratoitua dataa. SageMaker Feature Store tukee nyt Apache jäävuori taulukkomuotona ominaisuuksien tallentamiseen. Tämä nopeuttaa mallin kehitystä mahdollistamalla nopeamman kyselyn suorituskyvyn ML-harjoitustietosarjoja poimittaessa hyödyntäen Iceberg-taulukon tiivistämistä. Ominaisuusryhmiesi suunnittelusta ja niiden laajuudesta riippuen voit kokea koulutuskyselyn suorituskyvyn 10-100-kertaisia ​​parannuksia käyttämällä tätä uutta ominaisuutta.

Tämän viestin loppuun mennessä osaat luoda ominaisuusryhmiä Iceberg-muodossa, suorittaa Icebergin taulukoiden hallintamenettelyt käyttämällä Amazon Athenaja ajoita nämä tehtävät suoriutumaan itsenäisesti. Jos olet Spark-käyttäjä, opit myös suorittamaan samat toimenpiteet Sparkilla ja sisällyttämään ne omaan Spark-ympäristöösi ja automaatioosi.

SageMaker Feature Store ja Apache Iceberg

Amazon SageMaker -ominaisuuskauppa on ominaisuuksien ja niihin liittyvien metatietojen keskitetty varasto, jonka avulla eri projekteissa tai ML-malleissa työskentelevät datatutkijaryhmät voivat helposti löytää ja käyttää ominaisuuksia uudelleen.

SageMaker Feature Store koostuu online- ja offline-tilasta ominaisuuksien hallintaa varten. Verkkokauppaa käytetään alhaisen latenssin reaaliaikaisiin päättelytapauksiin. Offline-kauppaa käytetään ensisijaisesti eräennusteisiin ja mallikoulutukseen. Offline-kauppa on vain liitetiedosto, ja sitä voidaan käyttää historiallisten ominaisuustietojen tallentamiseen ja käyttämiseen. Offline-myymälän avulla käyttäjät voivat tallentaa ja palvella ominaisuuksia tutkimusta ja eräpisteytystä varten sekä poimia oikeita datajoukkoja mallin harjoittelua varten.

Offline-myymälän tiedot tallennetaan AWS-tilisi Amazon Simple Storage Service (Amazon S3) -ämpäriin. SageMaker Feature Store rakentaa automaattisesti AWS Glue Data Catalogin ominaisuusryhmän luomisen aikana. Asiakkaat voivat myös käyttää offline-myymälän tietoja Spark-ajoajan avulla ja suorittaa big datan käsittelyä ML-ominaisuuksien analysointia ja ominaisuussuunnittelun käyttötapauksia varten.

Taulukkomuodot tarjoavat tavan abstrakti datatiedostot taulukoksi. Vuosien varrella on syntynyt monia taulukkomuotoja tukemaan ACID-tapahtumia, hallintaa ja luetteloiden käyttötapauksia. Apache jäävuori on avoin taulukkomuoto erittäin suurille analyyttisille tietojoukoille. Se hallitsee suuria tiedostokokoelmia taulukoina ja tukee nykyaikaisia ​​analyyttisiä datajärvitoimintoja, kuten tietuetason lisäys-, päivitys-, poisto- ja aikamatkakyselyitä. Iceberg seuraa yksittäisiä datatiedostoja taulukossa hakemistojen sijaan. Tämän ansiosta kirjoittajat voivat luoda datatiedostoja paikoilleen (tiedostoja ei siirretä tai muuteta) ja lisätä tiedostoja taulukkoon vain nimenomaisessa sitoumuksessa. Taulukon tila säilytetään metatietotiedostoissa. Kaikki muutokset taulukon tilaan luovat uuden metatietotiedostoversion, joka korvaa vanhemmat metatiedot. Taulukon metatietotiedosto seuraa taulukkokaaviota, osiointimäärityksiä ja muita ominaisuuksia.

Icebergillä on integraatioita AWS-palveluihin. Voit käyttää esimerkiksi AWS-liima Data Catalog metastorena Iceberg-taulukoille ja Athena tukee luku-, aikamatka-, kirjoitus- ja DDL-kyselyjä Apache Iceberg -taulukoille, jotka käyttävät Apache Parquet -muotoa tiedoille ja AWS Glue -luetteloa metastore-osaan.

SageMaker Feature Storen avulla voit nyt luoda ominaisuusryhmiä Iceberg-taulukkomuodossa vaihtoehtona oletusstandardille liimamuodolle. Tämän avulla asiakkaat voivat hyödyntää uutta taulukkomuotoa käyttääkseen Icebergin tiedostojen tiivistys- ja tietojen karsimisominaisuuksia käyttötapaustensa ja optimointivaatimustensa mukaisesti. Icebergin avulla asiakkaat voivat myös tehdä poistoja, aikamatkakyselyitä, korkean samanaikaisuuden tapahtumia ja tehokkaampia kyselyjä.

Yhdistämällä Icebergin taulukkomuotoon ja taulukon ylläpitotoimintoihin, kuten tiivistykseen, asiakkaat saavat nopeamman kyselyn työskennellessään offline-ominaisuusryhmien kanssa mittakaavassa, jolloin he voivat rakentaa nopeammin ML-harjoitustietojoukkoja.

Seuraava kaavio näyttää offline-kaupan rakenteen käyttämällä Icebergiä taulukkomuotona.

Seuraavissa osissa opit luomaan ominaisuusryhmiä käyttämällä Iceberg-muotoa, suorittamaan Icebergin taulukoiden hallintamenettelyjä AWS Athenen avulla ja käyttämään AWS-palveluita näiden tehtävien ajoittamiseen tarpeen mukaan tai aikataulun mukaan. Jos olet Spark-käyttäjä, opit myös suorittamaan samat toimenpiteet Sparkilla.

Vaiheittaisia ​​ohjeita varten tarjoamme myös a muistikirjan näyte, joka löytyy GitHubista. Tässä viestissä korostamme tärkeimmät osat.

Ominaisuusryhmien luominen Iceberg-taulukkomuodossa

Sinun on ensin valittava Iceberg taulukkomuodoksi, kun luot uusia ominaisuusryhmiä. Uusi valinnainen parametri TableFormat voidaan asettaa joko interaktiivisesti Amazon SageMaker Studion avulla tai koodin kautta API:n tai SDK:n avulla. Tämä parametri hyväksyy arvot ICEBERG or GLUE (nykyiselle AWS Glue -muodolle). Seuraava koodinpätkä näyttää, kuinka voit luoda ominaisuusryhmän käyttämällä Iceberg-muotoa ja FeatureGroup.create SageMaker SDK:n API.

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
)

Taulukko luodaan ja rekisteröidään automaattisesti AWS-liimatietokatalogissa.

Nyt orders_feature_group_iceberg on luotu, voit käyttää ominaisuuksia valitsemallasi käsittelyputkella. Tässä esimerkissä nielemme tietueita käyttämällä FeatureGroup.ingest() API, joka ottaa tietueita Pandas DataFramesta. Voit myös käyttää FeatureGroup().put_record API yksittäisten tietueiden syöttämiseen tai suoratoistolähteiden käsittelemiseen. Spark-käyttäjät voivat myös syöttää Spark-tietokehyksiä käyttämällä meidän Kipinäliitin.

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

Voit varmistaa, että tietueet on syötetty onnistuneesti suorittamalla kyselyn offline-ominaisuussäilöön. Voit myös navigoida S3-sijaintiin ja nähdä uuden kansiorakenteen.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Suorittaa Iceberg-taulukon hallintamenettelyjä

Amazon Athena on palvelimeton SQL-kyselymoottori, joka tukee natiivisti Iceberg-hallintamenettelyjä. Tässä osiossa käytät Athenetta luomasi offline-ominaisuusryhmän tiivistämiseen manuaalisesti. Huomaa, että sinun on käytettävä Athena-moottorin versiota 3. Tätä varten voit luoda uuden työryhmän tai määrittää olemassa olevan työryhmän ja valita suositellun Athena-moottorin version 3. Lisätietoja ja ohjeita Athena-moottoriversion vaihtamiseen on kohdassa Athena-moottoriversioiden vaihtaminen.

Tietojen kerääntyessä Iceberg-taulukkoon kyselyt voivat vähitellen heiketä, koska lisätiedostojen avaamiseen vaaditaan pidentynyt käsittelyaika. Tiivistys optimoi taulukon rakenteellisen asettelun muuttamatta taulukon sisältöä.

Käytä tiivistämiseen OPTIMIZE table REWRITE DATA tiivistystaulukon huoltokomento Athenassa. Seuraava syntaksi näyttää, kuinka voit optimoida Iceberg-taulukkomuotoa käyttämällä tallennetun ominaisuusryhmän dataasettelu. The sagemaker_featurestore edustaa SageMaker Feature Store -tietokannan nimeä ja orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 on ominaisuusryhmämme taulukon nimi.

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

Kun olet suorittanut optimointikomennon, käytät VACUUM menettely, joka suorittaa tilannekuvan vanhenemisen ja poistaa orpotiedostot. Nämä toiminnot pienentävät metatietojen kokoa ja poistavat tiedostoja, jotka eivät ole nykyisessä taulukossa ja ovat myös vanhempia kuin taulukolle määritetty säilytysaika.

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

Huomaa, että taulukon ominaisuudet voidaan määrittää Athenen avulla ALTER TABLE. Katso esimerkki siitä, kuinka tämä tehdään Athenen dokumentaatio. VACUUMille, vacuum_min_snapshots_to_keep ja vacuum_max_snapshot_age_seconds voidaan käyttää tilannekuvan karsimisen parametrien määrittämiseen.

Katsotaanpa tiivistyksen suorittamisen vaikutusta suorituskykyyn esimerkkiominaisuusryhmätaulukossa. Testaustarkoituksia varten syötimme samat tilaukset ominaisuustietueet kahteen ominaisuusryhmään, orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003 ja orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334, käyttämällä rinnakkaista SageMaker-käsittelytyötä Scikit-Learnin kanssa, mikä johtaa 49,908,135 3 106.5 objektiin tallennettuihin Amazon SXNUMX:een ja kokonaiskoon XNUMX GiB.

Suoritamme kyselyn valitaksemme viimeisimmän tilannekuvan ilman kopioita ja ilman poistettuja tietueita ominaisuusryhmästä orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003. Ennen tiivistämistä kysely kesti 1h 27min.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Sitten jatkamme tiivistystä orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 käyttämällä Athena OPTIMIZE -kyselyä, joka tiivisti ominaisuusryhmätaulukon 109,851 3 objektiin Amazon S2.5:ssa ja kokonaiskoon 1 GiB. Jos suoritamme saman kyselyn pakkaamisen jälkeen, sen suoritusaika lyheni 13 minuuttiin XNUMX sekuntiin.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Iceberg-tiedoston pakkaamisen ansiosta kyselyn suoritusaika parani merkittävästi. Saman kyselyn suoritusaika lyheni 1 h 27 minuutista 1 min 13 sekuntiin, mikä on 71 kertaa nopeampi.

Jäävuoren tiivistyksen ajoittaminen AWS-palveluilla

Tässä osiossa opit automatisoimaan taulukoiden hallintamenettelyt offline-toimintovaraston tiivistämiseksi. Seuraava kaavio havainnollistaa ominaisuusryhmien luomisen arkkitehtuuria Iceberg-taulukkomuodossa ja täysin automatisoitua taulukonhallintaratkaisua, joka sisältää tiedostojen pakkaamisen ja puhdistustoiminnot.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Korkealla tasolla luot ominaisuusryhmän käyttämällä Iceberg-taulukkomuotoa ja syötät tietueet verkkoominaisuuskauppaan. Ominaisuuden arvot kopioidaan automaattisesti verkkokaupasta historialliseen offline-kauppaan. Athenaa käytetään Iceberg-hallintamenettelyjen suorittamiseen. Voit ajoittaa toimenpiteet määrittämällä AWS-liima Python-kuorikomentosarjan avulla ja luo AWS Glue -työaikataulu.

AWS-liimatyön asetukset

Käytät AWS-liimatyötä Iceberg-taulukon ylläpitotoimien suorittamiseen aikataulun mukaisesti. Ensin sinun on luotava IAM-rooli AWS Gluelle, jotta sinulla on oikeudet käyttää Amazon Athenaa, Amazon S3:a ja CloudWatchia.

Seuraavaksi sinun on luotava Python-skripti suorittaaksesi Iceberg-menettelyjä. Voit löytää malliskripti GitHubissa. Skripti suorittaa OPTIMOI-kyselyn käyttämällä boto3:a.

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

Käsikirjoitus on parametrisoitu AWS Glue -liimalla getResolvedOptions(args, options) apuohjelma, jonka avulla voit käyttää argumentteja, jotka välitetään komentosarjallesi, kun suoritat työn. Tässä esimerkissä AWS-alue, ominaisuusryhmäsi Iceberg-tietokanta ja -taulukko, Athena-työryhmä ja Athena-tulosten sijainnin tuloskansio voidaan siirtää parametreina työhön, jolloin tämä komentosarja voidaan käyttää uudelleen ympäristössäsi.

Lopuksi luot varsinaisen AWS Glue -työn suorittaaksesi komentosarjan komentotulkina AWS Gluessa.

  • Siirry AWS Glue -konsoliin.
  • Valitse Työpaikat -välilehti AWS Glue Studiossa.
  • valita Python Shell -skriptieditori.
  • Valita Lataa ja muokkaa olemassa olevaa skriptiä. Klikkaus luoda.
  • - Työn yksityiskohdat -painikkeella voit määrittää AWS-liimatyön. Sinun on valittava aiemmin luomasi IAM-rooli. Valitse Python 3.9 tai uusin saatavilla oleva Python-versio.
  • Samalla välilehdellä voit määrittää myös useita muita konfigurointivaihtoehtoja, kuten Uudelleenyritysten määrä or Työn aikakatkaisu. sisään Lisäominaisuudet, voit lisätä työparametreja komentosarjan suorittamiseksi alla olevan esimerkkikuvakaappauksen mukaisesti.
  • Napauta Säästä.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

In aikataulut -välilehdellä voit määrittää ominaisuuskaupan ylläpitotoimenpiteiden suorittamisen aikataulun. Esimerkiksi seuraava kuvakaappaus näyttää, kuinka työ suoritetaan kuuden tunnin välein.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Voit seurata töiden ajoja ymmärtääksesi ajonaikaisia ​​mittareita, kuten valmistumisen tilan, keston ja aloitusajan. Voit myös tarkistaa AWS-liimatyön CloudWatch-lokeista, että toimenpiteet suoritetaan onnistuneesti.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Iceberg-taulukon hallintatehtävien suorittaminen Sparkilla

Asiakkaat voivat myös käyttää Sparkia tiivistystöiden ja huoltomenetelmien hallintaan. Lisätietoja Spark-menettelyistä on kohdassa Spark-dokumentaatio.

Sinun on ensin määritettävä joitain yleisiä ominaisuuksia.

%%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"
  }
}

Seuraavaa koodia voidaan käyttää ominaisuusryhmien optimointiin Sparkin kautta.

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

Voit sitten suorittaa kaksi seuraavaa taulukon ylläpitotoimenpidettä poistaaksesi vanhemmat tilannevedokset ja orpotiedostot, joita ei enää tarvita.

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}`')""")

Voit sitten sisällyttää yllä olevat Spark-komennot Spark-ympäristöösi. Voit esimerkiksi luoda työn, joka suorittaa yllä olevan optimoinnin halutussa aikataulussa tai käsittelyssä käsittelyn jälkeen.

Tutustuaksesi täydelliseen koodiesimerkkiin ja kokeillaksesi sitä omalla tililläsi, katso GitHub repo.

Yhteenveto

SageMaker Feature Store tarjoaa tarkoitukseen rakennetun ominaisuuksien hallintaratkaisun, joka auttaa organisaatioita skaalaamaan ML-kehitystä tietotieteen ryhmien välillä. Tässä viestissä selitimme, kuinka voit hyödyntää Apache Icebergiä taulukkomuodossa ja taulukon ylläpitotoiminnoissa, kuten tiivistämisessä, jotta voit hyötyä huomattavasti nopeammista kyselyistä työskennellessäsi offline-ominaisuusryhmien kanssa laajassa mittakaavassa ja sen seurauksena luoda koulutustietojoukkoja nopeammin. Kokeile sitä ja kerro meille mielipiteesi kommenteissa.


Tietoja kirjoittajista

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Arnaud Lauer on Senior Partner Solutions -arkkitehti julkisen sektorin tiimissä AWS:ssä. Hän auttaa kumppaneita ja asiakkaita ymmärtämään, kuinka AWS-teknologioita voidaan parhaiten käyttää liiketoiminnan tarpeiden muuttamiseksi ratkaisuiksi. Hänellä on yli 17 vuoden kokemus digitaalisten muutosprojektien toimittamisesta ja suunnittelusta useilla toimialoilla, mukaan lukien julkinen sektori, energia ja kulutushyödykkeet. Arnaudilla on 12 AWS-sertifikaattia, mukaan lukien ML Specialty Certification.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Ioan Catana on tekoälyn ja koneoppimisen asiantuntijaratkaisujen arkkitehti AWS:ssä. Hän auttaa asiakkaita kehittämään ja skaalaamaan ML-ratkaisujaan AWS-pilvessä. Ioanilla on yli 20 vuoden kokemus pääasiassa ohjelmistoarkkitehtuurin suunnittelusta ja pilvisuunnittelusta.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Mark Roy on AWS: n johtava koneoppimisarkkitehti, joka auttaa asiakkaita suunnittelemaan ja rakentamaan tekoälyn / ML-ratkaisuja. Markin työ kattaa laajan valikoiman ML-käyttötapauksia, ja ensisijainen kiinnostus tietokoneiden näkemiseen, syvälliseen oppimiseen ja ML: n laajentamiseen koko yrityksessä. Hän on auttanut yrityksiä monilla aloilla, mukaan lukien vakuutukset, rahoituspalvelut, media ja viihde, terveydenhuolto, yleishyödylliset palvelut ja valmistus. Markilla on kuusi AWS-sertifikaattia, mukaan lukien ML Specialty -sertifikaatti. Ennen AWS: ään tuloaan Mark oli arkkitehti, kehittäjä ja teknologiajohtaja yli 25 vuotta, joista 19 vuotta rahoituspalveluissa.

Nopeuta ML-kehitystä käyttämällä SageMaker Feature Storea ja Apache Icebergin offline-myymälän tiivistystä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Brandon Chatham on ohjelmistosuunnittelija SageMaker Feature Store -tiimin kanssa. Hän on syvästi intohimoinen tyylikkäiden järjestelmien rakentamiseen, jotka tuovat big datan ja koneoppimisen ihmisten ulottuville.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen