Wyjaśnialność modelu odnosi się do procesu powiązania przewidywania modelu uczenia maszynowego (ML) z wejściowymi wartościami cech instancji w sposób zrozumiały dla człowieka. Pole to jest często określane jako wytłumaczalna sztuczna inteligencja (XII). Amazon SageMaker Wyjaśnij jest cechą Amazon Sage Maker która umożliwia naukowcom danych i inżynierom ML wyjaśnienie przewidywań ich modeli ML. Wykorzystuje metody niezależne od modelu, takie jak WYJAŚNIENIA SHAPELY DODATKOWE (SHAP) do atrybucji funkcji. Oprócz obsługi wyjaśnień danych tabelarycznych, Clarify obsługuje również wyjaśnialność zarówno dla wizji komputerowej (CV), jak i przetwarzania języka naturalnego (NLP) przy użyciu tego samego algorytmu SHAP.
W tym poście ilustrujemy użycie Clarify do wyjaśnienia modeli NLP. W szczególności pokazujemy, jak można wyjaśnić przewidywania modelu klasyfikacji tekstu, który został przeszkolony przy użyciu SageMaker BlazingText algorytm. Pomaga to zrozumieć, które części lub słowa tekstu są najważniejsze dla prognoz wykonanych przez model. Między innymi te obserwacje można następnie wykorzystać do usprawnienia różnych procesów, takich jak pozyskiwanie danych, które zmniejsza błąd w zbiorze danych i walidację modelu, aby upewnić się, że modele działają zgodnie z przeznaczeniem i zdobywają zaufanie wszystkich interesariuszy po wdrożeniu modelu. Może to być kluczowym wymaganiem w wielu dziedzinach aplikacji, takich jak analiza nastrojów, przeglądy prawne, diagnostyka medyczna i inne.
Zapewniamy również ogólny wzorzec projektowy, z którego można korzystać podczas korzystania z Clarify z dowolnym z Algorytmy SageMakera.
Omówienie rozwiązania
Algorytmy SageMaker mają ustalone formaty danych wejściowych i wyjściowych. Na przykład kontener algorytmu BlazingText akceptuje dane wejściowe w formacie JSON. Jednak klienci często wymagają określonych formatów, które są zgodne z ich potokami danych. Przedstawiamy kilka opcji, które możesz zastosować, aby korzystać z Clarify.
Opcja A
W tej opcji używamy funkcji potoku wnioskowania hostingu SageMaker. Potok wnioskowania to model SageMaker, który stanowi sekwencję kontenerów przetwarzających żądania wnioskowania. Poniższy diagram ilustruje przykład.
Możesz użyć potoków wnioskowania, aby wdrożyć kombinację własnych niestandardowych modeli i wbudowanych algorytmów SageMaker spakowanych w różnych kontenerach. Aby uzyskać więcej informacji, patrz Hosting modeli wraz z logiką przetwarzania wstępnego jako szeregowy potok wnioskowania za jednym punktem końcowym. Ponieważ Clarify obsługuje tylko linie CSV i JSON jako dane wejściowe, musisz wykonać następujące kroki:
- Utwórz model i kontener, aby przekonwertować dane z CSV (lub JSON Lines) na JSON.
- Bezpośrednio po etapie szkolenia modelu z algorytmem BlazingText wdrożyć model. Spowoduje to wdrożenie modelu przy użyciu kontenera BlazingText, który akceptuje format JSON jako dane wejściowe. W przypadku korzystania z innego algorytmu SageMaker tworzy model przy użyciu kontenera tego algorytmu.
- Użyj poprzednich dwóch modeli, aby utworzyć plik Model rurociągu. Spowoduje to połączenie dwóch modeli w sekwencję liniową i utworzenie jednego modelu. Aby zapoznać się z przykładem, patrz Potok wnioskowania z Scikit-learn i Linear Learner.
Dzięki temu rozwiązaniu z powodzeniem stworzyliśmy pojedynczy model, którego dane wejściowe są kompatybilne z Clarify i mogą być przez nie wykorzystywane do generowania wyjaśnień.
Opcja B
Ta opcja pokazuje, w jaki sposób można zintegrować użycie różnych formatów danych między algorytmami Clarify i SageMaker, udostępniając własny kontener do hostowania modelu SageMaker. Poniższy diagram ilustruje architekturę i kroki związane z rozwiązaniem:
Kroki są następujące:
- Użyj algorytmu BlazingText za pośrednictwem narzędzia SageMaker Estimator, aby wytrenować model klasyfikacji tekstu.
- Po przeszkoleniu modelu utwórz niestandardowy kontener Docker, którego można użyć do utworzenia modelu SageMaker i opcjonalnie wdróż model jako punkt końcowy modelu SageMaker.
- Skonfiguruj i utwórz zadanie Clarify, aby używać kontenera hostingowego do generowania raportu wyjaśnialności.
- Kontener niestandardowy akceptuje żądanie wnioskowania jako plik CSV i umożliwia Clarify generowanie wyjaśnień.
Należy zauważyć, że to rozwiązanie demonstruje ideę uzyskiwania wyjaśnień offline za pomocą Clarify dla modelu BlazingText. Aby uzyskać więcej informacji na temat wyjaśnialności online, zobacz Możliwość wyjaśnienia online dzięki SageMaker Clarify.
W pozostałej części tego postu wyjaśniono każdy z kroków w drugiej opcji.
Wytrenuj model BlazingText
Najpierw uczymy model klasyfikacji tekstu przy użyciu algorytmu BlazingText. W tym przykładzie używamy Zbiór danych DBpedia Ontology. DBpedia to inicjatywa crowdsourcingowa mająca na celu wyodrębnienie uporządkowanej treści przy użyciu informacji z różnych projektów Wikimedia, takich jak Wikipedia. W szczególności używamy zestawu danych ontologii DBpedia utworzonego przez Zhang i in. Jest konstruowany poprzez wybranie 14 nienakładających się klas z DBpedia 2014. Pola zawierają streszczenie artykułu z Wikipedii i odpowiadającej mu klasy. Celem modelu klasyfikacji tekstu jest przewidywanie klasy artykułu na podstawie jego streszczenia.
Szczegółowy proces uczenia modelu krok po kroku jest dostępny poniżej notatnik. Po wytrenowaniu modelu zanotuj Usługa Amazon Simple Storage (Amazon S3) Ścieżka URI, w której przechowywane są artefakty modelu. Aby uzyskać przewodnik krok po kroku, zobacz Klasyfikacja tekstu za pomocą SageMaker BlazingText.
Wdróż przeszkolony model BlazingText przy użyciu własnego kontenera w SageMaker
Dzięki Clarify dostępne są dwie opcje dostarczania informacji o modelu:
- Utwórz model SageMaker bez wdrażania go w punkcie końcowym – Kiedy model SageMaker jest dostarczany do Clarify, tworzy on efemeryczny punkt końcowy przy użyciu tego modelu.
- Utwórz model SageMaker i wdróż go na punkcie końcowym – Gdy punkt końcowy jest udostępniany firmie Clarify, używa go do uzyskiwania wyjaśnień. Pozwala to uniknąć tworzenia efemerycznego punktu końcowego i może skrócić czas wykonywania zadania Clarify.
W tym poście używamy pierwszej opcji z Clarify. Używamy SageMaker SDK dla Pythona w tym celu. Aby uzyskać informacje na temat innych opcji i szczegółowych informacji, patrz Stwórz swój punkt końcowy i wdróż swój model.
Przynieś własny kontener (BYOC)
Najpierw tworzymy niestandardowy obraz platformy Docker, który jest używany do tworzenia Model SageMakera. Możesz użyć plików i kodu w katalog źródłowy naszego repozytorium GitHub.
Dockerfile opisuje obraz, który chcemy zbudować. Zaczynamy od standardowej instalacji Ubuntu, a następnie instalujemy Scikit-learn. Klonujemy również szybki tekst i zainstaluj pakiet. Służy do ładowania modelu BlazingText do tworzenia prognoz. Na koniec dodajemy kod implementujący nasz algorytm w postaci powyższych plików i konfigurujemy środowisko w kontenerze. Cały Dockerfile znajduje się w naszym repozytorium i możesz go używać w takiej postaci, w jakiej jest. Odnosić się do Użyj własnego kodu wnioskowania z usługami hostingowymi aby uzyskać więcej informacji na temat interakcji SageMaker z kontenerem Docker i jego wymagań.
Ponadto, predyktor.py zawiera kod do ładowania modelu i tworzenia prognoz. Akceptuje dane wejściowe jako CSV, co czyni je kompatybilnymi z Clarify.
Po utworzeniu pliku Docker zbuduj kontener Docker i prześlij go do Rejestr elastycznego pojemnika Amazon (Amazon ECR). Proces krok po kroku można znaleźć w formie a skrypt powłoki w naszym repozytorium GitHub, którego możesz użyć do stworzenia i przesłania obrazu Dockera do Amazon ECR.
Utwórz model BlazingText
Następnym krokiem jest utworzenie obiektu modelu z SageMaker Python SDK Klasa wzorcowa które można wdrożyć w punkcie końcowym HTTPS. Konfigurujemy Clarify tak, aby używał tego modelu do generowania wyjaśnień. Aby zapoznać się z kodem i innymi wymaganiami dotyczącymi tego kroku, zobacz Wdróż wyszkolony model SageMaker BlazingText przy użyciu własnego kontenera w Amazon SageMaker.
Skonfiguruj Wyjaśnij
Clarify NLP jest kompatybilny z modelami regresji i klasyfikacji. Pomaga zrozumieć, które części tekstu wejściowego wpływają na przewidywania modelu. Clarify obsługuje 62 języki i może obsługiwać tekst w wielu językach. Używamy SageMaker Python SDK do zdefiniowania trzech konfiguracji używanych przez Clarify do tworzenia raportu wyjaśnialności.
Najpierw musimy utworzyć obiekt procesora, a także określić lokalizację wejściowego zestawu danych, który będzie używany do predykcji i atrybucji cech:
Konfiguracja danych
W tym miejscu należy skonfigurować lokalizację danych wejściowych, kolumnę funkcji oraz miejsce, w którym zadanie Clarify ma przechowywać dane wyjściowe. Odbywa się to poprzez przekazanie odpowiednich argumentów podczas tworzenia obiektu DataConfig:
Konfiguracja modelu
Za pomocą ModelConfig należy określić informacje o przeszkolonym modelu. Tutaj określamy nazwę modelu BlazingText SageMaker, który stworzyliśmy w poprzednim kroku, a także ustawiamy inne parametry, takie jak Elastyczna chmura obliczeniowa Amazon (Amazon EC2) typ instancji i format treści:
Konfiguracja SHAP
Służy to informowaniu Clarify o tym, jak uzyskać atrybucje funkcji. TextConfig służy do określenia szczegółowości tekstu i języka. W naszym zbiorze danych, ponieważ chcemy rozbić tekst wejściowy na słowa, a językiem jest angielski, ustawiamy te wartości odpowiednio na token i angielski. W zależności od rodzaju zestawu danych możesz ustawić stopień szczegółowości dla zdania lub akapitu. Linia bazowa jest ustawiona na specjalny token. Oznacza to, że Clarify usunie podzbiory tekstu wejściowego i zastąpi je wartościami z linii bazowej, jednocześnie uzyskując prognozy do obliczania wartości SHAP. W ten sposób określa wpływ tokenów na prognozy modelu, a z kolei identyfikuje ich znaczenie. Liczba próbek, które mają być użyte w algorytmie Kernel SHAP, jest określona przez wartość num_samples
argument. Wyższe wartości skutkują bardziej niezawodnymi atrybucjami funkcji, ale mogą również wydłużyć czas wykonywania zadania. Dlatego musisz dokonać kompromisu między nimi. Zobacz następujący kod:
Aby uzyskać więcej informacji, zobacz Atrybucje cech wykorzystujące wartości Shapley i Biuletyn informacyjny dotyczący uczciwości i wyjaśnialności AI w Amazon.
ModelPredictedLabelConfig
Aby narzędzie Clarify wyodrębniło przewidywaną etykietę lub przewidywane wyniki lub prawdopodobieństwa, należy ustawić ten obiekt konfiguracyjny. Zobacz następujący kod:
Aby uzyskać więcej informacji, zapoznaj się z dokumentacja w SDKu.
Uruchom zadanie Clarify
Po utworzeniu różnych konfiguracji możesz rozpocząć zadanie przetwarzania Clarify. Zadanie przetwarzania sprawdza poprawność danych wejściowych i parametrów, tworzy efemeryczny punkt końcowy i oblicza lokalne i globalne atrybucje funkcji przy użyciu algorytmu SHAP. Po zakończeniu usuwa efemeryczny punkt końcowy i generuje pliki wyjściowe. Zobacz następujący kod:
Czas wykonania tego kroku zależy od rozmiaru zestawu danych i liczby próbek generowanych przez SHAP.
Wizualizuj wyniki
Na koniec przedstawiamy wizualizację wyników z lokalnego raportu atrybucji obiektów, który został wygenerowany przez zadanie przetwarzania Clarify. Dane wyjściowe są w formacie JSON Lines z pewnym przetwarzaniem; możesz wykreślić wyniki dla tokenów w tekście wejściowym, jak w poniższym przykładzie. Wyższe słupki mają większy wpływ na etykietę docelową. Ponadto wartości dodatnie są związane z wyższymi przewidywaniami w zmiennej docelowej, a wartości ujemne z niższymi przewidywaniami. W tym przykładzie model dokonuje prognozy dla tekstu wejściowego „Wesebach to rzeka Hesji w Niemczech”. Przewidywana klasa to Miejsce naturalne, a wyniki wskazują, że model uznał słowo „rzeka” za najbardziej pouczające, aby dokonać tej prognozy. Jest to intuicyjne dla człowieka i badając więcej próbek, można określić, czy model uczy się właściwych funkcji i zachowuje się zgodnie z oczekiwaniami.
Wnioski
W tym poście wyjaśniliśmy, w jaki sposób możesz użyć Clarify do wyjaśnienia przewidywań z modelu klasyfikacji tekstu, który został wyszkolony przy użyciu SageMaker BlazingText. Rozpocznij od wyjaśniania przewidywań z modeli klasyfikacji tekstu przy użyciu przykładowego notatnika Wyjaśnialność tekstu dla SageMaker BlazingText.
Omówiliśmy również bardziej ogólny wzorzec projektowy, którego można użyć podczas korzystania z Clarify z wbudowanymi algorytmami SageMaker. Aby uzyskać więcej informacji, patrz Czym jest uczciwość i wyjaśnialność modelu dla prognoz uczenia maszynowego. Zachęcamy również do lektury Biuletyn informacyjny dotyczący uczciwości i wyjaśnialności AI w Amazon, który zawiera omówienie tematu i omawia najlepsze praktyki i ograniczenia.
O autorach
Pinak Panigrahi współpracuje z klientami w celu tworzenia rozwiązań opartych na uczeniu maszynowym w celu rozwiązywania strategicznych problemów biznesowych w AWS. Kiedy nie zajmuje się uczeniem maszynowym, można go spotkać na spacerze, czytaniu książki lub nadrabianiu zaległości sportowych.
Dawal Patel jest głównym architektem uczenia maszynowego w AWS. Pracował z organizacjami od dużych przedsiębiorstw po średniej wielkości start-upy w zakresie problemów związanych z przetwarzaniem rozproszonym i sztuczną inteligencją. Koncentruje się na uczeniu głębokim, w tym w domenach NLP i Computer Vision. Pomaga klientom uzyskać wnioskowanie o wysokiej wydajności modelu w SageMaker.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/explain-text-classification-model-predictions-using-amazon-sagemaker-clarify/
- 100
- 2014
- 7
- 9
- a
- O nas
- ABSTRACT
- Akceptuje
- Osiągać
- nabycie
- Po
- AI
- algorytm
- Algorytmy
- Wszystkie kategorie
- Amazonka
- Amazon EC2
- Amazon Sage Maker
- wśród
- analiza
- i
- osobno
- Zastosowanie
- architektura
- argument
- argumenty
- artykuł
- sztuczny
- sztuczna inteligencja
- powiązany
- dostępny
- AWS
- paski
- Baseline
- bo
- za
- BEST
- Najlepsze praktyki
- pomiędzy
- stronniczość
- książka
- przerwa
- Bringing
- budować
- wbudowany
- biznes
- więzy
- klasa
- Klasy
- klasyfikacja
- kod
- Kolumna
- połączenie
- zgodny
- kompletny
- obliczać
- komputer
- Wizja komputerowa
- computing
- Pojemnik
- Pojemniki
- zawiera
- zawartość
- konwertować
- Odpowiedni
- Para
- Stwórz
- stworzony
- tworzy
- Tworzenie
- tworzenie
- zwyczaj
- Klientów
- dane
- głęboko
- głęboka nauka
- W zależności
- zależy
- rozwijać
- wdrażane
- wdrażanie
- Wnętrze
- szczegółowe
- detale
- Ustalać
- ustalona
- określa
- różne
- bezpośrednio
- omówione
- dystrybuowane
- przetwarzanie rozproszone
- Doker
- domeny
- na dół
- napędzany
- Spadek
- każdy
- zarabiać
- efekt
- Umożliwia
- zachęcać
- Punkt końcowy
- Inżynierowie
- Angielski
- zapewnić
- przedsiębiorstwa
- Cały
- Środowisko
- Badanie
- przykład
- spodziewany
- Wyjaśniać
- wyjaśnione
- wyjaśniając
- Objaśnia
- wyciąg
- uczciwość
- Cecha
- Korzyści
- pole
- Łąka
- Akta
- W końcu
- Znajdź
- i terminów, a
- ustalony
- koncentruje
- obserwuj
- następujący
- następujący sposób
- Nasz formularz
- format
- znaleziono
- od
- Ponadto
- Ogólne
- Generować
- wygenerowane
- generuje
- generujący
- Niemcy
- otrzymać
- GitHub
- dany
- Globalne
- cel
- poprowadzi
- uchwyt
- Prowadzenie
- pomaga
- tutaj
- Wysoki
- wyższy
- Wycieczka
- przytrzymanie
- Hosting
- W jaki sposób
- How To
- HTML
- HTTPS
- człowiek
- pomysł
- identyfikuje
- obraz
- Rezultat
- narzędzia
- importować
- znaczenie
- ważny
- podnieść
- in
- Włącznie z
- Zwiększać
- wskazać
- wpływ
- Informacja
- informacyjny
- inicjatywa
- wkład
- zainstalować
- przykład
- integrować
- Inteligencja
- współdziała
- intuicyjny
- inwokuje
- zaangażowany
- IT
- Praca
- json
- Klawisz
- Etykieta
- język
- Języki
- duży
- nauka
- Regulamin
- Ograniczenia
- linie
- załadować
- załadunek
- miejscowy
- lokalizacja
- maszyna
- uczenie maszynowe
- zrobiony
- robić
- WYKONUJE
- Dokonywanie
- wiele
- znaczy
- medyczny
- metody
- ML
- model
- modele
- jeszcze
- większość
- wielokrotność
- Nazwa
- Naturalny
- Przetwarzanie języka naturalnego
- Natura
- Potrzebować
- wymagania
- ujemny
- Następny
- nlp
- notatnik
- zauważyć
- numer
- przedmiot
- uzyskiwanie
- nieaktywny
- ONE
- Online
- Ontologia
- Option
- Opcje
- organizacji
- Inne
- przegląd
- własny
- pakiet
- parametry
- strony
- Przechodzący
- ścieżka
- Wzór
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- wykonywania
- rurociąg
- Miejsce
- plato
- Analiza danych Platona
- PlatoDane
- pozytywny
- Post
- praktyki
- przewidzieć
- Przewiduje
- przepowiednia
- Przewidywania
- teraźniejszość
- Główny
- Wcześniejszy
- problemy
- wygląda tak
- procesów
- przetwarzanie
- Procesor
- projektowanie
- zapewniać
- pod warunkiem,
- zapewnia
- cel
- Python
- nośny
- Czytaj
- Czytający
- gotowy
- zmniejszyć
- zmniejsza
- , o którym mowa
- odnosi
- związane z
- obsługi produkcji rolnej, która zastąpiła
- raport
- składnica
- zażądać
- wywołań
- wymagać
- wymaganie
- wymagania
- REST
- dalsze
- Efekt
- przeglądu
- Recenzje
- Rzeka
- krzepki
- sagemaker
- taki sam
- Naukowcy
- nauka-scikit
- Sdk
- druga
- wybierając
- wyrok
- sentyment
- Sekwencja
- seryjny
- zestaw
- powinien
- pokazać
- Prosty
- pojedynczy
- Rozmiar
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- kilka
- specjalny
- specyficzny
- swoiście
- SPORTOWE
- interesariusze
- standard
- początek
- rozpoczęty
- Startups
- Ewolucja krok po kroku
- Cel
- przechowywanie
- sklep
- przechowywany
- Strategiczny
- biznes strategiczny
- zbudowany
- Z powodzeniem
- Wspierający
- podpory
- Brać
- biorąc
- cel
- REGULAMIN
- Klasyfikacja tekstu
- Połączenia
- ich
- w związku z tym
- rzeczy
- trzy
- do
- żeton
- Żetony
- aktualny
- Pociąg
- przeszkolony
- Trening
- wyzwalać
- Zaufaj
- SKRĘCAĆ
- Ubuntu
- zrozumieć
- zrozumiały
- posługiwać się
- uprawomocnienie
- wartość
- Wartości
- różnorodny
- przez
- wizja
- wyobrażanie sobie
- który
- Podczas
- Księga zasad
- Wikipedia
- będzie
- bez
- słowo
- słowa
- pracował
- działa
- You
- Twój
- zefirnet