Izvedite različice modela z Amazon Redshift ML | Spletne storitve Amazon

Izvedite različice modela z Amazon Redshift ML | Spletne storitve Amazon

Izvorno vozlišče: 2360651

Amazon Redshift ML omogoča podatkovnim analitikom, razvijalcem in podatkovnim znanstvenikom, da učijo modele strojnega učenja (ML) z uporabo SQL. V prejšnjih objavah smo pokazali, kako lahko za usposabljanje uporabite zmožnost samodejnega usposabljanja modela Redshift ML Razvrstitev in regresija modeli. Redshift ML vam omogoča, da ustvarite model z uporabo SQL in določite svoj algoritem, kot je XGBoost. Redshift ML lahko uporabite za avtomatizacijo priprave podatkov, predprocesiranja in izbire vrste težave (za več informacij glejte Ustvarite, usposobite in uvedite modele strojnega učenja v Amazon Redshift z uporabo SQL z Amazon Redshift ML). Lahko prinesete tudi model, ki je bil predhodno usposobljen Amazon SageMaker v Amazon RedShift prek Redshift ML za lokalno sklepanje. Za lokalno sklepanje o modelih, ustvarjenih v SageMakerju, mora Redshift ML podpirati tip modela ML. vendar daljinsko sklepanje je na voljo za vrste modelov, ki izvorno niso na voljo v Redshift ML.

Sčasoma se modeli ML postarajo in tudi če se ne zgodi nič drastičnega, se kopičijo majhne spremembe. Pogosti razlogi, zakaj je treba modele ML ponovno usposobiti ali revidirati, vključujejo:

  • Odmik podatkov – Ker so se vaši podatki sčasoma spremenili, se lahko natančnost napovedi vaših modelov ML začne zmanjševati v primerjavi z natančnostjo, prikazano med testiranjem
  • Konceptni drift – Algoritem ML, ki je bil prvotno uporabljen, bo morda treba spremeniti zaradi različnih poslovnih okolij in drugih spreminjajočih se potreb

Morda boste morali redno osveževati model, avtomatizirati postopek in ponovno oceniti izboljšano natančnost modela. Od tega pisanja Amazon Redshift ne podpira različic modelov ML. V tej objavi prikazujemo, kako lahko uporabite funkcijo prinašanja lastnega modela (BYOM) Redshift ML za implementacijo različic modelov Redshift ML.

Lokalno sklepanje uporabljamo za implementacijo različic modelov kot del operacionalizacije modelov ML. Predvidevamo, da dobro razumete svoje podatke in vrsto težave, ki je najbolj uporabna za vaš primer uporabe, ter da ste ustvarili in razmestili modele v produkcijo.

Pregled rešitev

V tej objavi uporabljamo Redshift ML za izgradnjo regresijskega modela, ki napove število ljudi, ki bodo morda uporabljali storitev souporabe koles v mestu Toronto ob kateri koli uri dneva. Model upošteva različne vidike, vključno s prazniki in vremenskimi razmerami, in ker moramo predvideti numerični rezultat, smo uporabili regresijski model. Zamik podatkov uporabljamo kot razlog za ponovno usposabljanje modela, različico modela pa uporabljamo kot del rešitve.

Ko je model preverjen in se redno uporablja za izvajanje napovedi, lahko ustvarite različice modelov, kar zahteva, da znova usposobite model z uporabo posodobljenega nabora za usposabljanje in po možnosti drugačnega algoritma. Različice imajo dva glavna namena:

  • Za namene odpravljanja težav ali revizije se lahko sklicujete na prejšnje različice modela. To vam omogoča, da zagotovite, da vaš model še vedno ohranja visoko natančnost, preden preklopite na novejšo različico modela.
  • Med procesom usposabljanja modela za novo različico lahko nadaljujete z izvajanjem sklepnih poizvedb na trenutni različici modela.

V času tega pisanja Redshift ML nima izvornih zmogljivosti za ustvarjanje različic, vendar lahko vseeno dosežete različice z implementacijo nekaj preprostih tehnik SQL z uporabo zmogljivosti BYOM. BYOM je bil uveden za podporo vnaprej usposobljenih modelov SageMaker za izvajanje vaših sklepnih poizvedb v Amazon Redshift. V tej objavi uporabljamo isto tehniko BYOM za ustvarjanje različice obstoječega modela, zgrajenega z uporabo Redshift ML.

Naslednja slika prikazuje ta potek dela.

V naslednjih razdelkih vam pokažemo, kako lahko ustvarite različico iz obstoječega modela in nato izvedete ponovno usposabljanje modela.

Predpogoji

Kot predpogoj za implementacijo primera v tej objavi morate nastaviti a Rdeči premik grozda or Amazon Redshift brez strežnika končna točka. Za predhodne korake za začetek in nastavitev vašega okolja glejte Ustvarite, usposobite in uvedite modele strojnega učenja v Amazon Redshift z uporabo SQL z Amazon Redshift ML.

Uporabljamo regresijski model, ustvarjen v objavi Izdelajte regresijske modele z Amazon Redshift ML. Predvidevamo, da je že uveden, in uporabljamo ta model za ustvarjanje novih različic in ponovno usposabljanje modela.

Ustvarite različico iz obstoječega modela

Prvi korak je izdelava različice obstoječega modela (kar pomeni shranjevanje razvojnih sprememb modela), da se ohrani zgodovina in je model na voljo za kasnejšo primerjavo.

Naslednja koda je generična oblika sintakse ukaza CREATE MODEL; v naslednjem koraku dobite informacije, potrebne za uporabo tega ukaza za ustvarjanje nove različice:

CREATE MODEL model_name FROM ('job_name' | 's3_path' ) FUNCTION function_name ( data_type [, ...] ) RETURNS data_type IAM_ROLE { default } [ SETTINGS ( S3_BUCKET 'bucket', | --required KMS_KEY_ID 'kms_string') --optional ];

Nato zberemo in uporabimo vhodne parametre za prejšnjo kodo CREATE MODEL za model. Potrebujemo ime opravila in tipe podatkov vhodnih in izhodnih vrednosti modela. Te zbiramo z vodenjem show model ukaz na našem obstoječem modelu. Zaženite naslednji ukaz v Amazon Redshift Query Editor v2:

show model predict_rental_count;

Upoštevajte vrednosti za Ime opravila AutoML, Vrste parametrov funkcijeIn Ciljni stolpec (trip_count) iz izhoda modela. Te vrednosti uporabimo v ukazu CREATE MODEL za ustvarjanje različice.

Naslednji stavek CREATE MODEL ustvari različico trenutnega modela z uporabo vrednosti, zbranih iz našega show model ukaz. Na konec imena modela in funkcij dodamo datum (primerna oblika je LLLLMMDD), da sledimo, kdaj je bila ta nova različica ustvarjena.

CREATE MODEL predict_rental_count_20230706 FROM 'redshiftml-20230706171639810624' FUNCTION predict_rental_count_20230706 (int4, int4, int4, int4, int4, int4, int4, numeric, numeric, int4)
RETURNS float8 IAM_ROLE default
SETTINGS (
S3_BUCKET '<<your S3 Bucket>>');

Dokončanje tega ukaza lahko traja nekaj minut. Ko je končano, zaženite naslednji ukaz:

show model predict_rental_count_20230706;

V izhodu lahko opazimo naslednje:

  • Ime opravila AutoML je enak originalni različici modela
  • Ime funkcije prikazuje novo ime, kot je pričakovano
  • Vrsta sklepanja oddaj Local, ki označuje, da je to BYOM z lokalnim sklepanjem

Poizvedbe po sklepanju lahko zaženete z uporabo obeh različic modela za preverjanje rezultatov sklepanja.

Naslednji posnetek zaslona prikazuje rezultat sklepanja modela z uporabo izvirne različice.

Naslednji posnetek zaslona prikazuje rezultat sklepanja modela z uporabo kopije različice.

Kot lahko vidite, so rezultati sklepanja enaki.

Zdaj ste se naučili ustvariti različico predhodno usposobljenega modela Redshift ML.

Ponovno usposobite svoj model Redshift ML

Ko ustvarite različico obstoječega modela, lahko znova usposobite obstoječi model tako, da preprosto ustvarite nov model.

Nov model lahko ustvarite in učite z istim ukazom CREATE MODEL, vendar z uporabo različnih vhodnih parametrov, naborov podatkov ali tipov težav, kot je primerno. Za to objavo ponovno usposobimo model za novejše nabore podatkov. Prilagamo _new na ime modela, tako da je zaradi identifikacije podoben obstoječemu modelu.

V naslednji kodi uporabimo ukaz CREATE MODEL z novim naborom podatkov, ki je na voljo v training_data miza:

CREATE MODEL predict_rental_count_new
FROM training_data
TARGET trip_count
FUNCTION predict_rental_count_new
IAM_ROLE 'arn:aws:iam::<accountid>:role/RedshiftML'
PROBLEM_TYPE regression
OBJECTIVE 'mse'
SETTINGS (s3_bucket 'redshiftml-<your-account-id>', s3_garbage_collect off, max_runtime 5000);

Zaženite naslednji ukaz, da preverite stanje novega modela:

show model predict_rental_count_new;

Zamenjajte obstoječi model Redshift ML s ponovno usposobljenim modelom

Zadnji korak je zamenjava obstoječega modela s prešolanim modelom. To naredimo tako, da opustimo izvirno različico modela in ponovno ustvarimo model s tehniko BYOM.

Najprej preverite svoj ponovno usposobljen model, da zagotovite, da rezultati MSE/RMSE ostajajo stabilni med zagonom usposabljanja modela. Če želite preveriti modele, lahko zaženete sklepanje po vsaki funkciji modela v svojem naboru podatkov in primerjate rezultate. Uporabljamo sklepne poizvedbe, navedene v Izdelajte regresijske modele z Amazon Redshift ML.

Po potrditvi lahko zamenjate svoj model.

Začnite z zbiranjem podrobnosti o predict_rental_count_new model.

Upoštevajte Ime opravila AutoML vrednost, Vrste parametrov funkcije vrednote in Ciljni stolpec ime v izhodu modela.

Zamenjajte izvirni model tako, da izpustite izvirni model in nato ustvarite model z izvirnimi imeni modelov in funkcij, da zagotovite, da obstoječe reference na imena modelov in funkcij delujejo:

drop model predict_rental_count;
CREATE MODEL predict_rental_count
FROM 'redshiftml-20230706171639810624' FUNCTION predict_rental_count(int4, int4, int4, int4, int4, int4, int4, numeric, numeric, int4)
RETURNS float8 IAM_ROLE default
SETTINGS (
S3_BUCKET ’<<your S3 Bucket>>’);

Izdelava modela naj bi bila končana v nekaj minutah. Stanje modela lahko preverite tako, da zaženete naslednji ukaz:

show model predict_rental_count;

Ko je status modela ready, novejša različica predict_rental_count vašega obstoječega modela je na voljo za sklepanje in izvirna različica modela ML predict_rental_count_20230706 je na voljo za referenco, če je potrebno.

Prosimo, glejte to GitHub repozitorij za vzorčne skripte za avtomatizacijo različic modela.

zaključek

V tej objavi smo pokazali, kako lahko uporabite funkcijo BYOM programa Redshift ML za ustvarjanje različic modela. To vam omogoča, da imate zgodovino svojih modelov, tako da lahko primerjate rezultate modela skozi čas, se odzovete na zahteve za revizijo in izvedete sklepanje med usposabljanjem novega modela.

Za več informacij o izdelavi različnih modelov z Redshift ML glejte Amazon Redshift ML.


O avtorjih

Rohit Bansal je strokovnjak za analitične rešitve pri AWS. Specializiran je za Amazon Redshift in sodeluje s strankami pri izgradnji analitičnih rešitev naslednje generacije z uporabo drugih storitev AWS Analytics.

Phil Bates je višji arhitekt za rešitve strokovnjaka za analitiko pri AWS. Ima več kot 25 let izkušenj z implementacijo obsežnih rešitev za skladiščenje podatkov. Strastno želi pomagati strankam na njihovem potovanju v oblaku in uporabljati moč ML v njihovem podatkovnem skladišču.

Časovni žig:

Več od Veliki podatki AWS