Selgitage teksti klassifikatsioonimudeli ennustusi, kasutades Amazon SageMaker Clarify

Selgitage teksti klassifikatsioonimudeli ennustusi, kasutades Amazon SageMaker Clarify

Mudeli seletatavus viitab protsessile, millega seostatakse masinõppemudeli (ML) ennustus eksemplari sisendfunktsiooni väärtustega inimlikult arusaadavalt. Seda välja nimetatakse sageli kui seletatav tehisintellekt (XAI). Amazon SageMaker Clarify on Amazon SageMaker mis võimaldab andmeteadlastel ja ML-inseneridel selgitada oma ML-mudelite prognoose. See kasutab mudelagnostilisi meetodeid nagu SHaply Additive seletused (SHAP) funktsioonide omistamiseks. Lisaks tabeliandmete selgituste toetamisele toetab Clarify sama SHAP-algoritmi abil ka nii arvutinägemise (CV) kui ka loomuliku keele töötlemise (NLP) seletatavust.

Selles postituses illustreerime Clarify kasutamist NLP mudelite selgitamiseks. Täpsemalt näitame, kuidas saate selgitada teksti klassifitseerimismudeli ennustusi, mida on koolitatud kasutades SageMaker BlazingText algoritm. See aitab teil mõista, millised tekstiosad või sõnad on mudeli ennustuste jaoks kõige olulisemad. Muuhulgas saab neid tähelepanekuid kasutada erinevate protsesside täiustamiseks, nagu andmete hankimine, mis vähendab andmekogumi kallutatust ja mudeli valideerimist, et tagada mudelite toimimine nii, nagu ette nähtud, ja teenida mudeli kasutuselevõtul usaldust kõigi sidusrühmadega. See võib olla põhinõue paljudes rakendusvaldkondades, nagu meeleoluanalüüs, juriidilised ülevaated, meditsiiniline diagnoos ja palju muud.

Pakume ka üldist kujundusmustrit, mida saate kasutada Clarify kasutamise ajal koos mis tahes SageMakeri algoritmid.

Lahenduse ülevaade

SageMakeri algoritmidel on fikseeritud sisend- ja väljundandmete vormingud. Näiteks BlazingTexti algoritmi konteiner aktsepteerib JSON-vormingus sisendeid. Kuid kliendid nõuavad sageli konkreetseid vorminguid, mis ühilduvad nende andmekanalitega. Esitame paar valikut, mida saate Clarify kasutamiseks järgida.

Võimalus A

Selle valiku puhul kasutame SageMakeri hostimise järelduste konveieri funktsiooni. Järelduskonveier on SageMakeri mudel, mis moodustab konteinerite jada, mis töötleb järeldustaotlusi. Järgmine diagramm illustreerib näidet.

Selgitamise töö kutsub esile järelduskonveieri, kus üks konteiner käsitleb andmete vormingut ja teine ​​konteiner sisaldab mudelit.

Järelduste torujuhtmete abil saate juurutada oma kohandatud mudelite ja erinevatesse konteineritesse pakitud SageMakeri sisseehitatud algoritmide kombinatsiooni. Lisateabe saamiseks vaadake Mudelite hostimine koos eeltöötlusloogikaga jadajärelduskonveierina ühe lõpp-punkti taga. Kuna Clarify toetab sisendina ainult CSV- ja JSON-liine, peate tegema järgmised toimingud.

  1. Looge mudel ja konteiner, et teisendada andmed CSV-st (või JSON-liinidest) JSON-i.
  2. Pärast BlazingTexti algoritmiga mudeli koolitusetappi otse mudeli kasutusele võtta. See juurutab mudeli BlazingTexti konteineri abil, mis aktsepteerib sisendina JSON-i. Kui kasutate teist algoritmi, loob SageMaker mudeli selle algoritmi konteineri abil.
  3. Kasutage kahte eelmist mudelit, et luua a Torujuhtme mudel. See aheldab kaks mudelit lineaarses järjestuses ja loob ühe mudeli. Näiteks vaadake Järelduskonveier Scikit-learni ja Lineaarse õppijaga.

Selle lahendusega oleme edukalt loonud ühe mudeli, mille sisend ühildub Clarifyga ja mida saab kasutada selgituste genereerimiseks.

Valik B

See valik näitab, kuidas saate integreerida erinevate andmevormingute kasutamise Clarify ja SageMakeri algoritmide vahel, tuues kaasa oma konteineri SageMakeri mudeli majutamiseks. Järgmine diagramm illustreerib lahenduse arhitektuuri ja samme:

Selgitage teksti klassifitseerimise mudeli ennustusi, kasutades Amazon SageMaker Clarify PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Sammud on järgmised:

  1. Kasutage BlazingTexti algoritmi SageMaker Estimatori kaudu teksti klassifitseerimismudeli treenimiseks.
  2. Pärast mudeli väljaõpetamist looge kohandatud Dockeri konteiner, mida saab kasutada SageMakeri mudeli loomiseks ja soovi korral juurutada mudel SageMakeri mudeli lõpp-punktina.
  3. Konfigureerige ja looge selgitustöö, et kasutada hostimiskonteinerit seletatavuse aruande genereerimiseks.
  4. Kohandatud konteiner aktsepteerib järelduspäringu CSV-vormingus ja võimaldab Clarifyl selgitusi genereerida.

Tuleb märkida, et see lahendus demonstreerib ideed saada BlazingText mudeli jaoks võrguühenduseta selgitusi Clarify abil. Lisateavet veebipõhise seletatavuse kohta leiate aadressilt Internetis seletatavus SageMaker Clarify abil.

Selle postituse ülejäänud osas selgitatakse kõiki teise valiku samme.

Treenige BlazingTexti mudelit

Esmalt treenime BlazingText algoritmi abil teksti klassifitseerimise mudelit. Selles näites kasutame DBpedia ontoloogia andmestik. DBpedia on rahvahulga algatus struktureeritud sisu eraldamiseks, kasutades teavet erinevatest Wikimedia projektidest, nagu Wikipedia. Täpsemalt kasutame DBpedia ontoloogiaandmestikku sellisena, nagu selle on loonud Zhang jt. Selle koostamisel valitakse DBpedia 14-st 2014 mittekattuvat klassi. Väljad sisaldavad Wikipedia artikli kokkuvõtet ja vastavat klassi. Teksti klassifitseerimise mudeli eesmärk on ennustada artikli klassi, võttes arvesse selle abstrakti.

Mudeli väljaõppe üksikasjalik samm-sammuline protsess on saadaval allpool märkmik. Pärast mudeli väljaõpetamist võtke teadmiseks Amazoni lihtne salvestusteenus (Amazon S3) URI tee, kuhu mudeli artefaktid salvestatakse. Üksikasjaliku juhendi saamiseks vaadake Teksti klassifikatsioon SageMaker BlazingTexti abil.

Rakendage koolitatud BlazingTexti mudel, kasutades SageMakeris oma konteinerit

Clarify abil on mudeliteabe esitamiseks kaks võimalust.

  • Looge SageMakeri mudel ilma seda lõpp-punkti juurutamata – Kui Clarify'ile antakse SageMakeri mudel, loob see mudeli abil lühiajalise lõpp-punkti.
  • Looge SageMakeri mudel ja juurutage see lõpp-punkti – Kui lõpp-punkt tehakse Clarify'ile kättesaadavaks, kasutab see lõpp-punkti selgituste hankimiseks. See väldib lühiajalise lõpp-punkti loomist ja võib lühendada Clarify töö käitusaega.

Selles postituses kasutame esimest valikut koos Clarifyga. Me kasutame SageMaker Python SDK Selle eesmärgi jaoks. Teiste valikute ja lisateabe saamiseks vaadake Looge oma lõpp-punkt ja juurutage oma mudel.

Võtke kaasa oma konteiner (BYOC)

Esmalt loome kohandatud Dockeri pildi, mida kasutatakse selle loomiseks SageMakeri mudel. Saate kasutada faile ja koodi lähtekataloog meie GitHubi hoidlast.

Dockerfile kirjeldab pilti, mida tahame luua. Alustame tavalise Ubuntu installiga ja seejärel installime Scikit-learni. Kloonime ka kiirtekst ja installige pakett. Seda kasutatakse BlazingTexti mudeli laadimiseks prognooside tegemiseks. Lõpuks lisame eelmiste failide kujul koodi, mis rakendab meie algoritmi, ja seadistame konteineris keskkonna. Kogu dockerfile on saadaval meie hoidlas ja saate seda kasutada sellisel kujul, nagu see on. Viitama Kasutage hostimisteenustega oma järelduskoodi Lisateavet selle kohta, kuidas SageMaker teie Dockeri konteineriga suhtleb ja selle nõudeid.

Lisaks ennustaja.py sisaldab koodi mudeli laadimiseks ja ennustuste tegemiseks. See aktsepteerib sisendandmeid CSV-vormingus, mis muudab selle Clarifyga ühilduvaks.

Kui teil on Dockerfile, looge Dockeri konteiner ja laadige see üles Amazoni elastsete konteinerite register (Amazon ECR). Samm-sammulise protsessi leiate kujul a shelliskript meie GitHubi hoidlas, mida saate kasutada Dockeri pildi loomiseks ja Amazon ECR-i üleslaadimiseks.

Looge BlazingTexti mudel

Järgmine samm on mudeliobjekti loomine SageMaker Python SDK-st Mudeliklass mida saab juurutada HTTPS-i lõpp-punkti. Konfigureerime Clarify kasutama seda mudelit selgituste genereerimiseks. Selle etapi koodi ja muude nõuete kohta vaadake jaotist Rakendage oma koolitatud SageMaker BlazingText mudel, kasutades Amazon SageMakeris oma konteinerit.

Konfigureerige Clarify

Clarify NLP ühildub regressiooni- ja klassifitseerimismudelitega. See aitab teil mõista, millised sisendteksti osad teie mudeli ennustusi mõjutavad. Clarify toetab 62 keelt ja suudab käsitleda teksti mitmes keeles. Me kasutame SageMaker Python SDK-d, et määratleda kolm konfiguratsiooni, mida Clarify kasutab selgitatavuse aruande koostamiseks.

Esiteks peame looma protsessoriobjekti ja määrama ka ennustuste ja funktsioonide omistamise jaoks kasutatava sisendandmestiku asukoha:

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

Siin peaksite konfigureerima sisendandmete asukoha, funktsioonide veeru ja selle, kuhu soovite töö Selgita väljundi salvestada. Selleks edastatakse DataConfigi objekti loomisel asjakohased argumendid:

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

ModelConfigiga peaksite määrama teabe oma koolitatud mudeli kohta. Siin täpsustame eelmises etapis loodud BlazingText SageMakeri mudeli nime ja määrame ka muud parameetrid, nagu Amazon Elastic Compute Cloud (Amazon EC2) eksemplari tüüp ja sisu vorming:

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

Seda kasutatakse funktsioonide omistuste hankimise kohta Clarify teavitamiseks. TextConfigi kasutatakse teksti ja keele detailsuse määramiseks. Kuna soovime jaotada sisendteksti sõnadeks ja keeleks on inglise keel, määrame oma andmekogus nendeks väärtusteks vastavalt token ja inglise keel. Sõltuvalt andmestiku olemusest saate määrata lause või lõigu detailsuse. Lähtejoon on seatud spetsiaalsele märgile. See tähendab, et Clarify loobub sisendteksti alamhulkadest ja asendab need algväärtustega, hankides samal ajal SHAP-väärtuste arvutamise ennustusi. Nii määrab see märkide mõju mudeli ennustustele ja tuvastab omakorda nende tähtsuse. Kernel SHAP algoritmis kasutatavate proovide arvu määrab num_samples argument. Kõrgemad väärtused toovad kaasa tugevama funktsioonide omistamise, kuid see võib samuti pikendada töö käitusaega. Seetõttu peate nende kahe vahel tegema kompromissi. Vaadake järgmist koodi:

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

Täpsema info saamiseks vt Funktsioonide atribuudid, mis kasutavad Shapley väärtusi ja Amazoni tehisintellekti õigluse ja seletatavuse valge raamat.

ModelPredictedLabelConfig

Et Clarify prognoositud sildi või prognoositud skooride või tõenäosuste ekstraheerimiseks saaks, tuleb see konfiguratsiooniobjekt määrata. Vaadake järgmist koodi:

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

Lisateabe saamiseks vaadake dokumentatsioon SDK-s.

Käivitage Clarify töö

Pärast erinevate konfiguratsioonide loomist olete nüüd valmis käivitama töötlemistöö Clarify. Töötlemistöö kinnitab sisendi ja parameetrid, loob lühiajalise lõpp-punkti ning arvutab SHAP-algoritmi abil kohalikud ja globaalsed funktsioonide atribuudid. Kui see on lõppenud, kustutab see lühiajalise lõpp-punkti ja genereerib väljundfailid. Vaadake järgmist koodi:

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

Selle etapi käitusaeg sõltub andmestiku suurusest ja SHAP-i genereeritud proovide arvust.

Visualiseerige tulemusi

Lõpuks näitame tulemuste visualiseerimist kohaliku funktsioonide omistamise aruandest, mis loodi töötlemistööga Clarify. Väljund on JSON Line vormingus ja teatud töötlusega; saate joonistada sisendteksti märkide hinded nagu järgmine näide. Kõrgemad ribad mõjutavad sihtmärgist rohkem. Lisaks on positiivsed väärtused seotud sihtmuutuja kõrgemate prognoosidega ja negatiivsed väärtused madalamate prognoosidega. Selles näites ennustab mudel sisendteksti "Wesebach on Saksamaa Hesseni jõgi". Ennustatud klass on Natural Place ja hinded näitavad, et mudel leidis, et sõna "jõgi" on selle ennustuse tegemiseks kõige informatiivsem. See on inimese jaoks intuitiivne ja rohkemate näidiste uurimisel saate kindlaks teha, kas mudel õpib õigeid funktsioone ja käitub ootuspäraselt.

Selgitage teksti klassifitseerimise mudeli ennustusi, kasutades Amazon SageMaker Clarify PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Järeldus

Selles postituses selgitasime, kuidas saate Clarify abil selgitada ennustusi teksti klassifitseerimismudelist, mida koolitati SageMaker BlazingTexti abil. Alustage oma teksti klassifitseerimismudelite prognooside selgitamisega, kasutades näidismärkmikku SageMaker BlazingTexti teksti seletatavus.

Arutasime ka üldisemat disainimustrit, mida saate kasutada Clarify koos SageMakeri sisseehitatud algoritmidega. Lisateabe saamiseks vaadake Mis on masinõppe prognooside õiglus ja mudeli seletatavus. Samuti soovitame teil lugeda Amazoni tehisintellekti õigluse ja seletatavuse valge raamat, mis annab teemast ülevaate ning arutleb parimate tavade ja piirangute üle.


Autoritest

Selgitage teksti klassifitseerimise mudeli ennustusi, kasutades Amazon SageMaker Clarify PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai. Pinak Panigrahi töötab koos klientidega, et luua masinõppepõhiseid lahendusi, et lahendada strateegilisi äriprobleeme AWS-is. Kui ta pole masinõppega hõivatud, võib teda leida matkamas, raamatut lugemas või spordiga tegelemas.

Selgitage teksti klassifitseerimise mudeli ennustusi, kasutades Amazon SageMaker Clarify PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai. Dhawal Patel on AWS-i peamine masinõppearhitekt. Ta on töötanud hajutatud andmetöötluse ja tehisintellektiga seotud probleemide lahendamisel organisatsioonidega alates suurettevõtetest kuni keskmise suurusega idufirmadeni. Ta keskendub süvaõppele, sealhulgas NLP ja Computer Vision domeenidele. Ta aitab klientidel teha SageMakeris suure jõudlusega mudeli järeldusi.

Ajatempel:

Veel alates AWS-i masinõpe