training-check — скилл для Claude Code: контроль обучения
Периодически проверяет метрики WandB во время обучения и помогает заметить NaN, расхождение loss или деградацию метрик до завершения запуска.
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill training-check -a claude-codeЧто делает training-check
Скилл читает историю запуска WandB и оценивает динамику loss, метрик проверки, learning rate и gradient norm. Он ищет NaN, Inf, резкие скачки и устойчивое ухудшение, а при явной проблеме останавливает обучение и сохраняет ссылку на запуск с ключевыми метриками.
При неясном сигнале скилл передаёт сводку в Codex MCP с моделью gpt-6-astra, чтобы получить решение: остановить, продолжить или подождать. Для однозначно хороших и плохих значений такой вызов не нужен. Интервал проверки растёт от 10 до 60 минут при стабильных результатах и сбрасывается после аномалии.
Если WandB недоступен, скилл читает лог по SSH. Для состояния процесса и загрузки GPU предусмотрен watchdog.py, а training-check следит за качеством обучения. Если недоступны и WandB, и лог, проверка сообщит о проблеме связи и повторится позже — это повод наладить хотя бы один канал.
Какие задачи решает
- найти NaN и Inf в loss или градиентах
- остановить запуск при устойчивом расхождении loss
- заметить ухудшение метрик проверки относительно базового уровня
- проверить неоднозначные метрики через Codex MCP
- увеличить интервал наблюдения при стабильном обучении
Примеры запросов агенту
- Запусти
/training-check entity/project/run_idи проверь текущую динамику loss. - Настрой периодический запуск
/training-check entity/project/run_idдля активного обучения. - Проверь
/training-check entity/project/run_id: метрики проверки стали хуже базового уровня.
Как установить training-check
1Через Skills CLI (Vercel)
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill training-check -a claude-code2Вручную: положить файлы
~/.claude/skills/training-check/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/training-check/
1Через Skills CLI (Vercel)
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill training-check -a codex2Вручную: положить файлы
.agents/skills/training-check/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill training-check -a cursor2Вручную: положить файлы
.cursor/skills/training-check/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wanshuiyin/Auto-claude-code-research-in-sleep training-check2Вручную: положить файлы
.github/skills/training-check/SKILL.md1Через Skills CLI (Vercel)
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill training-check -a gemini-cli2Командой платформы
gemini skills install https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep --path skills/training-checkВручную: положить файлы
.devin/skills/training-check/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill training-check -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора78
Похожие
Рядом в теме «ИИ и ML»
Всё по теме «ИИ и ML» →Вопросы о training-check
Как установить training-check в Claude Code?
Выполните npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill training-check -a claude-code, затем повторите npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill training-check -a claude-code. Файл скилла находится в ~/.claude/skills/training-check/SKILL.md.
Что делает training-check?
Скилл периодически анализирует метрики WandB во время обучения: loss, метрики проверки, NaN, Inf, скачки и gradient norm. При неоднозначной картине он запрашивает решение через Codex MCP.
Что нужно передать для проверки запуска WandB?
Нужны WANDB_ENTITY и WANDB_PROJECT из CLAUDE.md либо путь запуска в формате entity/project/run_id. При недоступности WandB скилл пытается прочитать лог по SSH.
Исходный текст
SKILL.md · MIT
---
name: training-check
description: Periodically check WandB metrics during training to catch problems early (NaN, loss divergence, idle GPUs). Avoids wasting GPU hours on broken runs. Use when training is running and you want automated health checks.
argument-hint: "[wandb-run-path]"
allowed-tools: Bash(*), Read, Grep, Glob, Write, Edit, mcp__codex__codex, mcp__codex__codex-reply, mcp__antigravity__antigravity, mcp__antigravity__antigravity-reply, mcp__grok__grok, mcp__grok__grok-reply, mcp__claude-review__review, mcp__claude-review__review_reply, mcp__claude-review__review_start, mcp__claude-review__review_reply_start, mcp__claude-review__review_status
---
# Training Check
> **Before each reviewer slot**, follow [Selectable Reviewers](../shared-references/reviewer-backends.md):
> resolve invocation → `.aris/reviewer.json` → Claude Code default (Codex MCP)
> with `reviewer_route.py` through the canonical helper resolver, preserving this
> slot's tier, fresh contexts, source/image inputs and deterministic gates.
> Codex examples/pins below apply only to `backend=codex`; other routes use their
> own first-call/reply contract. Save the route and actual returned identity;
> unavailable selections are `REVIEW_UNAVAILABLE`. Classify acceptance from actual
> families/completion/scope. Forward invocation reviewer/model/effort overrides
> to reviewer-bearing children. Generation workers are unchanged.
Periodically read WandB metrics during training to catch problems early. Do not wait until training finishes to discover it was a waste of GPU time.
> ⏱ This skill is **correctly** cron-wired (see below): it polls
> machine-checkable training health (NaN / divergence / idle GPU) — the additive
> external-wait shape in
> [`shared-references/external-cadence.md`](../shared-references/external-cadence.md).
> The occasional Codex call for an ambiguous metric is a **one-shot** check per
> tick, not a multi-round verdict loop, so it stays additive — it never grows
> into a wrapped verdict skill.
## Context: $ARGUMENTS
## Constants
- WANDB_ENTITY and WANDB_PROJECT: read from CLAUDE.md or passed as argument (format: `entity/project/run_id`)
- CHECK_INTERVAL: starts at 10 minutes, then gradually increases if consistently healthy: 10 min → 20 min → 30 min → 60 min (cap)
- REVIEWER_MODEL = `gpt-6-astra` — used via Codex MCP for ambiguous cases only
## When to Use
- After training is confirmed running (session alive, loss decreasing for first few steps)
- Set up via CronCreate to fire periodically during training
- **This skill checks training QUALITY, not process HEALTH.** Process health (session alive, GPU utilization) is [watchdog.py](../../tools/watchdog.py)'s job.
## Workflow
### Step 1: Read WandB Metrics
```python
import wandb
api = wandb.Api()
run = api.run("<entity>/<project>/<run_id>")
history = run.history()
```
If WandB is unreachable (API error, network issue), fall back to reading the log file directly via SSH:
```bash
ssh server "tail -100 /path/to/training.log"
```
Check these signals:
- **Loss trend**: Is training loss decreasing over the last N steps?
- **Eval metrics**: Are evaluation metrics improving (or at least not degrading)?
- **NaN / Inf**: Any NaN or Inf values in loss or gradients?
- **Spikes**: Sudden large jumps in loss (>10x normal variance)?
- **Learning rate**: Is the schedule behaving as expected?
- **Gradient norm**: Exploding or vanishing?
### Step 2: Judgment
| Signal | Judgment | Action |
|--------|----------|--------|
| NaN/Inf in loss | **Clearly bad** | Stop training, investigate |
| Loss diverging (increasing for >N steps) | **Clearly bad** | Stop training, investigate |
| Eval metrics significantly worse than baseline | **Clearly bad** | Stop training, investigate |
| Loss decreasing, metrics improving | **Clearly fine** | Continue, increase check interval |
| Loss flat but not diverging | **Unsure** | → Step 3 (Codex judgment) |
| Metrics noisy, can't tell trend | **Unsure** | → Step 3 (Codex judgment) |
| Slightly worse than baseline but still early | **Unsure** | → Step 3 (Codex judgment) |
### Step 3: Codex Judgment (only when unsure)
Only escalate to Codex when the signal is ambiguous. For clearly good or clearly bad signals, act directly.
> Resolve this reviewer slot first; the following is the `backend=codex` example.
```
mcp__codex__codex:
model: gpt-6-astra
config: {"model_reasoning_effort": "xhigh"}
prompt: |
TRAINING HEALTH CHECK — need your judgment on ambiguous metrics.
Run: <entity>/<project>/<run_id>
Current epoch/step: X / Y total
Training loss (last 10 checkpoints): [values]
Eval metrics (last 3 evals): [values]
Baseline reference: [numbers from paper/reproduction]
What I'm unsure about: [specific concern]
Please respond with exactly one of:
- STOP: clearly problematic, should kill training
- CONTINUE: looks fine, check again next interval
- WAIT: not enough data to judge, check again sooner
```
### Step 4: Act
| Decision | Action |
|----------|--------|
| **Stop** | Kill the training session. Save the WandB run URL, key metrics, and reason for stopping. Log to project notes for debugging. |
| **Continue** | Do nothing. Will be invoked again at next interval (increase interval if consistently healthy). |
| **Wait** | Do nothing but keep the current short interval (don't increase). |
## Integration with Watchdog
Training-check and [watchdog.py](../../tools/watchdog.py) operate at different levels:
| Layer | Tool | What it checks | Frequency |
|-------|------|----------------|-----------|
| Process health | watchdog.py | Session alive? GPU active? | Every 60s (continuous) |
| Training quality | training-check | Loss trend? Metrics improving? | Every 10-60 min (periodic) |
Use both together:
- Watchdog catches crashes and idle GPUs immediately
- Training-check catches subtle quality issues (loss plateau, metric degradation)
## Rules
- Do not stop training on first sign of noise — some loss spikes are normal. Look at **trends over multiple checkpoints**.
- When stopping training, always save the WandB run URL and key metrics as evidence.
- If both WandB and log files are unreachable, report the connectivity issue and try again next interval. Do not assume training is broken.
- Gradually increase check interval when healthy (10 → 20 → 30 → 60 min). Reset to 10 min after any anomaly.
- This skill is meant to be automated via CronCreate — do not ask the user whether to set it up. Just set it.
## CronCreate Setup Example
```
After training is confirmed stable:
CronCreate (recurring, every 10 minutes initially):
"Run /training-check for wandb run <entity>/<project>/<run_id>"
```
As the check interval increases, delete the old CronCreate job and create a new one with the longer interval.
© wanshuiyin · MIT · wanshuiyin/Auto-claude-code-research-in-sleep