BERT – Bidirectional Encoder Representations from Transformers
Čo je BERT?
BERT (Bidirectional Encoder Representations from Transformers) je jazykový model vyvinutý spoločnosťou Google, ktorý priniesol významný posun v oblasti spracovania prirodzeného jazyka (NLP). Na rozdiel od predchádzajúcich modelov, ktoré spracovávali text len jedným smerom, BERT analyzuje kontext slov obojsmerne – súčasne zľava doprava aj sprava doľava. Vďaka tomu dokáže lepšie porozumieť významu slov v závislosti od ich okolitého kontextu.
Architektúra BERT
BERT je založený na architektúre transformer, konkrétne využíva jej enkodérovú časť. Model pracuje s mechanizmom pozornosti (attention mechanism), ktorý mu umožňuje určiť, ktoré slová vo vete sú pre pochopenie významu najdôležitejšie. Základná verzia BERT-Base obsahuje 12 vrstiev a približne 110 miliónov parametrov. Väčšia verzia BERT-Large má 24 vrstiev a okolo 340 miliónov parametrov.
Vstupný text sa najprv tokenizuje pomocou metódy WordPiece, ktorá rozdeľuje slová na menšie podjednotky. Každý token získava tri typy embeddingov – tokenový embedding, segmentový embedding a pozičný embedding. Tieto sa kombinujú a prechádzajú cez jednotlivé vrstvy modelu.
Princípy trénovania BERT
BERT využíva dve tréningové úlohy. Prvou je maskované jazykové modelovanie (MLM), pri ktorom sa náhodne zakryje približne 15 % vstupných tokenov a model sa učí predpovedať ich správne hodnoty. Druhou úlohou je predikcia ďalšej vety (NSP – Next Sentence Prediction), kde model určuje, či dve vety v texte logicky nasledujú za sebou.
Tréning prebieha na veľkom korpuse textov – pôvodný BERT bol trénovaný na anglickej Wikipédii a knižnom korpuse BooksCorpus, čo predstavuje približne 3,3 miliardy slov. Po základnom predtrénovaní je možné model doladiť (fine-tuning) na špecifické úlohy s relatívne malým množstvom dát.
…názov BERT je inšpirovaný postavou z televízneho programu Sesame Street? Google má tradíciu pomenovávať svoje NLP modely podľa postáv z tohto programu.
Využitie BERT v praxi
BERT nachádza uplatnenie v širokom spektre NLP úloh. Používa sa na klasifikáciu textov, rozpoznávanie pomenovaných entít (NER), odpovedanie na otázky, analýzu sentimentu či extrakciu informácií. Google implementoval BERT do svojho vyhľadávača v roku 2019, čím výrazne zlepšil pochopenie vyhľadávacích dotazov.
Okrem základného modelu existujú viaceré varianty optimalizované pre rôzne jazyky a úlohy – napríklad multilingual BERT (mBERT) podporujúci 104 jazykov, DistilBERT s redukovanou veľkosťou či RoBERTa s vylepšeným tréningovým postupom. Pre slovenčinu je dostupný napríklad SlovakBERT trénovaný na slovenských textoch.
Zdroje a odkazy
Použité zdroje:
- Devlin et al. (2019) – BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding: https://arxiv.org/abs/1810.04805
- Google AI Blog – Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing: https://research.google/blog/open-sourcing-bert-state-of-the-art-pre-training-for-natural-language-processing/
Odporúčané zdroje:
- Hugging Face Documentation – BERT model documentation: https://huggingface.co/docs/transformers/model_doc/bert
Uvedené informácie sú orientačné a môžu sa líšiť v závislosti od verzie, implementácie a prostredia.