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.
Przykłady NLP w życiu codziennym: autokorekta na klawiaturze, sugestie odpowiedzi w Gmailu (Smart Reply), filtrowanie spamu, asystenci głosowi (Alexa, Siri), tłumaczenia maszynowe (DeepL, Google Translate), generowanie napisów do filmów, podsumowania artykułów w wynikach wyszukiwania, ChatGPT, Claude i Gemini.
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.
Krótka historia NLP
NLP przeszło cztery wyraźne ery, w których zmieniało się podejście do problemu rozumienia języka.
Era reguł (1950-1990)
Pierwsze próby NLP opierały się na ręcznie kodowanych regułach lingwistycznych — gramatykach formalnych, słownikach, parserach składniowych. Klasyczny przykład: ELIZA (1966), prosta rozmowa terapeutyczna oparta na pattern matching. SHRDLU (1970) rozumiał komendy w ograniczonym świecie klocków. Systemy te były kruche — wystarczyło wyjść poza zakres reguł i przestawały działać.
Era statystyczna (1990-2010)
Wraz z dostępnością korpusów tekstu i mocy obliczeniowej zaczęto stosować modele statystyczne: n-gramy, ukryte modele Markowa (HMM), maszyny wektorów nośnych (SVM). Tłumaczenie statystyczne (IBM Models, Google Translate 2006-2016) zdominowało pole. Charakterystyka: dużo ręcznej inżynierii cech, ale skalowanie przez dane.
Era sieci rekurencyjnych (2010-2017)
Sieci rekurencyjne — RNN, LSTM, GRU — pozwoliły uczyć modeli sekwencyjnych bez ręcznych cech. Word2Vec (Mikolov, 2013) i GloVe (Pennington, 2014) wprowadziły embeddingi gęste. Modele seq2seq (Sutskever, 2014) z mechanizmem attention (Bahdanau, 2014) podniosły jakość tłumaczenia maszynowego. Wąskie gardło: sekwencyjne przetwarzanie (token po tokenie) ograniczało paralelizm.
Era transformerów (2017-dziś)
Artykuł „Attention Is All You Need" (Vaswani et al., 2017) wprowadził architekturę transformer opartą wyłącznie na self-attention. Eliminacja rekurencji umożliwiła masywny paralelizm i trenowanie modeli o setkach miliardów parametrów. BERT (2018), GPT-2 (2019), GPT-3 (2020), ChatGPT (2022), GPT-4 (2023), Claude 3 (2024) — kolejne kamienie milowe pokazują, jak szybko skala modeli przekłada się na zdolność rozumienia języka.
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.
Jak działa BPE krok po kroku:
- Zaczynamy od znaków:
["l", "o", "w", "e", "r"] - Liczymy częstość par:
("l", "o"),("o", "w"),("w", "e"),("e", "r") - Najczęstszą parę łączymy w nowy token:
("l", "o")→"lo" - Powtarzamy aż osiągniemy zadany rozmiar słownika
Konsekwencja: rzadkie słowa są dzielone na mniejsze tokeny (np. „internacjonalizacja" → [„internacjonal", „izacja"]), a popularne słowa pozostają w jednym tokenie (np. „kot" → [„kot"]).
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, niskoinformacyjne), 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.
Embeddingi zdań i dokumentów
Sentence-BERT (SBERT, 2019) i modele OpenAI text-embedding-3 generują embeddingi całych zdań i dokumentów (typowo 384-1536 wymiarów). Pozwalają na semantyczne wyszukiwanie, klastrowanie tekstów, deduplikację, rekomendacje treści. Stanowią fundament systemów RAG (Retrieval-Augmented Generation).
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)
BERT vs GPT — szczegółowe porównanie
BERT i GPT to dwa fundamentalnie różne podejścia do NLP. Wybór zależy od zadania.
| Aspekt | BERT | GPT |
|---|---|---|
| Architektura | Enkoder | Dekoder |
| Kierunek attention | Dwukierunkowy | Autoregresyjny (tylko lewa strona) |
| Pretraining | Masked LM + NSP | Next-token prediction |
| Mocna strona | Rozumienie tekstu | Generowanie tekstu |
| Typowe zadania | Klasyfikacja, NER, QA extractive | Chat, generacja, kod, podsumowania |
| Inferencja | Pojedyncze przejście | Token po tokenie (autoregresyjnie) |
| Rozmiar (typ.) | 110M-340M | 7B-1T+ |
| Open-source warianty | Herbert, RoBERTa, DeBERTa | LLaMA, Mistral, Qwen |
Kiedy wybrać BERT?
Klasyfikacja maili (spam/nie-spam), analiza sentymentu recenzji produktów, ekstrakcja informacji z dokumentów (NER), wyszukiwanie semantyczne (jako encoder), rerankerzy w wyszukiwarkach. BERT jest szybszy w inferencji (jedno przejście) i mniejszy — łatwiej go uruchomić na własnej infrastrukturze.
Kiedy wybrać GPT?
Chatboty, asystenci AI, generowanie treści (artykuły, opisy produktów), tłumaczenia, code completion, podsumowania abstrakcyjne, agenty AI. GPT jest bardziej elastyczny (jeden model do wielu zadań) i ma emergentne zdolności rozumowania, ale jest droższy w inferencji.
Hybrydy
W praktyce systemy łączą oba podejścia. Przykład wyszukiwarki semantycznej: BERT generuje embeddingi dokumentów (offline) i zapytania (online) → szybki retrieval z indeksu wektorowego → GPT generuje odpowiedź na podstawie pobranych dokumentów. Ten wzorzec to RAG.
Główne zadania NLP
Klasyfikacja tekstu
Przypisanie kategorii: analiza sentymentu (pozytywny/negatywny), detekcja spamu, klasyfikacja tematyczna, detekcja języka. Przykład biznesowy: automatyczna kategoryzacja zgłoszeń do supportu (techniczne / billing / reklamacja) skraca czas odpowiedzi o 40-60%.
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." Zastosowanie biznesowe: ekstrakcja danych z faktur (NIP, kwota, data), parsowanie CV (umiejętności, lata doświadczenia), monitoring mediów (kto i co mówi o marce).
Question Answering (QA)
Odpowiadanie na pytania na podstawie kontekstu (extractive QA: wskaż fragment) lub wiedzy modelu (generative QA: sformułuj odpowiedź). Przykład: chatbot wewnętrzny w firmie odpowiada na pytania pracowników na podstawie polityki HR i dokumentacji technicznej.
Streszczanie (Summarization)
- Extractive: wybranie najważniejszych zdań z tekstu
- Abstractive: generowanie nowego tekstu streszczającego oryginał
Zastosowanie: podsumowania spotkań w Microsoft Teams, executive summary długich raportów, ekstrakcja kluczowych punktów z artykułów naukowych.
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. Liderzy 2026: DeepL (jakość), Google Translate (zasięg języków), GPT-4 (kontekst i niuans).
Analiza sentymentu
Określenie emocjonalnego tonu tekstu: pozytywny, negatywny, neutralny. Zastosowania: monitoring marki w social media, analiza opinii klientów po wdrożeniu nowej funkcji, prognozowanie rynku na podstawie sentymentu Twittera.
Generowanie tekstu
Modele GPT, Claude, Gemini generują artykuły, opisy produktów, posty social media, kod. Przykłady produkcyjne: Jasper i Copy.ai dla copywriterów, GitHub Copilot dla developerów, ChatGPT jako asystent biurowy.
NLP w Pythonie — przewodnik dla początkujących
Python dominuje w ekosystemie NLP. Kluczowe biblioteki:
Hugging Face Transformers
Standard branżowy — dostęp do tysięcy pretrenowanych modeli (BERT, GPT, T5, LLaMA) jednym wywołaniem.
from transformers import pipeline
# Analiza sentymentu w polskim
classifier = pipeline("sentiment-analysis",
model="Voicelab/herbert-base-cased-sentiment-allegro")
result = classifier("Ten produkt jest świetny, polecam każdemu!")
# [{'label': 'POSITIVE', 'score': 0.97}]
spaCy — przemysłowe NLP
import spacy
nlp = spacy.load("pl_core_news_md")
doc = nlp("Jan Kowalski pracuje w Google od 2020 roku.")
for ent in doc.ents:
print(ent.text, ent.label_)
# Jan Kowalski PER
# Google ORG
# 2020 DATE
Sentence-Transformers — embeddingi semantyczne
from sentence_transformers import SentenceTransformer
import numpy as np
model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2")
zdania = ["AI to przyszłość", "Sztuczna inteligencja zmienia świat"]
embeddings = model.encode(zdania)
# Podobieństwo cosinusowe
sim = np.dot(embeddings[0], embeddings[1]) / (
np.linalg.norm(embeddings[0]) * np.linalg.norm(embeddings[1]))
print(f"Podobieństwo: {sim:.3f}") # ~0.85
LangChain i LlamaIndex — orkiestracja LLM
LangChain i LlamaIndex to frameworki budujące aplikacje na bazie LLM: chatboty, agenty, systemy RAG. Pozwalają łączyć wiele modeli, baz wektorowych (Pinecone, Weaviate, Chroma) i narzędzi w spójny pipeline.
Polska scena NLP
- Herbert (Allegro) — polski BERT, dostępny na Hugging Face
- Polish RoBERTa (Allegro) — większy i mocniejszy
- PolBERT — alternatywne polskie BERTy
- TRurl — polski LLM od ML Research
- PLLuM — open-source polski LLM (dla administracji)
RAG i NLP w produkcji
RAG (Retrieval-Augmented Generation) to wzorzec łączący wyszukiwanie z generacją. LLM otrzymuje pytanie + pobrane dokumenty z bazy wiedzy → generuje odpowiedź opartą na faktach.
Architektura RAG:
- Indeksowanie: dokumenty → embeddingi → baza wektorowa (Pinecone, pgvector, Weaviate)
- Retrieval: zapytanie → embedding → top-k podobnych dokumentów
- Augmentation: prompt = pytanie + pobrane dokumenty
- Generation: LLM odpowiada na podstawie kontekstu
Korzyści RAG:
- Aktualne informacje (LLM ma wiedzę do określonej daty cutoff)
- Redukcja halucynacji (model bazuje na pobranych źródłach)
- Możliwość cytowania źródeł (transparentność)
- Tańsze niż fine-tuning LLM dla każdej domeny
Przykłady produkcyjne: Microsoft 365 Copilot (RAG na firmowych dokumentach), Notion AI (RAG na workspace), Perplexity (RAG na całym webie), wewnętrzne chatboty firmowe.
Więcej szczegółów technicznych w artykule RAG — Retrieval-Augmented Generation.
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.
Mitygacje:
- RAG — retrieval z bazy wiedzy przed generacją
- Grounding — explicit linking do źródeł
- Chain-of-thought — promptowanie modelu do pokazywania rozumowania
- Constrained decoding — wymuszenie generacji zgodnej z gramatyką lub schemą JSON
- Verification step — drugi LLM weryfikuje odpowiedź pierwszego
Bias i sprawiedliwość
Modele odzwierciedlają biasy z danych treningowych: stereotypy płciowe, rasowe, kulturowe.
Mitygacje: debiasing datasetu, oceny fairness (StereoSet, BOLD), fine-tuning z annotated examples, RLHF z różnorodnymi annotatorami, audyty zewnętrzne.
Prywatność
LLM trenowane na danych z internetu mogą „pamiętać" dane osobowe z korpusu treningowego.
Mitygacje: differential privacy, deduplikacja korpusu, blokowanie wrażliwych zapytań na poziomie API, on-premise deployment dla wrażliwych zastosowań.
Koszty inferencji
GPT-4 kosztuje rzędu $0.01-0.10 za 1000 tokenów. Skalowanie do milionów zapytań dziennie wymaga optymalizacji: kwantyzacja modeli (8-bit, 4-bit), distillation (mniejsze modele uczone od dużych), caching odpowiedzi, prompt compression, użycie SLM (Small Language Models, np. Phi-3, Mistral 7B) tam gdzie wystarczą.
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
- TRurl, PLLuM — natywne polskie LLM
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
- Polski znaki diakrytyczne (ą, ę, ł, ń, ó, ś, ź, ż) — wymagają poprawnej tokenizacji
Korpusy polskie
- NKJP (Narodowy Korpus Języka Polskiego) — 1.5 mld słów, anotowany lingwistycznie
- CCNET-Polish — polski subset Common Crawl po deduplikacji
- OSCAR — wielojęzyczny korpus webowy z polskim subsetem
- Wikipedia PL — strukturalny tekst encyklopedyczny
Trendy NLP 2024-2026
Small Language Models (SLM)
Po fali coraz większych modeli (GPT-4, Claude 3 Opus) widoczny jest trend ku mniejszym, wyspecjalizowanym modelom: Phi-3, Mistral 7B, Llama 3.2 1B/3B, Gemma 2B. Powód: koszty inferencji, prywatność (deployment lokalny), edge computing (telefony, IoT). Wiele zadań NLP nie wymaga modelu 175B+ — 7B z dobrym fine-tuningiem często wystarcza.
Agenty AI
Agenty łączą LLM z narzędziami (web search, kod, API). Model decyduje samodzielnie, jakie kroki wykonać. Przykłady: Anthropic Claude Computer Use (sterowanie komputerem), AutoGPT, OpenAI Operator. Agenty zmieniają NLP z „odpowiedz na pytanie" na „wykonaj zadanie".
Multimodalność
Modele przyjmują tekst, obraz, audio, wideo. GPT-4o, Gemini, Claude 3.5 Sonnet generują tekst na podstawie obrazów i odwrotnie. NLP staje się elementem szerszych systemów multimodalnych.
Long context
Okno kontekstu modeli rośnie: GPT-4 Turbo 128k tokenów, Claude 3 200k, Gemini 1.5 Pro 1M+ tokenów. Pozwala na analizę całych książek, repozytoriów kodu, długich dokumentów prawnych w jednym promcie. To zmniejsza zapotrzebowanie na klasyczny RAG dla mniejszych baz wiedzy.
Reasoning models
Modele rozumujące (OpenAI o1, o3, DeepSeek R1) używają chain-of-thought wewnętrznie i osiągają lepsze wyniki w matematyce, kodowaniu, planowaniu. To jakościowy skok od „autocomplete na sterydach" do faktycznego rozumowania.
Edge AI dla NLP
Lokalna inferencja LLM na laptopach (Apple Intelligence z Apple M-chips, Qualcomm Snapdragon X) i telefonach (Google AI Core na Pixelach). Konsekwencja dla developerów: można wbudować NLP w aplikację bez wysyłania danych do chmury.
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 wnioski:
- BERT do rozumienia, GPT do generowania, RAG łączy oba podejścia
- Python z bibliotekami transformers, spaCy, sentence-transformers to standard branżowy
- Polski ma rosnący ekosystem (Herbert, PLLuM, TRurl) ale nadal wyzwaniem jest jakość vs angielski
- Trend 2025+: SLM, agenty, multimodalność, long context
Kluczowe wyzwania to halucynacje, bias, koszty inferencji i wielojęzyczność — ale postęp jest bezprecedensowy. Następne lata przyniosą agenty AI samodzielnie wykonujące zadania, modele lokalne na urządzeniach końcowych i dalsze obniżanie barier wejścia dla developerów.
Co warto czytać dalej: