Amazon Comprehend ogłasza niższe limity adnotacji dla niestandardowego rozpoznawania jednostek PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Amazon Comprehend ogłasza niższe limity adnotacji dla niestandardowego rozpoznawania jednostek

Amazon Comprehend to usługa przetwarzania języka naturalnego (NLP), której można używać do automatycznego wyodrębniania jednostek, fraz kluczowych, języka, nastrojów i innych informacji z dokumentów. Na przykład możesz natychmiast rozpocząć wykrywanie jednostek, takich jak ludzie, miejsca, przedmioty handlowe, daty i ilości za pomocą Konsola Amazon Comprehend, Interfejs wiersza poleceń AWSlub Interfejsy API Amazon Comprehend. Ponadto, jeśli chcesz wyodrębnić jednostki, które nie są częścią Amazon Zrozum wbudowane typy jednostek, możesz utworzyć niestandardowy model rozpoznawania jednostek (znany również jako jednostka niestandardowa aparat rozpoznający), aby wyodrębnić terminy, które są bardziej odpowiednie dla konkretnego przypadku użycia, takie jak nazwy produktów z katalogu produktów, identyfikatory specyficzne dla domeny itd. Samodzielne tworzenie dokładnego rozpoznawania jednostek przy użyciu bibliotek i struktur uczenia maszynowego może być złożonym i czasochłonnym procesem. Amazon Comprehend znacznie upraszcza pracę związaną ze szkoleniem modeli. Wszystko, co musisz zrobić, to załadować zestaw danych dokumentów i adnotacji i użyć konsoli Amazon Comprehend, AWS CLI lub interfejsów API do stworzenia modelu.

Aby wyszkolić niestandardowy aparat rozpoznawania encji, możesz dostarczyć dane szkoleniowe do Amazon Comprehend jako adnotacje lub listy jednostek. W pierwszym przypadku dostarczasz zbiór dokumentów i plik z adnotacjami, które określają miejsce występowania encji w zbiorze dokumentów. Alternatywnie, w przypadku list encji, możesz podać listę encji z odpowiadającą im etykietą typu encji oraz zestaw dokumentów bez adnotacji, w których oczekujesz, że będą obecne encje. Oba podejścia można wykorzystać do trenowania skutecznego niestandardowego modelu rozpoznawania jednostek; są jednak sytuacje, w których jedna metoda może być lepszym wyborem. Na przykład, gdy znaczenie określonych jednostek może być niejednoznaczne i zależne od kontekstu, zaleca się dostarczanie adnotacji, ponieważ może to pomóc w stworzeniu modelu Amazon Comprehend, który jest w stanie lepiej wykorzystywać kontekst podczas wyodrębniania jednostek.

Dodawanie adnotacji do dokumentów może wymagać sporo wysiłku i czasu, zwłaszcza jeśli weźmie się pod uwagę, że zarówno jakość, jak i ilość adnotacji mają wpływ na uzyskany model rozpoznawania jednostek. Nieprecyzyjne lub zbyt mało adnotacji może prowadzić do słabych wyników. Aby pomóc Ci skonfigurować proces pozyskiwania adnotacji, udostępniamy takie narzędzia, jak Amazon SageMaker Ground Prawda, za pomocą którego można szybciej dodawać adnotacje do dokumentów i generować plik z adnotacjami do rozszerzonego manifestu. Jednak nawet jeśli używasz Ground Truth, nadal musisz upewnić się, że Twój treningowy zestaw danych jest wystarczająco duży, aby pomyślnie zbudować rozpoznawanie jednostek.

Do tej pory, aby rozpocząć szkolenie niestandardowego aparatu rozpoznawania encji Amazon Comprehend, trzeba było dostarczyć zbiór co najmniej 250 dokumentów i co najmniej 100 adnotacji na typ encji. Dzisiaj ogłaszamy, że dzięki niedawnym ulepszeniom modeli leżących u podstaw Amazon Comprehend zmniejszyliśmy minimalne wymagania dotyczące szkolenia aparatu rozpoznawania za pomocą plików adnotacji w formacie CSV w formacie zwykłego tekstu. Możesz teraz zbudować niestandardowy model rozpoznawania jednostek z zaledwie trzema dokumentami i 25 adnotacjami na typ jednostki. Więcej informacji na temat nowych limitów usług znajdziesz w Wytyczne i kwoty.

Aby pokazać, jak ta redukcja może pomóc w rozpoczęciu tworzenia niestandardowego aparatu rozpoznawania encji, przeprowadziliśmy kilka testów na kilku zestawach danych typu open source i zebranych metrykach wydajności. W tym poście przeprowadzimy Cię przez proces benchmarkingu i wyniki, które uzyskaliśmy podczas pracy na podpróbkach danych.

Przygotowanie zbioru danych

W tym poście wyjaśniamy, w jaki sposób przeszkoliliśmy niestandardowy aparat rozpoznawania encji Amazon Comprehend przy użyciu dokumentów z adnotacjami. Ogólnie adnotacje mogą być dostarczane jako Plik CSV, rozszerzony plik manifestu wygenerowany przez Ground Truth, Lub Plik PDF. Skupiamy się na adnotacjach w formacie CSV w postaci zwykłego tekstu, ponieważ jest to typ adnotacji, na który mają wpływ nowe minimalne wymagania. Pliki CSV powinny mieć następującą strukturę:

File, Line, Begin Offset, End Offset, Type
documents.txt, 0, 0, 13, ENTITY_TYPE_1
documents.txt, 1, 0, 7, ENTITY_TYPE_2

Odpowiednie pola to:

  • filet – Nazwa pliku zawierającego dokumenty
  • Linia – Numer linii zawierającej podmiot, zaczynając od linii 0
  • Rozpocząć Offset – Przesunięcie znaku w tekście wejściowym (względem początku wiersza), które pokazuje, gdzie zaczyna się jednostka, biorąc pod uwagę, że pierwszy znak znajduje się na pozycji 0
  • Odsunięcie końcowe – Przesunięcie znaku w tekście wejściowym, który pokazuje, gdzie kończy się encja
  • Rodzaj Nieruchomości – Nazwa typu jednostki, którą chcesz zdefiniować

Dodatkowo, korzystając z tego podejścia, musisz dostarczyć kolekcję dokumentów szkoleniowych jako pliki .txt z jednym dokumentem w wierszu lub jednym dokumentem w pliku.

Do naszych testów wykorzystaliśmy: Test porównawczy zrozumienia języka naturalnego SNIPS, zbiór danych z wypowiedziami crowdsourcedowymi rozproszonymi wśród siedmiu intencji użytkowników (AddToPlaylist, BookRestaurant, GetWeather, PlayMusic, RateBook, SearchCreativeWork, SearchScreeningEvent). Zbiór danych został opublikowany w 2018 r. w kontekście artykułu Platforma głosowa Snips: wbudowany system rozumienia języka mówionego dla prywatnych interfejsów głosowych przez Coucke i in.

Zbiór danych SNIPS składa się z kolekcji plików JSON zawierających w sobie zarówno adnotacje, jak i nieprzetworzone pliki tekstowe. Poniżej znajduje się fragment zestawu danych:

{
   "annotations":{
      "named_entity":[
         {
            "start":16,
            "end":36,
            "extent":"within the same area",
            "tag":"spatial_relation"
         },
         {
            "start":40,
            "end":51,
            "extent":"Lawrence St",
            "tag":"poi"
         },
         {
            "start":67,
            "end":70,
            "extent":"one",
            "tag":"party_size_number"
         }
      ],
      "intent":"BookRestaurant"
   },
   "raw_text":"I'd like to eat within the same area of Lawrence St for a party of one"
}

Przed utworzeniem naszego aparatu rozpoznawania jednostek przekształciliśmy adnotacje SNIPS i nieprzetworzone pliki tekstowe w plik adnotacji CSV i plik dokumentów .txt.

Poniżej znajduje się fragment naszego annotations.csv file:

File, Line, Begin Offset, End Offset, Type
documents.txt, 0, 16, 36, spatial_relation
documents.txt, 0, 40, 51, poi
documents.txt, 0, 67, 70, party_size_number

Poniżej znajduje się fragment naszego documents.txt file:

I'd like to eat within the same area of Lawrence St for a party of one
Please book me a table for three at an american gastropub 
I would like to book a restaurant in Niagara Falls for 8 on June nineteenth
Can you book a table for a party of 6 close to DeKalb Av

Konfiguracja próbkowania i proces benchmarkingu

W naszych eksperymentach skupiliśmy się na podzbiorze typów jednostek ze zbioru danych SNIPS:

  • KsiążkaRestauracja – Rodzaje podmiotów: spatial_relation, poi, party_size_number, restaurant_name, city, timeRange, restaurant_type, served_dish, party_size_description, country, facility, state, sort, cuisine
  • Pobierz pogodę – Rodzaje podmiotów: condition_temperature, current_location, geographic_poi, timeRange, state, spatial_relation, condition_description, city, country
  • Graj muzykę – Rodzaje podmiotów: track, artist, music_item, service, genre, sort, playlist, album, year

Ponadto podpróbkowaliśmy każdy zbiór danych, aby uzyskać różne konfiguracje pod względem liczby dokumentów próbkowanych do szkolenia i liczby adnotacji na jednostkę (znaną również jako zdjęć). Dokonano tego za pomocą niestandardowego skryptu zaprojektowanego do tworzenia podpróbek zbiorów danych, w których każdy typ jednostki występuje przynajmniej k razy, w ciągu minimum n dokumentów.

Każdy model został przeszkolony przy użyciu określonej podpróbki treningowych zestawów danych; dziewięć konfiguracji modeli przedstawiono w poniższej tabeli.

Nazwa podpróbkowania zbioru danych Liczba dokumentów pobranych do szkolenia Liczba dokumentów pobranych do testów Średnia liczba adnotacji na typ jednostki (zdjęcia)
snips-BookRestaurant-subsample-A 132 17 33
snips-BookRestaurant-subsample-B 257 33 64
snips-BookRestaurant-subsample-C 508 64 128
snips-GetWeather-subsample-A 91 12 25
snips-GetWeather-subsample-B 185 24 49
snips-GetWeather-subsample-C 361 46 95
snips-PlayMusic-subsample-A 130 17 30
snips-PlayMusic-subsample-B 254 32 60
snips-PlayMusic-subsample-C 505 64 119

Aby zmierzyć dokładność naszych modeli, zebraliśmy metryki oceny, które Amazon Comprehend automatycznie oblicza podczas uczenia aparatu rozpoznawania jednostek:

  • Detaliczność – Wskazuje część jednostek wykrytych przez aparat rozpoznawania, które są poprawnie zidentyfikowane i oznaczone. Z innej perspektywy precyzję można zdefiniować jako tp / (tp + fp), Gdzie tp to liczba prawdziwych pozytywów (poprawnych identyfikacji) i fp to liczba fałszywych trafień (błędnych identyfikacji).
  • Odwołanie – Wskazuje to, jaka część podmiotów obecnych w dokumentach jest prawidłowo zidentyfikowana i oznakowana. Jest obliczany jako tp / (tp + fn), Gdzie tp to liczba prawdziwych pozytywów i fn to liczba wyników fałszywie ujemnych (brakujące identyfikacje).
  • Wynik F1 – Jest to połączenie metryki precyzji i odwołania, która mierzy ogólną dokładność modelu. Wynik F1 jest średnią harmoniczną metryk precyzji i przywołania i jest obliczany jako 2 * Precyzja * Przywołanie / (Precyzja + Przywołanie).

Aby porównać wydajność naszych rozpoznawania jednostek, skupiamy się na wynikach F1.

Biorąc pod uwagę, że przy danym zestawie danych i rozmiarze podpróbki (pod względem liczby dokumentów i ujęć) można wygenerować różne podpróbki, wygenerowaliśmy 10 podpróbek dla każdej z dziewięciu konfiguracji, wyszkoliliśmy modele rozpoznawania jednostek, zebraliśmy metryki wydajności i uśredniono je za pomocą mikrouśredniania. To pozwoliło nam uzyskać bardziej stabilne wyniki, szczególnie w przypadku podpróbek kilkustrzałowych.

Efekt

W poniższej tabeli przedstawiono mikrouśrednione wyniki F1 obliczone na podstawie metryk wydajności zwróconych przez Amazon Comprehend po przeszkoleniu każdego aparatu rozpoznawania jednostek.

Nazwa podpróbkowania zbioru danych Uśredniony wynik F1 rozpoznawania jednostek (%)
snips-BookRestaurant-subsample-A 86.89
snips-BookRestaurant-subsample-B 90.18
snips-BookRestaurant-subsample-C 92.84
snips-GetWeather-subsample-A 84.73
snips-GetWeather-subsample-B 93.27
snips-GetWeather-subsample-C 93.43
snips-PlayMusic-subsample-A 80.61
snips-PlayMusic-subsample-B 81.80
snips-PlayMusic-subsample-C 85.04

Poniższy wykres kolumnowy przedstawia rozkład wyników F1 dla dziewięciu konfiguracji, które trenowaliśmy zgodnie z opisem w poprzedniej sekcji.

Możemy zaobserwować, że byliśmy w stanie skutecznie wytrenować niestandardowe modele rozpoznawania jednostek nawet przy zaledwie 25 adnotacjach na typ jednostki. Jeśli skupimy się na trzech najmniejszych podpróbkach zbiorów danych (snips-BookRestaurant-subsample-A, snips-GetWeather-subsample-A, snips-PlayMusic-subsample-A), widzimy, że średnio byliśmy w stanie osiągnąć wynik F1 na poziomie 84%, co jest całkiem niezłym wynikiem, biorąc pod uwagę ograniczoną liczbę użytych dokumentów i adnotacji. Jeśli chcemy poprawić wydajność naszego modelu, możemy zbierać dodatkowe dokumenty i adnotacje oraz trenować nowy model z większą ilością danych. Na przykład ze średniej wielkości podpróbkami (snips-BookRestaurant-subsample-B, snips-GetWeather-subsample-B, snips-PlayMusic-subsample-B), które zawierają dwa razy więcej dokumentów i adnotacji, uzyskaliśmy średnio wynik F1 88% (poprawa o 5% w stosunku do subsample-A zbiory danych). Wreszcie większe podpróbkowane zbiory danych (snips-BookRestaurant-subsample-C, snips-GetWeather-subsample-C, snips-PlayMusic-subsample-C), które zawierają jeszcze więcej danych z adnotacjami (około czterokrotność liczby dokumentów i adnotacji użytych do subsample-A zestawów danych), zapewniły dalszą poprawę o 2%, podnosząc średni wynik F1 do 90%.

Wnioski

W tym poście ogłosiliśmy zmniejszenie minimalnych wymagań dotyczących szkolenia niestandardowego aparatu rozpoznawania encji za pomocą Amazon Comprehend i przeprowadziliśmy kilka testów porównawczych na zestawach danych typu open source, aby pokazać, w jaki sposób ta redukcja może pomóc w rozpoczęciu pracy. Od dzisiaj możesz utworzyć model rozpoznawania jednostek z zaledwie 25 adnotacjami na typ jednostki (zamiast 100) i co najmniej trzema dokumentami (zamiast 250). Dzięki temu ogłoszeniu obniżamy barierę wejścia dla użytkowników zainteresowanych korzystaniem z technologii rozpoznawania jednostek niestandardowych Amazon Comprehend. Możesz teraz rozpocząć eksperymenty z bardzo małą kolekcją dokumentów z adnotacjami, analizować wstępne wyniki i iterować, dołączając dodatkowe adnotacje i dokumenty, jeśli potrzebujesz dokładniejszego modelu rozpoznawania jednostek dla swojego przypadku użycia.

Aby dowiedzieć się więcej i zacząć korzystać z niestandardowego aparatu rozpoznawania encji, zapoznaj się z Rozpoznawanie jednostek niestandardowych.

Specjalne podziękowania dla moich kolegów Jyoti Bansal i Jie Ma za ich cenną pomoc w przygotowaniu danych i benchmarkingu.


O autorze

Amazon Comprehend ogłasza niższe limity adnotacji dla niestandardowego rozpoznawania jednostek PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Luca Guida jest architektem rozwiązań w AWS; ma siedzibę w Mediolanie i wspiera włoskich niezależnych dostawców oprogramowania w ich podróży do chmury. Z wykształceniem akademickim w dziedzinie informatyki i inżynierii zaczął rozwijać swoją pasję AI/ML na uniwersytecie. Jako członek społeczności przetwarzania języka naturalnego (NLP) w ramach AWS, Luca pomaga klientom odnieść sukces podczas wdrażania usług AI/ML.

Znak czasu:

Więcej z Uczenie maszynowe AWS