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

PotrzebaPunkt wyjściaDlaczego
Znane etykiety i wdrożenie na CPUPunkt odniesienia z użyciem spaCyWstępnie wytrenowane pipeline’y i reguły zapewniają punkt odniesienia; sprawdź dokładność dla języka i domeny.
Nowe etykiety bez pełnego treninguGLiNEREkstrakcja 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 etykietGLiNER bi-encoderUmożliwia wcześniejsze obliczenie i buforowanie embeddings etykiet zamiast kodowania etykiet dla każdego dokumentu.
Encje i relacje w jednym przebieguKandydat GLiNER-RelexWspólnie ekstraktuje typy encji i relacji. Porównaj go z osobnymi etapami na docelowym schemacie relacji.
Encje oraz pola dokumentu lub klasyfikacjaGLiNER2Jego interfejs schematu łączy rozpoznawanie encji, klasyfikację i zadania strukturyzowanej ekstrakcji.
Zagnieżdżone lub nakładające się encjeDekoder obsługujący zagnieżdżenia, w tym GLiNER z flat_ner=FalsePł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 pismaGLiNER-X lub punkt odniesienia XLM-RPrzetestuj każdy docelowy język, domenę i sposób formułowania opisów typów.
Stabilne etykiety domenowe z reprezentatywnymi oznaczonymi fragmentamiDostrojony klasyfikator tokenów lub pipeline spaCyUstal 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 polaLLM lub rozwiązanie hybrydoweUstrukturyzowane 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 regulowanyPresidio oraz kandydat GLiNER2-PIIPołącz wynik modelu z deterministycznymi kontrolami, mechanizmami anonimizacji i weryfikacją.
Dokładne identyfikatory, kody produktów lub znane terminyReguły i słownikiDeterministyczne 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:

  1. Ekstrakcja kandydatów: spaCy, GLiNER, model Transformer, LLM, reguły lub ich połączenie.
  2. Opcjonalna normalizacja lub łączenie encji: mapowanie fragmentów na kanoniczne identyfikatory, kody produktów, użytkowników, firmy lub wpisy w słowniku domenowym.
  3. 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

Referencje