Robocikowo>ROBOCIKOWO
Architektura

BERT

2018AktywnyOpublikowany
BERT (Bidirectional Encoder Representations from Transformers) to model językowy oparty na enkoderze Transformera, wstępnie trenowany dwukierunkowo na zadaniach Masked Language Modeling i Next Sentence Prediction.
Kluczowa innowacja
Wprowadzenie głębokiej dwukierunkowej reprezentacji języka uzyskanej przez wstępne trenowanie Transformer-encodera na zadaniu Masked Language Modeling, co umożliwiło fine-tuning jednego modelu do wielu zadań NLP z minimalną modyfikacją architektury.
Kategoria
Architektura
Poziom abstrakcji
Wzorzec
Poziom operacji
ModelTreningPo-trening
Zastosowania
Klasyfikacja tekstu i analiza sentymentuNamed Entity Recognition (NER)Question Answering (SQuAD)Natural Language InferenceWyszukiwanie semantyczne i rerankingKlasyfikacja par zdańBazowy enkoder dla downstream NLP

Jak działa

1) Tokenizacja WordPiece dzieli tekst na podsłowa; do sekwencji dodawane są tokeny [CLS] (na początku, używany jako reprezentacja całego wejścia) i [SEP] (rozdzielający segmenty). 2) Każdy token otrzymuje sumę trzech embeddingów: token, segment (A/B), pozycyjny. 3) Sekwencja przechodzi przez stos warstw enkodera Transformera (12 lub 24), z których każda zawiera Multi-Head Self-Attention bez maski przyczynowej (atencja patrzy w obie strony) oraz feed-forward sublayer z residual connections i layer normalization. 4) Pretrening: ok. 15% tokenów jest maskowanych (z czego 80% zastępowanych [MASK], 10% losowym tokenem, 10% pozostawianych) i model przewiduje oryginał (MLM); jednocześnie model klasyfikuje czy zdanie B następuje po A (NSP). 5) Fine-tuning: na końcu dodawana jest mała warstwa zadaniowa (np. liniowa nad reprezentacją [CLS] do klasyfikacji, lub spans-prediction nad wyjściami wszystkich tokenów do QA), całość trenowana jest end-to-end z małym learning rate.

Rozwiązany problem

Wcześniejsze modele językowe (LSTM-LM, ELMo, GPT-1) były albo jednokierunkowe, albo łączyły dwa niezależne jednokierunkowe modele, co ograniczało jakość kontekstowych reprezentacji słów. Brakowało też uniwersalnego pretrenowanego modelu, który po fine-tuningu osiągałby najlepsze wyniki w wielu różnych zadaniach NLP bez potrzeby projektowania osobnych architektur.

Komponenty

Transformer Encoder StackGeneruje kontekstowe reprezentacje tokenów uwzględniając cały dwukierunkowy kontekst.

Stos 12 (Base) lub 24 (Large) identycznych warstw enkodera Transformera, każda z Multi-Head Self-Attention i feed-forward sublayer.

WordPiece TokenizerDzieli tekst na podsłowa, ogranicza problem OOV.

Tokenizator subwordowy ze słownikiem ok. 30 000 elementów.

Token / Segment / Position EmbeddingsReprezentują tożsamość tokena, przynależność do segmentu A/B i pozycję w sekwencji.

Trzy uczone tablice embeddingów sumowane jako wejście do enkodera.

[CLS] Token HeadPozwala fine-tuningowi na klasyfikację jedną warstwą liniową.

Specjalny token na początku sekwencji, którego końcowa reprezentacja agreguje całą sekwencję dla zadań klasyfikacji.

MLM HeadRealizuje cel MLM podczas pretreningu.

Warstwa wyjściowa z wagami związanymi z embedding-table, używana w pretreningu do przewidywania zamaskowanych tokenów.

Implementacja

Pułapki implementacyjne
Limit 512 tokenówWysoka

Pozycyjne embeddingi są uczone i ograniczone do 512 pozycji; dłuższe dokumenty wymagają chunking, sliding window lub przejścia na warianty long-context (Longformer, BigBird).

Rozwiązanie:Stosuj sliding window z overlap, hierarchiczną agregację lub model long-context.
Niedopasowanie pretrenowania do generacjiŚrednia

BERT to enkoder dwukierunkowy — nie nadaje się do autoregresywnej generacji tekstu; do generacji używaj GPT-podobnych modeli dekodera lub seq2seq (T5, BART).

Słabość Next Sentence PredictionNiska

Późniejsze prace (RoBERTa, ALBERT) pokazały, że NSP ma niewielki lub negatywny wpływ; preferuj warianty bez NSP lub z lepszym celem (np. Sentence-Order Prediction w ALBERT).

Niespójność [MASK] między pretreningiem a fine-tuningiemNiska

Token [MASK] występuje tylko w pretreningu, nie w fine-tuningu — autorzy łagodzą to schematem 80/10/10. Świadomość tego jest istotna przy modyfikacjach pretreningu.

Ewolucja

Oryginalny paper · 2018 · NAACL-HLT 2019 · Jacob Devlin
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova
2018
Publikacja oryginalnego paper'a BERT
Punkt przełomowy

Devlin i in. publikują BERT na arXiv (październik 2018) wraz z modelami Base/Large i kodem TensorFlow.

2019
RoBERTa — ulepszony przepis pretrenowania

Facebook AI pokazuje, że BERT był undertrained; usunięcie NSP, większe batche i więcej danych dają znacznie lepsze wyniki.

2019
DistilBERT — kompresja przez distillation

Hugging Face przedstawia DistilBERT — 40% mniejszy, 60% szybszy, zachowuje 97% jakości BERT-Base.

2019
ALBERT — udostępnianie wag i SOP

Google przedstawia ALBERT z udostępnianiem parametrów między warstwami i zastąpieniem NSP przez Sentence-Order Prediction.

2020
ELECTRA — efektywniejszy cel pretrenowania

Cel 'replaced token detection' okazuje się bardziej próbkowo-wydajny niż MLM.

2019
Wdrożenie BERT w Google Search
Punkt przełomowy

Google ogłasza wykorzystanie BERT do rozumienia zapytań w wyszukiwarce — jedna z największych pojedynczych zmian jakościowych w historii Search.

Hiperparametry (konfigurowalne osie)

Liczba warstwKrytyczna

Głębokość stosu enkodera. BERT-Base: 12, BERT-Large: 24.

12BERT-Base
24BERT-Large
Wymiar ukryty (d_model)Krytyczna

Wymiar reprezentacji wewnętrznych. Base: 768, Large: 1024.

768BERT-Base
1024BERT-Large
Liczba głów atencjiWysoka

Base: 12, Large: 16.

Maksymalna długość sekwencjiWysoka

BERT używa stałej długości 512 tokenów (limit pozycyjnych embeddingów).

512Standard BERT
Rozmiar słownika WordPieceŚrednia

Standardowy słownik to 30 522 elementy (uncased) lub 28 996 (cased).

Prawdopodobieństwo maskowania (MLM)Wysoka

15% tokenów wybieranych do MLM; z tego 80% [MASK], 10% losowy, 10% bez zmian.

Złożoność obliczeniowa

Złożoność czasowa: O(L · n² · d). Złożoność przestrzenna: O(L · n² + n · d + L · d²).

Paradygmat wykonania

Tryb główny
Gęsty

Wszystkie parametry są aktywne dla każdego wejścia (dense forward pass), bez routingu czy sparsity.

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

Poziom równoległości
W pełni równoległy

Self-attention i FFN są w pełni równoległe po tokenach w obrębie warstwy; bez rekurencji (w przeciwieństwie do RNN/LSTM).

Zakres
TreningInferencjaPomiędzy tokenamiPomiędzy warstwami

Wymagania sprzętowe

Podstawowe

Operacje to gęste mnożenia macierzy (GEMM) idealne dla tensor cores; mixed-precision FP16/BF16 daje znaczne przyspieszenie.

Podstawowe

Oryginalny BERT był pretrenowany na Google TPU; architektura mapuje się dobrze na systoliczne MMU.