Magyarázza el a szövegosztályozási modell előrejelzéseit az Amazon SageMaker Clarify segítségével

Magyarázza el a szövegosztályozási modell előrejelzéseit az Amazon SageMaker Clarify segítségével

A modell magyarázhatósága arra a folyamatra utal, amely során a gépi tanulási (ML) modell előrejelzését egy példány bemeneti jellemzőihez kapcsolják emberileg érthető kifejezésekkel. Ezt a mezőt gyakran nevezik megmagyarázható mesterséges intelligencia (XAI). Amazon SageMaker Clarify jellemzője Amazon SageMaker amely lehetővé teszi az adattudósok és az ML mérnökök számára, hogy megmagyarázzák ML modelljeik előrejelzéseit. Modell agnosztikus módszereket használ, mint pl SHapely additív magyarázatok (SHAP) a funkciók hozzárendeléséhez. A táblázatos adatok magyarázatának támogatása mellett a Clarify támogatja a számítógépes látás (CV) és a természetes nyelvi feldolgozás (NLP) magyarázhatóságát is ugyanazon SHAP algoritmus használatával.

Ebben a bejegyzésben bemutatjuk a Clarify használatát az NLP-modellek magyarázatára. Konkrétan bemutatjuk, hogyan magyarázhatja el egy olyan szövegosztályozási modell előrejelzéseit, amelyet a segítségével betanítottak SageMaker BlazingText algoritmus. Ez segít megérteni, hogy a szöveg mely részei vagy szavai a legfontosabbak a modell által készített előrejelzések szempontjából. Többek között ezek a megfigyelések felhasználhatók különféle folyamatok fejlesztésére, például az adatgyűjtésre, amely csökkenti az adathalmaz torzítását és a modellellenőrzést, hogy biztosítsa a modellek rendeltetésszerű működését, és minden érdekelt fél bizalmát kivívja a modell üzembe helyezésekor. Ez kulcsfontosságú követelmény lehet számos alkalmazási területen, mint például a hangulatelemzés, a jogi felülvizsgálatok, az orvosi diagnózis stb.

Ezenkívül egy általános tervezési mintát is biztosítunk, amelyet használhat a Clarify bármelyikével SageMaker algoritmusok.

Megoldás áttekintése

A SageMaker algoritmusok rögzített bemeneti és kimeneti adatformátumokkal rendelkeznek. Például a BlazingText algoritmustároló JSON formátumú bemeneteket fogad el. Az ügyfelek azonban gyakran olyan speciális formátumokat igényelnek, amelyek kompatibilisek adatfolyamaikkal. Bemutatunk néhány lehetőséget, amelyeket követhet a Clarify használatához.

A lehetőség

Ebben az opcióban a SageMaker tárhely következtetési folyamat funkcióját használjuk. A következtetési folyamat egy SageMaker modell, amely konténerek sorozatát alkotja, amelyek feldolgozzák a következtetési kéréseket. A következő diagram egy példát mutat be.

A tisztázási feladat olyan következtetési folyamatot hív meg, amelyben az egyik tároló az adatok formátumát kezeli, a másik pedig a modellt.

Következtetési folyamatok segítségével telepítheti saját egyéni modelljeit és a különböző tárolókba csomagolt SageMaker beépített algoritmusait. További információkért lásd: Modellek tárolása előfeldolgozási logikával, soros következtetési folyamatként egy végpont mögött. Mivel a Clarify csak a CSV- és a JSON-vonalakat támogatja bemenetként, a következő lépéseket kell végrehajtania:

  1. Hozzon létre egy modellt és egy tárolót az adatok CSV-ből (vagy JSON-sorokból) JSON-ba konvertálásához.
  2. A BlazingText algoritmussal végzett modell betanítási lépés után közvetlenül telepítse a modellt. Ez a modellt a BlazingText tároló használatával telepíti, amely elfogadja a JSON-t bemenetként. Más algoritmus használata esetén a SageMaker az adott algoritmus tárolójával hozza létre a modellt.
  3. Használja az előző két modellt a létrehozásához PipelineModel. Ez a két modellt lineáris sorozatba láncolja, és egyetlen modellt hoz létre. Példaként lásd: Következtetési folyamat a Scikit-learn és a Linear Learner segítségével.

Ezzel a megoldással sikeresen létrehoztunk egy olyan modellt, amelynek bemenete kompatibilis a Clarify-val, és magyarázatok generálására használható.

B opció

Ez az opció bemutatja, hogyan integrálhatja a különböző adatformátumok használatát a Clarify és a SageMaker algoritmusok között azáltal, hogy saját tárolót hoz létre a SageMaker modell tárolására. Az alábbi ábra szemlélteti a megoldás architektúráját és lépéseit:

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

A lépések a következők:

  1. Használja a BlazingText algoritmust a SageMaker Becslőn keresztül a szövegosztályozási modell betanításához.
  2. A modell betanítása után hozzon létre egy egyéni Docker-tárolót, amely használható SageMaker-modell létrehozására, és opcionálisan telepítheti a modellt SageMaker-modell-végpontként.
  3. Konfiguráljon és hozzon létre egy Clarify-feladatot, hogy a tárhelytárolót magyarázhatósági jelentés generálására használja.
  4. Az egyéni tároló elfogadja a következtetési kérelmet CSV-ként, és lehetővé teszi a Clarify számára, hogy magyarázatokat generáljon.

Megjegyzendő, hogy ez a megoldás azt az ötletet mutatja be, hogy a BlazingText modellhez a Clarify segítségével offline magyarázatokat kapjunk. Az online magyarázhatóságról további információkért lásd: Online magyarázhatóság a SageMaker Clarify segítségével.

A bejegyzés további része elmagyarázza a második lehetőség egyes lépéseit.

Taníts egy BlazingText modellt

Először egy szövegosztályozási modellt tanítunk a BlazingText algoritmus segítségével. Ebben a példában a DBpedia ontológia adatkészlet. A DBpedia egy tömegből származó kezdeményezés, amelynek célja a strukturált tartalom kinyerése a különféle Wikimédia-projektekből, például a Wikipédiából származó információk felhasználásával. Pontosabban, a DBpedia ontológia adatkészletét használjuk, ahogyan azt létrehozta Zhang és munkatársai. A DBpedia 14-ből 2014 nem átfedő osztály kiválasztásával készült. A mezők egy Wikipédia-cikk absztraktját és a megfelelő osztályt tartalmazzák. A szövegosztályozási modell célja, hogy megjósolja egy cikk osztályát az absztrakt alapján.

A modell betanításának részletes, lépésenkénti folyamata az alábbiakban érhető el jegyzetfüzet. Miután betanította a modellt, vegye figyelembe a Amazon egyszerű tárolási szolgáltatás (Amazon S3) URI elérési út, ahol a modell melléktermékeit tárolják. A lépésenkénti útmutatóért lásd: Szövegosztályozás a SageMaker BlazingText segítségével.

Telepítse a betanított BlazingText modellt a SageMaker saját tárolójával

A Clarify segítségével két lehetőség van a modellinformációk megadására:

  • Hozzon létre egy SageMaker-modellt anélkül, hogy egy végpontra telepítené – Ha egy SageMaker-modellt biztosít a Clarify számára, akkor a modell segítségével egy efemer végpontot hoz létre.
  • Hozzon létre egy SageMaker-modellt, és helyezze üzembe egy végponton – Amikor egy végpont elérhetővé válik a Clarify számára, a végpontot használja magyarázatok beszerzésére. Ez elkerüli egy átmeneti végpont létrehozását, és csökkentheti a Clarify-feladat futási idejét.

Ebben a bejegyzésben az első opciót használjuk a Clarify funkcióval. Használjuk a SageMaker Python SDK erre a célra. További lehetőségekért és további részletekért lásd: Hozza létre a végpontot, és helyezze üzembe a modellt.

Hozd magaddal a saját konténeredet (BYOC)

Először készítünk egy egyéni Docker-képet, amelyet a létrehozásához használunk SageMaker modell. Használhatja a fájlokat és a kódot a forráskönyvtár GitHub adattárunkból.

A Dockerfile leírja az elkészíteni kívánt képet. Kezdjük egy szabványos Ubuntu telepítéssel, majd telepítjük a Scikit-learn programot. Mi is klónozunk gyorsszöveg és telepítse a csomagot. A BlazingText modell betöltésére szolgál előrejelzések készítéséhez. Végül hozzáadjuk az algoritmusunkat megvalósító kódot az előző fájlok formájában, és beállítjuk a környezetet a tárolóban. Az egész dockerfile az adattárunkban található, és úgy használhatja, ahogy van. Hivatkozni Használja saját következtetési kódját a hosting szolgáltatásokkal további részletekért arról, hogy a SageMaker hogyan működik együtt a Docker-tárolóval és annak követelményeivel.

Továbbá, prediktor.py tartalmazza a kódot a modell betöltéséhez és az előrejelzésekhez. A bemeneti adatokat CSV-ként fogadja el, így kompatibilis a Clarify-val.

Miután megvan a Dockerfile, készítse el a Docker-tárolót, és töltse fel ide Amazon Elastic Container Registry (Amazon ECR). A lépésről lépésre haladó folyamatot megtalálja a formában shellscript a GitHub-tárunkban, amellyel létrehozhatja és feltöltheti a Docker-képet az Amazon ECR-be.

Hozd létre a BlazingText modellt

A következő lépés egy modellobjektum létrehozása a SageMaker Python SDK-ból Modell osztály amely egy HTTPS-végpontra telepíthető. A Clarify-t úgy konfiguráljuk, hogy ezt a modellt használja magyarázatok generálására. A lépés kódjával és egyéb követelményeivel kapcsolatban lásd: Telepítse betanított SageMaker BlazingText modelljét saját tárolójával az Amazon SageMakerben.

A Clarify beállítása

A Clarify NLP kompatibilis a regressziós és osztályozási modellekkel. Segít megérteni, hogy a beviteli szöveg mely részei befolyásolják a modell előrejelzéseit. A Clarify 62 nyelvet támogat, és több nyelven is képes kezelni a szöveget. A SageMaker Python SDK-t használjuk a Clarify által a magyarázhatósági jelentés létrehozásához használt három konfiguráció meghatározására.

Először is létre kell hoznunk a processzorobjektumot, és meg kell adnunk a bemeneti adatkészlet helyét is, amelyet az előrejelzésekhez és a jellemzők hozzárendeléséhez használunk majd:

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

Itt kell konfigurálnia a bemeneti adatok helyét, a jellemzőoszlopot, és azt, hogy a Clarify job hol tárolja a kimenetet. Ez a megfelelő argumentumok átadásával történik egy DataConfig objektum létrehozásakor:

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

A ModelConfig segítségével meg kell adnia a betanított modellre vonatkozó információkat. Itt megadjuk az előző lépésben létrehozott BlazingText SageMaker modell nevét, és beállítunk más paramétereket is, mint pl. Amazon rugalmas számítási felhő (Amazon EC2) példánytípus és a tartalom formátuma:

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

Ezt arra használjuk, hogy tájékoztassuk a Clarify-t arról, hogyan szerezheti be a funkció-hozzárendeléseket. A TextConfig a szöveg és a nyelv részletességének meghatározására szolgál. Adatkészletünkben, mivel a bemeneti szöveget szavakra szeretnénk bontani, és a nyelv az angol, ezeket az értékeket tokenre, illetve angolra állítjuk. Az adatkészlet természetétől függően beállíthatja a mondat vagy bekezdés részletességét. Az alapvonal egy speciális tokenre van állítva. Ez azt jelenti, hogy a Clarify eldobja a bemeneti szöveg részhalmazait, és lecseréli azokat az alapvonal értékeire, miközben előrejelzéseket kap az SHAP-értékek kiszámításához. Így határozza meg a tokenek hatását a modell előrejelzéseire, és így azonosítja azok fontosságát. A Kernel SHAP algoritmusban felhasználandó minták számát a num_samples érv. A magasabb értékek robusztusabb funkció-hozzárendeléseket eredményeznek, de ez növelheti a feladat futási idejét is. Ezért kompromisszumot kell kötnie a kettő között. Lásd a következő kódot:

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

További információkért lásd: A Shapley-értékeket használó szolgáltatás-attribútumok és a Az Amazon AI méltányossági és megmagyarázhatósági fehér könyve.

ModelPredictedLabelConfig

Ahhoz, hogy a Clarify ki tudjon bontani egy előrejelzett címkét vagy a várható pontszámokat vagy valószínűségeket, be kell állítani ezt a konfigurációs objektumot. Lásd a következő kódot:

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

További részletekért lásd a dokumentáció az SDK-ban.

Futtasson egy Clarify feladatot

A különböző konfigurációk létrehozása után készen áll a Clarify feldolgozási feladat elindítására. A feldolgozási feladat érvényesíti a bemenetet és a paramétereket, létrehozza az efemer végpontot, és a SHAP-algoritmus segítségével kiszámítja a helyi és globális jellemző-attribútumokat. Ha ez kész, törli az efemer végpontot, és létrehozza a kimeneti fájlokat. Lásd a következő kódot:

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

Ennek a lépésnek a futási ideje az adatkészlet méretétől és az SHAP által generált minták számától függ.

Vizualizálja az eredményeket

Végül megjelenítjük a helyi jellemző-hozzárendelési jelentés eredményeinek vizualizációját, amelyet a Clarify feldolgozási feladat generált. A kimenet JSON Lines formátumú, és némi feldolgozással; a beviteli szövegben ábrázolhatja a tokenek pontszámait az alábbi példa szerint. A magasabb sávok nagyobb hatással vannak a célcímkére. Ezenkívül a pozitív értékek magasabb előrejelzésekkel járnak a célváltozóban, a negatív értékek pedig alacsonyabb előrejelzésekkel. Ebben a példában a modell előrejelzést ad a „Wesebach Hesse Németország folyója” bemeneti szöveghez. A megjósolt osztály a Natural Place, és a pontszámok azt mutatják, hogy a modell a „folyó” szót találta a leginformatívabbnak az előrejelzéshez. Ez az ember számára intuitív, és több minta vizsgálatával megállapíthatja, hogy a modell megtanulja-e a megfelelő tulajdonságokat, és a várt módon viselkedik-e.

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

Következtetés

Ebben a bejegyzésben elmagyaráztuk, hogyan magyarázhatja el a Clarify segítségével a SageMaker BlazingText segítségével betanított szövegosztályozási modellből származó előrejelzéseket. Kezdje el a szövegbesorolási modellekből származó előrejelzések magyarázatát a mintajegyzetfüzet segítségével A SageMaker BlazingText szövegének megmagyarázhatósága.

Megbeszéltünk egy általánosabb tervezési mintát is, amelyet a Clarify és a SageMaker beépített algoritmusai használatakor használhat. További információkért lásd: Mi az igazságosság és a modellmagyarázhatóság a gépi tanulási előrejelzéseknél?. Javasoljuk továbbá, hogy olvassa el a Az Amazon AI méltányossági és megmagyarázhatósági fehér könyve, amely áttekintést nyújt a témáról, valamint a legjobb gyakorlatokat és korlátokat tárgyalja.


A szerzőkről

Explain text classification model predictions using Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. Vertical Search. Ai. Pinak Panigrahi együttműködik az ügyfelekkel, hogy gépi tanulásra támaszkodó megoldásokat építsenek a stratégiai üzleti problémák megoldására az AWS-en. Ha nem a gépi tanulással van elfoglalva, akkor kirándulni, könyvet olvasni vagy sportolni lehet.

Explain text classification model predictions using Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. Vertical Search. Ai. Dhawal Patel az AWS vezető gépi tanulási építésze. Az elosztott számítástechnikával és a mesterséges intelligenciával kapcsolatos problémákon a nagyvállalatoktól a közepes méretű induló vállalkozásokig szervezetekkel dolgozott együtt. A mély tanulásra összpontosít, beleértve az NLP és a Computer Vision tartományokat. Segít az ügyfeleknek abban, hogy a SageMaker-en nagy teljesítményű modellkövetkeztetést érjenek el.

Időbélyeg:

Még több AWS gépi tanulás