Rynek przetwarzania języka naturalnego przeżywa rozkwit, a w ekosystemie pojawiło się ostatnio wiele nowych narzędzi. Oto biblioteki, frameworki, języki, usługi i aktorzy, o których powinieneś wiedzieć, aby włączyć rozumienie i generowanie tekstu do swojego projektu w 2022 roku.

Python od wielu lat jest de facto standardowym językiem w naukach o danych. Jeśli pracujesz nad projektem związanym z przetwarzaniem języka naturalnego, najprawdopodobniej gdzieś tam znajduje się kod Pythona.
Python jest bardzo ekspresyjnym i prostym językiem wysokiego poziomu, co sprawia, że doskonale nadaje się do zastosowań związanych z uczeniem maszynowym. Jednak jeszcze ważniejsze jest to, że Python korzysta z rozbudowanego ekosystemu bibliotek i frameworków, które ułatwiają życie naukowcom zajmującym się danymi.
Niezależnie od tego, czy pracujesz nad projektem badawczym, czy produkcyjnym, czy trenujesz nowe modele, czy też używasz ich do wnioskowania, najprawdopodobniej będziesz musiał używać Pythona. Jeśli koniecznie trzeba użyć innego języka, można znaleźć biblioteki w innych językach, ale tylko do podstawowych zastosowań (w bardziej zaawansowanych przypadkach rozwiązaniem będzie przyjęcie strategii mikroserwisów i użycie interfejsu REST API).

Hugging Face Hub to centralne repozytorium, w którym przechowywana jest większość modeli przetwarzania języka naturalnego typu open-source.
W serwisie Hugging Face można łatwo odkrywać nowe modele sztucznej inteligencji, a także przesyłać i udostępniać własne. Jest to również świetne miejsce do przeglądania i znajdowania zbiorów danych do następnego projektu. Modele i zbiory danych można łatwo pobierać i wykorzystywać za pomocą mechanizmu Transformers (patrz poniżej).
Wizją firmy Hugging Face jest "demokratyzacja" przetwarzania języka naturalnego i stanie się "Githubem uczenia maszynowego".

OpenAI to firma, która stoi za GPT-3, najbardziej zaawansowanym modelem językowej sztucznej inteligencji, jaki kiedykolwiek stworzono.
Dwie pierwsze wersje tego modelu (GPT i GPT-2) były open-source, ale OpenAI zdecydowało, że GPT-3 nie będzie już open-source. Jeżeli chcesz korzystać z GPT-3, musisz zasubskrybować API OpenAI. Tylko Microsoft ma dostęp do kodu źródłowego GPT-3, ponieważ wykupił wyłączną licencję.
Modele GPT to modele sztucznej inteligencji generujące tekst, które bardzo dobrze radzą sobie z pisaniem tekstu na podobieństwo człowieka. W rzeczywistości człowiekowi dość trudno jest wykryć, czy dany fragment tekstu został napisany przez prawdziwą osobę, czy przez GPT-3...
Zaprojektowanie i wytrenowanie tej nowej SI kosztowało OpenAI miliony dolarów. Jeśli chcesz z niej korzystać, będziesz musiał przejść przez wymagający proces walidacji, ponieważ OpenAI nie pozwala na korzystanie ze swojego modelu wszystkim typom aplikacji.
Aby dogonić OpenAI, pojawiają się nowe modele open-source, takie jak GPT-J i GPT-NeoX.

To my!
NLP Cloud to interfejs API umożliwiający łatwe wykorzystanie w produkcji najbardziej zaawansowanych modeli sztucznej inteligencji do przetwarzania języka naturalnego.
Na przykład można generować tekst za pomocą GPT-J i GPT-NeoX, podsumowywać treści za pomocą Facebook's Bart Large CNN, klasyfikować fragmenty tekstu za pomocą Roberta, wyodrębniać encje za pomocą spaCy, tłumaczyć treści za pomocą Opus MT... i wiele więcej.
W chmurze NLP można również trenować i dostrajać własną sztuczną inteligencję lub wdrażać własne modele. Na przykład, jeśli chcesz stworzyć własnego chatbota medycznego opartego na GPT-J, wystarczy, że załadujesz zestaw danych składający się z własnych przykładów z Twojej branży, następnie rozpoczniesz proces szkolenia i wykorzystasz swój ostateczny model w produkcji poprzez API.

Deepspeed to framework open-source firmy Microsoft, który koncentruje się na paralelizacji modeli.
Co to dokładnie oznacza?
Modele SI stają się coraz większe i większe (patrz GPT-3, GPT-J, GPT-NeoX 20B, T0, Fairseq 13B...). Te ogromne modele otwierają drzwi do mnóstwa nowych zastosowań, ale są też bardzo trudne do uruchomienia.
Szkolenie tych modeli i ich niezawodne uruchamianie w produkcji w celu wnioskowania może odbywać się albo poprzez skalowalność pionową (z wykorzystaniem ogromnych jednostek GPU, takich jak NVIDIA A100 lub Google TPU), albo skalowalność poziomą (z wykorzystaniem kilku małych jednostek GPU pracujących równolegle).
Drugie podejście staje się coraz bardziej popularne, ponieważ jest tańsze i lepiej się skaluje. Niemniej jednak przeprowadzanie rozproszonego szkolenia i wnioskowania nie jest łatwe, dlatego Deepspeed naprawdę pomaga.
Deepspeed był początkowo przeznaczony do zadań treningowych, ale obecnie jest coraz częściej wykorzystywany do wnioskowania, ponieważ jest łatwy w użyciu i integruje się z narzędziem Hugging Face Transformers (patrz poniżej).

Big Science to grupa badaczy i firm, które pracują nad dużymi modelami językowymi.
W wyniku pierwszych warsztatów powstał model sztucznej inteligencji o nazwie T0, który bardzo dobrze radzi sobie z rozumieniem ludzkich poleceń.
Obecnie pracują nad znacznie większymi modelami: ich celem jest stworzenie wielojęzycznych modeli AI o otwartym kodzie źródłowym, które byłyby większe i bardziej zaawansowane niż GPT-3.

SpaCy to framework do przetwarzania języka naturalnego w Pythonie, który doskonale nadaje się do produkcji: jest zarówno szybki, jak i łatwy w obsłudze.
Jest to framework utrzymywany przez niemiecką firmę Explosion AI.
SpaCy jest bardzo dobry w rozpoznawaniu nazwanych podmiotów (znanym również jako ekstrakcja podmiotów), w około 50 różnych językach. Dostarcza wstępnie wytrenowane modele, a użytkownik może łatwo tworzyć własne modele na podstawie adnotowanych przykładów.
Framework Transformers został udostępniony przez firmę Hugging Face kilka lat temu. Większość zaawansowanych modeli przetwarzania języka naturalnego jest obecnie oparta na Transformerach.
Jest to moduł Pythona oparty na PyTorch, Tensorflow i Jax, który może być używany zarówno do szkolenia, jak i wnioskowania.
Transformatory Hugging Face bardzo ułatwiają pobieranie i przesyłanie modeli do Hugging Face Hub.
Biblioteka tokenizerów firmy Hugging Face to zestaw zaawansowanych tokenizatorów do przetwarzania języka naturalnego, wykorzystywanych przez modele oparte na transformatorach.
Tokenizacja polega na podzieleniu tekstu wejściowego na małe słowa lub podsłowa, które mogą być następnie zakodowane i przetworzone przez model sztucznej inteligencji.
Tokenizacja może wydawać się szczegółem, ale tak nie jest. W rzeczywistości jest to krytyczna część przetwarzania języka naturalnego, a użycie odpowiedniego tokenizatora robi ogromną różnicę pod względem jakości wyników i wydajności.
NLTK to skrót od Natural Language Toolkit. Jest to istniejący od wielu lat framework Pythona, który doskonale sprawdza się w badaniach naukowych i edukacji.
NLTK nie jest narzędziem produkcyjnym, ale doskonale nadaje się dla naukowców próbujących rozwijać się w dziedzinie przetwarzania języka naturalnego.
W 2021 r. dziedzina przetwarzania języka naturalnego znacznie się rozwinęła. Obecnie coraz więcej firm chce wykorzystywać językowe modele sztucznej inteligencji w produkcji, a interesujące jest to, że w 2022 roku ekosystem nie będzie miał wiele wspólnego z tym, co było 5 lat temu.
Biblioteki i frameworki stają się coraz bardziej zaawansowane, a tworzenie dużych modeli językowych, takich jak GPT-3, stawia nowe interesujące wyzwania.
Nie mogę się doczekać, jak będzie wyglądał rok 2023!
Julien Salinas