Hoppa till innehållet
AI-grafen
E· Universitettransformerarkitektur· ca 60 min· utvecklande· verifierad 2026-09-20

BERT och maskerad språkmodellering

Kunna förklara MLM-träning och använda en BERT-modell för klassificering.

Förkunskaper

Intuition

GPT läser från vänster: varje token ser bara det som kom före. Bra för att generera. Men för att förstå en mening — klassificera, hitta entiteter, jämföra — vill man se hela meningen åt båda håll.

BERT är en encoder: ingen kausal mask. Träning: maskera 15 % av tokens ([MASK]) och gissa dem — masked language modeling. Modellen lär sig kontextuella representationer men kan inte generera text.

Användning: lägg ett litet klassificeringshuvud ovanpå [CLS]-tokenens vektor (eller medelpoola alla), finjustera hela modellen några epoker. Med små datamängder (hundratals exempel) slår en finjusterad encoder ofta en promptad LLM i både träffsäkerhet och kostnad.

Kod

from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline

namn = "KB/bert-base-swedish-cased"          # svensk BERT (KB-lab)
tok = AutoTokenizer.from_pretrained(namn)
modell = AutoModelForSequenceClassification.from_pretrained(namn, num_labels=3)

batch = tok(["Servicen var utmärkt", "Aldrig mer"], padding=True, truncation=True, return_tensors="pt")
print(batch["input_ids"].shape)              # (2, T)
logits = modell(**batch).logits              # (2, 3) — otränat huvud tills du finjusterat

# MLM-demo
fill = pipeline("fill-mask", model=namn)
print(fill("Stockholm är Sveriges [MASK].")[0]["token_str"])   # huvudstad

Finjustering: Trainer eller en vanlig PyTorch-loop, lr ≈ 2e-5, 3 epoker, batch 16–32. Frys inget — hela modellen uppdateras.

Formellt

MLM-målet: för maskerade positioner M\mathcal M, minimera −∑t∈Mlog⁡pθ(xt∣x~)-\sum_{t\in\mathcal M}\log p_\theta(x_t\mid \tilde x) där x~\tilde x är sekvensen med mask. BERT använder 80/10/10 (mask/slumptoken/oförändrad) för att minska diskrepansen mellan träning och finjustering, då [MASK] aldrig förekommer vid inferens. Encoder-attention är full (T×TT\times T utan mask), vilket ger bidirektionell kontext men gör modellen icke-autoregressiv. Sentence-embeddings (SBERT) tränas kontrastivt så att cosinuslikhet mellan poolade vektorer speglar semantisk likhet — grunden för semantisk retrieval.

Behärskning innebär

  • Förklarar MLM-träning och skillnaden mot kausal LM
  • Använder en encoder för klassificering via [CLS] eller pooling
  • Väljer encoder eller decoder efter uppgift

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser