TensorFlow teksti klassifitseerimismudelite õppimise ülekandmine Amazon SageMakeris

Amazon SageMaker pakub sviidi sisseehitatud algoritmid, eelkoolitatud mudelidja eelnevalt ehitatud lahendusmallid aidata andmeteadlastel ja masinõppe (ML) praktikutel alustada kiiresti ML-mudelite koolitamist ja juurutamist. Neid algoritme ja mudeleid saate kasutada nii juhendatud kui ka järelevalveta õppimiseks. Nad saavad töödelda erinevat tüüpi sisendandmeid, sealhulgas tabelit, pilti ja teksti.

See postitus on kolmas SageMakeri uute sisseehitatud algoritmide seeriast. Aastal esimene postitus, näitasime, kuidas SageMaker pakub piltide klassifitseerimiseks sisseehitatud algoritmi. Aastal teine ​​postitus, näitasime, kuidas SageMaker pakub objekti tuvastamiseks sisseehitatud algoritmi. Täna teatame, et SageMaker pakub uut sisseehitatud algoritmi teksti klassifitseerimiseks TensorFlow abil. See juhendatud õppealgoritm toetab ülekandeõpet paljudes riigis saadaval olevate eelkoolitatud mudelite jaoks TensorFlow jaotur. See võtab sisendiks tekstiosa ja väljastab iga klassi sildi tõenäosuse. Saate neid eelkoolitatud mudeleid ülekandeõppe abil viimistleda isegi siis, kui suur tekstikorpus pole saadaval. See on saadaval SageMakeri kaudu sisseehitatud algoritmid, samuti läbi SageMaker JumpStart UI in Amazon SageMaker Studio. Lisateabe saamiseks vaadake Teksti liigitus ja näidismärkmik KiirStardi sissejuhatus – teksti klassifitseerimine.

Teksti klassifikatsioon TensorFlow abil SageMakeris pakub ülekandeõpet paljudel TensorFlow Hubis saadaolevatel eelkoolitatud mudelitel. Vastavalt koolitusandmetes olevate klassisiltide arvule kinnitatakse eelkoolitatud TensorFlow rummumudelile klassifikatsioonikiht. Klassifitseerimiskiht koosneb väljalangevast kihist ja tihedast täielikult ühendatud kihist 2-normilise regulaatoriga, mis initsialiseeritakse juhuslike kaaludega. Mudelitreeningul on hüperparameetrid väljalangemise kihi väljalangemise määra jaoks ja L2 reguleerimistegur tiheda kihi jaoks. Seejärel saab uute treeningandmete põhjal peenhäälestada kas kogu võrku, sealhulgas eelkoolitatud mudelit, või ainult ülemist klassifikatsioonikihti. Selles ülekandeõpperežiimis saab treenida isegi väiksema andmestikuga.

Kuidas kasutada uut TensorFlow teksti klassifitseerimisalgoritmi

Selles jaotises kirjeldatakse, kuidas kasutada TensorFlow teksti klassifitseerimisalgoritmi koos SageMaker Python SDK. Teavet selle kohta, kuidas seda Studio kasutajaliideses kasutada, vt SageMaker KiirStart.

Algoritm toetab ülekandeõpet loetletud eelkoolitatud mudelite jaoks Tensorflow mudelid. Iga mudelit identifitseerib kordumatu model_id. Järgmine kood näitab, kuidas täpsustada BERT-i baasmudelit, mille tuvastas model_id tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2 kohandatud treeninguandmestikul. Igaühele model_id, et käivitada SageMakeri koolitustöö läbi Hindaja klassi SageMaker Python SDK, peate hankima SageMakeris pakutavate utiliitide kaudu Dockeri kujutise URI, koolitusskripti URI ja eelkoolitatud mudeli URI. Treeningskripti URI sisaldab kogu vajalikku koodi andmetöötluseks, eelkoolitatud mudeli laadimiseks, mudeli koolituseks ja treenitud mudeli järelduste tegemiseks salvestamiseks. Eelkoolitatud mudeli URI sisaldab eelkoolitatud mudeli arhitektuuri määratlust ja mudeli parameetreid. Eelkoolitatud mudeli URI on konkreetse mudeli jaoks spetsiifiline. Eelkoolitatud mudeli tarballid on TensorFlow'st eelnevalt alla laaditud ja salvestatud sobiva mudelisignatuuriga Amazoni lihtne salvestusteenus (Amazon S3) ämbrid, et koolitustöö toimuks võrgust eraldatult. Vaadake järgmist 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"

Nende mudelispetsiifiliste koolitusartefaktide abil saate konstrueerida objekti Hindaja klass:

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

Järgmiseks peate võib-olla kohandatud andmestikule õppimise ülekandmiseks muutma treeningu hüperparameetrite vaikeväärtusi, mis on loetletud Hüperparameetrid. Nende hüperparameetrite Pythoni sõnastiku koos vaikeväärtustega saate hankida helistades hyperparameters.retrieve_default, värskendage neid vastavalt vajadusele ja edastage need seejärel klassile Hindaja. Pange tähele, et mõne hüperparameetri vaikeväärtused on erinevate mudelite puhul erinevad. Suurte mudelite puhul on partii vaikimisi suurus väiksem ja train_only_top_layer hüperparameeter on seatud väärtusele True. Hüperparameeter Train_only_top_layer määrab, millised mudeli parameetrid peenhäälestusprotsessi käigus muutuvad. Kui train_only_top_layer is True, siis klassifikatsioonikihtide parameetrid muutuvad ja ülejäänud parameetrid jäävad peenhäälestusprotsessi ajal konstantseks. Teisest küljest, kui train_only_top_layer is False, siis on kõik mudeli parameetrid peenhäälestatud. Vaadake järgmist 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"

Pakume SST2 vaikeandmestikuna mudelite peenhäälestamiseks. Andmekogum sisaldab positiivseid ja negatiivseid filmiarvustusi. See on alla laaditud aadressilt TensorFlow all Apache 2.0 litsents. Järgmine kood pakub treeningu vaikeandmestiku, mis on hostitud S3 ämbrites.

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

Lõpuks, et käivitada SageMakeri koolitustöö mudeli peenhäälestamiseks, helistage klassi hindaja objektile .fit, edastades samal ajal koolituse andmestiku Amazon S3 asukoha:

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

Lisateabe saamiseks selle kohta, kuidas kasutada uut SageMaker TensorFlow teksti klassifitseerimisalgoritmi kohandatud andmekogumile õppimise ülekandmiseks, juurutada peenhäälestatud mudel, teha juurutatud mudelist järeldusi ja juurutada eelkoolitatud mudel ilma eelneva peenhäälestuseta. kohandatud andmestiku kohta vaadake järgmist märkmikku. KiirStardi sissejuhatus – teksti klassifitseerimine.

TensorFlow teksti klassifitseerimisalgoritmi sisend/väljundliides

Saate peenhäälestada kõiki loetletud eelkoolitatud mudeleid TensorFlow mudelid mis tahes andmestikku, mis koosneb mis tahes arvu klassidega tekstilausetest. Eelkoolitatud mudel lisab teksti manustamise mudelile klassifikatsioonikihi ja lähtestab kihi parameetrid juhuslikeks väärtusteks. Klassifitseerimiskihi väljundmõõde määratakse sisendandmetes tuvastatud klasside arvu põhjal. Eesmärk on minimeerida sisendandmete klassifitseerimisvigu. Peenhäälestusega tagastatud mudelit saab järelduste tegemiseks edasi kasutada.

Järgmised juhised kirjeldavad, kuidas tuleks mudelisse sisestamiseks treeningandmeid vormindada.

  • Sisend – kataloog, mis sisaldab faili data.csv. Esimese veeru igal real peavad olema täisarvulised klassisildid vahemikus 0 kuni klasside arv. Teise veeru igal real peavad olema vastavad tekstiandmed.
  • Väljund – peenhäälestatud mudel, mida saab kasutada järelduste tegemiseks või täiendava koolituse abil. Koos mudelitega salvestatakse ka fail, mis seostab klasside indeksid klassi siltidega.

Järgmine on sisend-CSV-faili näide. Pange tähele, et failil ei tohiks olla päist. Fail peaks olema majutatud S3 ämbris, mille tee on sarnane järgmisele: s3://bucket_name/input_directory/. Pange tähele, et lõpus / on nõutud.

|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|
|...|...|

Järeldus TensorFlow teksti klassifitseerimisalgoritmiga

Loodud mudeleid saab majutada järelduste tegemiseks ja tugitekstiks application/x-text sisu tüüp. Väljund sisaldab tõenäosusväärtusi, kõigi klasside klassisilte ja prognoositavat silti, mis vastab suurima tõenäosusega klassiindeksile, mis on kodeeritud JSON-vormingus. Mudel töötleb päringu kohta ühte stringi ja väljastab ainult ühe rea. Järgmine on JSON-vormingu vastuse näide:

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

If accept on seatud väärtusele application/json, siis väljastab mudel ainult tõenäosused. Lisateavet koolituse ja järelduste kohta leiate märkmiku näidisest Sissejuhatus KiirStardi sissejuhatus – teksti klassifitseerimine.

Kasutage SageMakeri sisseehitatud algoritme JumpStart kasutajaliidese kaudu

JumpStart kasutajaliidese kaudu saate mõne klõpsuga kasutada ka SageMaker TensorFlow teksti klassifikatsiooni ja mis tahes muid sisseehitatud algoritme. JumpStart on SageMakeri funktsioon, mis võimaldab graafilise liidese kaudu koolitada ja juurutada sisseehitatud algoritme ja eelkoolitatud mudeleid erinevatest ML-raamistikest ja mudelijaoturitest. Lisaks võimaldab see juurutada täisväärtuslikke ML-lahendusi, mis ühendavad ML-mudelid ja mitmesugused muud AWS-teenused, et lahendada sihipärane kasutusjuht.

Järgnevalt on kaks videot, mis näitavad, kuidas saate JumpStart kasutajaliidese kaudu mõne klõpsuga korrata sama peenhäälestus- ja juurutamisprotsessi.

Viimistlege eelkoolitatud mudelit

Siin on protsess sama eelkoolitatud teksti klassifitseerimismudeli viimistlemiseks.

Rakendage peenhäälestatud mudel

Kui mudeli väljaõpe on lõppenud, saate mudeli ühe klõpsuga otse püsivasse reaalajas lõpp-punkti juurutada.

Järeldus

Selles postituses teatasime sisseehitatud SageMaker TensorFlow teksti klassifitseerimise algoritmi käivitamisest. Esitasime näidiskoodi, kuidas seda algoritmi kasutades kohandatud andmekogumis õppimist üle kanda, kasutades TensorFlow jaoturi eelkoolitatud mudelit.

Lisateabe saamiseks vaadake dokumentatsioon ja näidismärkmik KiirStardi sissejuhatus – teksti klassifitseerimine.


Autoritest

Edastage õpe TensorFlow teksti klassifitseerimismudelite jaoks rakenduses Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Dr Vivek Madan on rakendusteadlane Amazon SageMaker JumpStart meeskond. Ta sai doktorikraadi Illinoisi ülikoolist Urbana-Champaignis ja oli Georgia Techi järeldoktor. Ta on aktiivne masinõppe ja algoritmide disaini uurija ning avaldanud ettekandeid EMNLP, ICLR, COLT, FOCS ja SODA konverentsidel.

Edastage õpe TensorFlow teksti klassifitseerimismudelite jaoks rakenduses Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.João Moura on AI/ML spetsialistilahenduste arhitekt ettevõttes Amazon Web Services. Ta keskendub peamiselt NLP kasutusjuhtudele ja aitab klientidel optimeerida süvaõppe mudeli koolitust ja juurutamist. Samuti on ta aktiivne madala koodiga ML-lahenduste ja ML-le spetsialiseerunud riistvara pooldaja.

Edastage õpe TensorFlow teksti klassifitseerimismudelite jaoks rakenduses Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Dr Ashish Khetan on vanemrakendusteadlane Amazon SageMakeri sisseehitatud algoritmid ja aitab välja töötada masinõppe algoritme. Ta sai doktorikraadi Illinoisi ülikoolist Urbana Champaign. 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