Training Run Triage
Purpose
Turn a large, noisy training run into an evidence-based diagnosis.
This skill is for:
- reading and interpreting training logs
- understanding why a run succeeded, plateaued, diverged, overfit, underfit, or regressed
- finding instability and bottlenecks
- extracting the main story of the run
- identifying what was missing in instrumentation
- recommending the next most informative actions
The goal is not to restate charts.
The goal is to explain what happened, why it likely happened, and what to do next.
Use when
Use this skill when:
- the user shares training logs, metric screenshots, ClearML tasks, run IDs, or artifact links
- the user asks what happened in training
- a run looks degraded, unstable, surprisingly good, suspiciously flat, or too slow
- the user wants interpretation of metrics and dynamics
- the user wants postmortem analysis of an experiment
- the user wants to compare the run against expectation, previous runs, or baseline
Typical trigger phrases:
- "разбери логи обучения"
- "посмотри clearml"
- "что случилось с этим run"
- "почему деградация"
- "тут instability, разберись"
- "проинтерпретируй метрики"
- "почему обучение такое медленное"
- "почему val ведет себя странно"
- "analyze this training run"
- "triage this experiment"
Do not use when
Do not use this skill for:
- designing a training pipeline from scratch
- writing training code as the primary task
- generic performance optimization of unrelated application code
- paper analysis
- full experiment roadmap creation
- hyperparameter search planning without a concrete run to inspect
Inputs
Expected inputs:
- a concrete run, task, experiment, or a small set of runs
- the current source context for where to fetch logs and artifacts
- run metadata and available artifacts
Optional inputs:
- baseline run(s)
- expected behavior or success criteria
- screenshots of metrics
- known recent code, data, or config changes
- hypotheses already under consideration
Outputs
Always produce:
- run verdict
- concise run narrative or timeline
- evidence-backed interpretation of key metrics
- diagnosis of degradation, instability, bottlenecks, and anomalies
- surprising findings
- missing instrumentation or missing artifacts
- prioritized next actions
- optionally, a written triage note if the repository already keeps experiment analyses
Core responsibilities
This skill must not stop at "loss went down" or "val is noisy".
It must explicitly cover:
- run context reconstruction
- metric interpretation
- convergence quality
- generalization behavior
- instability detection
- efficiency and bottleneck diagnosis
- artifact inspection
- logging-quality audit
- next-step recommendation
Constraints
- If the current session already makes the run source obvious, use that source directly.
- Only ask for clarification when the target run is genuinely ambiguous.
- Verify logging integrity before trusting metric curves.
- Separate strong conclusions from plausible hypotheses.
- Prefer compact, evidence-backed findings over generic ML advice.
- End with the smallest high-signal next actions rather than a broad experiment wishlist.
Procedure
Identify the target run(s).
Infer from the current session context which run or server/source to use.
If one source is clearly implied by the conversation, use it directly.
Only ask for clarification if the target run is genuinely ambiguous.
Collect the full run context.
Fetch, inspect, and summarize:
- run name, task ID, and timestamps
- experiment group or tags
- code version, commit, or branch if available
- config and hyperparameters
- optimizer and scheduler settings
- batch size, accumulation, and precision mode
- dataset, split, and version information
- checkpoint settings
- resume or restart information
- host, GPU, and hardware metadata
- console logs
- scalar histories
- system telemetry
- evaluation artifacts
- saved predictions, examples, confusion matrices, PR curves, or tables
- related baseline runs if visible
Reconstruct the run timeline.
Build a practical timeline:
- startup or initialization
- warmup
- early learning
- stable training region
- plateau, overfit onset, divergence point, or slowdown point
- checkpoint peaks
- termination condition
- resume events or interruptions if any
Validate logging integrity before interpretation.
Check whether the logs themselves are trustworthy:
- metric names are consistent
- step or epoch alignment is correct
- train and validation are comparable
- smoothing is not hiding spikes
- "best" checkpoint and displayed metric actually correspond
- eval cadence is not too sparse or misleading
- missing points, resets, or resumed counters are understood
- metrics are computed on the expected subset or split
- directionality is correct
Interpret optimization dynamics.
Analyze:
- train loss shape
- validation loss shape
- learning rate schedule and phase transitions
- gradient norm, clipping, or overflow indicators if present
- loss spikes, oscillation, NaNs, or sudden collapses
- stabilization after warmup
- signs of too-high LR, too-low LR, scheduler bugs, or bad warmup
- effect of regularization, augmentation, label smoothing, EMA, and similar settings if inferable
Interpret model quality and generalization.
Analyze:
- best metric vs final metric
- gap between train and validation
- underfitting vs overfitting
- slow but healthy improvement vs fake plateau
- validation noise level
- whether the model is genuinely learning useful structure
- whether gains are statistically weak, noisy, or fragile
- checkpoint selection quality
- whether early stopping would have helped or hurt
Inspect class-wise or slice-wise behavior when possible.
If artifacts allow, inspect:
- per-class metrics
- long-tail classes
- rare-event behavior
- threshold sensitivity
- calibration issues
- confusion structure
- subgroup or slice regressions
- headline metric looks fine but critical slice is bad
Inspect qualitative artifacts when available.
Review:
- sampled predictions
- failure examples
- attention, saliency, or visualization artifacts if present
- confusion matrices
- precision-recall, ROC, or calibration curves
- bad examples or edge cases
Use qualitative artifacts to refine, not replace, the metric-based conclusion.
Diagnose instability.
Explicitly look for:
- divergence
- oscillation
- late-epoch collapse
- exploding or vanishing gradients
- mixed-precision overflow or scaler instability
- batch-statistics instability
- checkpoint corruption or bad resume state
- data ordering or sampler issues
- extreme sensitivity to seed or eval subset noise
- unstable thresholded metrics
Diagnose efficiency and bottlenecks.
Analyze available telemetry and logs for:
- throughput over time
- GPU utilization
- memory pressure or OOM proximity
- data loader starvation
- CPU bottlenecks
- disk, network, or object-store I/O stalls
- evaluation overhead
- checkpoint save overhead
- logging overhead
- synchronization or distributed-training stalls
- unusually slow startup or compile time
- expensive augmentations or preprocessing
Separate bad model learning from slow system execution.
- Compare against baseline or neighboring runs when possible.
If related runs are available:
- compare config deltas
- compare data version deltas
- compare code changes
- compare metric trajectories, not just final values
- isolate which change likely moved the outcome
- identify whether the current run is genuinely worse or only appears worse due to noise, cadence, or metric-definition drift
- Identify surprising findings.
Surface facts that are easy to miss, for example:
- best checkpoint happened much earlier than expected
- train improved while validation never really moved
- validation is too noisy to support strong conclusions
- apparent degradation came from changed metric definition
- run spent large time outside actual training
- one class or slice drove the whole metric movement
- the run was likely bottlenecked by evaluation, not optimization
- resume likely altered behavior
- last checkpoint is materially worse than best
- improvement exists but is operationally irrelevant
- Audit missing instrumentation.
Explicitly list what was missing and would have made diagnosis materially better, such as:
- gradient norm or clipping stats
- LR logging per step or phase
- throughput and samples per second
- data loader time vs step time
- per-class metrics
- confusion matrices
- calibration or threshold curves
- train/validation split identifiers and dataset version
- checkpoint summary table
- qualitative sample panels
- system telemetry
- augmentation statistics
- optimizer state summaries
- memory usage over time
- eval latency breakdown
- seed and reproducibility metadata
- exact code snapshot or commit
- Produce a ranked diagnosis.
Separate:
- strong conclusions supported by evidence
- plausible hypotheses
- unknowns blocked by missing logs
- Produce a next-step plan.
Recommend only the most informative next actions, prioritized by signal-to-cost ratio:
- small rerun with logging fixes
- one targeted ablation
- one config correction
- one bottleneck removal
- one validation improvement
Avoid generic "try many hyperparameters" advice.
Decision rules
Evidence rule
Every major conclusion must be tied to observed metrics, logs, telemetry, or artifacts.
Do not speculate without labeling the statement as a hypothesis.
Run-story rule
Do not report isolated facts only.
Construct a coherent narrative of the run.
Metric-integrity rule
Before trusting a metric, verify that it is computed, aligned, and displayed correctly.
Bottleneck rule
Separate optimization pathology from systems pathology.
A slow run is not necessarily a bad-learning run, and a bad-learning run is not necessarily system-bound.
Comparison rule
When baselines exist, interpret deltas relative to the changed config, data, or code, not only by absolute final metric.
Missing-data rule
Always state what cannot be concluded due to missing instrumentation or artifacts.
Actionability rule
End with a short ranked list of next actions that maximally reduce uncertainty.
Optional subagent use
For large runs or rich experiment trackers, explicitly use bounded subagents:
one run-fetcher subagent:
gathers metrics, console logs, artifacts, config, system telemetry, and relevant neighboring runs
one metric-forensics subagent:
interprets curves, instability patterns, generalization behavior, and checkpoint dynamics
one systems-bottleneck subagent:
inspects throughput, utilization, I/O stalls, eval overhead, and training-system efficiency
Wait for all bounded analyses, then merge them into one final triage report.
Do not use multiple subagents for a tiny local log snippet.
References
Use the supporting references when needed:
references/metric-interpretation-checklist.md
references/instability-signals.md
references/missing-logging-checklist.md
references/systems-bottleneck-checklist.md
references/experiment-comparison-template.md
Suggested report structure
The final triage report should contain:
- Run summary
- Verdict
- Timeline
- Key metrics and interpretation
- Generalization or convergence diagnosis
- Instability diagnosis
- Bottleneck diagnosis
- Surprising findings
- Missing instrumentation
- Ranked next actions
- Confidence or unknowns
Optional persisted document
If the repository already has a notes or experiment-analysis convention, write a note such as:
docs/analyses/training-runs/<run-slug>.md
notes/experiments/<run-slug>.md
Otherwise return the report directly in chat.
Definition of done
- The run context was reconstructed from logs, artifacts, config, and metadata.
- Metric interpretation is tied to concrete evidence.
- Learning pathology and systems pathology are separated clearly.
- Missing instrumentation is explicit and actionable.
- The next-step list is short, prioritized, and designed to reduce uncertainty.
Final response format
Return a compact answer in this structure:
- Run: ...
- Verdict: ...
- Timeline: ...
- Key metric interpretation: ...
- Instability or degradation: ...
- Bottlenecks: ...
- Surprising findings: ...
- Missing logs or artifacts: ...
- Next actions: ...
- Confidence or unknowns: ...
Positive examples
Use this skill for:
- "разбери run в clearml"
- "что случилось с этим обучением"
- "почему деградация после 8 эпохи"
- "посмотри метрики и скажи, норм ли run"
- "где здесь instability"
- "почему run такой медленный"
- "analyze this training run"
Negative examples
Do not use this skill for:
- "сделай план новой архитектуры"
- "напиши training loop"
- "ускорь этот не-ML модуль"
- "прочитай статью и предложи идею"
- "пофикси баг в инференсе"
1---2name: training-run-triage3description: Analyze a machine learning training run using logs, metrics, artifacts, config, and system telemetry. Trigger when the user asks to analyze a training run, ClearML task, degradation, instability, divergence, weak results, bottlenecks, surprising metrics, or compare runs, including phrases like "разбери логи обучения", "посмотри clearml run", "что случилось с обучением", "почему деградировало", "где instability", "почему обучение медленное", and "проинтерпретируй метрики". Fetch relevant run data, reconstruct run context and timeline, check metric/log integrity, diagnose learning quality, instability, efficiency, and bottlenecks, then return an evidence-based triage report with surprises, missing instrumentation, and ranked next actions. Do not use for code review, experiment-roadmap planning, paper reading, or direct model implementation.4---56# Training Run Triage78## Purpose910Turn a large, noisy training run into an evidence-based diagnosis.1112This skill is for:13- reading and interpreting training logs14- understanding why a run succeeded, plateaued, diverged, overfit, underfit, or regressed15- finding instability and bottlenecks16- extracting the main story of the run17- identifying what was missing in instrumentation18- recommending the next most informative actions1920The goal is not to restate charts.21The goal is to explain what happened, why it likely happened, and what to do next.2223## Use when2425Use this skill when:26- the user shares training logs, metric screenshots, ClearML tasks, run IDs, or artifact links27- the user asks what happened in training28- a run looks degraded, unstable, surprisingly good, suspiciously flat, or too slow29- the user wants interpretation of metrics and dynamics30- the user wants postmortem analysis of an experiment31- the user wants to compare the run against expectation, previous runs, or baseline3233Typical trigger phrases:34- "разбери логи обучения"35- "посмотри clearml"36- "что случилось с этим run"37- "почему деградация"38- "тут instability, разберись"39- "проинтерпретируй метрики"40- "почему обучение такое медленное"41- "почему val ведет себя странно"42- "analyze this training run"43- "triage this experiment"4445## Do not use when4647Do not use this skill for:48- designing a training pipeline from scratch49- writing training code as the primary task50- generic performance optimization of unrelated application code51- paper analysis52- full experiment roadmap creation53- hyperparameter search planning without a concrete run to inspect5455## Inputs5657Expected inputs:58- a concrete run, task, experiment, or a small set of runs59- the current source context for where to fetch logs and artifacts60- run metadata and available artifacts6162Optional inputs:63- baseline run(s)64- expected behavior or success criteria65- screenshots of metrics66- known recent code, data, or config changes67- hypotheses already under consideration6869## Outputs7071Always produce:721. run verdict732. concise run narrative or timeline743. evidence-backed interpretation of key metrics754. diagnosis of degradation, instability, bottlenecks, and anomalies765. surprising findings776. missing instrumentation or missing artifacts787. prioritized next actions798. optionally, a written triage note if the repository already keeps experiment analyses8081## Core responsibilities8283This skill must not stop at "loss went down" or "val is noisy".8485It must explicitly cover:86- run context reconstruction87- metric interpretation88- convergence quality89- generalization behavior90- instability detection91- efficiency and bottleneck diagnosis92- artifact inspection93- logging-quality audit94- next-step recommendation9596## Constraints9798- If the current session already makes the run source obvious, use that source directly.99- Only ask for clarification when the target run is genuinely ambiguous.100- Verify logging integrity before trusting metric curves.101- Separate strong conclusions from plausible hypotheses.102- Prefer compact, evidence-backed findings over generic ML advice.103- End with the smallest high-signal next actions rather than a broad experiment wishlist.104105## Procedure1061071. Identify the target run(s).108 Infer from the current session context which run or server/source to use.109 If one source is clearly implied by the conversation, use it directly.110 Only ask for clarification if the target run is genuinely ambiguous.1111122. Collect the full run context.113 Fetch, inspect, and summarize:114 - run name, task ID, and timestamps115 - experiment group or tags116 - code version, commit, or branch if available117 - config and hyperparameters118 - optimizer and scheduler settings119 - batch size, accumulation, and precision mode120 - dataset, split, and version information121 - checkpoint settings122 - resume or restart information123 - host, GPU, and hardware metadata124 - console logs125 - scalar histories126 - system telemetry127 - evaluation artifacts128 - saved predictions, examples, confusion matrices, PR curves, or tables129 - related baseline runs if visible1301313. Reconstruct the run timeline.132 Build a practical timeline:133 - startup or initialization134 - warmup135 - early learning136 - stable training region137 - plateau, overfit onset, divergence point, or slowdown point138 - checkpoint peaks139 - termination condition140 - resume events or interruptions if any1411424. Validate logging integrity before interpretation.143 Check whether the logs themselves are trustworthy:144 - metric names are consistent145 - step or epoch alignment is correct146 - train and validation are comparable147 - smoothing is not hiding spikes148 - "best" checkpoint and displayed metric actually correspond149 - eval cadence is not too sparse or misleading150 - missing points, resets, or resumed counters are understood151 - metrics are computed on the expected subset or split152 - directionality is correct1531545. Interpret optimization dynamics.155 Analyze:156 - train loss shape157 - validation loss shape158 - learning rate schedule and phase transitions159 - gradient norm, clipping, or overflow indicators if present160 - loss spikes, oscillation, NaNs, or sudden collapses161 - stabilization after warmup162 - signs of too-high LR, too-low LR, scheduler bugs, or bad warmup163 - effect of regularization, augmentation, label smoothing, EMA, and similar settings if inferable1641656. Interpret model quality and generalization.166 Analyze:167 - best metric vs final metric168 - gap between train and validation169 - underfitting vs overfitting170 - slow but healthy improvement vs fake plateau171 - validation noise level172 - whether the model is genuinely learning useful structure173 - whether gains are statistically weak, noisy, or fragile174 - checkpoint selection quality175 - whether early stopping would have helped or hurt1761777. Inspect class-wise or slice-wise behavior when possible.178 If artifacts allow, inspect:179 - per-class metrics180 - long-tail classes181 - rare-event behavior182 - threshold sensitivity183 - calibration issues184 - confusion structure185 - subgroup or slice regressions186 - headline metric looks fine but critical slice is bad1871888. Inspect qualitative artifacts when available.189 Review:190 - sampled predictions191 - failure examples192 - attention, saliency, or visualization artifacts if present193 - confusion matrices194 - precision-recall, ROC, or calibration curves195 - bad examples or edge cases196 Use qualitative artifacts to refine, not replace, the metric-based conclusion.1971989. Diagnose instability.199 Explicitly look for:200 - divergence201 - oscillation202 - late-epoch collapse203 - exploding or vanishing gradients204 - mixed-precision overflow or scaler instability205 - batch-statistics instability206 - checkpoint corruption or bad resume state207 - data ordering or sampler issues208 - extreme sensitivity to seed or eval subset noise209 - unstable thresholded metrics21021110. Diagnose efficiency and bottlenecks.212 Analyze available telemetry and logs for:213 - throughput over time214 - GPU utilization215 - memory pressure or OOM proximity216 - data loader starvation217 - CPU bottlenecks218 - disk, network, or object-store I/O stalls219 - evaluation overhead220 - checkpoint save overhead221 - logging overhead222 - synchronization or distributed-training stalls223 - unusually slow startup or compile time224 - expensive augmentations or preprocessing225 Separate bad model learning from slow system execution.22622711. Compare against baseline or neighboring runs when possible.228 If related runs are available:229 - compare config deltas230 - compare data version deltas231 - compare code changes232 - compare metric trajectories, not just final values233 - isolate which change likely moved the outcome234 - identify whether the current run is genuinely worse or only appears worse due to noise, cadence, or metric-definition drift23523612. Identify surprising findings.237 Surface facts that are easy to miss, for example:238 - best checkpoint happened much earlier than expected239 - train improved while validation never really moved240 - validation is too noisy to support strong conclusions241 - apparent degradation came from changed metric definition242 - run spent large time outside actual training243 - one class or slice drove the whole metric movement244 - the run was likely bottlenecked by evaluation, not optimization245 - resume likely altered behavior246 - last checkpoint is materially worse than best247 - improvement exists but is operationally irrelevant24824913. Audit missing instrumentation.250 Explicitly list what was missing and would have made diagnosis materially better, such as:251 - gradient norm or clipping stats252 - LR logging per step or phase253 - throughput and samples per second254 - data loader time vs step time255 - per-class metrics256 - confusion matrices257 - calibration or threshold curves258 - train/validation split identifiers and dataset version259 - checkpoint summary table260 - qualitative sample panels261 - system telemetry262 - augmentation statistics263 - optimizer state summaries264 - memory usage over time265 - eval latency breakdown266 - seed and reproducibility metadata267 - exact code snapshot or commit26826914. Produce a ranked diagnosis.270 Separate:271 - strong conclusions supported by evidence272 - plausible hypotheses273 - unknowns blocked by missing logs27427515. Produce a next-step plan.276 Recommend only the most informative next actions, prioritized by signal-to-cost ratio:277 - small rerun with logging fixes278 - one targeted ablation279 - one config correction280 - one bottleneck removal281 - one validation improvement282 Avoid generic "try many hyperparameters" advice.283284## Decision rules285286### Evidence rule287288Every major conclusion must be tied to observed metrics, logs, telemetry, or artifacts.289Do not speculate without labeling the statement as a hypothesis.290291### Run-story rule292293Do not report isolated facts only.294Construct a coherent narrative of the run.295296### Metric-integrity rule297298Before trusting a metric, verify that it is computed, aligned, and displayed correctly.299300### Bottleneck rule301302Separate optimization pathology from systems pathology.303A slow run is not necessarily a bad-learning run, and a bad-learning run is not necessarily system-bound.304305### Comparison rule306307When baselines exist, interpret deltas relative to the changed config, data, or code, not only by absolute final metric.308309### Missing-data rule310311Always state what cannot be concluded due to missing instrumentation or artifacts.312313### Actionability rule314315End with a short ranked list of next actions that maximally reduce uncertainty.316317## Optional subagent use318319For large runs or rich experiment trackers, explicitly use bounded subagents:320321- one run-fetcher subagent:322 gathers metrics, console logs, artifacts, config, system telemetry, and relevant neighboring runs323324- one metric-forensics subagent:325 interprets curves, instability patterns, generalization behavior, and checkpoint dynamics326327- one systems-bottleneck subagent:328 inspects throughput, utilization, I/O stalls, eval overhead, and training-system efficiency329330Wait for all bounded analyses, then merge them into one final triage report.331332Do not use multiple subagents for a tiny local log snippet.333334## References335336Use the supporting references when needed:337- `references/metric-interpretation-checklist.md`338- `references/instability-signals.md`339- `references/missing-logging-checklist.md`340- `references/systems-bottleneck-checklist.md`341- `references/experiment-comparison-template.md`342343## Suggested report structure344345The final triage report should contain:346- Run summary347- Verdict348- Timeline349- Key metrics and interpretation350- Generalization or convergence diagnosis351- Instability diagnosis352- Bottleneck diagnosis353- Surprising findings354- Missing instrumentation355- Ranked next actions356- Confidence or unknowns357358## Optional persisted document359360If the repository already has a notes or experiment-analysis convention, write a note such as:361- `docs/analyses/training-runs/<run-slug>.md`362- `notes/experiments/<run-slug>.md`363364Otherwise return the report directly in chat.365366## Definition of done367368- The run context was reconstructed from logs, artifacts, config, and metadata.369- Metric interpretation is tied to concrete evidence.370- Learning pathology and systems pathology are separated clearly.371- Missing instrumentation is explicit and actionable.372- The next-step list is short, prioritized, and designed to reduce uncertainty.373374## Final response format375376Return a compact answer in this structure:377378- Run: ...379- Verdict: ...380- Timeline: ...381- Key metric interpretation: ...382- Instability or degradation: ...383- Bottlenecks: ...384- Surprising findings: ...385- Missing logs or artifacts: ...386- Next actions: ...387- Confidence or unknowns: ...388389## Positive examples390391Use this skill for:392- "разбери run в clearml"393- "что случилось с этим обучением"394- "почему деградация после 8 эпохи"395- "посмотри метрики и скажи, норм ли run"396- "где здесь instability"397- "почему run такой медленный"398- "analyze this training run"399400## Negative examples401402Do not use this skill for:403- "сделай план новой архитектуры"404- "напиши training loop"405- "ускорь этот не-ML модуль"406- "прочитай статью и предложи идею"407- "пофикси баг в инференсе"