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

Experimentspårning

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

Förkunskaper

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

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

Källor

Alla källor och licenser