跳到正文
cccskills
免费在 GitHub 公开

kermt-monitor

Monitor KERMT jobs running in the background by reading run records, Docker container status, and logs. Summarize training progress and validation metrics, stream logs, or report final test metrics when a finetune run completes successfully.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Check progress for a detached KERMT run (pretrain, finetune, or any kermt_run_detached invocation). Reads run.json, queries docker for container state, tails the pretrain/finetune log, and parses progress lines (epoch, step, val loss).

实测评分 未实测

查看安装方法

适用场景

  • Check progress on a background pretraining run
  • Watch training logs and validation metrics live
  • Review test metrics after finetuning completes
  • Provide a JSON status report to another agent

包含的文件(5)

  • SKILL.md7.0 KB
  • BENCHMARK.md7.5 KB
  • evals/evals.json4.6 KB
  • skill-card.md4.3 KB
  • skill.oms.sig4.5 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

kermt-monitor

Companion skill for any KERMT workflow that runs detached: the three pretrain skills (kermt-continue-pretrain, kermt-pretrain-scratch, kermt-add-cmim-pretrain) plus kermt-finetune. kermt-infer and kermt-embed run blocking by default and don't need this skill, but if a user launches them detached on purpose the monitor still works (the workflow-dispatch in step 4 handles unknown workflows by tailing the most-recent log file in the run dir). Reads the run directory's run.json, queries docker for the container's state, surfaces the latest progress, and either tails or follows the log.

Hardware requirements

None. This skill only reads disk + queries docker; no GPU compute.

Inputs

One of:

  • <run-dir> — a positional argument pointing at the directory containing run.json (e.g. runs/continue-pretrain_2026-05-17T10-23Z). Preferred.
  • --container <name-or-id> — direct container reference; the skill still reads run.json from the run dir referenced inside the container's inspect output if available, but works degraded-mode without it.

Optional:

  • --lines N — number of trailing log lines to print (default 50).
  • --follow — stream docker logs -f until ^C. Useful for "watch the loss". Without it, the skill is one-shot and exits.
  • --json — emit a structured status report instead of human-readable text. Useful when the parent agent wants to take downstream action.

Workflow

Let RUN_DIR=$1 (or whatever path the user supplies).

  1. Locate the manifest.

    MANIFEST=$RUN_DIR/run.json
    

    Refuse to proceed if it doesn't exist; surface a helpful message pointing the user at the run-dir convention (runs/<workflow>_<ts>/).

  2. Parse the manifest (Python helper):

    workflow=$(jq -r .workflow $MANIFEST)
    container_name=...   # not directly in run.json today; the skill that
                         # launched stored it in run.json under
                         # container.name during launch (see below note).
    logs_dir=$(jq -r .logs_dir $MANIFEST)
    image_tag=$(jq -r .container.image_tag $MANIFEST)
    started_at=$(jq -r .started_at $MANIFEST)
    
  3. Query docker for container state.

    docker ps --filter "name=$container_name" --format \
        '{{.ID}}\t{{.Status}}\t{{.CreatedAt}}'
    

    If absent, fall back to docker inspect $container_name --format '{{.State.Status}} (exit {{.State.ExitCode}})' to see whether the container exited (ok or failed) or was removed (--rm after exit).

  4. Find the live log file.

    case "$workflow" in
      continue-pretrain|pretrain-scratch)  LOG=$logs_dir/pretrain_ddp.log ;;
      finetune)                            LOG=$logs_dir/finetune.log ;;
      *)                                   LOG=$(ls -1t $logs_dir/*.log 2>/dev/null | head -n 1) ;;
    esac
    

    The manifest's workflow field disambiguates pretrain (pretrain_ddp.log) from finetune (finetune.log). Other workflows fall back to the most-recently-modified .log in $logs_dir.

  5. Show the latest progress.

    • tail -n $LINES $LOG for the raw recent output.
    • Parse the last few progress lines and surface a human-friendly summary. The format differs per workflow:
      • Pretrain: epoch / step / val_loss
        Current epoch: 12/100  step: 4523/9000  val_loss: 0.832 (best 0.821 @ step 4100)
        
      • Finetune: fold / epoch / val_<metric> (e.g. val_mae for regression, val_auc for classification — read args_applied.metric from run.json)
        Fold 0  epoch 12/30  val_mae 0.187 (best 0.182 @ epoch 9)
        
      Wall-clock: 1h 23m since started_at; ETA ~6h remaining.
      
  6. Final test-metrics block (finetune, on completion). If workflow is finetune AND the container has exited cleanly (State.Status=exited, ExitCode=0) AND $RUN_DIR/ckpt/fold_*/test_result.csv exists, parse it and emit a per-task metric table:

    Final test metrics (per task):
      Target              MAE
      HLM_clearance       0.187
      RLM_clearance       0.213
      MDR1-MDCK_efflux    0.241
      solubility_pH6.8    0.156
    

    The metric column matches args_applied.metric (mae for regression, auc for classification, etc.). For multi-fold or ensemble runs, average across folds/models and note ± std if std > 0. Skip silently if no test_result.csv exists (run incomplete or no test split was emitted).

  7. If --follow, stream live logs.

    docker logs -f $container_name
    

    Wraps until ^C.

  8. Stop / cleanup hints (printed at end of one-shot mode):

    To stop:        docker stop $container_name
    To remove:     docker rm $container_name
    To re-run:    `$(jq -r .cmd_replay $MANIFEST)`
    

Hard rules

  • Read-only on the user's data. Never modify run.json, never touch the container's checkpoint dir. The monitor only inspects.
  • Don't kill the container without explicit user instruction. If the user asks to stop, run docker stop; if they ask to abandon, leave it running and just exit.
  • Don't pull or modify the kermt image. The monitor only reads.
  • JSON output mode is non-interactive. Skip the "press ^C to exit" prompts and emit a single JSON document so the parent agent can pipe it.

Note on container_name plumbing

The run.json schema as currently written does not yet include the launched container name — kermt_run_detached prints it to stdout but the runner script doesn't capture it into run.json. The monitor falls back to a filesystem-based lookup: list runs/<workflow>_*/ directories and match by mtime; or accept --container <name> explicitly. Follow-up: have the launching skill record container name into run.json before exiting.

Output (text mode, default)

KERMT continue-pretrain · runs/continue-pretrain_2026-05-17T10-23Z
  Container : kermt-continue-pretrain-…  (Up 1 hour, status: running)
  Image     : kermt:latest@sha256:…
  Repo      : 2fe00f9 (clean)
  Started   : 2026-05-17T10:23:14Z (1h 23m ago)
  Workflow  : continue-pretrain, pretrain_mode=hybrid, world_size=2

  Latest log (last 50 lines from $LOG):
    [Epoch 12/100] step 4523/9000 loss 0.832 lr 1.2e-4
    [val] step 4100 val_loss 0.821 (new best)
    ...

  Progress: epoch 12/100, ~12% done. ETA ~6h.
  TensorBoard: tensorboard --logdir $RUN_DIR/logs/tb
  Replay command: $(jq -r .cmd_replay $RUN_DIR/run.json)

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Move pandas-style table processing to NVIDIA GPUs using cuDF. Choose minimal-change acceleration or explicit GPU code, handle joins and aggregations, compare results with pandas, and use dask-cuDF when data exceeds GPU memory.

中文简介正在准备中。当前显示英语简介。

  • Accelerate existing pandas processing with minimal changes
  • Move joins and aggregations to GPU code
  • Compare missing values and ordering with pandas
NVIDIA/skills37182026年10月24日 更新

Customize NVIDIA Nemotron Voice Agent’s Generic Pipecat example for appointment scheduling, five-field patient intake, or a custom healthcare conversation. Build prompts and tool handlers without a separate backend, then validate conversation behavior, services, and voice interaction.

中文简介正在准备中。当前显示英语简介。

  • Build an appointment-scheduling voice agent
  • Collect five patient-intake fields through conversation
  • Design a custom healthcare conversation with tool calls
NVIDIA/skills37182026年10月24日 更新

Calibrate live cameras by recording their RTSP video streams through VIOS and processing the clips with AutoMagicCalib. The workflow imports settings and alignment files, checks readiness, tracks calibration progress, and retrieves results.

中文简介正在准备中。当前显示英语简介。

  • Calibrate cameras from live RTSP streams
  • Import settings and alignment files for a camera scene
  • Retrieve evaluation statistics using ground truth data
NVIDIA/skills37182026年10月24日 更新

Test a running AMC service with the bundled four-camera warehouse dataset. Run camera calibration from upload to completion, then check distance and image projection errors against ground-truth data to verify the installation.

中文简介正在准备中。当前显示英语简介。

  • Verify a newly installed AMC service
  • Check the sample's calibration errors against ground truth
  • Walk through the sample workflow in Swagger UI
NVIDIA/skills37182026年10月24日 更新

Calibrate multiple cameras from recorded MP4 files through the AutoMagicCalib REST API. The skill handles project creation, uploads, input verification, progress checks, and evaluation when reference data is supplied, with optional VGGT refinement.

中文简介正在准备中。当前显示英语简介。

  • Calibrating cameras from synchronized MP4 recordings
  • Uploading local settings and alignment files
  • Evaluating calibration against ground-truth data
NVIDIA/skills37182026年10月24日 更新

Set up AutoMagicCalib from NGC release containers using Docker Compose. The skill handles registry authentication, port and path configuration, optional VGGT model download, service startup, and readiness checks for the backend and web interface.

中文简介正在准备中。当前显示英语简介。

  • Launching the AutoMagicCalib backend and web interface
  • Configuring service ports and network access
  • Adding the optional VGGT model during setup
NVIDIA/skills37182026年10月24日 更新

查看 NVIDIA 的全部技能

报告此技能的问题