BERT (language model) (HU)
BERT (Bidirectional Encoder Representations from Transformers, kétirányú kódoló reprezentációk transformerekből) — egy nagy nyelvi modell (LLM) a természetes nyelv megértéséhez, amelyet a Google kutatói fejlesztettek ki és 2018-ban mutattak be. A BERT új korszakot nyitott a természetes nyelvfeldolgozásban (NLP), páratlan teljesítményt nyújtva feladatok széles spektrumán, és iparági szabványként meghonosítva az „előtanítás + finomhangolás" (pre-train & fine-tune) paradigmát.
A BERT kulcsinnovációja a mélyen kétirányú architektúra, amely lehetővé teszi a modell számára, hogy egy szó kontextusát egyszerre, a hálózat összes rétegében balról és jobbról is figyelembe vegye. Ezt egy új előtanítási feladat, a Masked Language Modeling (MLM) segítségével éri el.
Elnevezés és működési elv
A BERT betűszó a Bidirectional Encoder Representations from Transformers kifejezés rövidítése.
- Bidirectional (Kétirányú): A modell alapvető tulajdonságára utal — arra a képességre, hogy egy szó kontextusát mindkét irányban (balról jobbra és jobbról balra) egyszerre dolgozza fel. Az egyirányú modellekkel (mint a GPT) ellentétben, amelyek egy szó feldolgozásakor csak az azt megelőző kontextust látják, a BERT az egész sorozatot egyben látja, ami mélyebb és pontosabb szójelentés-megértést tesz lehetővé.
- Encoder (Kódoló): Azt jelenti, hogy a BERT kizárólag a Transformer architektúra kódoló részét használja. A kódoló feladata, hogy beolvassa a bemeneti szövegsorozatot, és minden tokenhez gazdag kontextuális reprezentációt (vektort) hozzon létre. A BERT nem alkalmas szabad szöveggenerálásra, ellentétben a dekódoló modellekkel.
- Representations (Reprezentációk): A modell arra tanítódik, hogy magas minőségű numerikus reprezentációkat (vektorokat vagy embeddingeket) hozzon létre szavakhoz és mondatokhoz, amelyek aztán különféle NLP-feladatok megoldásához használhatók.
- from Transformers: Arra utal, hogy a modell architektúrája teljes egészében a Transformeren alapul.
Fejlesztéstörténet
A BERT kifejlesztése több kulcsfontosságú áttörés eredménye volt az NLP területén:
- Kontextuális embeddingek: Az olyan modellek, mint a Word2vec és a GloVe, statikus vektorokat hoztak létre szavakhoz, figyelmen kívül hagyva a kontextust. Az ELMo modell (2018) előrelépést jelentett, kétirányú LSTM-hálózatok segítségével kontextusfüggő reprezentációkat generálva, azonban ez a kétirányúság „felszínes" volt (két egyirányú modell konkatenációja).
- Transzfertanulás és GPT: 2018 közepén az OpenAI bemutatta a GPT modellt, amely megmutatta, hogy hatékony egy nagy transformer modell előtanítása jelöletlen adatokon, majd finomhangolása (fine-tuning) konkrét feladatokra. A GPT azonban szigorúan egyirányú volt (balról jobbra), ami korlátozta a teljes kontextus megértését igénylő feladatokon nyújtott teljesítményét.
Felismerve ezeket a korlátokat, a Jacob Devlin vezette Google-kutatók kifejlesztették a BERT-et, hogy valóban mélyen kétirányú modellt hozzanak létre. A BERT-ről szóló cikk 2018 októberében jelent meg az arXiv-on, a kód és az előtanított modellek nyilvánosan elérhetővé váltak, ami robbanásszerű érdeklődést váltott ki a tudományos közösségben. A BERT rekordot döntött 11 kulcsfontosságú NLP-benchmarkon, köztük a GLUE-n és a SQuAD-on, és az NLP „ImageNet-pillanataként" emlegették, mivel egyetlen univerzális modell könnyen adaptálható volt számtalan feladathoz.
Architektúra
A BERT teljes egészében a Transformer architektúra kódoló részén (encoderéen) alapul. Több egymásra épített, azonos rétegből áll. Két fő verzió létezik:
- BERT-Base: 12 réteg, 12 figyelemfej, rejtett állapot mérete 768, paraméterek száma összesen ~110 millió.
- BERT-Large: 24 réteg, 16 figyelemfej, rejtett állapot mérete 1024, paraméterek száma összesen ~340 millió.
Minden réteg két fő alréteget tartalmaz:
- Többfejű ön-figyelem mechanizmus (Multi-Head Self-Attention): Lehetővé teszi, hogy a bemeneti sorozat minden tokenje „figyelmet fordítson" az összes többi tokenre, súlyozva azok fontosságát saját kontextuális jelentésének meghatározásához.
- Teljesen összekötött neurális hálózat (Feed-Forward Network): Minden tokenre külön-külön alkalmazzák.
Bemeneti adatok
A BERT megfelelő működéséhez speciális bemeneti adatformázás szükséges. A bemenetként megadott tokensorozat mindig a speciális `[CLS]` (classification) tokennel kezdődik, amelyet a teljes szöveg osztályozási feladatainál használnak. Ha a bemenet mondatpárt tartalmaz (például kérdés-válasz rendszereknél), a mondatokat a `[SEP]` (separator) token választja el.
Az egyes tokenek végső bemeneti reprezentációja három embedding összegeként áll elő:
- Token-embedding: A szótárban szereplő adott tokennek megfelelő vektor (a BERT WordPiece tokenizálást alkalmaz).
- Szegmens-embedding: Jelzi, hogy a token melyik mondathoz tartozik (az elsőhöz vagy a másodikhoz).
- Pozicionális embedding: A token pozícióját jelöli a sorozatban, mivel a Transformer architektúra önmagában nem veszi figyelembe a szavak sorrendjét.
Előtanítási feladatok
A mély kétirányúság biztosítása érdekében a BERT egyszerre két egyedi feladaton tanítódik.
Masked Language Modeling (MLM)
Ez a BERT kulcsinnovációja. Ahelyett, hogy a következő szót jósolná meg, mint a hagyományos nyelvi modellek, a BERT a mondatban véletlenszerűen „maszkolt" szavakat jósolja meg. A folyamat a következőképpen néz ki:
- A bemeneti sorozatból véletlenszerűen a tokenek 15%-a kerül kiválasztásra.
- Ebből a 15%-ból:
- 80%-uk a speciális `[MASK]` tokenre cserélődik.
- 10%-uk a szótár egy véletlenszerű tokenjére cserélődik.
- 10%-uk változatlan marad.
- A modell feladata, hogy megjósolja e 15% token eredeti értékét a körülöttük lévő (bal és jobb oldali) kontextus alapján.
Ez a séma arra kényszeríti a modellt, hogy mély szemantikai és szintaktikai kapcsolatokat tanuljon a szavak között, és valóban kétirányúvá teszi.
Next Sentence Prediction (NSP)
Ezt a feladatot azért fejlesztették ki, hogy megtanítsák a BERT-nek a mondatok közötti összefüggések megértését, ami kritikus fontosságú az olyan feladatoknál, mint a kérdés-válasz rendszerek vagy a szöveges implikáció elemzése (NLI). A modell bemenetébe mondatpárt (A és B) adnak, és meg kell jósolnia, hogy a B mondat logikus folytatása-e az A mondatnak.
- Az esetek 50%-ában a B valóban az eredeti szöveg következő mondata.
- Az esetek 50%-ában a B egy véletlenszerű mondat a korpusz egy másik részéből.
Későbbi kutatások (például a RoBERTa modellben) kimutatták, hogy az NSP-feladat kevésbé fontos, mint az MLM, és el lehet hagyni hatékonyabb tanítási sémák javára, de az eredeti BERT-ben fontos szerepet játszott.
Alkalmazás és finomhangolás (Fine-Tuning)
A BERT ereje a transzfertanulás paradigmájában rejlik. A hatalmas korpuszokon (Wikipedia + BooksCorpus) végzett nagyszabású és költséges előtanítás után az előtanított modell könnyen és gyorsan finomhangolható (fine-tune) konkrét alkalmazási feladatok megoldásához.
A finomhangolás folyamata általában a következőképpen néz ki: 1. Az előtanított BERT architektúrájához egy kis, betanítandó, feladatspecifikus réteget adnak hozzá (például egy osztályozót hangulatelemzéshez). 2. A teljes modellt (beleértve a BERT súlyait és az új réteget) egy kis, annotált adathalmazon tanítják az adott konkrét feladatra.
Példák a feladatokra, amelyekhez a BERT adaptálható:
- Szövegosztályozás (hangulatelemzés, spamszűrők): A `[CLS]` token kimenetéhez osztályozót adnak.
- Kérdés-válasz rendszerek (pl. SQuAD): A modellt arra tanítják, hogy megjósolja a válasz kezdő és záró tokenjét egy adott szövegben.
- Névelem-felismerés (NER): Minden token kimenetéhez osztályozót adnak, amely meghatározza, hogy a token személy-, szervezet-, dátum- stb. névelem-e.
Változatok és származtatott modellek
A BERT sikere egy egész modellfamília megjelenéséhez vezetett, amelyek az ötletein alapulnak:
- RoBERTa (a Facebook AI-tól): „Robusztusabban optimalizált BERT". Nem új architektúra, hanem a BERT gondosabb és hosszabb tanításának eredménye: több adaton, NSP-feladat nélkül és dinamikus maszkolással. A RoBERTa megmutatta, hogy az eredeti BERT „alultanított" volt, és az összes fő benchmarkon felülmúlta azt.
- DistilBERT (a Hugging Face-től): A BERT csökkentett méretű változata, tudásdesztilláció technikájával létrehozva. A DistilBERT 40%-kal kisebb, 60%-kal gyorsabb, és a BERT teljesítményének 97%-át megőrzi, ami ideálissá teszi éles környezetben és korlátozott erőforrású eszközökön való alkalmazásra.
- ALBERT (A Lite BERT, a Google-tól): A paraméterszám csökkentésére optimalizált verzió. Két kulcstechnikát alkalmaz: embedding-faktorizációt és rétegek közötti paramétermegosztást (cross-layer parameter sharing). Ez lehetővé teszi sokkal nagyobb modellek létrehozását kevesebb paraméterrel.
- mBERT (Multilingual BERT): A BERT olyan változata, amelyet 104 nyelven egyszerre tanítottak elő. Meglepő képességet mutatott a tudás keresztnyelvű átvitelére.
- Domén-specifikus modellek: Számos modell, amelyeket konkrét szakterületek adatain hangoltak finomra, mint például a BioBERT (biomedicina), a SciBERT (tudományos szövegek) és a FinBERT (pénzügy).
- ModernBERT (2024–2025): A BERT-szerű modellek új generációja az Answer.AI és a LightOn vállalatoktól, amely modern architekturális fejlesztéseket tartalmaz, például RoPE (Rotary Position Embeddings) és hosszabb kontextusok támogatása (legfeljebb 8192 token), miközben megőrzi a BERT alapelveit.
Összehasonlítás más modellekkel
| Modell | Fejlesztő | Architektúra | Kontextus iránya | Fő feladat |
|---|---|---|---|---|
| BERT | Encoder | Kétirányú | Szövegmegértés, osztályozás, kinyerés | |
| GPT | OpenAI | Decoder | Egyirányú (balról jobbra) | Szöveggenerálás, sorozatfolytatás |
| XLNet | Google / CMU | Autoregresszív (permutációs) | Kétirányú (elméletben) | Szövegmegértés (MLM alternatívája) |
| T5 | Encoder-Decoder | Kétirányú (encoder) + Egyirányú (decoder) | Univerzális „szövegből szövegbe" átalakítás |
Hatás
A BERT valódi forradalmat idézett elő az NLP-ben, és alapot teremtett számos ezt követő fejlesztéshez:
- Meghonosította az „előtanítás + finomhangolás" paradigmát mint az NLP domináns megközelítését.
- Bizonyította a mély kétirányú kontextus fontosságát a nyelvmegértéshez.
- Csökkentette a belépési küszöböt a nagy teljesítményű NLP-rendszerek létrehozásához, mivel a kutatóknak és fejlesztőknek már nem kellett minden feladathoz összetett architektúrákat nulláról felépíteniük.
- Integrálták a Google Keresőbe, ami a keresőmotor történetének egyik legnagyobb frissítése volt, és szemléletesen megmutatta a modell gyakorlati hasznát.
- Egy egész ökoszisztémát hívott életre — származtatott modellekből, eszközökből és kutatásokból álló közösséget ("BERTology"), a mesterséges intelligencia egyik legtöbbet idézett munkájává válva.
Annak ellenére, hogy az újabb és nagyobb modellek, mint a GPT-3 és a GPT-4, számos benchmarkon felülmúlták a BERT-et (különösen generatív feladatokon), a BERT és változatai ma is erőteljes és széles körben alkalmazott eszközök a mély szövegmegértést igénylő feladatoknál.
Hivatkozások
- A BERT hivatalos tárolója a GitHubon
- A BERT bejelentése a Google AI blogjában
- The Illustrated BERT — a BERT architektúrájának vizuális magyarázata
Irodalom
- 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.