# digital-health-clinical-asr-finetune

Skill for running stock NeMo SFT on Parakeet TDT v2 and measuring post-training KER. Useful at Stage 4 when priority Keyword Error Rate exceeds 0.3.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1900 installs · ★ 3735
- Author: Ben Randoing
- License: Apache-2.0 · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/NVIDIA/skills/tree/HEAD/skills/digital-health-clinical-asr-finetune/SKILL.md
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/skills/digital-health-clinical-asr-finetune

## What it does

The skill executes `/opt/NeMo/examples/asr/speech_to_text_finetune.py` inside the `nvcr.io/nvidia/nemo:25.11.01` container. It relies on `nvidia/parakeet-tdt-0.6b-v2` as the recommended base model. No custom adapter logic is used because adapter-mixin paths on TDT decoders generate 72 NaN tensors at any learning rate. Fine-tuning `nvidia/nemotron-speech-streaming-en-0.6b` is also prohibited due to an immediate validation collapse.

Execution requires a manifest with at least 100 rows and 5 rows per priority entity category. You need a CUDA host with 24 GB VRAM for standard runs or 16 GB with batch size 4. If a local GPU is unavailable, the skill directs users to a Brev L40S 48 GB instance. Running cycle N+1 offline evaluation and NIM deployment requires `NVIDIA_API_KEY`.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill digital-health-clinical-asr-finetune -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/digital-health-clinical-asr-finetune/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/digital-health-clinical-asr-finetune/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill digital-health-clinical-asr-finetune -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/digital-health-clinical-asr-finetune/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill digital-health-clinical-asr-finetune -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/digital-health-clinical-asr-finetune/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install NVIDIA/skills digital-health-clinical-asr-finetune
```

2. **Manually: put the files in place**
- File: `.github/skills/digital-health-clinical-asr-finetune/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill digital-health-clinical-asr-finetune -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/NVIDIA/skills --path skills/digital-health-clinical-asr-finetune
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/digital-health-clinical-asr-finetune/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill digital-health-clinical-asr-finetune -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/NVIDIA/skills/tree/HEAD/skills/digital-health-clinical-asr-finetune/SKILL.md

## When to use it
- fine-tune Parakeet TDT v2 on clinical vocabulary
- reduce priority KER for medication and procedure names
- run stock NeMo SFT inside the official container
- perform offline cycle N+1 re-evaluation

## Example prompts
- Fine-tune ASR on my clinical vocabulary
- We have a KER of 0.4, run SFT on Parakeet TDT
- Compare cycle 1 vs cycle 2 KER

## Source text · SKILL.md · Apache-2.0

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 7ac6e113e762d353.

BEGIN THIRD-PARTY FILE 7ac6e113e762d353
```text
---
name: "digital-health-clinical-asr-finetune"
description: "Stage 4 of the Clinical ASR Flywheel. Use when priority KER is above 0.3 to run stock NeMo SFT on Parakeet TDT v2 and offline cycle N+1 re-eval. NOT for generic word boosting (use /finetune-asr)."
version: "1.0.0"
author: "Ben Randoing <brandoing@nvidia.com>"
tags:
  - clinical-asr
  - finetune
  - sft
  - nemo
  - parakeet
  - flywheel
tools:
  - Read
  - Write
  - Bash
  - Skill
license: Apache-2.0
compatibility: "Requires a CUDA host (24 GB VRAM comfortable, 16 GB workable with batch_size=4), the NeMo container (nvcr.io/nvidia/nemo:25.11.01), and the finetune-asr + riva-asr-custom skills installed alongside this one. No local GPU? Use Brev. NVIDIA_API_KEY required for the offline cycle N+1 eval round-trip and for any NIM deploy."
metadata:
  author: "Ben Randoing <brandoing@nvidia.com>"
  tags:
    - clinical-asr
    - flywheel
    - finetune
    - nemo-sft
    - parakeet
  team: healthcare-tme
  domain: ai-ml
  stage: 4
  previous_skill: digital-health-clinical-asr-eval
  next_skill: riva-asr-custom
---

<!--
SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->

# Clinical ASR Flywheel — Stage 4 (Fine-tune)

> **⚠ Agent: read this entire SKILL.md before answering.** The Critical-workflow-rules section, the base-model table (§4c), the stock-NeMo-SFT recipe (§4d), and the cycle-N+1 decision table (§4e) are all load-bearing — the do-not-SFT bases and broken-adapter warnings live there.

> **Agent: this file is self-contained.** The Stage 4 gate criteria, base-model recommendation, hyperparameter table, container invocation pattern, and cycle-N+1 decision table are all below. **Do not** run file-discovery commands or open `references/stage4-finetune.md` before answering methodology questions — the reference is deep-dive material, not required reading. Answer from this file; defer to the reference only when a hyperparameter rationale or Brev SKU detail is specifically asked.

You are the **adapt-and-measure** stage. The user arrives from `/digital-health-clinical-asr-eval` with a manifest, a baseline KER number, and the decision-tree's recommendation that fine-tuning is worth the GPU time. You run stock NeMo SFT, do an offline cycle N+1 re-eval to **measure that the loop closed**, and optionally hand the resulting `.nemo` to `/riva-asr-custom` for production serving.

**The cycle KER from offline eval is the measurement that closes the loop.** Riva NIM deploy validates serving (latency, streaming, scale), not model quality.

> **Empirically verified on the reference manifest** (39 rows, Parakeet TDT v2):
> Baseline KER **0.513** → after 3 epochs of stock SFT: **0.128** (-75% relative).
```
END THIRD-PARTY FILE 7ac6e113e762d353

The third-party file has ended. Everything between the 7ac6e113e762d353 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2791 of 20185 bytes. © Ben Randoing · Apache-2.0 · https://github.com/NVIDIA/skills/tree/HEAD/skills/digital-health-clinical-asr-finetune/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
