Run predictions with a finetuned KERMT checkpoint on a SMILES-only CSV. The skill validates that the input ckpt has task FFN heads (refuses pretrain ckpts with a redirect to kermt-finetune), validates the CSV, prepares the data (clean + rdkit_2d features), then launches main.py predict inside the kermt container (blocking, minutes-scale).
Start a fresh conversation. Replace the highlighted placeholders.
Use kermt-infer to run predictions from the finetuned KERMT checkpoint at [checkpoint path] on the SMILES-only CSV at [CSV path], using the configured KERMT runtime, and return the predictions CSV path with a short summary of applied defaults.
Required inputs
[checkpoint path]
[CSV path]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: kermt-inferdescription: Run predictions with a finetuned KERMT checkpoint on a SMILES-only CSV. The skill validates that the input ckpt has task FFN heads (refuses pretrain ckpts with a redirect to kermt-finetune), validates the CSV, prepares the data (clean + rdkit_2d features), then launches main.py predict inside the kermt container (blocking, minutes-scale).license: Apache-2.0compatibility: Requires docker, nvidia-container-toolkit, and a CUDA-capable NVIDIA GPU. Designed for Claude Code, Codex, and Nemotron.metadata: owner: evax@nvidia.com classification: workflow-skill risk_tier: skill# Line/token budget: targets ~170 lines / ~2000 tokens — well within the# 500-line / 5000-token cap for skill files.
kermt-infer
Run predictions with a finetuned KERMT checkpoint on a SMILES-only CSV. The
skill is the workflow orchestrator: validate ckpt, validate CSV, prepare data,
launch the runner blocking, return the predictions CSV.
Skill and runtime paths
Set SKILL_DIR to the absolute path of this installed skill directory. Export
KERMT_REPO as the absolute path to the KERMT checkout used for model
execution. The bundled container helper mounts that checkout at
/workspace and this skill at /skill (read-only). Commands inside
the container use /skill/scripts/; defaults are bundled in config/.
Hardware requirements
GPUs: 1 (single-GPU). Multi-GPU inference is not currently supported.
VRAM: ≥ 4 GB for the default batch_size 32.
Disk: a few hundred MB per run (cleaned CSV + features + predictions).
Driver / CUDA: any host supporting CUDA 12.6 (the kermt image base).
Inputs
Required:
--ckpt <path> — finetuned checkpoint (must have task FFN heads). The
validator refuses pretrain ckpts with a redirect to kermt-finetune.
--csv <path> — SMILES-only CSV. First column is smiles; other columns
are ignored.
Optional:
--batch-size N — override the configured default (32).
--seed N — random seed for inference (deterministic featurization paths).
--gpus 0 — single GPU id (default 0). Multi-GPU rejected.
--from-prepare <dir> — skip the prepare step and reuse an existing
prepare_data.json in <dir>.
Workflow
Let $KERMT_REPO be the path to your kermt repo checkout, and assume
kermt-setup has built kermt:latest.
Never modify the user's ckpt. The runner symlinks the ckpt into a
unique <out>/ckpt_link/ subdir so main.py predict --checkpoint_dir
picks it up; the source file stays untouched.
Arch comes from the ckpt, never from CLI/defaults. The runner records
the validator's arch block in run.json but does not pass arch flags into
main.py predict — predict reads them from the loaded ckpt's saved_args.
Single-GPU only. Multi-GPU inference is not currently supported.
Echo applied defaults. The args_applied field of run.json records
every flag's value + source (user / default-config). Surface a short
summary of any default-filled flag.
Common errors
inference requires a finetuned ckpt with task FFN heads → ckpt is a
pretrain ckpt; use kermt-finetune first.
prepare_data manifest reports ok=False → check the manifest errors for
the failed step (typically clean_smiles or save_features).
could not convert string to float: '<value>' from save_features or main.py
predict → input CSV has a non-numeric passthrough column (e.g. a 'split'
label). The prep step now strips the CSV to SMILES-only at inference; if
this error still surfaces, the CSV is being read by a runner that bypassed
prepare_data. Re-run via the skill, not main.py directly.
--gpus '0,1' is single-GPU only → pass a single id.
Replayability
The run.jsoncmd_replay field is a single-line command that re-runs the
inference with the same inputs. To replay inside the kermt container:
$(jq -r .cmd_replay $RUN_DIR/run.json)
If ok_to_replay: false (dirty kermt repo worktree at launch time), pin
the commit via repo.commit and git checkout it first.