Inkrementaalinen koulutus Amazon SageMaker JumpStart PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Inkrementaalinen harjoittelu Amazon SageMaker JumpStartilla

Joulukuussa 2020, AWS ilmoitti Amazon SageMaker JumpStartin yleisestä saatavuudesta, kyky Amazon Sage Maker jonka avulla pääset nopeasti ja helposti alkuun koneoppimisen (ML) kanssa. SageMaker JumpStart tarjoaa yhdellä napsautuksella hienosäädön ja laajan valikoiman esikoulutettujen mallien käyttöönoton suosituissa ML-tehtävissä sekä valikoiman päästä päähän -ratkaisuja, jotka ratkaisevat yleisiä liiketoimintaongelmia. Nämä ominaisuudet poistavat raskasta nostoa ML-prosessin jokaisesta vaiheesta, mikä helpottaa korkealaatuisten mallien kehittämistä ja lyhentää käyttöönottoon kuluvaa aikaa.

Kaikki JumpStart-sisältö oli aiemmin saatavilla vain kautta Amazon SageMaker Studio, joka tarjoaa a käyttäjäystävällinen graafinen käyttöliittymä olla vuorovaikutuksessa ominaisuuden kanssa. Viime aikoina myös me ilmoitti käynnistämisestä helppokäyttöisestä JumpStart API:t SageMaker Python SDK:n laajennuksena, jonka avulla voit ottaa ohjelmallisesti käyttöön ja hienosäätää laajan valikoiman JumpStart-tuettuja esikoulutettuja malleja omissa tietojoukoissasi. Tämä julkaisu vapauttaa JumpStart-ominaisuuksien käytön koodityönkuluissa, MLOps-putkissa ja missä tahansa muualla, jossa olet vuorovaikutuksessa SageMakerin kanssa SDK:n kautta.

Tässä viestissä meillä on ilo ilmoittaa, että kaikki koulutettavat JumpStart-mallit tukevat nyt inkrementaalista harjoittelua. Inkrementaalisen harjoittelun avulla voit harjoitella mallia, jota olet jo hienosäätänyt käyttämällä laajennettua tietojoukkoa, joka sisältää taustalla olevan kuvion, jota ei otettu huomioon aikaisemmissa hienosäätöajoissa, mikä johti mallin huonoon suorituskykyyn. Inkrementaalinen koulutus säästää sekä aikaa että resursseja, koska sinun ei tarvitse kouluttaa mallia uudelleen alusta. Jos haluat hypätä suoraan JumpStart API -koodiin, jonka selitämme tässä viestissä, voit viitata muistikirjan näyte.

JumpStart yleiskatsaus

JumpStart on monipuolinen tuote, joka sisältää erilaisia ​​ominaisuuksia, joiden avulla pääset nopeasti alkuun ML:n kanssa SageMakerissa. Kirjoitushetkellä JumpStart antaa sinun tehdä seuraavat:

  • Ota käyttöön esikoulutettuja malleja yleisiin ML-tehtäviin – JumpStartin avulla voit käsitellä yleisiä ML-tehtäviä ilman kehitysponnisteluja tarjoamalla helpon mallien käyttöönoton, joka on esikoulutettu suurille, julkisesti saatavilla oleville tietojoukoille. ML-tutkijayhteisö on tehnyt paljon vaivaa saattaakseen suurimman osan äskettäin kehitetyistä malleista julkisesti saataville; JumpStart isännöi yli 300 mallin kokoelmaa, jotka kattavat 15 suosituinta ML-tehtävää, kuten objektien havaitseminen, tekstin luokittelu ja tekstin luominen, mikä tekee niiden käyttämisestä helppoa aloittelijalle. Nämä mallit ovat peräisin suosituista mallikeskittimistä, kuten TensorFlow, PyTorch, Hugging Face ja MXNet Hub.
  • Hienosäädä esikoulutettuja malleja – JumpStartin avulla voit hienosäätää esikoulutettuja malleja ilman, että sinun tarvitsee kirjoittaa omaa harjoitusalgoritmiasi. ML:ssä kutsutaan kykyä siirtää yhdeltä alueelta opittua tietoa toiselle siirrä oppimista. Voit käyttää siirtooppimista tuottaaksesi tarkkoja malleja pienemmille tietojoukoillesi paljon alhaisemmilla koulutuskustannuksilla kuin alkuperäisen mallin koulutuksessa. JumpStart sisältää myös suosittuja LightGBM-, CatBoost-, XGBoost- ja Scikit-learniin perustuvia harjoitusalgoritmeja, joita voit harjoitella alusta alkaen taulukkoregressiota ja luokittelua varten.
  • Käytä valmiita ratkaisuja – JumpStart tarjoaa 17 ratkaisua yleisiin ML-käyttötapauksiin, kuten kysynnän ennustamiseen sekä teollisuus- ja taloussovelluksiin, jotka voit ottaa käyttöön vain muutamalla napsautuksella. Ratkaisut ovat päästä päähän ML-sovelluksia, jotka yhdistävät erilaisia ​​AWS-palveluita tietyn yrityskäyttötilanteen ratkaisemiseksi. He käyttävät AWS-pilven muodostuminen mallit ja viitearkkitehtuurit nopeaa käyttöönottoa varten, mikä tarkoittaa, että ne ovat täysin muokattavissa.
  • Käytä muistikirjan esimerkkejä SageMaker-algoritmeille – SageMaker tarjoaa joukon sisäänrakennettuja algoritmeja, jotka auttavat datatieteilijöitä ja ML-harjoittajia pääsemään nopeasti alkuun ML-mallien koulutuksessa ja käyttöönotossa. JumpStart tarjoaa mallimuistikirjoja, joiden avulla voit nopeasti soveltaa näitä algoritmeja.
  • Katso koulutusvideot ja blogit – JumpStart tarjoaa myös lukuisia blogikirjoituksia ja videoita, jotka opettavat käyttämään SageMakerin eri toimintoja.

JumpStart hyväksyy mukautetut VPC-asetukset ja AWS-avainhallintapalvelu (AWS KMS) -salausavaimia, jotta voit käyttää saatavilla olevia malleja ja ratkaisuja turvallisesti yritysympäristössäsi. Voit siirtää suojausasetukset JumpStartiin Studiossa tai SageMaker Python SDK:n kautta.

Kuvaluokitus

Kuvan luokittelu tarkoittaa kuvan luokittelua johonkin harjoitustietojoukon luokkatunnisteista. Voit hienosäätää mallin mihin tahansa tietojoukkoon, joka sisältää kuvia, jotka kuuluvat mihin tahansa määrään luokkia. JumpStartissa hienosäätöön käytettävissä oleva malli liittää luokituskerroksen vastaavaan ominaisuudenpoimintamalliin ja alustaa kerroksen parametrit satunnaisiin arvoihin. Luokittelukerroksen lähtöulottuvuus määräytyy syöttötiedon luokkien lukumäärän perusteella. Hienosäätövaihe virittää luokituskerroksen parametrit pitäen samalla ominaisuudenpoimintamallin parametrit jäädytettyinä ja palauttaa hienosäädetyn mallin. Tavoitteena on minimoida syötetietojen ennustusvirhe.

Tietojoukossamme syöte on hakemisto, jossa on yhtä monta alihakemistoa kuin luokkien määrä. Jokaisessa alihakemistossa tulee olla kuvia, jotka kuuluvat kyseiseen luokkaan .jpg-muodossa. Syöttöhakemiston tulee näyttää seuraavalta hierarkialta, jos harjoitustiedot sisältävät kuvia kahdesta luokasta: roses ja dandelion:

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

Kansioiden, luokkien ja .jpg-tiedostojen nimet voivat olla mitä tahansa.

Tarjoamme tf_flowers1 tietojoukko oletustietojoukona mallin hienosäätöä varten. Tämä tietojoukko sisältää kuvia viidestä kukkatyypistä. Tietojoukko on ladattu osoitteesta TensorFlow.

Yleiskatsaus

Seuraavat osiot tarjoavat vaiheittaisen esittelyn kuvien luokittelusta JumpStartilla sekä Studion käyttöliittymän että JumpStart-sovellusliittymien kautta.

Käymme läpi seuraavat vaiheet:

  1. Käytä JumpStartia Studion käyttöliittymän kautta:
    1. Hienosäädä esikoulutettu malli.
    2. Ota käyttöön hienosäädetty malli.
    3. Harjoittele asteittain hienosäädettyä mallia ja asenna se uudelleen.
  2. Käytä JumpStartia ohjelmallisesti SageMaker Python SDK:n kanssa:
    1. Hienosäädä esikoulutettu malli.
    2. Ota käyttöön hienosäädetty malli.
    3. Harjoittele asteittain hienosäädettyä mallia ja asenna se uudelleen.

Käytä JumpStartia Studion käyttöliittymän kautta

Tässä osiossa näytämme kuinka hienosäätää ja ottaa käyttöön JumpStart-malleja Studion käyttöliittymän kautta. Lisäksi näytämme, kuinka voit asteittain kouluttaa mallia, jota olet aiemmin hienosäätänyt.

Hienosäädä esikoulutettu malli

Seuraava video näyttää, kuinka voit löytää valmiiksi koulutetun kuvan luokittelumallin JumpStartista ja hienosäätää sitä. Mallisivulla on arvokasta tietoa mallista, sen käytöstä, odotetusta datamuodosta ja joitain hienosäätöjä.

Esittelytarkoituksia varten hienosäädämme mallia käyttämällä oletusarvoisesti toimitettua tietojoukkoa, joka on tf_flowers tietojoukko, joka koostuu eri kukkalajikkeista. Oman tietojoukon hienosäätö edellyttää tietojen oikean muotoilun ottamista (kuten mallisivulla on selitetty) ja sen lataamista Amazonin yksinkertainen tallennuspalvelu (Amazon S3) ja määrittämällä sen sijainnin tietolähteen kokoonpanossa.

Käytämme samoja hyperparametriarvoja, jotka on asetettu oletusarvoisesti (jaksojen lukumäärä, oppimisnopeus ja eräkoko). Käytämme myös grafiikkasuorittimen tukemaa ml.p3.2xlarge-esiintymää SageMaker-koulutusinstanssina.

Voit seurata harjoitteluasi suoraan Studio-konsolista, ja saat ilmoituksen sen valmistumisesta.

Ota käyttöön hienosäädetty malli

Kun koulutus on valmis, voit ottaa käyttöön hienosäädetyn mallin samalta sivulta, jolla on koulutustyön tiedot. Ottaaksemme käyttöön mallimme valitsemme toisen ilmentymän tyypin, ml.p2.xlarge. Se tarjoaa silti GPU-kiihdytyksen, joka tarvitaan alhaiseen päättelyviiveeseen, mutta alhaisemmalla hinnalla. Kun olet määrittänyt SageMaker-isännöintiesiintymän, valitse Sijoittaa. Voi kestää 5–10 minuuttia, ennen kuin pysyvä päätepisteesi on käytössä.

Sitten päätepisteesi on toiminnassa ja valmis vastaamaan päättelypyyntöihin!

Päätelmien tekemiseen kuluvan ajan nopeuttamiseksi JumpStart tarjoaa mallimuistikirjan, joka näyttää, kuinka voit suorittaa päätelmiä juuri käyttöön otetulle päätepisteelle. Valita Avaa Muistikirja varten Käytä päätepistettä Studiosta.

Harjoittele asteittain hienosäädettyä mallia ja ota se käyttöön

Kun hienosäätö on valmis, voit harjoitella mallia edelleen parantaaksesi suorituskykyä. Tämä vaihe on hyvin samanlainen kuin alkuperäinen hienosäätöprosessi, paitsi että käytämme jo hienosäädettyä mallia lähtökohtana. Voit käyttää uusia tietoja, mutta tietojoukon muodon on oltava sama (samat luokat).

Käytä JumpStartia ohjelmallisesti SageMaker SDK:n kanssa

Edellisissä osissa näytimme, kuinka voit käyttää JumpStart-käyttöliittymää mallin hienosäätämiseen, käyttöönottoon ja asteittaiseen harjoittamiseen interaktiivisesti muutamalla napsautuksella. Voit myös käyttää JumpStartin malleja ja helppoa hienosäätöä ohjelmallisesti käyttämällä SageMaker SDK:hen integroituja API:ita. Käymme nyt läpi nopean esimerkin siitä, kuinka voit toistaa edellisen prosessin. Kaikki tämän esittelyn vaiheet ovat saatavilla mukana olevissa muistikirjoissa Johdatus JumpStartiin – kuvien luokittelu.

Hienosäädä esikoulutettu malli

Valitun mallin hienosäätöä varten meidän on hankittava mallin URI sekä harjoitusskriptin ja koulutuksessa käytetyn säilön kuvan URI. Onneksi nämä kolme tuloa riippuvat yksinomaan mallin nimestä ja versiosta (katso luettelo saatavilla olevista malleista, katso JumpStart Saatavilla oleva mallitaulukko) ja instanssin tyyppi, jossa haluat harjoitella. Tämä näkyy seuraavassa koodinpätkässä:

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")

Haemme model_id vastaavat samaa mallia, jota käytimme aiemmin. Tunnisteen ic vastaa kuvan luokittelua.

Voit nyt hienosäätää tätä JumpStart-mallia omassa mukautetussa tietojoukossasi SageMaker SDK:n avulla. Käytämme samaa tf_flowers tietojoukko, jota isännöidään julkisesti Amazon S3:ssa ja joka keskittyy kätevästi mielialan analysointiin. Tietojoukkosi tulee olla jäsennelty hienosäätöä varten, kuten edellisessä osiossa selitettiin. Katso seuraava esimerkkikoodi:

# 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)

Saamme valitulle mallillemme samat oletushyperparametrit kuin ne, jotka näimme edellisessä osiossa käyttämällä sagemaker.hyperparameters.retrieve_default(). Tämän jälkeen luomme SageMaker-estimaattorin ja kutsumme .fit-menetelmää mallin hienosäädön aloittamiseksi ja välitämme sille harjoitustietojemme Amazon S3 URI:n. Kuten näette, entry_point toimitettu skripti on nimetty transfer_learning.py (sama muille tehtäville ja malleille), ja tulodatakanava välitetty .fit täytyy nimetä training.

Hienosäädetyn mallin käyttöönotto

Kun koulutus on valmis, voit ottaa käyttöön hienosäädetyn mallisi. Tätä varten tarvitsemme vain päättelykomentosarjan URI:n (koodi, joka määrittää, kuinka mallia käytetään päättelyyn, kun se on otettu käyttöön) ja päätelmäsäiliökuvan URI, joka sisältää sopivan mallipalvelimen valitsemamme mallin isännöimiseksi. Katso seuraava 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,
)

Muutaman minuutin kuluttua mallimme otetaan käyttöön ja voimme saada siitä ennusteita reaaliajassa!

Seuraavaksi kutsumme päätepistettä ennustaaksemme, minkä tyyppisiä kukkia esimerkkikuvassa on. Käytämme query_endpoint ja parse_response aputoiminnot, jotka on määritelty mukana muistikirja.

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>" )
)

Harjoittele asteittain hienosäädettyä mallia ja asenna se uudelleen

Voimme parantaa hienosäädetyn mallin suorituskykyä kouluttamalla sitä edelleen uusien kuvien parissa. Voit käyttää tähän mitä tahansa uusia tai vanhoja kuvia, mutta tietojoukkomuodon on pysyttävä samana (sama sarja). Inkrementaalinen harjoitteluvaihe on samanlainen kuin hienosäätöprosessi, jolla on tärkeä ero: ensimmäisessä hienosäädössä aloitamme esiopetetusta mallista, kun taas inkrementaalisessa harjoittelussa aloitamme olemassa olevasta hienosäädetystä mallista. Katso seuraava 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)

Kun koulutus on valmis, voimme käyttää samoja vaiheita kuin edellisessä osiossa kuvatut mallin käyttöönotossa.

Yhteenveto

JumpStart on SageMakerin ominaisuus, jonka avulla voit nopeasti aloittaa ML:n käytön. JumpStart käyttää avoimen lähdekoodin esikoulutettuja malleja ratkaistakseen yleisiä ML-ongelmia, kuten kuvien luokittelua, objektien havaitsemista, tekstin luokittelua, lauseparien luokittelua ja kysymyksiin vastaamista.

Tässä viestissä näytimme sinulle, kuinka hienosäätää ja ottaa käyttöön esikoulutettu kuvien luokitusmalli. Näitimme myös, kuinka hienosäädettyä mallia asteittain koulutetaan kuvien luokittelua varten. JumpStartin avulla voit suorittaa tämän prosessin helposti ilman koodausta. Kokeile ratkaisua itse ja kerro meille kommenteissa, miten se menee. Saat lisätietoja JumpStartista katsomalla AWS re:Invent 2020 -videon Aloita ML muutamassa minuutissa Amazon SageMaker JumpStartin avulla.

Viitteet

  1. TensorFlow-tiimi, 2019

Tietoja Tekijät

Inkrementaalinen koulutus Amazon SageMaker JumpStart PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Tohtori Vivek Madan on soveltuva tutkija Amazon SageMaker JumpStart -tiimin kanssa. Hän sai tohtorin tutkinnon. Illinoisin yliopistosta Urbana-Champaignissa ja oli tutkijatohtorina Georgia Techissä. Hän on aktiivinen koneoppimisen ja algoritmisuunnittelun tutkija ja julkaissut julkaisuja EMNLP-, ICLR-, COLT-, FOCS- ja SODA-konferensseissa.

Inkrementaalinen koulutus Amazon SageMaker JumpStart PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.João Moura on AI/ML Specialist Solutions -arkkitehti Amazon Web Servicesissä. Hän keskittyy enimmäkseen NLP-käyttötapauksiin ja auttaa asiakkaita optimoimaan syvän oppimismallin koulutusta ja käyttöönottoa. Hän on myös aktiivinen matalan koodin ML-ratkaisujen ja ML-spesifisten laitteistojen kannattaja.

Inkrementaalinen koulutus Amazon SageMaker JumpStart PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Tohtori Ashish Khetan on vanhempi soveltuva tutkija Amazon SageMaker JumpStart ja Amazon SageMakerin sisäänrakennetut algoritmit ja auttaa kehittämään koneoppimisalgoritmeja. Hän on aktiivinen koneoppimisen ja tilastollisen päättelyn tutkija ja on julkaissut useita artikkeleita NeurIPS-, ICML-, ICLR-, JMLR-, ACL- ja EMNLP-konferensseissa.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen