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.

Vieš, že
Vieš, že…

…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.