Install
$ agentstack add skill-param087-agent-ml-skills-ml-debugging ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
ML Debugging
Overview
ML bugs are usually silent — the code runs, but the model is wrong. Debug systematically by isolating which layer is broken: data, optimization, or generalization. Form a hypothesis, test it with the cheapest possible experiment, then move on.
When to use
- Loss is NaN/Inf or stuck.
- Metrics are implausibly high (leakage) or stuck at chance.
- Train/val curves diverge.
First move: can it overfit one batch?
The fastest sanity check in ML. Take a single small batch and train until loss ≈ 0.
x, y = next(iter(train_loader))
for _ in range(200):
optimizer.zero_grad()
loss = criterion(model(x), y)
loss.backward(); optimizer.step()
print(loss.item()) # should approach 0
- Can't overfit one batch → bug in model/loss/labels/data wiring (not capacity).
- Overfits one batch but not the dataset → optimization or regularization issue.
Symptom → cause decision tree
| Symptom | Likely cause | Fix | |---------|-------------|-----| | Loss = NaN | LR too high; log(0); /0; bad input scaling | Lower LR, clip grads, add eps, normalize inputs | | Loss flat at start | LR too low; dead ReLUs; wrong loss | Raise LR; check init; verify loss/target shapes | | Train great, val terrible | Overfitting or leakage | Regularize/augment; audit for leakage | | Val better than train | Leakage; val too easy; dropout-at-train artifact | Re-check split; inspect val set | | Metric implausibly high | Target leakage | Hunt leaked features (see EDA skill) | | Stuck at chance | Labels misaligned; data not shuffled; LR off | Verify label mapping; shuffle; sweep LR |
Leakage hunt (when results are "too good")
- Any feature with |corr| ≈ 1.0 to target?
- Is preprocessing fit before the split?
- Do rows from one entity span train and test? (use GroupKFold)
- Time series shuffled? (must be chronological)
- Is a post-outcome column (e.g.,
refund_issued) used to predict the outcome?
Optimization checklist
- Normalize/standardize inputs.
- Sweep LR over
[1e-5 ... 1e-1](log scale) — wrong LR causes most failures. - Add gradient clipping for RNNs/transformers.
- Check for NaNs in inputs/targets before training.
- Verify loss matches task (CE for classification logits, not MSE).
Pitfalls
- Changing five things at once — change one variable per experiment.
- Debugging on the full dataset — shrink to fail fast.
- Trusting metrics without inspecting predictions/confusion matrix.
Hand-off
A root-caused fix plus a regression check (the one-batch test + a held-out metric) so experiment-tracking can confirm the issue stays fixed.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: param087
- Source: param087/agent-ml-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.