
Fine-Tuning Method Selection
FreeStreamline your fine-tuning decisions effectively.
Free · Opens the source repo
What Fine-Tuning Method Selection does
The Fine-Tuning Method Selection skill serves as a crucial decision-making tool for anyone embarking on a fine-tuning effort. It helps determine if fine-tuning is necessary and, if so, which method to use and which base model size class to select. This skill is essential for developers and data scientists who are unsure whether to pursue fine-tuning or if alternative approaches like retrieval-augmented generation (RAG) or prompt engineering would be more efficient and cost-effective. By using this skill, users can avoid unnecessary training runs and focus on the most effective strategies for their specific tasks.
When initiating a fine-tuning project, this skill guides users through a structured decision tree, helping them assess the nature of their data and the desired outcomes. It categorizes situations based on whether new facts or behaviors are being introduced and directs users to the appropriate methods, such as supervised fine-tuning (SFT), preference optimization (DPO), or reinforcement learning (GRPO/RLVR). This ensures that users are not only choosing the right method but also considering the scale of the model needed for their tasks.
The skill emphasizes the importance of evaluating whether fine-tuning is the right approach at all. It includes a set of off-ramps for scenarios where fine-tuning may not be the best solution, such as when dealing with frequently changing facts or when the desired behavior is still being defined. This proactive approach helps users save time and resources by steering them towards more suitable alternatives before committing to a training run.
In summary, the Fine-Tuning Method Selection skill is designed for those looking to optimize their fine-tuning processes. It provides clear guidance on when to fine-tune, which methods to consider, and how to select the appropriate base model size, making it an invaluable resource for developers and data scientists alike.
When to use it
Use this skill when starting any fine-tuning effort or when unsure if fine-tuning is the right approach.
When not to use it
Avoid using this skill if you have a stable model and clear requirements that don't need fine-tuning.
What you can build with it
Starting a Fine-Tuning Project
Begin your fine-tuning journey by assessing whether fine-tuning is necessary and which method to pursue.
Choosing Between Methods
When faced with multiple fine-tuning methods, use this skill to determine the best fit for your specific needs.
Evaluating Model Size Requirements
Use this skill to identify the appropriate base model size based on the volume and type of data you have.
How to install Fine-Tuning Method Selection
View source1. Install with the skills CLI
npx skills add wshobson/agents/finetuning-method-selection --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by wshobsonFine-Tuning Method Selection
This is the router skill for the fine-tuning
lifecycle: it decides whether fine-tuning is the
right tool at all, and if so, which method and
which base-model size class. Every other skill
in this plugin assumes this routing already
happened — start here before opening
lora-qlora-recipes, preference-optimization,
or grpo-rlvr-training.
When to Use This Skill
- Starting any fine-tuning effort, before a framework or base model has been chosen.
- Unsure whether RAG or prompt engineering would solve the problem more cheaply than training.
- Choosing between preference optimization (DPO family) and a reinforcement method (GRPO/RLVR) for the same underlying task.
- Sizing a candidate model/method combination before committing to a run.
Quick Reference
| Situation | Route |
|---|---|
| Facts change often (prices, docs, news) | RAG, not fine-tuning |
| Desired behavior still being figured out | Prompt engineering |
| Stable domain knowledge, ≥500MB text | CPT then SFT — see Off-Ramps First |
| Have input/output demonstrations | SFT — see lora-qlora-recipes |
| Have preference pairs or thumbs-up/down | DPO/ORPO/KTO — see preference-optimization |
| Have a verifiable pass/fail signal | GRPO+RLVR — see grpo-rlvr-training |
| No eval harness yet | Stop — see eval-harness-first |
Off-Ramps First
Most requests that sound like "fine-tune this" are served better and cheaper elsewhere. Check these off-ramps before opening a training run:
- Knowledge-bound and volatile (the gap is facts that change — prices, docs, current events): route to RAG, not fine-tuning. A fine-tuned model bakes in a snapshot; volatile facts go stale immediately.
- Behavior-bound and shifting (the desired behavior is still being figured out, or changes per request): route to prompt engineering. Fine-tuning locks in a behavior; don't lock in one that hasn't stabilized yet.
- Stable, dense domain knowledge: this is where continued pretraining (CPT) enters, sized by how much domain text exists:
| Domain text volume | Route |
|---|---|
| <10MB | RAG only |
| 10MB–500MB | RAG + fine-tune |
| 500MB–10GB | CPT, then SFT |
| >10GB | CPT required |
CPT learning rate ≈ 10% of the pretraining LR. CPT is guidance-only in this plugin — sizing and LR guidance live here, but this plugin does not execute a CPT run.
Method Router
Once the off-ramps are ruled out, this is the full decision tree (verbatim from the research this plugin is built on):
New FACTS? volatile → RAG | stable+dense → CPT (LR ~10% of pretrain) → SFT
New BEHAVIOR? shifting → prompt-engineering | stable:
demos → SFT (LoRA/QLoRA, all-linear, α=2r)
preference pairs → DPO (SimPO if length-bias, ORPO if memory-bound)
unpaired 👍/👎 → KTO
verifiable success → RLVR + GRPO (DAPO/GSPO/Dr.GRPO per failure mode)
Deploy: FP8 (Hopper+) | NVFP4 (Blackwell scale) | AWQ (older) | GGUF+imatrix (edge)
BEFORE ANY OF THIS: the eval harness must exist first.
Read the tree top-down: answer "new facts or new behavior," then follow the branch that matches the data shape in hand (demos, preference pairs, thumbs up/down, or verifiable success/failure). The data shape picks the method — not the other way around.
Worked Routing Examples
- "Users want the assistant to follow our support macros exactly." Behavior is stable and demonstrable from transcripts → demos → SFT.
- "We have pairs of good/bad responses from reviewer thumbs-up/down, unpaired." → unpaired signal → KTO, not DPO (DPO needs paired preferences).
- "The model can already solve some of these math problems and we can grade correctness automatically." → verifiable success signal → GRPO+RLVR, and only after confirming the model succeeds at least sometimes (see Key Routing Facts below).
- "We want the model to know this week's pricing page." → volatile facts → RAG, no training run at all.
Key Routing Facts
- Loss-function choice is low-leverage. A 240-H100-run study found method choice worth ~1 percentage point versus ~50 points for model scale, and zero of 20 DPO variants beat vanilla DPO. Don't spend a routing decision agonizing over DPO-variant selection — spend it on getting the data shape and scale right.
- DPO is for taste, GRPO+RLVR is for reasoning. Preference pairs that encode a subjective judgment (tone, style, "which answer is better") route to DPO. Tasks with a verifiable pass/fail signal (math, code, tool calls) route to GRPO+RLVR instead.
- RL is not the fix for a model that never succeeds. GRPO and other RL methods sharpen an existing capability — they don't teach one from zero. If the model doesn't yet understand the task or output format, run SFT first; only bring in RL once the model succeeds at least sometimes.
Common Routing Mistakes
- Reaching for fine-tuning to fix facts that change weekly — that's a RAG problem, and fine-tuning will just go stale faster than the source data does.
- Picking a DPO variant before checking whether the actual bottleneck is data quality or model scale — variant choice is the ~1pp lever, not the ~50pp one.
- Starting an RL run on a model that fails every rollout — route to SFT first so RL has something to sharpen.
- Treating CPT as the default for "the model doesn't know our domain" — check the data volume thresholds first; under 500MB, RAG or RAG+fine-tune iterates faster than a CPT run.
Model Selection
Base-model choice is size-class first, family
second, and it goes stale fast — so it lives in
exactly one place: references/model-catalog.md.
That file is the only place in this plugin (and
in the DGX Spark ops plugin) that names a base
model family. Neither this skill nor
references/memory-math.md names one; both
describe models by size class only (for example,
"8B-class LoRA," not a model name).
The catalog is dated on purpose — model rankings turn over quarterly. It carries a "last verified" date and a refresh checklist. Before trusting a row, check that date; if stale, work the refresh checklist in the catalog before recommending a model from it.
Precedence when the catalog and a method skill
disagree: the catalog's per-row Notes column
states hardware/size-class feasibility, not a
method recommendation — lora-qlora-recipes's
LoRA vs QLoRA vs Full FT table (routed by task
shape) governs the actual method choice.
Memory Feasibility
Before committing to a method, size it: total
memory ≈ params × dtype bytes + optimizer
state + gradients + activations. Work each
term for the chosen dtype and method (full
fine-tune, LoRA, or QLoRA) — worked worksheets
and size-class examples live in
references/memory-math.md.
On DGX Spark specifically, unified-memory
behavior breaks the naive estimate (transient
load peaks, nvidia-smi underreporting, thermal
throttling on long runs). Once the
dgx-spark-ops plugin is installed, defer
Spark-specific feasibility calls to its
spark-memory-thermal-ops skill rather than
re-deriving them here.
Related Skills
Once this skill has picked a method, hand off to the skill that executes it:
lora-qlora-recipes— SFT via LoRA/QLoRApreference-optimization— DPO, ORPO, KTOgrpo-rlvr-training— GRPO with verifiable rewards
No method is selected before the eval harness
exists — see eval-harness-first.
Frequently asked questions about Fine-Tuning Method Selection
Similar skills
Arize Evaluator
Streamline LLM evaluation workflows on Arize.
Troubleshoot
Analyze logs to understand chat agent behavior.
Agentic Evaluation
Enhance AI outputs through iterative evaluation and refinement.
RAG Evaluation
Evaluate retrieval-augmented generation benchmarks efficiently.
NV-Reason-CXR
Run smoke tests for chest X-ray reasoning models.
Clinical ASR Evaluation
Score and evaluate clinical ASR manifests effectively.
