Hoppa till innehållet
AI-grafen
E· Universitetmodelltraning-finjustering· ca 60 min· volatil — kontrolleras ofta· verifierad 2026-09-20

Finjustering av språkmodeller

Kunna finjustera en liten modell med instruktionsdata, välja hyperparametrar och mäta förbättring mot basmodellen.

Förkunskaper

Intuition

Finjustering = fortsätt träna en förtränad modell på din data. Modellen kan redan språk; du lär den format, domän och beteende.

Instruktionsfinjustering (SFT): data är (instruktion, svar)-par. Loss räknas oftast bara på svarstokens. Modellen lär sig att svara i din stil. 500–5 000 bra exempel gör större skillnad än 50 000 dåliga.

Hyperparametrar som spelar roll: inlärningstakt (1e-5 till 2e-4 beroende på full/LoRA), 1–3 epoker (mer → memorering), effektiv batch 16–64, promptmall identisk vid träning och inferens.

Mät alltid: samma eval före och efter. Ingen förbättring på evalen = finjusteringen gjorde inget (eller gjorde skada på annat — kontrollera också en generell eval).

Kod

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

namn = "Qwen/Qwen2.5-0.5B"
tok = AutoTokenizer.from_pretrained(namn); m = AutoModelForCausalLM.from_pretrained(namn)
MALL = "### Instruktion:\n{q}\n### Svar:\n"

def koda(q, a):
    p = tok(MALL.format(q=q))["input_ids"]; s = tok(a + tok.eos_token)["input_ids"]
    ids = torch.tensor(p + s); labels = ids.clone(); labels[: len(p)] = -100   # ingen loss på prompten
    return ids, labels

opt = torch.optim.AdamW(m.parameters(), lr=1e-5)
for epok in range(2):
    for q, a in data:
        ids, labels = koda(q, a)
        loss = m(input_ids=ids[None], labels=labels[None]).loss
        loss.backward(); opt.step(); opt.zero_grad()

# inferens — SAMMA mall
x = tok(MALL.format(q="Vad är en tensor?"), return_tensors="pt")
print(tok.decode(m.generate(**x, max_new_tokens=60)[0][x["input_ids"].shape[1]:]))

I praktiken: LoRA (nästa nivå) för minne, gradient accumulation för batch, bf16, och en eval-harness som körs före/efter.

Behärskning innebär

  • Finjusterar en liten modell på instruktionsdata
  • Väljer lr, epoker och formaterar data med prompt-mall
  • Mäter förbättring mot basmodellen med en eval

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

Källor

Alla källor och licenser