Track
Co zrobić, gdy musisz sklasyfikować tekst do nowej kategorii, ale nie masz ani jednego oznaczonego przykładu do treningu?
Tradycyjne klasyfikatory odpadają. Oczekują oznaczonych przykładów dla każdej kategorii, którą chcesz przewidywać, co oznacza tygodnie pracy annotacyjnej, zanim w ogóle zaczniesz trenować. A gdy tylko pojawi się nowa kategoria, wracasz do etykietowania.
Warto wtedy spojrzeć na klasyfikację zero-shot. Pomija cały etap etykietowania, pozwalając modelowi przypisywać etykiety, których nigdy nie widział podczas treningu. W praktyce oznacza to, że możesz sortować opinie klientów do kategorii takich jak "reklamacja dotycząca rozliczeń" czy "prośba o funkcję" bez przygotowania ani jednego przykładu uczącego dla którejkolwiek z nich.
W tym artykule pokażę ci, jak działa klasyfikacja zero-shot, jak wypada na tle podejść tradycyjnych i few-shot oraz jak zastosować ją w realnych zadaniach NLP z użyciem Hugging Face Transformers.
Czym dokładnie jest Hugging Face? Zapisz się na naszą ścieżkę Hugging Face Fundamentals, aby budować agentów AI i dostrajać LLM-y.
Czym jest klasyfikacja zero-shot?
Klasyfikacja zero-shot to podejście w uczeniu maszynowym, w którym model przypisuje etykiety do danych bez bycia specjalnie trenowanym na tych etykietach.
Klucz tkwi w "zero-shot". Oznacza to, że model nie widzi żadnych przykładów treningowych dla kategorii, które chcesz przewidywać. Podajesz mu fragment tekstu i listę możliwych etykiet, a on wybiera najlepsze dopasowanie na podstawie tego, co już wie.
Cała ta wiedza pochodzi z pretrenowania. Duże modele czerpią szerokie rozumienie języka i pojęć z ogromnych korpusów tekstów, a na tę ogólną wiedzę powołują się, gdy prosisz je o sklasyfikowanie czegoś nowego.
Jak działa klasyfikacja zero-shot
Przepływ pracy w klasyfikacji zero-shot jest prosty, gdy podzielisz go na kroki. Potrzebujesz tylko czterech:
-
Wprowadź tekst lub dane: To, co chcesz sklasyfikować – recenzja klienta, zgłoszenie do supportu, nagłówek wiadomości, fragment dokumentacji.
-
Podaj kandydackie etykiety: Dajesz modelowi listę możliwych kategorii. To po prostu słowa lub krótkie frazy, jak
"product question","refund request","technical issue"czy"general inquiry". -
Model ocenia relację między wejściem a etykietami: Model przygląda się każdej etykiecie i ocenia, jak dobrze pasuje do wejścia, na podstawie swojego wstępnie wyuczonego rozumienia języka.
-
Wybierana jest najbardziej prawdopodobna etykieta: Zwracana jest etykieta z najwyższym wynikiem, często wraz z poziomem pewności dla każdej kandydatki.
Cały sens polega na tym, że możesz podmieniać kandydackie etykiety w dowolnym momencie bez ponownego trenowania. Jeśli jutro chcesz dodać nową kategorię, po prostu dodaj ją do listy. To robi wrażenie, jeśli pracowałeś wyłącznie z uczeniem nadzorowanym.
Klasyfikacja zero-shot vs klasyfikacja tradycyjna
Oba podejścia rozwiązują ten sam problem (przypisywanie etykiet do danych), ale dochodzą do celu różnymi drogami.
Klasyfikacja tradycyjna
Tradycyjne klasyfikatory uczą się na oznaczonych przykładach. Zbierasz zbiór danych, w którym każdy element jest opatrzony poprawną kategorią, trenujesz na nim model, a ten uczy się wzorców odróżniających jedną klasę od drugiej.
To działa od dekad, ale ma dwa duże ograniczenia:
- Potrzebujesz oznaczonych danych treningowych: Często wielu. Zbieranie i anotowanie takich danych kosztuje czas i pieniądze – najcenniejsze zasoby.
- Zestaw etykiet jest stały: Po wytrenowaniu model może przewidywać tylko te kategorie, które widział w treningu. Dodanie nowej klasy oznacza konieczność powrotu do trenowania.
Klasyfikacja zero-shot
Zero-shot działa odwrotnie. Nie ma w ogóle kroku treningu zadaniowego. Model wykorzystuje to, czego nauczył się podczas pretrenowania, aby ocenić dowolną etykietę, którą mu podasz.
Daje to dwie zalety:
- Brak treningu specyficznego dla zadania: Całkowicie pomijasz zbieranie danych, anotację i trening.
- Elastyczny zestaw etykiet: Możesz zmieniać kategorie w locie. Dodawać nowe, usuwać stare, zmieniać nazwy – model poradzi sobie bez ponownego trenowania.
Kompromisy
Ta elastyczność ma swoją cenę. Tradycyjny klasyfikator wytrenowany na solidnym, oznaczonym zbiorze zwykle przewyższy model zero-shot w tym konkretnym zadaniu. Widział dokładnie takie przykłady, na których ci zależy, i się do nich dostroił.
Modele zero-shot są generalistami. Są dobre w wielu rzeczach, ale rzadko najlepsze w jednej. Wybór zależy więc od twoich potrzeb.
Jeśli masz oznaczone dane i zależy ci na najwyższej dokładności dla stałego zestawu kategorii, trenuj klasyczny klasyfikator. Jeśli nie masz danych lub twoje kategorie często się zmieniają, zero-shot to najszybsza droga do działającego rozwiązania.
Rola modeli bazowych i LLM-ów
Klasyfikacja zero-shot stała się popularna, gdy duże, wstępnie trenowane modele stały się wystarczająco dobre, by ją obsłużyć.
Przed modelami bazowymi nie można było po prostu podać modelowi listy etykiet, których nigdy nie widział, i oczekiwać sensownych predykcji. Model nie wiedział wystarczająco dużo o języku, by połączyć fakty. Pretrenowanie na ogromnych korpusach to zmieniło. Model, który "przeczytał" sporą część internetu, wielokrotnie natrafiał na słowa takie jak "refund" czy "complaint" w niezliczonych kontekstach, więc dopasowanie ich do nowych wejść stało się możliwe.
Kilka rodzin modeli stoi dziś za większością przepływów zero-shot:
- BERT i jego warianty: Modele w stylu BERT uczą się podczas pretrenowania głębokich reprezentacji tekstu. Warianty, takie jak RoBERTa i DeBERTa, poszły dalej dzięki lepszym metodom treningu i większym zbiorom danych.
- Modele oparte na NLI: To modele dostrajane do zadań wnioskowania językowego (natural language inference). Stoją za większością gotowych potoków zero-shot i w następnej sekcji wyjaśnię, dlaczego.
- Nowoczesne LLM-y: Duże modele językowe, takie jak rodzina GPT czy Claude, mogą wykonywać klasyfikację zero-shot za pomocą promptów. Opisujesz zadanie zwykłym językiem, wymieniasz kategorie, a model wybiera jedną.
Wspólnym mianownikiem jest skala i ogólność. Model wytrenowany na wąskim zadaniu potrafi tylko to zadanie. Model trenowany na szerokich danych tekstowych można przekierować do wielu zadań bez oglądania oznaczonych przykładów.
Natural Language Inference (NLI) a klasyfikacja zero-shot
Większość klasyfikatorów zero-shot, które zobaczysz w praktyce, opiera się na modelach NLI. To bywa zaskakujące, więc warto się zatrzymać.
Wnioskowanie językowe (NLI) to osobne zadanie. Mając dwa zdania (przesłankę i hipotezę), model decyduje o relacji między nimi. Wynikiem jest jedna z trzech etykiet:
- Entailment (wynikanie): Hipoteza wynika z przesłanki.
- Contradiction (sprzeczność): Hipoteza przeczy przesłance.
- Neutral (neutralne): Zdania są niezwiązane lub brakuje informacji do rozstrzygnięcia.
Na przykład, jeśli przesłanka to "The team finished the project two weeks early", a hipoteza to "The team delivered on time", model NLI powinien przewidzieć wynikanie. Jeśli hipoteza brzmi "The team missed the deadline", powinien przewidzieć sprzeczność.
To podejście świetnie pasuje do klasyfikacji zero-shot. Jeśli potraktujesz swoje wejście jako przesłankę, każdą kandydacką etykietę możesz zamienić w hipotezę.
Załóżmy, że chcesz sklasyfikować zdanie "My package never arrived" do jednej z trzech kategorii: problem z wysyłką, problem z rozliczeniami lub pytanie o produkt. Model nie widzi ich jako etykiet. Traktuje je jako hipotezy, zwykle opakowane w prosty szablon typu "This text is about {label}":
-
Przesłanka:
"My package never arrived"| Hipoteza:"This text is about a shipping issue" -
Przesłanka:
"My package never arrived"| Hipoteza:"This text is about a billing issue" -
Przesłanka:
"My package never arrived"| Hipoteza:"This text is about a product question"
Model NLI ocenia każdą parę. Hipoteza z najwyższym wynikiem wynikania wygrywa i ta etykieta staje się predykcją.
Model nigdy nie musiał uczyć się, co znaczy "shipping issue" czy "billing issue" jako etykieta. Musiał jedynie zrozumieć, jak wygląda wynikanie ogólnie, i tego nauczył się podczas dostrajania do NLI.
Dlatego zero-shot oparte na NLI działa tak dobrze. Model robi to, do czego został wytrenowany (ocenia wynikanie), a ty tylko ujmujesz problem klasyfikacji jako serię pytań o wynikanie.
Zero-shot vs few-shot vs modele dostrajane
Zero-shot nie jest jedynym sposobem, by skłonić model do wykonania zadania klasyfikacyjnego bez pełnego treningu. Porównajmy go z alternatywami.
Zero-shot
Zero-shot oznacza brak jakichkolwiek przykładów. Przekazujesz modelowi wejście i listę kandydackich etykiet, a on przewiduje na podstawie tego, czego nauczył się w pretrenowaniu.
Model nigdy nie widział oznaczonych danych dla twojego konkretnego zadania. Działa wyłącznie na bazie wiedzy ogólnej.
Few-shot
Few-shot daje modelowi kilka przykładów, zwykle w treści promptu. Pokazujesz mu dwa, pięć, może dziesięć przykładów wejść sparowanych z poprawnymi etykietami, a potem prosisz o sklasyfikowanie nowego wejścia w ten sam sposób.
Model nie jest tu ponownie trenowany. Nadal korzysta z wstępnie wyuczonych wag. Przykłady służą jedynie jako odniesienie – szybkie "o to mi chodzi w tych kategoriach" przed prośbą o predykcję.
Dostrajanie (fine-tuning)
Dostrajanie to dedykowany proces treningowy. Bierzesz wstępnie wytrenowany model, podajesz mu oznaczony zbiór dla swojego zadania i aktualizujesz jego wagi, aż dobrze przewiduje twoje konkretne kategorie.
To najcięższa z trzech opcji. Potrzebujesz oznaczonych danych, infrastruktury treningowej i czasu. W zamian model staje się wyspecjalizowany pod twoje zadanie.
Porównanie trzech podejść
Różnią się one w trzech kwestiach istotnych w praktyce: dokładności, elastyczności i koszcie.
| Dokładność | Elastyczność | Koszt | |
|---|---|---|---|
| Zero-shot | Najniższa z trzech, ale wciąż dobra do ogólnych zastosowań | Najwyższa, możesz zmieniać etykiety w dowolnym momencie | Najniższy, brak danych i brak treningu |
| Few-shot | Lepsza niż zero-shot, zwłaszcza przy dobrze dobranych przykładach | Wysoka, możesz zmieniać przykłady i etykiety w promcie | Niski, potrzebujesz tylko kilku przykładów |
| Dostrajanie | Najwyższa w zadaniu, do którego model był trenowany | Najniższa, nowe kategorie wymagają ponownego treningu | Najwyższy, obejmuje zbieranie danych, anotację i trening |
Uczenie zero-shot na tle alternatyw
Warto zwrócić uwagę na kilka rzeczy z tej tabeli.
Dokładność nie układa się w prosty ranking. Dostrajanie wygrywa, gdy masz dość oznaczonych danych i stabilne zadanie. Ale w zupełnie nowym zadaniu bez przykładów do nauki dostrajanie nawet nie wchodzi w grę, a zero-shot staje się jedyną realistyczną opcją.
Elastyczność działa odwrotnie. Zero-shot pozwala ci zmieniać kategorie, kiedy chcesz. Modele dostrajane są przywiązane do zestawu etykiet, na których były trenowane.
Koszt jest najbardziej oczywisty. Zero-shot kosztuje niemal nic na starcie. Few-shot dodaje niewielki etap anotacji. Dostrajanie to osobny projekt wymagający dedykowanej infrastruktury.
Większość zespołów zaczyna od zero-shot, by sprawdzić, czy zadanie w ogóle jest wykonalne. Jeśli dokładność jest niewystarczająca, przechodzą do few-shot. Jeśli to nadal za mało, a zadanie jest istotne, dostrajają.
Klasyfikacja zero-shot w NLP
Klasyfikacja zero-shot pojawia się w wielu przepływach NLP, zwłaszcza tam, gdzie trudno o oznaczone dane lub kategorie się zmieniają. Oto najczęstsze zastosowania.
Analiza sentymentu
Analiza sentymentu to podręcznikowy punkt wyjścia. Podajesz modelowi tekst i prosisz, by wybrał spośród etykiet takich jak "positive", "negative" i "neutral".
Co ciekawe, bardzo łatwo wyjść poza standardową trójkę. Tradycyjny klasyfikator sentymentu jest przywiązany do tego, na czym był trenowany. W zero-shot możesz użyć bardziej szczegółowych etykiet, jak "frustrated", "satisfied", "confused" czy "excited", a model poradzi sobie bez ponownego trenowania. To świetne w przypadku opinii o produkcie czy monitoringu mediów społecznościowych, gdzie kategorie emocji zależą od kontekstu.
Klasyfikacja tematyczna
Klasyfikacja tematyczna sortuje dokumenty według obszarów tematycznych. Artykuły newsowe do "politics", "sports", "technology", "finance". Zgłoszenia do supportu do "billing", "shipping", "account access", "feature request".
Zero-shot sprawia, że konfiguracja jest banalnie prosta. Nie potrzebujesz oznaczonego zbioru dla każdego nowego tematu. Jeśli twój produkt wypuszcza nową funkcję i chcesz śledzić zgłoszenia na jej temat, po prostu dodajesz "new feature feedback" do listy etykiet kandydackich i gotowe.
Wykrywanie intencji
Wykrywanie intencji ustala, co użytkownik próbuje zrobić. To silnik większości chatbotów i asystentów głosowych. Gdy ktoś pisze "I need to change my password", model musi rozpoznać intencję jako "password reset" zamiast, powiedzmy, "general security question".
Tu zero-shot błyszczy. Prawdziwe produkty ciągle dodają nowe intencje użytkowników, a ponowne trenowanie klasyfikatora intencji za każdym razem, gdy zespół produktowy dodaje funkcję, to sporo pracy. Zero-shot pozwala utrzymywać aktualną listę intencji bez zmian w modelu.
Moderacja treści
Moderacja treści oznacza problematyczne teksty – takie jak "hate speech", "spam", "harassment" czy "misinformation". Platformy muszą aktualizować polityki, a kategorie zmieniają się wraz z pojawianiem się nowych form nadużyć.
Zero-shot świetnie tu pasuje. Zespoły moderacji mogą dostosowywać definicje etykiet lub dodawać nowe kategorie wraz z rozwojem polityk, bez wracania do zespołu inżynierskiego po cykl trenowania. Zwykle łączy się to z klasycznymi klasyfikatorami do wysokich wolumenów, ale zero-shot obsługuje długi ogon kategorii, dla których brakuje oznaczonych przykładów do treningu.
Klasyfikacja zero-shot z Hugging Face Transformers
Biblioteka transformers od Hugging Face to najprostszy sposób, aby wypróbować klasyfikację zero-shot w Pythonie. API pipeline ukrywa niemal całą pracę związaną z ładowaniem modelu, więc możesz przejść od zera do predykcji w kilku linijkach kodu.
Przy pierwszym uruchomieniu tego fragmentu kodu model zostanie pobrany, więc zajmie to trochę czasu.
Oto kompletny przykład, który możesz uruchomić:
from transformers import pipeline
from pprint import pprint
# Load a zero-shot classification pipeline
classifier = pipeline(
"zero-shot-classification",
model="facebook/bart-large-mnli"
)
# The text you want to classify
text = "My package never arrived and customer support hasn't responded in three days."
# The labels you want the model to choose from
candidate_labels = [
"shipping issue",
"billing issue",
"product question",
"general inquiry"
]
# Run the classification
result = classifier(text, candidate_labels)
pprint(result)
Wynik to słownik z trzema polami: oryginalnym wejściem, kandydackimi etykietami posortowanymi od najbardziej do najmniej prawdopodobnych oraz poziomem pewności dla każdej etykiety.

Wynik pipeline’u
"shipping issue" wygrywa z pewnością 0,82. Model nigdy nie widział podczas treningu oznaczonych przykładów skarg na wysyłkę, ale rozpoznał to dzięki wstępnie wytrenowanemu bart-large-mnli, który był dostrajany na danych NLI – dokładnie tak, jak opisano wcześniej.
Warto zwrócić uwagę na kilka aspektów tego przepływu:
-
Model to model NLI:
bart-large-mnlito BART dostrajany na zbiorze MultiNLI. Gdy wywołujesz pipeline, za kulisami zamienia twoje etykiety w hipotezy i przepuszcza je przez model. -
Możesz zmieniać etykiety w dowolnym momencie: Nie trzeba nic zmieniać w modelu. Podmień listę
candidate_labelsi klasyfikujesz do innych kategorii. -
Multi-label to kwestia jednego przełącznika: Ustaw
multi_label=Trueprzy wywołaniu pipeline’u, a etykiety nie będą ze sobą konkurować. Każda dostanie niezależne prawdopodobieństwo, więc jedno wejście może należeć do wielu kategorii.
result = classifier(text, candidate_labels, multi_label=True)
pprint(result)

Wynik multi-label
I to cały przepływ. Załaduj pipeline, zdefiniuj etykiety, wywołaj klasyfikator. Dużo szybciej i prościej niż budowanie modelu klasyfikacji od zera.
Typowe błędy w klasyfikacji zero-shot
Klasyfikację zero-shot łatwo uruchomić, dlatego równie łatwo jej nadużyć. Oto błędy, które najczęściej pojawiają się w realnych projektach.
Wybieranie nieprecyzyjnych etykiet
Etykiety to sposób komunikowania zadania modelowi. Nieprecyzyjne etykiety prowadzą do nieprecyzyjnych predykcji.
"good" i "bad" niewiele modelowi powiedzą. "customer is happy with the product" i "customer is reporting a problem with the product" dają modelowi materiał do pracy. Im bardziej twoje etykiety przypominają sensowne frazy, tym lepiej model będzie je dopasowywał do wejść.
Unikaj też etykiet, które się pokrywają. Jeśli w twojej liście kandydackiej są i "complaint", i "negative feedback", model rozdzieli między nie pewność i żadna nie okaże się wyraźnym zwycięzcą.
Zakładanie, że zero-shot dorówna dostrajaniu
To najczęstszy błąd. Zero-shot jest dobre, ale to nie magia.
Model dostrajany na kilku tysiącach oznaczonych przykładów dla twojego zadania niemal zawsze pokona model zero-shot w tym zadaniu. Jeśli masz 85% dokładności w zero-shot, a potrzebujesz 95% do produkcji, żadne szlifowanie etykiet nie zasypie tej luki. Wtedy rozwiązaniem jest dostrajanie.
Używaj zero-shot, gdy nie masz oznaczonych danych, gdy kategorie często się zmieniają albo gdy "wystarczająco dobrze" naprawdę wystarcza. Nie wybieraj go tylko dlatego, że szybciej je skonfigurować, a potem dziw się, że nie dowozi w zadaniu wysokiej wagi.
Ewaluacja na zbyt wąskich zbiorach
Wygląda to tak: budujesz klasyfikator zero-shot, testujesz go na 50 przykładach napisanych przez siebie i trafia w każdy. Wypuszczasz go, a w produkcji wszyscy narzekają, że jest słaby.
Tych 50 przykładów nie reprezentuje tego, co przysyłają prawdziwi użytkownicy. Są czystsze, bardziej oczywiste i bliższe temu, jak ty myślisz o kategoriach. Oceniaj na danych podobnych do tych, które model faktycznie zobaczy – tekstach tworzonych przez użytkowników, z literówkami, slangiem i przypadkami brzegowymi. Jeśli jeszcze ich nie masz, weź próbkę kilkuset realnych wejść i oznacz je ręcznie, zanim zaufasz wynikom.
Ignorowanie języka specyficznego dla domeny
Modele zero-shot ogólnego przeznaczenia znają język ogólny. Nie znają żargonu twojej branży.
Terminologia medyczna, język prawniczy, skrótowce finansowe, specyfikacje inżynieryjne – wszystkie mają wąskie słownictwo, z którym modele miały styczność, ale nie dogłębnie. Jeśli poprosisz ogólny model zero-shot o klasyfikację zdania pełnego kodów ICD-10 lub komunikatów błędów SQL, spodziewaj się mieszanych wyników.
Masz dwie opcje: albo przepisz etykiety zwykłym językiem, który model lepiej zrozumie, albo przełącz się na model pretrenowany na tekstach z twojej domeny. BioBERT do tekstów medycznych, FinBERT do finansów i podobne modele domenowe często przewyższają ogólne w zadaniach specjalistycznych.
Dlaczego klasyfikacja zero-shot jest ważna we współczesnym AI
Klasyfikacja zero-shot to jeden z najczytelniejszych przykładów, jak modele bazowe zmieniły możliwości AI.
Dekadę temu każde zadanie klasyfikacyjne zaczynało się od pytania: czy mamy oznaczone dane, a jeśli nie, jak je zdobyć? Projekty anotacyjne trwały miesiącami, wymagały budżetu, koordynacji z dostawcami i kontroli jakości. Modelu nie dało się nawet zbudować, zanim dane nie powstały.
To założenie już nie obowiązuje.
Model bazowy wytrenowany na szerokich danych tekstowych wie już wystarczająco dużo o języku, by poradzić sobie z nowym zadaniem klasyfikacji w chwili, gdy je opiszesz. Jedyną rzeczą do zdefiniowania jest lista etykiet.
Ta zmiana jest istotna z kilku powodów, które łączą się z szerszymi trendami w AI:
- Pokazuje, do czego naprawdę są modele bazowe: Celem pretrenowania na dużą skalę było zbudowanie modelu na tyle ogólnego, by dało się go przekierować do wielu zadań bez ponownego treningu. Klasyfikacja zero-shot to jeden z najczystszych przykładów tej obietnicy w praktyce.
- Ogranicza zależność od zbiorów nadzorowanych: Oznaczone dane wciąż są użyteczne, ale nie są już konieczne, by stworzyć działający klasyfikator. Zespoły bez budżetu na projekty anotacyjne nadal mogą wdrażać wartościowe funkcje AI.
- Zmienia szybkość wdrożeń: Funkcję klasyfikacji, której wysyłka zajmowała kwartał, można dziś sprototypować w jedno popołudnie. To wpływa na to, co zespoły decydują się budować, bo koszt spróbowania spadł niemal do zera.
Szerszy trend to przejście od modeli specyficznych dla zadania do uniwersalnych. Dostrajanie wciąż ma swoje miejsce, podobnie jak trenowanie od zera, gdy wymaga tego zadanie. Ale domyślny punkt startowy się zmienił. Najpierw sięgasz po model wstępnie wytrenowany, a specjalizujesz dopiero wtedy, gdy dane to uzasadniają.
Wnioski
Klasyfikacja zero-shot przypomina, że nie każdy problem uczenia maszynowego wymaga dziś własnego treningu. Model, który już rozumie język, można przekierować do nowego zadania, zmieniając podawane mu etykiety. Nie potrzeba przykładów ani dostrajania.
Właśnie o tę elastyczność chodzi. Kategorie, na których ci dziś zależy, mogą nie być tymi, które będą ważne w przyszłym miesiącu, a modele zero-shot pozwalają ci zmienić zdanie.
Zanim więc zaczniesz projekt etykietowania danych, uruchom bazę w zero-shot. W jedno popołudnie dowiesz się, czy zadanie jest rozwiązane, częściowo rozwiązane, czy wymaga cięższego podejścia. I tyle.
Jeśli dopiero zaczynasz z LLM-ami, zapisz się na nasz kurs Large Language Models (LLMs) Concepts. Nauczy cię wszystkiego, co musisz wiedzieć o zastosowaniach LLM-ów, metodach treningu i najnowszych badaniach.
FAQs
Czym w prostych słowach jest klasyfikacja zero-shot?
Klasyfikacja zero-shot to sposób przypisywania etykiet do tekstu bez trenowania modelu na tych konkretnych etykietach. Dajesz modelowi wejście i listę możliwych kategorii, a on wybiera najlepsze dopasowanie na podstawie tego, czego nauczył się podczas pretrenowania. "Zero" odnosi się do liczby przykładów treningowych potrzebnych dla każdej kategorii – czyli żadnych.
Kiedy używać klasyfikacji zero-shot zamiast trenować własny model?
Używaj zero-shot, gdy testujesz pomysły, nie masz oznaczonych danych, twoje kategorie często się zmieniają albo gdy musisz szybko wysłać prototyp. To także dobry wybór do pracy eksploracyjnej, gdy dopiero ustalasz, jakie kategorie mają sens. Jeśli masz stabilny zestaw etykiet i wystarczająco dużo oznaczonych przykładów, dostrojenie tradycyjnego klasyfikatora zwykle da lepszą dokładność.
Jak dokładna jest klasyfikacja zero-shot?
Dokładność zależy od użytego modelu, klarowności etykiet i tego, jak dobrze zadanie wpisuje się w ogólne rozumienie języka. Model zero-shot na dobrze zdefiniowanym zadaniu może osiągać wyniki od solidnych po produkcyjne, ale niemal zawsze przegra z modelem dostrajanym na wystarczająco dużym zbiorze oznaczonych danych dla tego samego zadania. Traktuj zero-shot jako mocną bazę wyjściową.
Jaka jest różnica między klasyfikacją zero-shot a NLI?
Natural language inference (NLI) to zadanie, w którym model decyduje, czy jedno zdanie wynika z drugiego, mu przeczy, czy pozostaje neutralne. Klasyfikacja zero-shot używa modeli NLI jako silnika pod spodem: twoje wejście staje się przesłanką, a każda kandydacka etykieta jest zamieniana w hipotezę. Wygrywa etykieta, której hipoteza ma najwyższy wynik wynikania.
Czy mogę używać klasyfikacji zero-shot dla tekstów nieangielskich?
Tak, ale potrzebujesz modelu wielojęzycznego. Modele takie jak xlm-roberta-large-xnli są trenowane na wielojęzycznych danych NLI i potrafią wykonywać klasyfikację zero-shot w kilkudziesięciu językach. Trzymaj się bart-large-mnli i podobnych modeli wyłącznie angielskich dla tekstu po angielsku, a przełącz na wariant wielojęzyczny, gdy twoje wejścia nie są po angielsku.