BERT (Bidirectional Encoder Representations from Transformers)
BERT ist Googles bidirektionaler Transformer-Encoder, der darauf vortrainiert wurde, maskierte Wörter anhand ihres linken und rechten Kontexts vorherzusagen. Behandelt die Funktionsweise, das Fine-Tuning und Varianten.
BERT (bidirektionale Encoder-Repräsentationen aus Transformern) ist ein Transformer-Encoder, der einen ganzen Satz auf einmal verarbeitet und die Repräsentation jedes Wortes aus den Wörtern auf beiden Seiten bildet. Jacob Devlin, Ming-Wei Chang, Kenton Lee und Kristina Toutanova von Google AI Language stellten BERT im Oktober 2018 in BERT: Vortraining bidirektionaler Transformer für das Sprachverständnis vor; die Arbeit erhielt den Preis für den besten Langbeitrag auf der NAACL 2019. Ein einzelnes vortrainiertes BERT, das mit einer zusätzlichen Ausgabeschicht feinabgestimmt wurde, erzielte neue Spitzenwerte bei elf Aufgaben der natürlichen Sprachverarbeitung (NLP), hob den GLUE-Benchmarkwert auf 80,5 % – eine absolute Verbesserung um 7,7 Punkte – und erreichte beim Fragebeantworten auf SQuAD v1.1 einen Test-F1-Wert von 93,2.
Wie BERT vortrainiert wird#
BERT-Base besteht aus 12 Encoder-Schichten mit verborgenen Zuständen von 768 Dimensionen und 12 Attention-Heads sowie etwa 110 Millionen Parametern. BERT-Large hat 24 Schichten, 1.024 Dimensionen, 16 Heads und 340 Millionen Parameter. Der Eingabetext wird durch WordPiece-Tokenisierung in ein Vokabular mit 30.000 Tokens aufgeteilt, ein spezielles [CLS]-Token eröffnet jede Sequenz und [SEP] trennt die beiden Segmente eines Satzpaars. Google trainierte beide Größen vorab mit BooksCorpus (800 Millionen Wörter) und der englischen Wikipedia (2.500 Millionen Wörter) anhand zweier selbstüberwachter Lernziele.
Beim maskierten Sprachmodellieren (MLM) werden 15 % der Tokenpositionen ausgewählt: 80 % davon werden durch [MASK] ersetzt, 10 % durch ein zufälliges Token und 10 % bleiben unverändert. Das Modell sagt dann die ursprünglichen Tokens voraus. BERTs Self-Attention hat keine Kausalmaske, daher stützt sich jede Vorhersage auf den Kontext von beiden Seiten – anders als bei einem Sprachmodell, das von links nach rechts liest. Bei der Vorhersage des nächsten Satzes (NSP) wird jedes Segment in der Hälfte der Fälle mit seinem tatsächlichen Nachfolger und sonst mit einem zufälligen Satz gepaart. Ein Klassifikator auf der Ausgabe von [CLS] lernt, die beiden Fälle zu unterscheiden.
Ein vortrainierter Checkpoint behält seinen Kopf für maskierte Wörter, sodass das ursprüngliche Modell eine Lücke direkt füllen kann:
from transformers import pipeline
# # BERT sagt ein maskiertes Wort anhand der Wörter auf beiden Seiten voraus
fill = pipeline("fill-mask", model="bert-base-uncased")
for text in ["She went to the [MASK] to buy bread.", "She went to the [MASK] to see a doctor."]:
predictions = fill(text, top_k=3)
print(text, [(p["token_str"], round(p["score"], 2)) for p in predictions])Die beiden Sätze unterscheiden sich nur nach der Lücke, und BERTs beste Vorhersage wechselt von „market“ (0.82) zu „hospital“ (0.78). Ein Modell, das von links nach rechts liest, sieht in beiden Sätzen „She went to the“ und hat nichts, woran es sie unterscheiden könnte.
Feinabstimmung und Anwendungen#
Feinabstimmung ergänzt eine kleine Aufgabenschicht und trainiert alle Gewichte mit beschrifteten Beispielen – ein Ansatz, der Transferlernen zum Standard in der NLP machte. Der [CLS]-Vektor dient als Eingabe für Klassifikatoren auf Satzebene, etwa zur Sentimentanalyse; jeder Tokenvektor dient als Eingabe für Aufgaben wie die Erkennung benannter Entitäten (NER), und Start- und Endwerte über den Tokens extrahieren Antwortspannen.
Im Oktober 2019 setzte Google BERT bei jeder zehnten englischsprachigen Suche in den USA ein. Als Beispiel nannte Google die Suchanfrage „2019 brazil traveler to usa need a visa“, bei der BERT erkannte, dass „to“ eine brasilianische Person bezeichnet, die in die USA reist. Bis Oktober 2020 lief BERT bei fast jeder englischen Suchanfrage. Encoder aus der BERT-Familie erzeugen auch die Embeddings für die semantische Suche: Sentence-BERT stimmt BERT darauf ab, jeden Satz für die Vektorsuche auf einen Vektor abzubilden, ColBERT behält einen Vektor pro Token bei, und Cross-Encoder-Reranker bewerten Abfrage-Passage-Paare in Pipelines für die Retrieval-Augmented Generation (RAG).
Bei der Vision-Language-Erkennung kodiert Grounding DINO Text-Prompts zunächst mit einem BERT-base-Encoder, bevor sie mit Bildbereichen abgeglichen werden. Ultralytics Platform stellt Grounding DINO bereit für die intelligente Annotation mit Klassen-Prompts. Dabei werden die Klassennamen eines Datensatzes in bearbeitbare Boxen umgewandelt, mit denen ein YOLO26-Detektor trainiert werden kann. Maskierte Vorhersagen wurden auch auf Bilder übertragen: Der Vision Transformer (ViT) übernahm BERTs [CLS]-Token für die Klassifizierung. Maskierte Autoencoder (MAE) trainieren Bildencoder vor, indem sie 75 % der Bildausschnitte verbergen und rekonstruieren lassen.
BERT im Vergleich zu GPT und späteren Encodern#
GPT-Modelle basieren auf dem Transformer-Decoder mit einer Kausalmaske. Sie sagen jedes nächste Token anhand der vorhergehenden Tokens voraus und eignen sich daher für die Textgenerierung. BERT gibt für jedes Eingabe-Token einen Vektor aus und eignet sich damit für Klassifizierung, Extraktion und Suche; eine eingebaute Möglichkeit, Text von links nach rechts zu schreiben, hat es nicht. Ein Large Language Model (LLM) mit Milliarden Parametern bewältigt viele derselben Verständnisaufgaben mithilfe von Prompts, aber die Kosten pro Abfrage sind um ein Vielfaches höher als bei einem Encoder mit 110 Millionen Parametern.
Spätere Encoder verfeinerten den Ansatz. Metas RoBERTa ließ NSP weg und wurde länger mit größeren Batches auf etwa 160 GB Text trainiert. Das zeigte, dass BERT deutlich unzureichend trainiert worden war. Hugging Faces DistilBERT nutzte Wissensdestillation, um die Parameterzahl um 40 % zu senken und 60 % schneller zu laufen, während 97 % von BERTs Sprachverständnisleistung erhalten blieben. ModernBERT, das Answer.AI und LightOn im Dezember 2024 veröffentlichten, wurde mit 2 Billionen Tokens und einer nativen Kontextlänge von 8.192 Tokens trainiert – dem 16-Fachen von BERTs Grenze von 512 Tokens.










