Razložite napovedi modela klasifikacije besedila z uporabo Amazon SageMaker Clarify

Razložite napovedi modela klasifikacije besedila z uporabo Amazon SageMaker Clarify

Razložljivost modela se nanaša na postopek povezovanja napovedi modela strojnega učenja (ML) z vrednostmi vhodnih funkcij primerka v človeku razumljivih izrazih. To polje se pogosto imenuje razložljiva umetna inteligenca (XAI). Amazon SageMaker Pojasni je značilnost Amazon SageMaker ki podatkovnim znanstvenikom in inženirjem ML omogoča, da pojasnijo napovedi svojih modelov ML. Uporablja modelne agnostične metode, kot je SHapely Additive pojasnila (SHAP) za dodelitev funkcije. Poleg podpore za razlage tabelarnih podatkov Clarify podpira tudi razložljivost za računalniški vid (CV) in obdelavo naravnega jezika (NLP) z uporabo istega algoritma SHAP.

V tej objavi prikazujemo uporabo Clarify za razlago NLP modelov. Natančneje, pokažemo, kako lahko razložite napovedi modela klasifikacije besedila, ki je bil usposobljen z uporabo SageMaker BlazingText algoritem. To vam pomaga razumeti, kateri deli ali besede besedila so najpomembnejši za napovedi modela. Med drugim se lahko ta opažanja nato uporabijo za izboljšanje različnih procesov, kot je pridobivanje podatkov, ki zmanjša pristranskost v naboru podatkov, in validacija modela, da se zagotovi, da modeli delujejo, kot je predvideno, in pridobi zaupanje vseh zainteresiranih strani, ko je model uveden. To je lahko ključna zahteva na številnih področjih uporabe, kot so analiza razpoloženja, pravni pregledi, medicinska diagnoza in drugo.

Nudimo tudi splošen vzorec oblikovanja, ki ga lahko uporabite med uporabo Clarify s katerim koli od Algoritmi SageMaker.

Pregled rešitev

Algoritmi SageMaker imajo fiksne formate vhodnih in izhodnih podatkov. Na primer, vsebnik algoritma BlazingText sprejema vnose v formatu JSON. Toda stranke pogosto zahtevajo posebne formate, ki so združljivi z njihovimi podatkovnimi kanali. Predstavljamo nekaj možnosti, ki jim lahko sledite za uporabo Clarify.

Možnost A

Pri tej možnosti uporabljamo funkcijo inference pipeline gostovanja SageMaker. Sklepni cevovod je model SageMaker, ki sestavlja zaporedje vsebnikov, ki obdelujejo zahteve za sklepanje. Naslednji diagram prikazuje primer.

Opravilo Clarify prikliče cevovod sklepanja, pri čemer en vsebnik obravnava obliko podatkov, drugi vsebnik pa vsebuje model.

Cevovode sklepanja lahko uporabite za uvajanje kombinacije lastnih modelov po meri in algoritmov, vgrajenih v SageMaker, pakiranih v različne vsebnike. Za več informacij glejte Gostovanje modelov skupaj z logiko predprocesiranja kot serijski inferenčni cevovod za eno končno točko. Ker Clarify kot vnos podpira samo vrstice CSV in JSON, morate opraviti naslednje korake:

  1. Ustvarite model in vsebnik za pretvorbo podatkov iz CSV (ali vrstic JSON) v JSON.
  2. Po koraku usposabljanja modela z algoritmom BlazingText neposredno razporedite model. To bo razmestilo model z uporabo vsebnika BlazingText, ki sprejema JSON kot vhod. Pri uporabi drugega algoritma SageMaker ustvari model z uporabo vsebnika tega algoritma.
  3. Uporabite prejšnja dva modela, da ustvarite a PipelineModel. To poveže dva modela v linearno zaporedje in ustvari en sam model. Za primer glejte Inference pipeline s Scikit-learn in Linear Learner.

S to rešitvijo smo uspešno ustvarili en sam model, katerega vnos je združljiv s Clarify in ga ta lahko uporabi za ustvarjanje razlag.

Možnost B

Ta možnost prikazuje, kako lahko integrirate uporabo različnih formatov podatkov med algoritmi Clarify in SageMaker, tako da prinesete svoj vsebnik za gostovanje modela SageMaker. Naslednji diagram ponazarja arhitekturo in korake, ki so vključeni v rešitev:

Explain text classification model predictions using Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Koraki so naslednji:

  1. Za usposabljanje modela klasifikacije besedila uporabite algoritem BlazingText prek ocenjevalnika SageMaker.
  2. Ko je model usposobljen, ustvarite vsebnik Docker po meri, ki ga lahko uporabite za ustvarjanje modela SageMaker in po želji razmestite model kot končno točko modela SageMaker.
  3. Konfigurirajte in ustvarite opravilo Clarify za uporabo vsebnika gostovanja za generiranje poročila o razložljivosti.
  4. Vsebnik po meri sprejme zahtevo za sklepanje kot CSV in omogoči Clarify ustvarjanje razlag.

Opozoriti je treba, da ta rešitev prikazuje zamisel o pridobivanju razlag brez povezave z uporabo Clarify za model BlazingText. Za več informacij o spletni razložljivosti glejte Spletna razložljivost s SageMaker Clarify.

Preostanek te objave pojasnjuje vsakega od korakov v drugi možnosti.

Usposobite model BlazingText

Najprej urimo model klasifikacije besedila z uporabo algoritma BlazingText. V tem primeru uporabljamo Ontološki nabor podatkov DBpedia. DBpedia je množična pobuda za pridobivanje strukturirane vsebine z uporabo informacij iz različnih projektov Wikimedia, kot je Wikipedia. Natančneje, uporabljamo ontološki nabor podatkov DBpedia, kot ga je ustvaril Zhang in sod. Sestavljen je z izbiro 14 neprekrivajočih se razredov iz DBpedia 2014. Polja vsebujejo povzetek članka iz Wikipedije in ustrezen razred. Cilj modela klasifikacije besedila je napovedati razred članka glede na njegov povzetek.

Podroben postopek po korakih za usposabljanje modela je na voljo v nadaljevanju prenosnik. Ko ste usposobili model, upoštevajte Preprosta storitev shranjevanja Amazon (Amazon S3) Pot URI, kjer so shranjeni artefakti modela. Za vodnik po korakih glejte Klasifikacija besedila z uporabo SageMaker BlazingText.

Razmestite usposobljeni model BlazingText z uporabo lastnega vsebnika na SageMakerju

Z Clarify obstajata dve možnosti za zagotavljanje informacij o modelu:

  • Ustvarite model SageMaker, ne da bi ga razmestili na končno točko – Ko je Clarify na voljo model SageMaker, z uporabo modela ustvari efemerno končno točko.
  • Ustvarite model SageMaker in ga namestite na končno točko – Ko je končna točka na voljo za Clarify, končno točko uporabi za pridobivanje pojasnil. S tem se izognete ustvarjanju kratkotrajne končne točke in lahko skrajšate čas izvajanja opravila Clarify.

V tej objavi uporabljamo prvo možnost s Clarify. Uporabljamo SDK SageMaker Python Za ta namen. Za druge možnosti in več podrobnosti glejte Ustvarite svojo končno točko in uvedite svoj model.

Prinesite svojo posodo (BYOC)

Najprej zgradimo sliko Docker po meri, ki se uporablja za ustvarjanje Model SageMaker. Datoteke in kodo lahko uporabite v izvorni imenik našega repozitorija GitHub.

Dockerfile opisuje sliko, ki jo želimo zgraditi. Začnemo s standardno namestitvijo Ubuntuja in nato namestimo Scikit-learn. Tudi kloniramo hitro besedilo in namestite paket. Uporablja se za nalaganje modela BlazingText za izdelavo napovedi. Na koncu dodamo kodo, ki implementira naš algoritem v obliki prejšnjih datotek, in nastavimo okolje v vsebniku. Celoten Dockerfile je na voljo v našem skladišču in ga lahko uporabljate takšnega, kot je. Nanašati se na Uporabite svojo lastno sklepno kodo s storitvami gostovanja za več podrobnosti o interakciji SageMaker z vašim vsebnikom Docker in njegovimi zahtevami.

Poleg tega prediktor.py vsebuje kodo za nalaganje modela in izdelavo napovedi. Sprejema vhodne podatke kot CSV, zaradi česar je združljiv s Clarify.

Ko imate datoteko Docker, zgradite vsebnik Docker in ga naložite v Registar elastičnih zabojnikov Amazon (Amazon ECR). Postopek po korakih najdete v obliki a skript lupine v našem repozitoriju GitHub, ki ga lahko uporabite za ustvarjanje in nalaganje slike Docker v Amazon ECR.

Ustvarite model BlazingText

Naslednji korak je ustvariti objekt modela iz SDK-ja SageMaker Python Razred modela ki jih je mogoče namestiti na končno točko HTTPS. Clarify konfiguriramo za uporabo tega modela za generiranje razlag. Za kodo in druge zahteve za ta korak glejte Razmestite svoj usposobljen model SageMaker BlazingText z uporabo lastnega vsebnika v Amazon SageMaker.

Konfigurirajte Clarify

Clarify NLP je združljiv z regresijskimi in klasifikacijskimi modeli. Pomaga vam razumeti, kateri deli vnesenega besedila vplivajo na napovedi vašega modela. Clarify podpira 62 jezikov in lahko obravnava besedilo v več jezikih. S SDK za Python SageMaker definiramo tri konfiguracije, ki jih uporablja Clarify za ustvarjanje poročila o razložljivosti.

Najprej moramo ustvariti objekt procesorja in tudi določiti lokacijo vhodnega nabora podatkov, ki bo uporabljen za napovedi in dodeljevanje funkcij:

import sagemaker
sagemaker_session = sagemaker.Session()
from sagemaker import clarify
clarify_processor = clarify.SageMakerClarifyProcessor(
role=role,
instance_count=1,
instance_type="ml.m5.xlarge",
sagemaker_session=sagemaker_session,
)
file_path = "<location of the input dataset>"

DataConfig

Tukaj bi morali konfigurirati lokacijo vhodnih podatkov, stolpec funkcij in kam želite, da opravilo Clarify shrani izhod. To se naredi s posredovanjem ustreznih argumentov med ustvarjanjem predmeta DataConfig:

explainability_output_path = "s3://{}/{}/clarify-text-explainability".format(
sagemaker_session.default_bucket(), "explainability"
) explainability_data_config = clarify.DataConfig(
s3_data_input_path=file_path,
s3_output_path=explainability_output_path,
headers=["Review Text"],
dataset_type="text/csv",
)

ModelConfig

Z ModelConfig bi morali podati informacije o vašem usposobljenem modelu. Tukaj določimo ime modela BlazingText SageMaker, ki smo ga ustvarili v prejšnjem koraku, in nastavimo tudi druge parametre, kot je Amazonski elastični računalniški oblak Vrsta primerka (Amazon EC2) in oblika vsebine:

model_config = clarify.ModelConfig(
model_name=model_name,
instance_type="ml.m5.xlarge",
instance_count=1,
accept_type="application/jsonlines",
content_type="text/csv",
endpoint_name_prefix=None,
)

SHAPConfig

To se uporablja za obveščanje Clarify o tem, kako pridobiti atribucije funkcij. TextConfig se uporablja za določanje razdrobljenosti besedila in jezika. Ker želimo v našem naboru podatkov vhodno besedilo razčleniti na besede in je jezik angleščina, te vrednosti nastavimo na token oziroma angleščino. Odvisno od narave nabora podatkov lahko nastavite razdrobljenost na stavek ali odstavek. Osnovna črta je nastavljena na poseben žeton. To pomeni, da bo Clarify izpustil podnabore vhodnega besedila in jih nadomestil z vrednostmi iz osnovne črte, medtem ko bo pridobil napovedi za izračun vrednosti SHAP. Tako določa učinek žetonov na napovedi modela in posledično ugotavlja njihov pomen. Število vzorcev, ki jih je treba uporabiti v algoritmu SHAP jedra, je določeno z vrednostjo num_samples prepir. Višje vrednosti povzročijo robustnejše dodelitve funkcij, vendar lahko to tudi podaljša čas izvajanja opravila. Zato morate narediti kompromis med obema. Oglejte si naslednjo kodo:

shap_config = clarify.SHAPConfig(
baseline=[["<UNK>"]],
num_samples=1000,
agg_method="mean_abs",
save_local_shap_values=True,
text_config=clarify.TextConfig(granularity="token", language="english"),
)

Za več informacij si oglejte Atribucije lastnosti, ki uporabljajo Shapleyjeve vrednosti in Amazon AI pravičnost in razložljivost.

ModelPredictedLabelConfig

Da bi Clarify izvlekel predvideno oznako ali predvidene rezultate ali verjetnosti, mora biti nastavljen ta konfiguracijski objekt. Oglejte si naslednjo kodo:

from sagemaker.clarify import ModelPredictedLabelConfig
modellabel_config = ModelPredictedLabelConfig(probability="prob", label="label")

Za več podrobnosti glejte Dokumentacija v SDK.

Izvedite opravilo Clarify

Ko ustvarite različne konfiguracije, ste zdaj pripravljeni na sprožitev opravila obdelave Clarify. Opravilo obdelave potrdi vnos in parametre, ustvari efemerno končno točko in izračuna lokalne in globalne dodelitve funkcij z uporabo algoritma SHAP. Ko je to končano, izbriše efemerno končno točko in ustvari izhodne datoteke. Oglejte si naslednjo kodo:

clarify_processor.run_explainability(
data_config=explainability_data_config,
model_config=model_config,
explainability_config=shap_config,
model_scores=modellabel_config,
)

Čas izvajanja tega koraka je odvisen od velikosti nabora podatkov in števila vzorcev, ki jih ustvari SHAP.

Vizualizirajte rezultate

Nazadnje prikazujemo vizualizacijo rezultatov iz poročila o dodeljevanju lokalnih funkcij, ki ga je ustvarilo opravilo obdelave Clarify. Izhod je v formatu vrstic JSON in z nekaj obdelave; lahko narišete rezultate za žetone v vhodnem besedilu, kot je naslednji primer. Višje vrstice imajo večji vpliv na ciljno oznako. Poleg tega so pozitivne vrednosti povezane z višjimi napovedmi v ciljni spremenljivki, negativne vrednosti pa z nižjimi napovedmi. V tem primeru model naredi napoved za vhodno besedilo »Wesebach je reka Hessen v Nemčiji.« Predvideni razred je Natural Place in rezultati kažejo, da je model ugotovil, da je beseda "reka" najbolj informativna za to napoved. To je za človeka intuitivno in s preučevanjem več vzorcev lahko ugotovite, ali se model uči pravih funkcij in se obnaša po pričakovanjih.

Explain text classification model predictions using Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. Vertical Search. Ai.

zaključek

V tej objavi smo razložili, kako lahko uporabite Clarify za razlago napovedi iz modela klasifikacije besedila, ki je bil učen z uporabo SageMaker BlazingText. Začnite z razlago napovedi iz vaših modelov klasifikacije besedila z uporabo vzorčnega zvezka Razložljivost besedila za SageMaker BlazingText.

Razpravljali smo tudi o bolj splošnem oblikovalskem vzorcu, ki ga lahko uporabite pri uporabi Clarify z vgrajenimi algoritmi SageMaker. Za več informacij glejte Kaj je pravičnost in razložljivost modela za napovedi strojnega učenja. Vabimo vas tudi, da preberete Amazon AI pravičnost in razložljivost, ki ponuja pregled teme ter razpravlja o najboljših praksah in omejitvah.


O avtorjih

Explain text classification model predictions using Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. Vertical Search. Ai. Pinak Panigrahi sodeluje s strankami pri izdelavi rešitev, ki temeljijo na strojnem učenju, za reševanje strateških poslovnih problemov na AWS. Ko se ne ukvarja s strojnim učenjem, ga je mogoče najti na pohodu, branju knjige ali športu.

Explain text classification model predictions using Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. Vertical Search. Ai. Dhawal Patel je glavni arhitekt strojnega učenja pri AWS. Sodeloval je z organizacijami, od velikih podjetij do srednje velikih zagonskih podjetij, pri problemih, povezanih s porazdeljenim računalništvom in umetno inteligenco. Osredotoča se na poglobljeno učenje, vključno s področja NLP in računalniškega vida. Strankam pomaga doseči visoko zmogljivo sklepanje o modelih na SageMakerju.

Časovni žig:

Več od Strojno učenje AWS