Czym jest przetwarzanie języka naturalnego?
Przetwarzanie języka naturalnego (ang. Natural Language Processing, NLP) to dziedzina sztucznej inteligencji na styku informatyki i lingwistyki, której celem jest umożliwienie maszynom rozumienia, analizowania, interpretowania i generowania ludzkiego języka. NLP jest fundamentem technologii, z których korzystamy codziennie: wyszukiwarek, tłumaczy, asystentów głosowych, chatbotów i modeli takich jak ChatGPT.
Język naturalny jest jednym z najtrudniejszych problemów AI. Jest wieloznaczny (zamek = budowla lub urządzenie), kontekstowy (znaczenie słowa zależy od zdania), ewoluujący (nowe słowa, memy), pełen wyjątków od reguł i zróżnicowany kulturowo. Każdy z 7000+ języków świata ma unikalne cechy gramatyczne, morfologiczne i syntaktyczne.
Przełom w NLP nastąpił dzięki transformerom (Vaswani et al., 2017) — architekturze neuronowej, która umożliwiła trenowanie modeli na ogromnych korpusach tekstu i osiągnięcie zdolności rozumienia języka na bezprecedensowym poziomie.
Preprocessing tekstu
Zanim tekst trafi do modelu, wymaga preprocessingu — przekształcenia surowego tekstu w formę zrozumiałą dla algorytmu.
Tokenizacja
Tokenizacja to podział tekstu na tokeny — jednostki przetwarzania. Podejścia:
- Słowa: „Ala ma kota" → [„Ala", „ma", „kota"] — proste, ale ogromny słownik
- Znaki: „Ala" → [„A", „l", „a"] — mały słownik, ale bez informacji semantycznej
- Subword: „playing" → [„play", „##ing"] — kompromis; metody BPE (GPT), WordPiece (BERT), SentencePiece
Współczesne modele (GPT-4, LLaMA) używają BPE (Byte Pair Encoding) — iteracyjne łączenie najczęstszych par znaków w tokeny. Słownik 30-100k tokenów pokrywa dowolny tekst, w tym neologizmy i rzadkie słowa.
Lematyzacja i stemming
- Stemming — odcięcie sufiksu: „biegnący" → „biegn". Szybkie, ale niedokładne.
- Lematyzacja — sprowadzenie do formy bazowej: „biegnący" → „biec". Wyższa jakość, wymaga wiedzy językowej.
Stop words, normalizacja
Usunięcie stop words (a, i, to, w — słowa częste, niskoinfromacyjne), lowercasing, usunięcie interpunkcji i znaków specjalnych. Współczesne modele transformerowe nie wymagają tych kroków — same uczą się, co ignorować.
Reprezentacja tekstu — od Bag-of-Words do embeddingów
Bag-of-Words (BoW)
Najprostsza reprezentacja: dokument = wektor częstości słów. „Ala ma kota. Kot ma Alę." → {Ala:1, ma:2, kota:1, Kot:1, Alę:1}. Ignoruje kolejność słów.
TF-IDF
TF-IDF (Term Frequency × Inverse Document Frequency) waży słowa: częste w dokumencie, ale rzadkie w korpusie mają wysoką wagę. Redukuje wpływ powszechnych słów (np. „jest", „to") i podkreśla słowa charakterystyczne.
Embeddingi słów
Embeddingi to gęste wektory liczbowe (typowo 100-300 wymiarów) reprezentujące słowa w przestrzeni semantycznej, gdzie podobne słowa mają bliskie wektory. „Król" - „Mężczyzna" + „Kobieta" ≈ „Królowa".
Modele embeddingów: Word2Vec, GloVe, FastText — więcej w artykule o embeddingach.
Embeddingi kontekstowe
Embeddingi Word2Vec są statyczne — słowo „zamek" ma jeden wektor niezależnie od kontekstu. Modele kontekstowe (ELMo, BERT, GPT) generują dynamiczne embeddingi zależne od kontekstu: „zamek w drzwiach" vs. „zamek na wzgórzu" → różne wektory.
Architektura Transformer
Przełom: „Attention Is All You Need"
Artykuł Vaswani et al. (2017) wprowadził architekturę transformer, która zastąpiła RNN/LSTM w NLP. Kluczowa innowacja: self-attention — mechanizm pozwalający każdemu tokenowi „patrzeć" na wszystkie inne tokeny w sekwencji i ważyć ich istotność.
Self-Attention (Scaled Dot-Product Attention)
Dla każdego tokenu obliczane są trzy wektory:
- Query (Q) — „czego szukam"
- Key (K) — „co oferuję"
- Value (V) — „jaka jest moja wartość"
Attention(Q, K, V) = softmax(QKᵀ / √d) · V
Wynik: każdy token otrzymuje ważoną sumę wartości wszystkich tokenów, z wagami proporcjonalnymi do podobieństwa zapytania i kluczy.
Multi-Head Attention
Zamiast jednego attention, stosuje się h głowic (np. 12) — każda z własnym zestawem Q, K, V. Różne głowice uczą się różnych typów zależności: składniowych, semantycznych, referencyjnych.
Architektura enkodera i dekodera
- Enkoder (BERT): przetwarza sekwencję dwukierunkowo (widzi cały kontekst)
- Dekoder (GPT): generuje tokeny autoregresyjnie (widzi tylko wcześniejszy kontekst)
- Encoder-Decoder (T5, oryginalny Transformer): enkoder przetwarza wejście, dekoder generuje wyjście
BERT i modele enkoderowe
BERT (Bidirectional Encoder Representations from Transformers, Google, 2018) to model enkoderowy pretrenowany na dwóch zadaniach:
- Masked Language Modeling (MLM) — ukryj 15% tokenów, przewiduj ukryte
- Next Sentence Prediction (NSP) — przewiduj, czy zdanie B następuje po zdaniu A
BERT rewolucjonizował NLP: jeden pretrenowany model, fine-tunowany do wielu zadań (klasyfikacja, NER, odpowiadanie na pytania, analiza sentymentu).
Warianty: RoBERTa (lepszy pretraining), ALBERT (mniej parametrów), DistilBERT (szybszy, skompresowany), DeBERTa (ulepszone attention), XLM-RoBERTa (wielojęzyczny).
Zastosowania BERT: analiza sentymentu, klasyfikacja tekstu, rozpoznawanie encji (NER), odpowiadanie na pytania, ranking dokumentów, detekcja plagiatów.
GPT i modele generatywne
GPT (Generative Pre-trained Transformer, OpenAI) to model dekoderowy trenowany autoregresyjnie: przewiduj następny token na podstawie poprzednich.
Ewolucja GPT:
- GPT-1 (2018): 117M parametrów — proof of concept
- GPT-2 (2019): 1.5B — „zbyt niebezpieczny do publikacji" (generacja przekonujących tekstów)
- GPT-3 (2020): 175B — few-shot learning z promptu, bez fine-tuningu
- GPT-3.5/ChatGPT (2022): RLHF (Reinforcement Learning from Human Feedback) — konwersacyjna AI
- GPT-4 (2023): multimodalny (tekst + obraz), drastycznie wyższa jakość
- GPT-4o (2024): natywna multimodalność (tekst, obraz, audio, wideo)
Emergent abilities
Duże modele językowe wykazują zdolności emergentne — umiejętności nieobecne w mniejszych modelach: chain-of-thought reasoning, few-shot learning, rozumienie kodu, wielojęzyczność.
Alignment i RLHF
RLHF (Reinforcement Learning from Human Feedback) to proces dostosowywania modelu do ludzkich preferencji:
- Supervised fine-tuning na parach pytanie-odpowiedź
- Trening modelu nagrody (reward model) na ocenach ludzkich recenzentów
- Optymalizacja polityki modelu za pomocą PPO (Proximal Policy Optimization)
Główne zadania NLP
Klasyfikacja tekstu
Przypisanie kategorii: analiza sentymentu (pozytywny/negatywny), detekcja spamu, klasyfikacja tematyczna, detekcja języka.
Named Entity Recognition (NER)
Identyfikacja encji w tekście: osoby, organizacje, lokalizacje, daty, kwoty. Przykład: „[Jan Kowalski]OSOBA pracuje w [Google]ORG od [2020]DATA."
Question Answering (QA)
Odpowiadanie na pytania na podstawie kontekstu (extractive QA: wskaż fragment) lub wiedzy modelu (generative QA: sformułuj odpowiedź).
Streszczanie (Summarization)
- Extractive: wybranie najważniejszych zdań z tekstu
- Abstractive: generowanie nowego tekstu streszczającego oryginał
Tłumaczenie maszynowe
Od Google Translate (statystyczne, 2006) przez neuronowe modele seq2seq (2014) po transformery (2017+). Współczesne systemy tłumaczą na poziomie bliskim ludzkiemu w głównych parach językowych.
Analiza sentymentu
Określenie emocjonalnego tonu tekstu: pozytywny, negatywny, neutralny. Zastosowania: monitoring marki, analiza opinii klientów, prognozowanie rynku.
Wyzwania NLP
Wielojęzyczność
- 7000+ języków, większość niskozasobowa (mało danych treningowych)
- Modele wielojęzyczne (mBERT, XLM-R) osiągają gorsze wyniki w językach z małymi korpusami
- Polski: 44 mln użytkowników, bogata fleksja (deklinacja, koniugacja), stosunkowo dobre pokrycie w modelach wielojęzycznych
Hallucynacje LLM
Modele generatywne „halucynują" — generują fakty, które brzmią wiarygodnie, ale są fałszywe. Techniki mitygacji: RAG (Retrieval-Augmented Generation), grounding w bazach wiedzy, fact-checking.
Bias i sprawiedliwość
Modele odzwierciedlają biasy z danych treningowych: stereotypy płciowe, rasowe, kulturowe. Debiasing to aktywny obszar badań.
Prywatność
LLM trenowane na danych z internetu mogą „pamiętać" dane osobowe z korpusu treningowego. Differential privacy i deduplikacja łagodzą ryzyko.
NLP w języku polskim
Narzędzia i modele
- spaCy z modelem polskim — tokenizacja, POS tagging, NER, dependency parsing
- Herbert (Allegro) — polski BERT, pretrenowany na polskim korpusie
- Polish RoBERTa — warianty RoBERTa dla polskiego
- SlavicBERT — model dla języków słowiańskich
- GPT-4, Claude — modele wielojęzyczne z dobrą obsługą polskiego
Wyzwania polskiego NLP
- Bogata fleksja (7 przypadków, 3 rodzaje) — większy słownik, trudniejsza lematyzacja
- Swobodny szyk zdania — trudniejsze parsowanie
- Stosunkowo mały korpus w porównaniu z angielskim
Podsumowanie
NLP przeszło od ręcznych reguł lingwistycznych przez statystyczne modele do ery transformerów i dużych modeli językowych. BERT zrewolucjonizował rozumienie tekstu, GPT — generowanie. ChatGPT i Claude udowodniły, że modele językowe mogą prowadzić naturalne konwersacje, pisać kod, analizować dokumenty i wspomagać decyzje. Kluczowe wyzwania to hallucynacje, bias i wielojęzyczność — ale postęp jest bezprecedensowy.