Täiendav koolitus Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence'iga. Vertikaalne otsing. Ai.

Täiendav treening Amazon SageMaker JumpStartiga

Detsembris 2020, AWS teatas Amazon SageMaker JumpStarti üldisest kättesaadavusest, võime Amazon SageMaker mis aitab teil kiiresti ja lihtsalt masinõppega (ML) alustada. SageMaker KiirStart pakub ühe klõpsuga peenhäälestamist ja paljude eelkoolitatud mudelite juurutamist populaarsete ML-ülesannete jaoks, samuti valikut täislahendusi, mis lahendavad levinud äriprobleeme. Need funktsioonid eemaldavad ML-protsessi iga etapi raskused, muutes kvaliteetsete mudelite väljatöötamise lihtsamaks ja vähendades kasutuselevõtuks kuluvat aega.

Kogu KiirStarti sisu oli varem saadaval ainult läbi Amazon SageMaker Studio, mis annab a kasutajasõbralik graafiline liides funktsiooniga suhtlemiseks. Hiljuti ka meie teatas käivitamisest lihtsasti kasutatavast KiirStardi API-d SageMaker Python SDK laiendusena, mis võimaldab teil programmiliselt juurutada ja viimistleda suurt valikut JumpStart-toega eelkoolitatud mudeleid oma andmekogumitel. See käivitamine avab JumpStarti võimaluste kasutamise teie koodi töövoogudes, MLOps-i torustikes ja kõikjal mujal, kus SageMakeriga SDK kaudu suhtlete.

Selles postituses on meil hea meel teatada, et kõik treenitavad JumpStart mudelid toetavad nüüd järkjärgulist treeningut. Järkjärguline väljaõpe võimaldab treenida mudelit, mille olete juba viimistletud, kasutades laiendatud andmekogumit, mis sisaldab aluseks olevat mustrit, mida ei arvestatud eelmistes peenhäälestuskäibetes, mis põhjustas mudeli halva jõudluse. Järkjärguline koolitus säästab nii aega kui ka ressursse, sest te ei pea mudelit nullist ümber õpetama. Kui soovite otse hüpata JumpStart API koodi, mida me selles postituses selgitame, võite vaadata märkmiku näidis.

KiirStardi ülevaade

JumpStart on mitmekülgne toode, mis sisaldab erinevaid võimalusi, mis aitavad teil SageMakeris ML-iga kiiresti alustada. Kirjutamise ajal võimaldab JumpStart teha järgmist.

  • Kasutage tavaliste ML-ülesannete jaoks eelkoolitatud mudeleid – JumpStart võimaldab teil tegeleda levinumate ML-ülesannetega ilma arendustegevuseta, pakkudes suurte, avalikult kättesaadavate andmekogumite jaoks eelkoolitatud mudelite hõlpsat juurutamist. ML-i teadlaskond on teinud suuri jõupingutusi, et muuta enamik hiljuti välja töötatud mudeleid kasutamiseks avalikult kättesaadavaks; JumpStart majutab enam kui 300 mudelit, mis hõlmab 15 kõige populaarsemat ML-ülesannet, nagu objektide tuvastamine, teksti klassifitseerimine ja teksti genereerimine, muutes algajatele nende kasutamise lihtsaks. Need mudelid on koostatud populaarsetest mudelijaoturitest, nagu TensorFlow, PyTorch, Hugging Face ja MXNet Hub.
  • Eelkoolitatud mudelite peenhäälestus - JumpStart võimaldab teil eelkoolitatud mudeleid peenhäälestada, ilma et oleks vaja oma treeningalgoritmi kirjutada. ML-is nimetatakse oskust ühest valdkonnast õpitud teadmisi teisele üle kanda ülekandmisõpe. Saate kasutada ülekandeõpet, et luua oma väiksematele andmekogumitele täpseid mudeleid, mille koolituskulud on palju väiksemad kui algse mudeli väljaõppega seotud omad. JumpStart sisaldab ka populaarseid LightGBM-il, CatBoostil, XGBoostil ja Scikit-learnil põhinevaid treeningalgoritme, mida saate nullist treenida tabeli regressiooni ja klassifitseerimise jaoks.
  • Kasutage valmislahendusi – JumpStart pakub 17 lahendust tavalisteks ML kasutusjuhtudeks, nagu nõudluse prognoosimine ning tööstus- ja finantsrakendused, mille saate juurutada vaid mõne klõpsuga. Lahendused on täielikud ML-rakendused, mis ühendavad erinevaid AWS-teenuseid konkreetse ärilise kasutusjuhtumi lahendamiseks. Nad kasutavad AWS CloudFormation malle ja viitearhitektuure kiireks juurutamiseks, mis tähendab, et need on täielikult kohandatavad.
  • Kasutage SageMakeri algoritmide jaoks märkmiku näiteid – SageMaker pakub komplekti sisseehitatud algoritme, mis aitavad andmeteadlastel ja ML-i praktikutel ML-mudelite koolitamist ja juurutamist kiiresti alustada. JumpStart pakub näidismärkmikke, mida saate nende algoritmide kiireks rakendamiseks kasutada.
  • Vaadake üle koolitusvideod ja blogid – JumpStart pakub ka arvukalt ajaveebipostitusi ja videoid, mis õpetavad kasutama SageMakeri erinevaid funktsioone.

KiirStart aktsepteerib kohandatud VPC sätteid ja AWS-i võtmehaldusteenus (AWS KMS) krüpteerimisvõtmed, et saaksite saadaolevaid mudeleid ja lahendusi turvaliselt oma ettevõtte keskkonnas kasutada. Saate edastada oma turvasätted JumpStartile Studios või SageMaker Python SDK kaudu.

Piltide klassifikatsioon

Kujutise klassifitseerimine viitab pildi klassifitseerimisele koolitusandmestiku ühte klassisildisse. Saate täpsustada mudelit mis tahes andmestiku jaoks, mis sisaldab pilte, mis kuuluvad mis tahes arvu klassidesse. JumpStartis peenhäälestamiseks saadaval olev mudel lisab vastavale funktsioonide ekstraktori mudelile klassifikatsioonikihi ja lähtestab kihi parameetrid juhuslikeks väärtusteks. Klassifitseerimiskihi väljundmõõde määratakse sisendandmetes olevate klasside arvu alusel. Peenhäälestuse samm häälestab klassifikatsioonikihi parameetreid, hoides samal ajal funktsioonide ekstrakti mudeli parameetrid külmutatuna, ja tagastab peenhäälestatud mudeli. Eesmärk on minimeerida sisendandmete prognoosiviga.

Meie andmestiku jaoks on sisendiks kataloog, kus on sama palju alamkatalooge kui klasside arv. Igas alamkataloogis peaksid olema sellesse klassi kuuluvad pildid .jpg-vormingus. Kui treeninguandmed sisaldavad pilte kahest klassist, peaks sisendkataloog välja nägema järgmine hierarhia: roses ja dandelion:

input_directory |--roses |--abc.jpg |--def.jpg |--dandelion |--ghi.jpg |--jkl.jpg

Kaustade, klasside ja .jpg-failide nimed võivad olla mis tahes.

Pakume tf_flowers1 andmestik vaikeandmestikuna mudeli peenhäälestamiseks. See andmekogum sisaldab viit tüüpi lillede kujutisi. Andmekogum on alla laaditud aadressilt TensorFlow.

Läbivaatuse ülevaade

Järgmised jaotised pakuvad samm-sammult demo piltide klassifitseerimiseks JumpStartiga nii Studio kasutajaliidese kui ka JumpStart API-de kaudu.

Läbime järgmised sammud:

  1. JumpStartile pääsete juurde Studio kasutajaliidese kaudu:
    1. Viimistlege eelkoolitatud mudelit.
    2. Rakendage peenhäälestatud mudel.
    3. Treenige peenhäälestatud mudelit järk-järgult ja paigutage see ümber.
  2. Kasutage JumpStarti programmiliselt koos SageMaker Python SDK-ga:
    1. Viimistlege eelkoolitatud mudelit.
    2. Rakendage peenhäälestatud mudel.
    3. Treenige peenhäälestatud mudelit järk-järgult ja paigutage see ümber.

JumpStartile pääsete juurde Studio kasutajaliidese kaudu

Selles jaotises demonstreerime, kuidas Studio kasutajaliidese kaudu JumpStart mudeleid peenhäälestada ja juurutada. Lisaks näitame, kuidas eelnevalt viimistletud mudelit järk-järgult koolitada.

Viimistlege eelkoolitatud mudelit

Järgmine video näitab, kuidas leida JumpStartis eelkoolitatud piltide klassifitseerimismudel ja seda peenhäälestada. Mudeli leht sisaldab väärtuslikku teavet mudeli, selle kasutamise, eeldatava andmevormingu ja mõnede peenhäälestuste kohta.

Demonstratsiooni eesmärgil viimistleme mudelit, kasutades vaikimisi pakutavat andmekogumit, milleks on tf_flowers andmestik, mis koosneb erinevatest lillesortidest. Enda andmestiku peenhäälestus hõlmab andmete õiget vormindamist (nagu on selgitatud mudelilehel) ja nende üleslaadimist Amazoni lihtne salvestusteenus (Amazon S3) ja määrates selle asukoha andmeallika konfiguratsioonis.

Kasutame samu hüperparameetri väärtusi, mis on vaikimisi seatud (perioodide arv, õppimiskiirus ja partii suurus). Samuti kasutame SageMakeri koolituseksemplarina GPU-ga toetatud ml.p3.2xlarge eksemplari.

Saate jälgida oma koolitustööd otse Studio konsoolil ja teid teavitatakse selle lõpetamisest.

Rakendage peenhäälestatud mudel

Kui koolitus on lõppenud, saate viimistletud mudeli juurutada samal lehel, kus on koolitustöö üksikasjad. Mudeli juurutamiseks valime teise eksemplari tüübi ml.p2.xlarge. See tagab endiselt madala järelduste latentsuse jaoks vajaliku GPU kiirenduse, kuid madalama hinnaga. Pärast SageMakeri hostieksemplari konfigureerimist valige juurutada. Võib kuluda 5–10 minutit, kuni teie püsiv lõpp-punkt on valmis.

Siis on teie lõpp-punkt töökorras ja valmis järeldustaotlustele vastama!

Järelduste tegemiseks kuluva aja kiirendamiseks pakub JumpStart näidismärkmiku, mis näitab, kuidas värskelt juurutatud lõpp-punktist järeldusi teha. Vali Avage märkmik all Kasutage lõpp-punkti stuudiost.

Treenige peenhäälestatud mudelit järk-järgult ja rakendage

Kui peenhäälestus on lõpetatud, saate mudelit jõudluse suurendamiseks edasi treenida. See samm on väga sarnane esialgse peenhäälestusprotsessiga, välja arvatud see, et kasutame lähtepunktina juba peenhäälestatud mudelit. Võite kasutada uusi andmeid, kuid andmestiku vorming peab olema sama (sama klasside komplekt).

Kasutage KiirStarti programmiliselt koos SageMaker SDK-ga

Eelmistes osades näitasime, kuidas saate KiirStart UI abil mudelit mõne klõpsuga interaktiivselt viimistleda, juurutada ja järk-järgult treenida. Saate kasutada ka JumpStarti mudeleid ja lihtsat programmilist peenhäälestust, kasutades API-sid, mis on integreeritud SageMaker SDK-sse. Vaatame nüüd kiiret näidet selle kohta, kuidas saate eelnevat protsessi korrata. Kõik selle demo etapid on saadaval kaasasolevates sülearvutites JumpStarti sissejuhatus – piltide klassifitseerimine.

Viimistlege eelkoolitatud mudelit

Valitud mudeli peenhäälestamiseks peame hankima selle mudeli URI, samuti koolitusskripti ja koolituseks kasutatava konteineri kujutise URI. Õnneks sõltuvad need kolm sisendit ainult mudeli nimest ja versioonist (saadaolevate mudelite loendit vt KiirStart Saadaolevate mudelite tabel) ja eksemplari tüüp, millel soovite treenida. Seda näitab järgmine koodilõik:

from sagemaker import image_uris, model_uris, script_uris model_id, model_version = "pytorch-ic-mobilenet-v2", "1.0.0"
training_instance_type = "ml.p3.2xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=model_id, model_version=model_version, image_scope="training", instance_type=training_instance_type,
) # Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training") # Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

Me toome üles model_id mis vastab samale mudelile, mida me varem kasutasime. Identifikaatoris olev ic vastab kujutise klassifikatsioonile.

Nüüd saate SageMakeri SDK abil seda Kiirstardi mudelit oma kohandatud andmestikul peenhäälestada. Kasutame sama tf_flowers andmestik, mida majutatakse avalikult Amazon S3-s ja mis on mugavalt keskendunud sentimentide analüüsile. Teie andmekogum peaks olema peenhäälestamiseks üles ehitatud, nagu on selgitatud eelmises jaotises. Vaadake järgmist näidiskoodi:

# URI of your training dataset
training_dataset_s3_path = "s3://jumpstart-cache-prod-us-west-2/training-datasets/tf_flowers/"
training_job_name = name_from_base(f"jumpstart-example-{model_id}-transfer-learning") # Create SageMaker Estimator instance
ic_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location,
) # Launch a SageMaker Training job by passing s3 path of the training data
ic_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Saame valitud mudeli jaoks samad vaikehüperparameetrid, mida nägime eelmises jaotises, kasutades sagemaker.hyperparameters.retrieve_default(). Seejärel loome SageMakeri hindaja ja kutsume välja .fit-meetodi, et alustada oma mudeli peenhäälestamist, edastades sellele meie treeningandmete jaoks Amazon S3 URI. Nagu näete, entry_point pakutav skript on nimeline transfer_learning.py (sama muude ülesannete ja mudelite puhul) ja sisendandmekanal edastati .fit tuleb nimetada training.

Peenhäälestatud mudeli juurutamine

Kui koolitus on lõppenud, saate oma peenhäälestatud mudeli kasutusele võtta. Selleks peame hankima vaid järeldusskripti URI (kood, mis määrab, kuidas mudelit pärast juurutamist järelduste tegemiseks kasutatakse) ja järelduskonteineri kujutise URI, mis sisaldab sobivat mudeliserverit meie valitud mudeli majutamiseks. Vaadake järgmist koodi:

# Retrieve the inference docker container uri
deploy_image_uri = image_uris.retrieve( region=None, framework=None, image_scope="inference", model_id=model_id, model_version=model_version, instance_type=inference_instance_type,
)
# Retrieve the inference script uri
deploy_source_uri = script_uris.retrieve( model_id=model_id, model_version=model_version, script_scope="inference"
) endpoint_name = name_from_base(f"jumpstart-example-FT-{model_id}-") # Use the estimator from the previous step to deploy to a SageMaker endpoint
finetuned_predictor = ic_estimator.deploy( initial_instance_count=1, instance_type=inference_instance_type, entry_point="inference.py", image_uri=deploy_image_uri, source_dir=deploy_source_uri, endpoint_name=endpoint_name,
)

Mõne minuti pärast võetakse meie mudel kasutusele ja saame sellest reaalajas prognoose saada!

Järgmisena kutsume esile lõpp-punkti, et ennustada, mis tüüpi lilled näitepildil on. Me kasutame query_endpoint ja parse_response abifunktsioonid, mis on määratletud kaasasolevas märkmik.

query_response = finetuned_predictor.predict( img, {"ContentType": "application/x-image", "Accept": "application/json;verbose"} )
model_predictions = json.loads(query_response)
predicted_label = model_predictions["predicted_label"]
display( HTML( f'<img src={image_filename} alt={image_filename} align="left" style="width: 250px;"/>' f"<figcaption>Predicted Label: {predicted_label}</figcaption>" )
)

Treenige peenhäälestatud mudelit järk-järgult ja paigutage see ümber

Saame täiustada peenhäälestatud mudeli jõudlust, treenides seda edasi uute piltide peal. Selleks võite kasutada suvalist arvu uusi või vanu pilte, kuid andmestiku vorming peab jääma samaks (sama klasside komplekt). Kasvavtreeningu samm sarnaneb peenhäälestusprotsessiga, olulise erinevusega: esialgses peenhäälestuses alustame eelnevalt väljaõpetatud mudelist, järkjärgulise treeningu puhul aga olemasoleva peenhäälestatud mudeliga. Vaadake järgmist koodi:

last_trained_model_path = f"{s3_output_location}/{last_training_job_name}/output/model.tar.gz"
incremental_s3_output_location = f"s3://{output_bucket}/{incremental_output_prefix}/output"incremental_train_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=last_trained_model_path, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=incremental_s3_output_location, base_job_name=incremental_training_job_name,
) incremental_train_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Kui koolitus on lõppenud, saame mudeli juurutamiseks kasutada samu samme, mida on kirjeldatud eelmises jaotises.

Järeldus

JumpStart on SageMakeri võimalus, mis võimaldab teil kiiresti ML-iga alustada. JumpStart kasutab avatud lähtekoodiga eelkoolitatud mudeleid, et lahendada levinud ML-probleeme, nagu piltide klassifitseerimine, objektide tuvastamine, teksti klassifitseerimine, lausepaaride klassifitseerimine ja küsimustele vastamine.

Selles postituses näitasime teile, kuidas peenhäälestada ja juurutada eelkoolitatud piltide klassifitseerimismudelit. Samuti näitasime, kuidas järk-järgult treenida peenhäälestatud mudelit piltide klassifitseerimiseks. KiirStarti abil saate seda protsessi hõlpsalt läbi viia, ilma et oleks vaja kodeerida. Proovige lahendust ise ja andke meile kommentaarides teada, kuidas see läheb. JumpStarti kohta lisateabe saamiseks vaadake AWS re:Invent 2020 videot Alustage ML-iga mõne minutiga Amazon SageMaker JumpStartiga.

viited

  1. TensorFlow meeskond, 2019

Autoritest

Täiendav koolitus Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence'iga. Vertikaalne otsing. Ai.Dr Vivek Madan on Amazon SageMaker JumpStart meeskonna rakendusteadlane. Ta sai doktorikraadi. Illinoisi ülikoolist Urbana-Champaignis ja oli Georgia Techi järeldoktor. Ta on aktiivne masinõppe ja algoritmide kujundamise uurija ning avaldanud ettekandeid EMNLP, ICLR, COLT, FOCS ja SODA konverentsidel.

Täiendav koolitus Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence'iga. Vertikaalne otsing. Ai.João Moura on AI/ML spetsialistilahenduste arhitekt ettevõttes Amazon Web Services. Ta keskendub peamiselt NLP kasutusjuhtudele ning aitab klientidel optimeerida süvaõppemudeli koolitust ja juurutamist. Samuti on ta aktiivne madala koodiga ML-lahenduste ja ML-le spetsialiseerunud riistvara pooldaja.

Täiendav koolitus Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence'iga. Vertikaalne otsing. Ai.Dr Ashish Khetan on vanemrakendusteadlane Amazon SageMaker JumpStart ja Amazon SageMakeri sisseehitatud algoritmid ja aitab välja töötada masinõppe algoritme. Ta on aktiivne masinõppe ja statistiliste järelduste uurija ning avaldanud palju artikleid NeurIPS-i, ICML-i, ICLR-i, JMLR-i, ACL-i ja EMNLP-konverentsidel.

Ajatempel:

Veel alates AWS-i masinõpe