Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction

Danes podjetja vzpostavljajo trgovine s funkcijami, da bi zagotovile osrednji repozitorij za razširitev razvoja ML v poslovnih enotah in skupinah za podatkovno znanost. Ker podatki o funkcijah rastejo v velikosti in kompleksnosti, morajo biti podatkovni znanstveniki sposobni učinkovito poizvedovati po teh shrambah funkcij, da izločijo nize podatkov za eksperimentiranje, usposabljanje modelov in serijsko točkovanje.

Trgovina s funkcijami Amazon SageMaker je namensko izdelana rešitev za upravljanje funkcij, ki znanstvenikom in inženirjem ML pomaga pri varnem shranjevanju, odkrivanju in skupni rabi kuriranih podatkov, ki se uporabljajo pri poteku dela za usposabljanje in napovedovanje. SageMaker Feature Store zdaj podpira Apaška ledena gora kot format tabele za shranjevanje funkcij. To pospeši razvoj modela z omogočanjem hitrejšega izvajanja poizvedb pri pridobivanju naborov podatkov za usposabljanje ML, pri čemer izkorišča zbijanje tabele Iceberg. Odvisno od zasnove vaših skupin funkcij in njihovega obsega lahko z uporabo te nove zmožnosti doživite 10- do 100-kratno izboljšanje zmogljivosti poizvedbe za usposabljanje.

Do konca te objave boste vedeli, kako ustvariti skupine funkcij z uporabo formata Iceberg, izvajati postopke upravljanja tabele Iceberg z Amazonska Atenain razporedite te naloge za samostojno izvajanje. Če ste uporabnik Spark, se boste tudi naučili izvajati iste postopke z uporabo Spark in jih vključiti v svoje okolje in avtomatizacijo Spark.

SageMaker Feature Store in Apache Iceberg

Trgovina s funkcijami Amazon SageMaker je centralizirana trgovina za funkcije in povezane metapodatke, ki omogoča, da funkcije preprosto odkrijejo in ponovno uporabijo ekipe podatkovnih znanstvenikov, ki delajo na različnih projektih ali modelih ML.

SageMaker Feature Store je sestavljen iz spletnega in brez povezave načina za upravljanje funkcij. Spletna trgovina se uporablja za primere uporabe sklepanja v realnem času z nizko zakasnitvijo. Trgovina brez povezave se uporablja predvsem za serijsko napovedovanje in usposabljanje modelov. Trgovina brez povezave je trgovina samo za dodajanje in se lahko uporablja za shranjevanje in dostop do zgodovinskih podatkov o funkcijah. S trgovino brez povezave lahko uporabniki shranjujejo in strežejo funkcije za raziskovanje in serijsko točkovanje ter ekstrahirajo pravilne nabore podatkov v trenutku za usposabljanje modela.

Podatki o trgovini brez povezave so shranjeni v vedru storitve Amazon Simple Storage Service (Amazon S3) v vašem računu AWS. SageMaker Feature Store med ustvarjanjem skupine funkcij samodejno zgradi katalog podatkov AWS Glue. Stranke lahko dostopajo tudi do podatkov o trgovini brez povezave z izvajalnim okoljem Spark in izvajajo obdelavo velikih podatkov za analizo funkcij ML in primere uporabe inženiringa funkcij.

Formati tabel omogočajo abstrahiranje podatkovnih datotek kot tabele. Z leti se je pojavilo veliko formatov tabel za podporo transakcij ACID, upravljanja in primerov uporabe kataloga. Apaška ledena gora je oblika odprte tabele za zelo velike analitične nabore podatkov. Upravlja velike zbirke datotek kot tabel in podpira sodobne operacije analitičnega podatkovnega jezera, kot so poizvedbe za vstavljanje, posodabljanje, brisanje in potovanje na ravni zapisa. Iceberg sledi posameznim podatkovnim datotekam v tabeli namesto v imenikih. To piscem omogoča ustvarjanje podatkovnih datotek na mestu (datoteke niso premaknjene ali spremenjene) in samo dodajanje datotek v tabelo v eksplicitni objavi. Stanje tabele se vzdržuje v metapodatkovnih datotekah. Vse spremembe stanja tabele ustvarijo novo različico datoteke metapodatkov, ki atomsko nadomesti starejše metapodatke. Datoteka z metapodatki tabele sledi shemi tabele, konfiguraciji particioniranja in drugim lastnostim.

Iceberg ima integracije s storitvami AWS. Na primer, lahko uporabite AWS lepilo Data Catalog kot metashramba za tabele Iceberg in Athena podpira poizvedbe za branje, potovanje skozi čas, pisanje in DDL za tabele Apache Iceberg, ki uporabljajo format Apache Parquet za podatke in katalog AWS Glue za njihovo metashrambo.

S SageMaker Feature Store lahko zdaj ustvarite skupine funkcij s formatom tabele Iceberg kot alternativo privzetemu standardnemu formatu Glue. S tem lahko stranke izkoristijo novo obliko tabele za uporabo Icebergovih funkcij stiskanja datotek in obrezovanja podatkov, da izpolnijo svoje zahteve glede primera uporabe in optimizacije. Iceberg strankam omogoča tudi brisanje, poizvedbe o potovanju skozi čas, transakcije z visoko sočasnostjo in poizvedbe z večjo zmogljivostjo.

S kombiniranjem Iceberga kot formata tabele in operacij vzdrževanja tabel, kot je stiskanje, stranke dobijo hitrejšo zmogljivost poizvedb pri delu s skupinami funkcij brez povezave v velikem obsegu, kar jim omogoča hitrejšo izdelavo naborov podatkov za usposabljanje ML.

Naslednji diagram prikazuje strukturo trgovine brez povezave, ki uporablja Iceberg kot obliko tabele.

V naslednjih razdelkih se boste naučili, kako ustvariti skupine funkcij z uporabo formata Iceberg, izvajati postopke upravljanja tabel Iceberg z uporabo AWS Athena in uporabljati storitve AWS za načrtovanje izvajanja teh nalog na zahtevo ali po urniku. Če ste uporabnik Spark, se boste prav tako naučili izvajati iste postopke z uporabo Spark.

Za navodila po korakih nudimo tudi a vzorec zvezka, ki ga najdete na GitHubu. V tej objavi bomo izpostavili najpomembnejše dele.

Ustvarjanje skupin funkcij z uporabo formata tabele Iceberg

Pri ustvarjanju novih skupin funkcij morate najprej izbrati Iceberg kot obliko tabele. Nov izbirni parameter TableFormat lahko nastavite bodisi interaktivno z uporabo Amazon SageMaker Studio bodisi prek kode z uporabo API-ja ali SDK-ja. Ta parameter sprejema vrednosti ICEBERG or GLUE (za trenutno obliko AWS Glue). Naslednji delček kode vam pokaže, kako ustvarite skupino funkcij z uporabo formata Iceberg in FeatureGroup.create API za SDK 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
)

Tabela bo ustvarjena in samodejno registrirana v katalogu podatkov AWS Glue Data Catalog.

Zdaj pa, da je orders_feature_group_iceberg je ustvarjen, lahko zaužijete funkcije z uporabo svojega izbranega cevovoda za zaužitje. V tem primeru zaužijemo zapise z uporabo FeatureGroup.ingest() API, ki zajema zapise iz Pandas DataFrame. Uporabite lahko tudi FeatureGroup().put_record API za vnos posameznih zapisov ali za upravljanje pretočnih virov. Uporabniki Spark lahko zaužijejo tudi podatkovne okvire Spark z uporabo našega Spark konektor.

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

Lahko preverite, ali so bili zapisi uspešno zaužiti, tako da zaženete poizvedbo v shrambi funkcij brez povezave. Lahko se pomaknete tudi do lokacije S3 in si ogledate novo strukturo map.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Izvajanje postopkov upravljanja mize Iceberg

Amazonska Atena je mehanizem poizvedb SQL brez strežnika, ki izvorno podpira postopke upravljanja Iceberg. V tem razdelku boste uporabili Atheno za ročno stiskanje skupine funkcij brez povezave, ki ste jo ustvarili. Upoštevajte, da boste morali uporabiti motor Athena različice 3. Za to lahko ustvarite novo delovno skupino ali konfigurirate obstoječo delovno skupino in izberete priporočeno različico motorja Athena 3. Za več informacij in navodila za spreminjanje različice motorja Athena glejte Spreminjanje različic motorja Athena.

Ko se podatki kopičijo v tabeli Iceberg, lahko poizvedbe postopoma postanejo manj učinkovite zaradi povečanega časa obdelave, potrebnega za odpiranje dodatnih datotek. Stiskanje optimizira strukturno postavitev tabele brez spreminjanja vsebine tabele.

Za izvedbo stiskanja uporabite OPTIMIZE table REWRITE DATA ukaz za vzdrževanje mize za stiskanje v Atheni. Naslednja sintaksa prikazuje, kako optimizirati postavitev podatkov skupine funkcij, shranjene v obliki tabele Iceberg. The sagemaker_featurestore predstavlja ime baze podatkov SageMaker Feature Store in orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 je ime naše tabele skupine funkcij.

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

Ko zaženete ukaz optimize, uporabite VACUUM postopek, ki izvede potek posnetka in odstrani osirotele datoteke. Ta dejanja zmanjšajo velikost metapodatkov in odstranijo datoteke, ki niso v trenutnem stanju tabele in so tudi starejše od obdobja hrambe, določenega za tabelo.

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

Upoštevajte, da je mogoče lastnosti tabele konfigurirati z uporabo Athene ALTER TABLE. Za primer, kako to narediti, glejte Dokumentacija Athena. Za VAKUUM, vacuum_min_snapshots_to_keep in vacuum_max_snapshot_age_seconds lahko uporabite za konfiguracijo parametrov obrezovanja posnetkov.

Oglejmo si vpliv izvajanja zbijanja na zmogljivost na vzorčni tabeli skupin funkcij. Za namene testiranja smo vnesli iste zapise funkcij naročil v dve skupini funkcij, orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003 in orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334, z uporabo paraleliziranega opravila obdelave SageMaker s Scikit-Learn, kar ima za posledico 49,908,135 objektov, shranjenih v Amazon S3 in skupne velikosti 106.5 GiB.

Izvedemo poizvedbo, da izberemo najnovejši posnetek brez dvojnikov in brez izbrisanih zapisov v skupini funkcij orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003. Pred stiskanjem je poizvedba trajala 1 uro 27 minut.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Nato nadaljujemo z zbijanjem orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 z uporabo poizvedbe Athena OPTIMIZE, ki je strnila tabelo skupin funkcij na 109,851 objektov v Amazon S3 in skupno velikost 2.5 GiB. Če nato zaženemo isto poizvedbo po stiskanju, se njen čas izvajanja zmanjša na 1 minuto 13 sekund.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

S stiskanjem datotek Iceberg se je čas izvajanja poizvedbe znatno izboljšal. Za isto poizvedbo se je čas delovanja zmanjšal z 1 ure 27 minut na 1 minuto 13 sekund, kar je 71-krat hitreje.

Načrtovanje zbijanja ledene gore s storitvami AWS

V tem razdelku se boste naučili, kako avtomatizirati postopke upravljanja tabel za strnitev vaše shrambe funkcij brez povezave. Naslednji diagram ponazarja arhitekturo za ustvarjanje skupin funkcij v formatu tabele Iceberg in popolnoma avtomatizirano rešitev za upravljanje tabel, ki vključuje operacije stiskanja in čiščenja datotek.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Na visoki ravni ustvarite skupino funkcij z uporabo formata tabele Iceberg in vnesete zapise v spletno trgovino funkcij. Vrednosti funkcij se samodejno kopirajo iz spletne trgovine v zgodovinsko trgovino brez povezave. Athena se uporablja za izvajanje postopkov upravljanja ledene gore. Če želite načrtovati postopke, nastavite an AWS lepilo opravilo s skriptom lupine Python in ustvarite urnik opravil AWS Glue.

Nastavitev AWS Glue Job

Za izvajanje operacij vzdrževanja mize Iceberg po urniku uporabite opravilo AWS Glue. Najprej morate ustvariti vlogo IAM za AWS Glue, da boste imeli dovoljenja za dostop do Amazon Athena, Amazon S3 in CloudWatch.

Nato morate ustvariti skript Python za izvajanje postopkov Iceberg. Lahko najdete vzorčni scenarij v GitHubu. Skript bo izvedel poizvedbo OPTIMIZE z uporabo boto3.

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

Skript je bil parametriran z uporabo lepila AWS getResolvedOptions(args, options) pomožna funkcija, ki vam omogoča dostop do argumentov, ki se posredujejo vašemu skriptu, ko izvajate opravilo. V tem primeru lahko regijo AWS, bazo podatkov in tabelo Iceberg za vašo skupino funkcij, delovno skupino Athena in mapo z rezultati izhodne lokacije Athena posredujete kot parametre opravilu, zaradi česar je ta skript ponovno uporaben v vašem okolju.

Na koncu ustvarite dejansko opravilo AWS Glue za zagon skripta kot lupine v AWS Glue.

  • Pomaknite se do konzole AWS Glue.
  • Izberite Delovna mesta pod AWS Glue Studio.
  • Izberite Urejevalnik skriptov Python Shell.
  • Izberite Naložite in uredite obstoječi skript. Kliknite ustvarjanje.
  • O Podrobnosti o delovnem mestu gumb vam omogoča konfiguracijo opravila AWS Glue. Izbrati morate vlogo IAM, ki ste jo ustvarili prej. Izberite Python 3.9 ali najnovejšo razpoložljivo različico Python.
  • V istem zavihku lahko določite tudi številne druge konfiguracijske možnosti, kot npr Število ponovnih poskusov or Časovna omejitev opravila. v Napredne lastnosti, lahko dodate parametre opravila za izvedbo skripta, kot je prikazano na spodnjem primeru posnetka zaslona.
  • klik Shrani.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

v Razporedi lahko določite urnik za izvajanje postopkov vzdrževanja shrambe funkcij. Naslednji posnetek zaslona vam na primer prikazuje, kako zagnati opravilo po urniku vsakih 6 ur.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Spremljate lahko poteke opravil, da razumete metrike časa izvajanja, kot so stanje dokončanja, trajanje in začetni čas. Preverite lahko tudi dnevnike CloudWatch za opravilo AWS Glue, da preverite, ali se postopki izvajajo uspešno.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Izvajanje nalog upravljanja tabele Iceberg s Sparkom

Stranke lahko Spark uporabljajo tudi za upravljanje opravil stiskanja in vzdrževalnih metod. Za več podrobnosti o postopkih Spark glejte Dokumentacija Spark.

Najprej morate konfigurirati nekaj skupnih lastnosti.

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

Naslednjo kodo lahko uporabite za optimizacijo skupin funkcij prek Spark.

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

Nato lahko izvedete naslednja dva postopka vzdrževanja tabel, da odstranite starejše posnetke in osirotele datoteke, ki niso več potrebne.

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

Nato lahko zgornje ukaze Spark vključite v svoje okolje Spark. Na primer, lahko ustvarite opravilo, ki izvaja zgornjo optimizacijo po želenem urniku ali v cevovodu po zaužitju.

Če želite raziskati celoten primer kode in ga preizkusiti v svojem računu, glejte GitHub repo.

zaključek

SageMaker Feature Store ponuja namensko razvito rešitev za upravljanje funkcij, ki pomaga organizacijam razširiti razvoj ML v skupinah za podatkovno znanost. V tej objavi smo razložili, kako lahko izkoristite Apache Iceberg kot obliko tabele in operacije vzdrževanja tabel, kot je stiskanje, da izkoristite bistveno hitrejše poizvedbe pri delu s skupinami funkcij brez povezave v velikem obsegu in posledično hitreje sestavite nabore podatkov za usposabljanje. Poskusite in nam v komentarjih sporočite, kaj mislite.


O avtorjih

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Arnaud Lauer je višji arhitekt partnerskih rešitev v skupini za javni sektor pri AWS. Partnerjem in strankam omogoča, da razumejo, kako najbolje uporabiti tehnologije AWS za pretvorbo poslovnih potreb v rešitve. Prinaša več kot 17 let izkušenj pri izvajanju in oblikovanju projektov digitalne transformacije v različnih panogah, vključno z javnim sektorjem, energetiko in potrošniškim blagom. Arnaud ima 12 certifikatov AWS, vključno s certifikatom ML Specialty.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Ioan Catana je strokovnjak za rešitve za umetno inteligenco in strojno učenje pri AWS. Strankam pomaga razviti in razširiti njihove rešitve ML v oblaku AWS. Ioan ima več kot 20 let izkušenj, večinoma na področju načrtovanja programske arhitekture in inženiringa v oblaku.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Mark Roy je glavni arhitekt strojnega učenja za AWS, ki strankam pomaga pri oblikovanju in izdelavi rešitev AI / ML. Markovo delo zajema široko paleto primerov uporabe ML, predvsem pa računalniški vid, poglobljeno učenje in razširjanje ML v celotnem podjetju. Pomagal je podjetjem v številnih panogah, vključno z zavarovalništvom, finančnimi storitvami, mediji in zabavo, zdravstvom, komunalnimi storitvami in proizvodnjo. Mark ima šest certifikatov AWS, vključno s certifikatom ML Specialty. Preden se je Mark pridružil AWS, je bil več kot 25 let arhitekt, razvijalec in vodja tehnologije, vključno z 19 leti v finančnih storitvah.

Pohitri razvoj ML z uporabo SageMaker Feature Store in Apache Iceberg offline store compaction PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Brandon Chatham je programski inženir pri ekipi SageMaker Feature Store. Zelo se navdušuje nad gradnjo elegantnih sistemov, ki ljudem prinašajo velike podatke in strojno učenje.

Časovni žig:

Več od Strojno učenje AWS