Hoppa till innehållet
AI-grafen
EUniversitetModellträning och finjustering· ca 60 min· utvecklas, ses över regelbundet· verifierad 2026-09-20

Experimentspårning

Kunna logga körningar med parametrar och mått och jämföra dem systematiskt.

Intuition

Efter 40 körningar med olika lr, batch, data och kodändringar minns ingen vilken som gav 0,87. Experimentspårning = varje körning loggar automatiskt:

  • konfiguration (alla hyperparametrar, modellnamn, datamängd + version),
  • kodversion (git-commit, och om arbetsträdet var smutsigt),
  • mått per epok (loss, val-F1 …),
  • artefakter (modellvikter, förväxlingsmatris, exempel på fel),
  • miljö (paketversioner, GPU, frö).

Verktyg: MLflow, Weights & Biases, eller en enkel JSONL-fil + git. Verktyget är oviktigt; disciplinen att aldrig köra något som inte loggas är allt.

Kod

import json, subprocess, time, uuid
from pathlib import Path

class Run:
    def __init__(self, config: dict, log_dir="runs"):
        self.id = time.strftime("%Y%m%d-%H%M%S-") + uuid.uuid4().hex[:6]
        self.dir = Path(log_dir) / self.id; self.dir.mkdir(parents=True)
        git = subprocess.run(["git", "rev-parse", "HEAD"], capture_output=True, text=True).stdout.strip()
        dirty = bool(subprocess.run(["git", "status", "--porcelain"], capture_output=True, text=True).stdout)
        (self.dir / "config.json").write_text(json.dumps({**config, "git": git, "dirty": dirty}, indent=2))
        self.f = (self.dir / "metrics.jsonl").open("a")
    def log(self, step: int, **m):
        self.f.write(json.dumps({"step": step, "t": time.time(), **m}) + "\n"); self.f.flush()

run = Run({"lr": 2e-5, "epochs": 3, "data": "support-v3", "seed": 0})
for epok in range(3):
    run.log(epok, train_loss=0.5 / (epok + 1), val_f1=0.7 + 0.05 * epok)

# jämföra: läs alla runs/*/config.json + sista metrics-raden → tabell (pandas)

Med MLflow: mlflow.log_params(config); mlflow.log_metric("val_f1", f1, step=epok); mlflow.log_artifact("cm.png").

Behärskning innebär

  • Loggar körningar med parametrar, mått och artefakter
  • Jämför körningar systematiskt
  • Kopplar varje resultat till kod-commit och data-version

Förkunskaper

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

Källor

Alla källor och licenser