Wybór modelu NER: spaCy, GLiNER, Transformers czy LLMs?
Tłumaczenie automatyczne
Ten artykuł został automatycznie przetłumaczony z angielskiego oryginału.
Rozpoznawanie nazwanych encji (NER) znajduje i etykietuje fragmenty tekstu, takie jak osoby, firmy i kody produktów. Ta strona jest przeznaczona dla inżynierów wybierających metodę ekstrakcji do zastosowania produkcyjnego. Stanowi punkt wyjścia, który można przetestować na własnym schemacie, dokumentach i ograniczeniach operacyjnych.
Użyj spaCy w przypadku stabilnych etykiet i szybkich pipeline’ów. Wybierz GLiNER, gdy etykiety często się zmieniają. Przetestuj bi-enkoder, jeśli wiele etykiet może korzystać z buforowanych embeddings, albo dostrojony klasyfikator tokenów oparty na Transformerze, gdy masz oznaczone przykłady. Użyj ekstrakcji strukturyzowanej opartej na LLM, gdy potrzebujesz złożonego rekordu, a nie prostej listy fragmentów.
Wybieraj według wymaganych etykiet, języka, formatu wyniku, oznaczonych danych i budżetu opóźnienia.
Tabela decyzyjna
| Potrzeba | Punkt wyjścia | Dlaczego |
|---|---|---|
| Znane etykiety i wdrożenie na CPU | Punkt odniesienia z użyciem spaCy | Wstępnie wytrenowane pipeline’y i reguły zapewniają punkt odniesienia; sprawdź dokładność dla języka i domeny. |
| Nowe etykiety bez pełnego treningu | GLiNER | Ekstrakcja uwarunkowana etykietą dobrze działa, gdy zestaw etykiet się zmienia. Zacznij od jasnych opisów typów, nie od samych nazw. |
| Duży, wielokrotnie używany zestaw etykiet | GLiNER bi-encoder | Umożliwia wcześniejsze obliczenie i buforowanie embeddings etykiet zamiast kodowania etykiet dla każdego dokumentu. |
| Encje i relacje w jednym przebiegu | Kandydat GLiNER-Relex | Wspólnie ekstraktuje typy encji i relacji. Porównaj go z osobnymi etapami na docelowym schemacie relacji. |
| Encje oraz pola dokumentu lub klasyfikacja | GLiNER2 | Jego interfejs schematu łączy rozpoznawanie encji, klasyfikację i zadania strukturyzowanej ekstrakcji. |
| Zagnieżdżone lub nakładające się encje | Dekoder obsługujący zagnieżdżenia, w tym GLiNER z flat_ner=False | Płaskie dekodowanie pomija nakładające się encje. Przetestuj zagnieżdżone fragmenty na adnotacjach zawierających oczekiwane wzorce nakładania. |
| Ekstrakcja wielojęzyczna lub z wielu systemów pisma | GLiNER-X lub punkt odniesienia XLM-R | Przetestuj każdy docelowy język, domenę i sposób formułowania opisów typów. |
| Stabilne etykiety domenowe z reprezentatywnymi oznaczonymi fragmentami | Dostrojony klasyfikator tokenów lub pipeline spaCy | Ustal nadzorowany punkt odniesienia, a następnie porównaj F1 dla dokładnych fragmentów, opóźnienie i koszt na zbiorze domenowym. |
| Niejawne, międzyzdaniowe lub strukturyzowane pola | LLM lub rozwiązanie hybrydowe | Ustrukturyzowane dane wyjściowe ograniczają format odpowiedzi, ale nie gwarantują poprawności ekstrakcji. Waliduj dokładność pól na domenowym zbiorze testowym. |
| Wrażliwe dane osobowe lub proces regulowany | Presidio oraz kandydat GLiNER2-PII | Połącz wynik modelu z deterministycznymi kontrolami, mechanizmami anonimizacji i weryfikacją. |
| Dokładne identyfikatory, kody produktów lub znane terminy | Reguły i słowniki | Deterministyczne dopasowanie jest przydatne dla stałych wzorców; sprawdź pominięte warianty i błędne dopasowania. |
Jak wybrać
Zapisz typy encji i kilka oznaczonych przykładów przed wyborem modelu. Uwzględnij niejednoznaczne terminy i fragmenty wewnątrz innych fragmentów, jeśli zadanie tego wymaga.
Jeśli etykiety są stabilne, najpierw przetestuj istniejący pipeline. Dostrój klasyfikator tokenów, gdy jego błędy domenowe uzasadniają trening i dostępne są reprezentatywne oznaczone przykłady. Porównaj go na wydzielonym zbiorze domenowym. Przewiduje etykiety tokenów bez generowania odpowiedzi token po tokenie.
Jeśli etykiety często się zmieniają, przetestuj GLiNER lub ekstraktor LLM. Napisz krótki opis każdego niejednoznacznego typu. ZeroNER ocenia opisy typów z użyciem typów encji niewidzianych podczas treningu. Opisy wyjaśniają etykietę; test niewidzianych typów wymaga również wykluczenia tych typów z treningu.
Jeśli ponownie wykorzystujesz duży zestaw etykiet, oceń bi-enkoder przed wspólnym enkoderem etykiet i tekstu. Artykuł o GLiNER bi-encoder odnotowuje około 130 razy większą przepustowość dla gliner-bi-edge-v2.0 z buforowanymi embeddings etykiet niż dla gliner_small-v2.5 przy 1 024 etykietach. Porównanie przeprowadzono na jednym GPU H100 i z rozmiarem partii równym 1; testy szybkości obejmowały wejścia o długości 64, 256 i 512 tokenów. Pokazuje to, dlaczego warto testować ponowne użycie etykiet, ale nie określa oczekiwanego przyspieszenia dla innego obciążenia.
Jeśli dokumenty obejmują kilka języków, wykonaj benchmark dla każdego docelowego języka i systemu pisma. OpenNER 1.0 wykazał, że żaden pojedynczy model nie był najlepszy w całej kolekcji obejmującej 52 języki. Przetestuj zarówno opisy typów po angielsku, jak i zlokalizowane, ponieważ tekst etykiety jest częścią wejścia modelu.
Jeśli wynikiem ma być strukturyzowany rekord, a nie fragmenty, użyj LLM z ustrukturyzowanymi danymi wyjściowymi lub pipeline’u hybrydowego. LangExtract jest przydatny, gdy każdą ekstrakcję trzeba powiązać z lokalizacją w źródle. NuExtract to opcja hostowana we własnej infrastrukturze do multimodalnej ekstrakcji dokumentów. Oba rozwiązania nadal wymagają ewaluacji na poziomie pól dla docelowych dokumentów.
Wiele zadań ekstrakcji biznesowej nie jest czystym NER. „Znajdź strony, zobowiązania, datę wejścia w życie, klauzulę rozwiązania umowy i prawo właściwe” to rozumienie dokumentu z polami encji.
W przypadku PII użyj frameworku PII, takiego jak Presidio, jako warstwy integracji i anonimizacji. Traktuj GLiNER2-PII jako kandydata modelowego, a nie decyzję dotyczącą zgodności regulacyjnej. Zmierz czułość dla wrażliwych formatów, języków i dokumentów, które system będzie przetwarzać.
Pipeline produkcyjny
Produkcyjny pipeline ekstrakcji często dodaje wokół modelu następujące etapy:
- Ekstrakcja kandydatów: spaCy, GLiNER, model Transformer, LLM, reguły lub ich połączenie.
- Opcjonalna normalizacja lub łączenie encji: mapowanie fragmentów na kanoniczne identyfikatory, kody produktów, użytkowników, firmy lub wpisy w słowniku domenowym.
- Walidacja i weryfikacja: odrzucanie niemożliwych etykiet, egzekwowanie ograniczeń schematu, deduplikacja fragmentów i kierowanie niepewnych przypadków do weryfikacji.
Normalizacja przypisuje wyekstrahowany tekst do stabilnego identyfikatora w danych. Dla fragmentu „Apple” najpierw ustal, czy oznacza firmę, owoc, rodzinę produktów czy symbol giełdowy. Następnie przypisz to znaczenie do odpowiedniego identyfikatora.
Lista kontrolna ewaluacji
Mierz więcej niż F1 na poziomie encji:
F1 dla dokładnych fragmentów uznaje predykcję za poprawną tylko wtedy, gdy zarówno fragment, jak i etykieta zgadzają się z adnotacją. Mniej rygorystyczna miara może akceptować nakładające się fragmenty, dlatego zapisz regułę dopasowania. Żadna z tych miar nie sprawdza, czy wyodrębniona nazwa jest przypisana do prawidłowego identyfikatora w bazie danych.
- F1 dla dokładnych fragmentów
- F1 przy mniej rygorystycznym dopasowaniu fragmentów
- macierz pomyłek etykiet
- obsługa zagnieżdżonych encji
- dokładność normalizacji encji
- wrażliwość na opisy typów i język etykiet
- przekroje według języka, systemu pisma i formatu dokumentu
- wyniki fałszywie dodatnie według etykiety
- kalibracja pewności
- opóźnienie i koszt na dokument
- współczynnik korekt dokonywanych przez człowieka
Zbiór testowy trzymaj oddzielnie od projektowania schematu i dostrajania progów. Raportuj liczbę dokumentów i wzmianek encji dla każdej etykiety. Używaj przedziałów ufności na poziomie dokumentu, ponieważ powtarzające się wzmianki w jednym dokumencie mogłyby w przeciwnym razie sztucznie zawyżać pewność.
Dalsza lektura
- Przewodnik po NER 2026 omawia enkodery, LLMs i trójwarstwową architekturę produkcyjną.
- Rozumowanie sterowane schematem jest istotne, gdy NER staje się strukturyzowaną ekstrakcją.
Referencje
- Dokumentacja GLiNER
- Artykuł o GLiNER bi-encoder – buforowane embeddings etykiet dla dużych zestawów.
- Dokumentacja GLiNER2
- Artykuł o GLiNER-Relex – wspólna ekstrakcja encji i relacji.
- Artykuł o ZeroNER – rygorystyczna ewaluacja zero-shot z opisami typów.
- Artykuł o OpenNER 1.0 – wielojęzyczna ewaluacja NER dla wielu ontologii.
- LangExtract – ekstrakcja z LLM z odniesieniami do źródła.
- NuExtract – hostowana we własnej infrastrukturze ekstrakcja multimodalna.
- Presidio – framework do wykrywania i anonimizacji PII.
- Artykuł o GLiNER2-PII – wielojęzyczny kandydat na model PII.
- Dokumentacja spaCy dotycząca nazwanych encji
- Przewodnik Hugging Face po klasyfikacji tokenów
- Przewodnik OpenAI po structured outputs