Siirrä oppimista TensorFlow-tekstin luokittelumalleille Amazon SageMakerissa

Amazon Sage Maker tarjoaa sviitin sisäänrakennetut algoritmit, valmiiksi koulutetut mallitja valmiiksi rakennetut ratkaisumallit auttaa datatieteilijöitä ja koneoppimisen (ML) harjoittajia aloittamaan ML-mallien koulutuksen ja käyttöönoton nopeasti. Voit käyttää näitä algoritmeja ja malleja sekä ohjattuun että ohjaamattomaan oppimiseen. Ne voivat käsitellä erityyppisiä syöttötietoja, mukaan lukien taulukko, kuva ja teksti.

Tämä viesti on kolmas SageMakerin uusia sisäänrakennettuja algoritmeja koskevassa sarjassa. Vuonna ensimmäinen viesti, näytimme, kuinka SageMaker tarjoaa sisäänrakennetun algoritmin kuvien luokitteluun. Vuonna toinen viesti, näytimme, kuinka SageMaker tarjoaa sisäänrakennetun algoritmin objektien havaitsemiseen. Tänään ilmoitamme, että SageMaker tarjoaa uuden sisäänrakennetun algoritmin tekstin luokitteluun TensorFlow'n avulla. Tämä valvottu oppimisalgoritmi tukee siirtooppimista monille esikoulutetuille malleille, jotka ovat saatavilla TensorFlow napa. Se ottaa syötteeksi palan tekstiä ja tulostaa kunkin luokkatunnisteen todennäköisyyden. Voit hienosäätää näitä valmiiksi koulutettuja malleja siirtooppimisen avulla, vaikka suuri tekstikokoelma ei olisi käytettävissä. Se on saatavilla SageMakerin kautta sisäänrakennetut algoritmit, sekä kautta SageMaker JumpStart UI in Amazon SageMaker Studio. Lisätietoja on kohdassa Tekstiluokitus ja esimerkkimuistikirja Johdatus JumpStartiin – Tekstin luokittelu.

Tekstin luokittelu SageMakerin TensorFlow-sovelluksella tarjoaa siirtooppimista monissa TensorFlow Hubissa saatavilla olevissa esikoulutetuissa malleissa. Harjoitustiedoissa olevien luokkamerkintöjen lukumäärän mukaan esikoulutettuun TensorFlow-keskitinmalliin on liitetty luokituskerros. Luokittelukerros koostuu dropout-kerroksesta ja tiiviistä kerroksesta, täysin yhdistetty kerros, jossa on 2-normin regularisaattori, joka alustetaan satunnaisilla painoilla. Mallikoulutuksessa on hyperparametrit keskeytyskerroksen pudotussuhteelle ja L2-regulaatiokerroin tiheälle kerrokselle. Sitten joko koko verkko, mukaan lukien esiopetettu malli, tai vain ylin luokituskerros voidaan hienosäätää uudella harjoitusdatalla. Tässä siirtooppimistilassa harjoittelu voidaan saavuttaa pienemmälläkin tietojoukolla.

Kuinka käyttää uutta TensorFlow-tekstin luokittelualgoritmia

Tässä osassa kuvataan, kuinka TensorFlow-tekstin luokittelualgoritmia käytetään SageMaker Python SDK. Katso lisätietoja sen käyttämisestä Studion käyttöliittymästä SageMaker JumpStart.

Algoritmi tukee siirtooppimista kohdassa luetelluille esikoulutetuille malleille Tensorflow mallit. Jokainen malli tunnistetaan yksilöllisesti model_id. Seuraava koodi näyttää kuinka hienosäätää BERT-perusmallia, jonka tunnistaa model_id tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2 mukautetussa harjoitustietojoukossa. Jokaiselle model_id, käynnistää SageMaker-koulutustyön kautta arviointityökalu SageMaker Python SDK:n luokkaan, sinun on noudettava Docker-kuvan URI, harjoitusohjelman URI ja esikoulutettu mallin URI SageMakerin aputoimintojen kautta. Harjoituskomentosarjan URI sisältää kaiken tarvittavan koodin tietojen käsittelyyn, esiopetetun mallin lataamiseen, mallin harjoitteluun ja opetetun mallin tallentamiseen päätelmiä varten. Esiopetettu mallin URI sisältää esiopetetun malliarkkitehtuurin määritelmän ja malliparametrit. Valmiiksi koulutettu mallin URI on tietty mallikohtainen. Valmiiksi koulutetut mallin tarballit on ladattu valmiiksi TensorFlow'sta ja tallennettu sopivalla mallin allekirjoituksella Amazonin yksinkertainen tallennuspalvelu (Amazon S3) kauhat, jotta koulutustyö suoritetaan verkkoeristettynä. Katso seuraava koodi:

from sagemaker import image_uris, model_uris, script_urisfrom sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2", "*"
training_instance_type = "ml.p3.2xlarge"
# Retrieve the docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)# 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 for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-tensorflow-tc-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

Näiden mallikohtaisten harjoitusartefaktien avulla voit rakentaa objektin arviointityökalu luokka:

# Create SageMaker Estimator instance
tf_tc_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,)

Seuraavaksi sinun on ehkä muutettava harjoitushyperparametrien oletusarvoja mukautetun tietojoukon oppimisen siirtämiseksi, jotka on lueteltu hyperparametrien. Voit hakea Python-sanakirjan näistä hyperparametreista niiden oletusarvoineen soittamalla hyperparameters.retrieve_default, päivitä ne tarvittaessa ja välitä ne sitten Estimator-luokkaan. Huomaa, että joidenkin hyperparametrien oletusarvot ovat erilaiset eri malleissa. Suurille malleille oletuserän koko on pienempi ja train_only_top_layer hyperparametri on asetettu arvoon True. Hyperparametri Train_only_top_layer määrittää, mitkä mallin parametrit muuttuvat hienosäätöprosessin aikana. Jos train_only_top_layer is True, silloin luokituskerrosten parametrit muuttuvat ja loput parametrit pysyvät vakioina hienosäätöprosessin aikana. Toisaalta jos train_only_top_layer is False, sitten kaikki mallin parametrit hienosäädetään. Katso seuraava koodi:

from sagemaker import hyperparameters# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

Tarjoamme SST2 oletustietojoukona mallien hienosäätöä varten. Aineisto sisältää positiivisia ja negatiivisia elokuva-arvosteluja. Se on ladattu osoitteesta TensorFlow varten Apache 2.0 -lisenssi. Seuraava koodi tarjoaa oletusarvoisen harjoitustietojoukon, jota isännöidään S3-ryhmissä.

# Sample training data is available in this bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/SST2/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

Lopuksi käynnistääksesi SageMaker-harjoitustyön mallin hienosäätöä varten, kutsu .fit Estimator-luokan objektiin samalla, kun välität harjoitustietojoukon Amazon S3 -sijainnin:

# Launch a SageMaker Training job by passing s3 path of the training data
tf_od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Lisätietoja uuden SageMaker TensorFlow -tekstin luokittelualgoritmin käyttämisestä oppimisen siirtämiseen mukautetussa tietojoukossa, hienosäädetyn mallin käyttöönotto, johtopäätöksen tekeminen käyttöönotetusta mallista ja esikoulutetun mallin käyttöönotto sellaisenaan ilman ensimmäistä hienosäätöä. katso mukautetussa tietojoukossa seuraava esimerkkimuistikirja: Johdatus JumpStartiin – Tekstin luokittelu.

Syöttö/tulostusliitäntä TensorFlow-tekstin luokittelualgoritmille

Voit hienosäätää jokaista luettelossa lueteltua esikoulutettua mallia TensorFlow mallit mihin tahansa tietojoukkoon, joka koostuu tekstilauseista, joissa on kuinka monta luokkia tahansa. Esiopetettu malli liittää luokituskerroksen tekstin upotusmalliin ja alustaa tason parametrit satunnaisarvoiksi. Luokittelukerroksen lähtöulottuvuus määräytyy syöttötiedoissa havaittujen luokkien lukumäärän perusteella. Tavoitteena on minimoida syötetietojen luokitteluvirheet. Hienosäädöllä palautettua mallia voidaan käyttää edelleen päätelmiä varten.

Seuraavat ohjeet kuvaavat, kuinka harjoitustiedot tulee muotoilla malliin syötettäväksi:

  • Input – Hakemisto, joka sisältää data.csv-tiedoston. Jokaisella ensimmäisen sarakkeen rivillä tulee olla kokonaislukuluokkatunnisteet välillä 0 ja luokkien lukumäärä. Jokaisella toisen sarakkeen rivillä tulee olla vastaava tekstidata.
  • Tulos – Hienosäädetty malli, jota voidaan käyttää johtopäätösten tekemiseen tai jota voidaan harjoittaa lisäkoulutuksen avulla. Mallien mukana tallennetaan tiedosto, joka yhdistää luokkaindeksit luokkatunnisteisiin.

Seuraavassa on esimerkki syötetystä CSV-tiedostosta. Huomaa, että tiedostossa ei saa olla otsikkoa. Tiedostoa tulee isännöidä S3-säilössä, jonka polku on seuraavanlainen: s3://bucket_name/input_directory/. Huomaa, että perässä / vaaditaan.

|0 |hide new secretions from the parental units|
|0 |contains no wit , only labored gags|
|1 |that loves its characters and communicates something rather beautiful about human nature|
|...|...|

Päätelmä TensorFlow-tekstin luokittelualgoritmilla

Luotuja malleja voidaan isännöidä johtopäätöksiä ja tukitekstejä varten application/x-text sisältötyyppi. Tulos sisältää todennäköisyysarvot, luokkatunnisteet kaikille luokille ja ennustetun nimiön, joka vastaa JSON-muotoon koodattua luokkaindeksiä, jolla on suurin todennäköisyys. Malli käsittelee yhden merkkijonon pyyntöä kohti ja tulostaa vain yhden rivin. Seuraavassa on esimerkki JSON-muodon vastauksesta:

accept: application/json;verbose
{"probabilities": [prob_0, prob_1, prob_2, ...],
 "labels": [label_0, label_1, label_2, ...],
 "predicted_label": predicted_label}

If accept asetetaan application/json, niin malli tulostaa vain todennäköisyyksiä. Lisätietoja koulutuksesta ja päätelmistä on mallimuistikirjan Johdanto-osassa Johdatus JumpStartiin – Tekstin luokittelu.

Käytä SageMakerin sisäänrakennettuja algoritmeja JumpStart-käyttöliittymän kautta

Voit myös käyttää SageMaker TensorFlow -tekstiluokitusta ja mitä tahansa muita sisäänrakennettuja algoritmeja muutamalla napsautuksella JumpStart-käyttöliittymän kautta. JumpStart on SageMaker-ominaisuus, jonka avulla voit kouluttaa ja ottaa käyttöön sisäänrakennettuja algoritmeja ja esikoulutettuja malleja eri ML-kehyksistä ja mallikeskittimistä graafisen käyttöliittymän kautta. Lisäksi sen avulla voit ottaa käyttöön täysimittaisia ​​ML-ratkaisuja, jotka yhdistävät ML-malleja ja useita muita AWS-palveluita kohdennetun käyttötilanteen ratkaisemiseksi.

Seuraavassa on kaksi videota, jotka osoittavat, kuinka voit toistaa saman hienosäätö- ja käyttöönottoprosessin, jonka juuri kävimme läpi muutamalla napsautuksella JumpStart-käyttöliittymän kautta.

Hienosäädä esikoulutettu malli

Tässä on prosessi saman esiopetetun tekstin luokittelumallin hienosäätämiseksi.

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

Kun mallin koulutus on valmis, voit ottaa mallin suoraan käyttöön pysyvään, reaaliaikaiseen päätepisteeseen yhdellä napsautuksella.

Yhteenveto

Tässä viestissä ilmoitimme sisäänrakennetun SageMaker TensorFlow -tekstiluokitusalgoritmin käynnistämisestä. Annoimme esimerkkikoodin, jolla siirretään oppimista mukautetussa tietojoukossa käyttämällä TensorFlow-keskittimen esikoulutettua mallia tämän algoritmin avulla.

Lisätietoja on dokumentointi ja esimerkkimuistikirja Johdatus JumpStartiin – Tekstin luokittelu.


Tietoja kirjoittajista

Siirrä oppimista TensorFlow-tekstin luokittelumalleille Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Tohtori Vivek Madan on soveltuva tutkija Amazon SageMaker JumpStart -tiimi. 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.

Siirrä oppimista TensorFlow-tekstin luokittelumalleille Amazon SageMaker PlatoBlockchain Data Intelligencessä. 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.

Siirrä oppimista TensorFlow-tekstin luokittelumalleille Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Tohtori Ashish Khetan on vanhempi soveltuva tutkija Amazon SageMakerin sisäänrakennetut algoritmit ja auttaa kehittämään koneoppimisalgoritmeja. Hän sai tohtorin tutkinnon Illinois Urbana Champaignin yliopistosta. Hän on aktiivinen koneoppimisen ja tilastollisen päättelyn tutkija ja julkaissut monia artikkeleita NeurIPS-, ICML-, ICLR-, JMLR-, ACL- ja EMNLP-konferensseissa.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen