BERT (language model) (CS)
BERT (Bidirectional Encoder Representations from Transformers, obousměrné reprezentace kodéru z transformerů) — je velký jazykový model (LLM) pro porozumění přirozenému jazyku, vyvinutý výzkumníky společnosti Google a představený v roce 2018. BERT zahájil novou éru ve zpracování přirozeného jazyka (NLP), přičemž prokázal bezprecedentní výkon na širokém spektru úloh a ustanovil paradigma „předtrénování + dolaďování" (pre-train & fine-tune) jako průmyslový standard.
Klíčovou inovací BERT je hluboce obousměrná architektura, která umožňuje modelu zohledňovat kontext slova současně zleva i zprava ve všech vrstvách sítě. Toho je dosaženo prostřednictvím nové úlohy předtrénování — Masked Language Modeling (MLM).
Název a princip fungování
Zkratka BERT je rozvedena jako Bidirectional Encoder Representations from Transformers.
- Bidirectional (Obousměrný): Označuje základní vlastnost modelu — schopnost zpracovávat kontext slova v obou směrech (zleva doprava i zprava doleva) současně. Na rozdíl od jednosměrných modelů (jako GPT), které při zpracování slova vidí pouze předcházející kontext, BERT vidí celou sekvenci najednou, což mu umožňuje vytvářet hlubší a přesnější porozumění významu slova.
- Encoder (Kodér): Znamená, že BERT využívá pouze kódovací část architektury Transformer. Úkolem kodéru je přečíst vstupní textovou sekvenci a vytvořit pro každý token bohatou kontextovou reprezentaci (vektor). BERT není určen ke generování textu ve volné formě, jako modely-dekodéry.
- Representations (Reprezentace): Model se učí vytvářet vysoce kvalitní číselné reprezentace (vektory nebo embeddingy) pro slova a věty, které pak mohou být použity k řešení různých NLP úloh.
- from Transformers: Označuje, že architektura modelu je plně založena na Transformeru.
Historie vzniku
Vývoj BERT byl výsledkem několika klíčových průlomů v NLP:
- Kontextové embeddingy: Modely jako Word2vec a GloVe vytvářely statické vektory pro slova bez zohlednění kontextu. Model ELMo (2018) byl krokem vpřed, generoval kontextově závislé reprezentace pomocí obousměrných LSTM sítí, avšak tato obousměrnost byla „povrchní" (konkatenace dvou jednosměrných modelů).
- Transferové učení a GPT: V polovině roku 2018 společnost OpenAI představila model GPT, který prokázal účinnost předtrénování velkého transformerového modelu na neoznačených datech s následným dolaďováním (fine-tuning) na konkrétních úlohách. GPT byl však striktně jednosměrný (zleva doprava), což omezovalo jeho možnosti v úlohách vyžadujících porozumění úplnému kontextu.
S vědomím těchto omezení výzkumníci společnosti Google v čele s Jacobem Devlinem vyvinuli BERT, aby vytvořili skutečně hluboce obousměrný model. Článek o BERT byl zveřejněn na arXiv v říjnu 2018 a kód spolu s předtrénovanými modely byl uvolněn do otevřeného přístupu, což vyvolalo obrovský zájem ve vědecké komunitě. BERT překonal rekordy na 11 klíčových NLP benchmarcích, včetně GLUE a SQuAD, a byl nazván „momentem ImageNet" pro NLP, protože jeden univerzální model mohl být snadno přizpůsoben pro mnoho různých úloh.
Architektura
BERT je plně založen na kódovací části (enkodéru) architektury Transformer. Skládá se z několika identických vrstev naskládaných na sebe. Existují dvě základní verze:
- BERT-Base: 12 vrstev, 12 hlav pozornosti, velikost skrytého stavu 768, celkový počet parametrů ~110 mil.
- BERT-Large: 24 vrstev, 16 hlav pozornosti, velikost skrytého stavu 1024, celkový počet parametrů ~340 mil.
Každá vrstva obsahuje dvě základní podvrstvy:
- Mechanismus vícehlové vlastní pozornosti (Multi-Head Self-Attention): Umožňuje každému tokenu ve vstupní sekvenci „věnovat pozornost" všem ostatním tokenům a váží jejich důležitost pro určení vlastního kontextového významu.
- Plně propojená neuronová síť (Feed-Forward Network): Aplikuje se na každý token samostatně.
Vstupní data
Pro správné fungování vyžaduje BERT speciální formátování vstupních dat. Sekvence tokenů přiváděná na vstup vždy začíná speciálním tokenem `[CLS]` (classification), který se používá pro úlohy klasifikace celého textu. Pokud je na vstup přiváděna dvojice vět (například v úlohách otázek a odpovědí), jsou odděleny tokenem `[SEP]` (separator).
Výsledná reprezentace každého tokenu na vstupu je součtem tří embeddingů:
- Token-embedding: Vektor odpovídající konkrétnímu tokenu ze slovníku (BERT používá WordPiece tokenizaci).
- Segmentový embedding: Udává, ke které větě (první nebo druhé) token patří.
- Poziční embedding: Udává pozici tokenu v sekvenci, protože architektura Transformeru sama o sobě nezohledňuje pořadí slov.
Úlohy předtrénování
Aby byla zajištěna hluboká obousměrnost, BERT se trénuje na dvou jedinečných úlohách současně.
Masked Language Modeling (MLM)
Toto je klíčová inovace BERT. Místo předpovídání následujícího slova, jako ve standardních jazykových modelech, BERT předpovídá náhodně „maskovaná" slova ve větě. Postup vypadá takto:
- Ze vstupní sekvence je náhodně vybráno 15 % tokenů.
- Z těchto 15 %:
- 80 % je nahrazeno speciálním tokenem `[MASK]`.
- 10 % je nahrazeno náhodným tokenem ze slovníku.
- 10 % zůstane beze změny.
- Úkolem modelu je předpovědět původní hodnoty těchto 15 % tokenů na základě jejich okolního (levého a pravého) kontextu.
Toto schéma nutí model zkoumat hluboké sémantické a syntaktické vztahy mezi slovy a umožňuje mu být skutečně obousměrný.
Next Sentence Prediction (NSP)
Tato úloha byla navržena tak, aby naučila BERT chápat vztahy mezi větami, což je zásadní pro úlohy jako jsou systémy otázek a odpovědí nebo analýza textových implikací (NLI). Modelu je na vstup přiváděna dvojice vět (A a B) a model musí předpovědět, zda věta B je logickým pokračováním věty A.
- V 50 % případů je B skutečně následující větou z původního textu.
- V 50 % případů je B náhodná věta převzatá z jiného místa v korpusu.
Pozdější výzkumy (například u modelu RoBERTa) ukázaly, že úloha NSP je méně důležitá než MLM a lze od ní upustit ve prospěch efektivnějších schémat trénování, ale v původním BERT hrála důležitou roli.
Využití a dolaďování (Fine-Tuning)
Síla BERT spočívá v paradigmatu transferového učení. Po rozsáhlém a nákladném předtrénování na obrovských korpusech (Wikipedia + BooksCorpus) lze předtrénovaný model snadno a rychle doladit (fine-tune) pro řešení konkrétní aplikované úlohy.
Postup dolaďování obvykle vypadá takto: 1. K architektuře předtrénovaného BERT je přidána malá, netrénovaná vrstva specifická pro danou úlohu (například klasifikátor pro analýzu sentimentu). 2. Celý model (včetně vah BERT a nové vrstvy) je trénován na malé, označené datové sadě pro tuto konkrétní úlohu.
Příklady úloh, pro které je BERT přizpůsobován:
- Klasifikace textu (analýza sentimentu, spamové filtry): K výstupu tokenu `[CLS]` je přidán klasifikátor.
- Systémy otázek a odpovědí (například SQuAD): Model se učí předpovídat počáteční a koncový token odpovědi v zadaném textu.
- Rozpoznávání pojmenovaných entit (NER): K výstupu každého tokenu je přidán klasifikátor určující, zda je token součástí jména, organizace, data atd.
Varianty a odvozené modely
Úspěch BERT vedl ke vzniku celé rodiny modelů vycházejících z jeho myšlenek:
- RoBERTa (od Facebook AI): „Robustně optimalizovaný BERT". Nejde o novou architekturu, ale spíše o výsledek pečlivějšího a delšího trénování BERT: na větším množství dat, bez úlohy NSP a s dynamickým maskováním. RoBERTa ukázala, že původní BERT byl „nedotrénován", a překonala jej na všech hlavních benchmarcích.
- DistilBERT (od Hugging Face): Zmenšená verze BERT vytvořená pomocí techniky destilace znalostí. DistilBERT je o 40 % menší, o 60 % rychlejší a zachovává 97 % výkonu BERT, což jej činí ideálním pro nasazení v produkci a na zařízeních s omezenými zdroji.
- ALBERT (A Lite BERT, od Google): Verze optimalizovaná pro snížení počtu parametrů. Využívá dvě klíčové techniky: faktorizaci embeddingů a sdílení parametrů mezi vrstvami (cross-layer parameter sharing). To umožňuje vytvářet mnohem větší modely s menším počtem parametrů.
- mBERT (Multilingual BERT): Verze BERT předtrénovaná na 104 jazycích současně. Prokázala překvapivou schopnost mezijazykového přenosu znalostí.
- Doménově specifické modely: Množství modelů doladěných na datech z konkrétních oblastí, jako jsou BioBERT (biomedicína), SciBERT (vědecké texty) a FinBERT (finance).
- ModernBERT (2024–2025): Nová generace BERT-podobných modelů od společností Answer.AI a LightOn, zahrnující moderní architektonická vylepšení jako RoPE (Rotary Position Embeddings) a podporu delších kontextů (až 8192 tokenů), přičemž zachovává základní principy BERT.
Srovnání s jinými modely
| Model | Vývojář | Architektura | Směr kontextu | Hlavní úloha |
|---|---|---|---|---|
| BERT | Enkodér | Obousměrný | Porozumění textu, klasifikace, extrakce | |
| GPT | OpenAI | Dekodér | Jednosměrný (zleva doprava) | Generování textu, pokračování sekvence |
| XLNet | Google / CMU | Autoregresivní (permutační) | Obousměrný (teoreticky) | Porozumění textu (alternativa MLM) |
| T5 | Enkodér-Dekodér | Obousměrný (enkodér) + Jednosměrný (dekodér) | Univerzální transformace „text-na-text\" |
Vliv
BERT způsobil skutečnou revoluci v NLP a položil základ pro mnoho následných vývojů:
- Potvrdil paradigma „předtrénování + dolaďování\" jako dominantní přístup v NLP.
- Prokázal důležitost hlubokého obousměrného kontextu pro porozumění jazyku.
- Snížil vstupní bariéru pro tvorbu vysoce výkonných NLP systémů, protože výzkumníci a vývojáři již nemuseli vytvářet složité architektury od základu pro každou úlohu.
- Byl integrován do Google Search, což bylo jedno z největších aktualizací vyhledávače v celé jeho historii a názorně demonstrovalo praktický přínos modelu.
- Zrodil celý ekosystém odvozených modelů, nástrojů a výzkumů („BERTology"), přičemž se stal jednou z nejcitovanějších prací v oblasti AI.
Přestože novější a větší modely, jako GPT-3 a GPT-4, překonaly BERT na mnoha benchmarcích (zejména v generativních úlohách), BERT a jeho varianty stále zůstávají výkonným a hojně využívaným nástrojem pro úlohy vyžadující hluboké porozumění textu.
Odkazy
- Oficiální repozitář BERT na GitHub
- Oznámení BERT na blogu Google AI
- The Illustrated BERT — vizuální vysvětlení architektury BERT
Literatura
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
- Peters, M. E. et al. (2018). Deep Contextualized Word Representations. arXiv:1802.05365.
- Liu, Y. et al. (2019). RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv:1907.11692.
- Lan, Z. et al. (2020). ALBERT: A Lite BERT for Self-supervised Learning of Language Representations. arXiv:1909.11942.
- Sanh, V. et al. (2020). DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. arXiv:1910.01108.
- Yang, Z. et al. (2019). XLNet: Generalized Autoregressive Pretraining for Language Understanding. arXiv:1906.08237.
- Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
- Lee, J. et al. (2020). BioBERT: a pre-trained biomedical language representation model for biomedical text mining. arXiv:1901.08746.
- Warner, B. et al. (2024). Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference. arXiv:2412.13663.