Omówienie typów projektów klasyfikacji
Niestandardowa klasyfikacja tekstu przypisuje etykiety, które w usłudze Azure AI Language service to klasa zdefiniowana przez dewelopera do plików tekstowych. Na przykład podsumowanie gry wideo może być klasyfikowane jako "Adventure", "Strategy", "Action" lub "Sports".
Niestandardowa klasyfikacja tekstu należy do dwóch typów projektów:
- Klasyfikacja pojedynczej etykiety — do każdego pliku można przypisać tylko jedną klasę. W powyższym przykładzie podsumowanie gry wideo można sklasyfikować tylko jako "Przygoda" lub "Strategia".
- Klasyfikacja wielu etykiet — można przypisać wiele klas do każdego pliku. Ten typ projektu umożliwia sklasyfikowanie podsumowania gry wideo jako "Adventure" lub "Adventure and Strategy".
Podczas tworzenia niestandardowego projektu klasyfikacji tekstu można określić projekt, który chcesz skompilować.
Projekty z jedną a wieloma etykietami
Poza możliwością umieszczania plików w wielu klasyfikacjach kluczowe różnice w projektach klasyfikacji wielu etykiet to etykietowanie, zagadnienia dotyczące ulepszania modelu i ładunku interfejsu API dla zadań klasyfikacji.
Etykietowanie danych
W projektach z pojedynczą etykietą każdy plik jest przypisany do jednej klasy podczas procesu etykietowania; przypisanie klasy w języku azure AI umożliwia wybranie tylko jednej klasy.
Podczas etykietowania wielu projektów etykiet można przypisać dowolną liczbę klas na plik. Wpływ dodatkowej złożoności oznacza, że dane muszą pozostać jasne i zapewnić dobrą dystrybucję możliwych danych wejściowych, z których można się uczyć.
Poprawne etykietowanie danych, zwłaszcza w przypadku wielu projektów etykiet, jest bezpośrednio skorelowane z tym, jak dobrze działa model. Im wyższa jakość, jasność i odmiana zestawu danych, tym bardziej dokładny będzie model.
Ocenianie i ulepszanie modelu
Mierzenie wydajności predykcyjnej modelu wykracza poza liczbę przewidywań, które były poprawne. Prawidłowe klasyfikacje są wtedy, gdy rzeczywista etykieta to x , a model przewiduje etykietę x. W świecie rzeczywistym dokumenty powodują różne rodzaje błędów, gdy klasyfikacja nie jest poprawna:
- Wynik fałszywie dodatni — model przewiduje x, ale plik nie ma etykiety x.
- Fałszywie ujemne — model nie przewiduje etykiety x, ale plik w rzeczywistości ma etykietę x.
Te metryki są tłumaczone na trzy miary udostępniane przez język azure AI:
- Przypomnij sobie — ze wszystkich rzeczywistych etykiet, ile zostało zidentyfikowanych; stosunek wyników prawdziwie dodatnich do wszystkich oznaczonych etykietami.
- Precyzja — ile przewidywanych etykiet jest poprawnych; stosunek wyników prawdziwie dodatnich do wszystkich zidentyfikowanych wyników dodatnich.
- Wynik F1 — funkcja kompletności i precyzji, przeznaczona do zapewnienia pojedynczego wyniku w celu zmaksymalizowania równowagi każdego składnika
Napiwek
Dowiedz się więcej o metrykach oceny języka sztucznej inteligencji platformy Azure, w tym dokładnie o sposobie obliczania tych metryk
W przypadku projektu z pojedynczą etykietą można określić, które klasy nie są klas sklasyfikowane, a także inne, i znaleźć więcej danych dotyczących jakości do użycia w trenowaniu modelu. W przypadku projektów z wieloma etykietami ustalenie danych dotyczących jakości staje się bardziej złożone ze względu na macierz możliwych permutacji połączonych etykiet.
Załóżmy na przykład, że model poprawnie klasyfikuje gry "Action" i niektóre gry "Action and Strategy", ale kończą się niepowodzeniem w grach "Strategia". Aby ulepszyć model, warto znaleźć bardziej wysokiej jakości i zróżnicowane podsumowania zarówno dla gier "Action and Strategy", jak i "Strategia", aby nauczyć model, jak rozróżniać te dwa. To wyzwanie zwiększa wykładniczo większą liczbę możliwych klas, w których model jest klasyfikowany.
Ładunek interfejsu API
Język AI platformy Azure udostępnia interfejs API REST umożliwiający tworzenie modelu i interakcję z nim przy użyciu treści JSON w celu określenia żądania. Ten interfejs API jest abstrakcjonowany na wiele zestawów SDK specyficznych dla języka, jednak w tym module skupimy nasze przykłady na podstawowym interfejsie API REST.
Aby przesłać zadanie klasyfikacji, interfejs API wymaga treści JSON, aby określić zadanie do wykonania. Więcej informacji na temat interfejsu API REST znajdziesz w następnej lekcji, ale warto zapoznać się z częściami wymaganej treści.
Modele klasyfikacji pojedynczej customSingleLabelClassification
etykiety określają typ projektu :
{
"projectFileVersion": "<API-VERSION>",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectName": "<PROJECT-NAME>",
"storageInputContainerName": "<CONTAINER-NAME>",
"projectKind": "customSingleLabelClassification",
"description": "Trying out custom multi label text classification",
"language": "<LANGUAGE-CODE>",
"multilingual": true,
"settings": {}
},
"assets": {
"projectKind": "customSingleLabelClassification",
"classes": [
{
"category": "Class1"
},
{
"category": "Class2"
}
],
"documents": [
{
"location": "<DOCUMENT-NAME>",
"language": "<LANGUAGE-CODE>",
"dataset": "<DATASET>",
"class": {
"category": "Class2"
}
},
{
"location": "<DOCUMENT-NAME>",
"language": "<LANGUAGE-CODE>",
"dataset": "<DATASET>",
"class": {
"category": "Class1"
}
}
]
}
}
Wiele modeli klasyfikacji etykiet określa typ projektu CustomMultiLabelClassification
{
"projectFileVersion": "<API-VERSION>",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectName": "<PROJECT-NAME>",
"storageInputContainerName": "<CONTAINER-NAME>",
"projectKind": "customMultiLabelClassification",
"description": "Trying out custom multi label text classification",
"language": "<LANGUAGE-CODE>",
"multilingual": true,
"settings": {}
},
"assets": {
"projectKind": "customMultiLabelClassification",
"classes": [
{
"category": "Class1"
},
{
"category": "Class2"
}
],
"documents": [
{
"location": "<DOCUMENT-NAME>",
"language": "<LANGUAGE-CODE>",
"dataset": "<DATASET>",
"classes": [
{
"category": "Class1"
},
{
"category": "Class2"
}
]
},
{
"location": "<DOCUMENT-NAME>",
"language": "<LANGUAGE-CODE>",
"dataset": "<DATASET>",
"classes": [
{
"category": "Class2"
}
]
}
]
}
}