Resources/Model training/Training methods

Metric

Held-out checks in reinforcement fine-tuning

When a provider runs reinforcement fine-tuning on a hosted reasoning model, it re-asks a few held-out validation questions every few steps and grades the answers with the same grader. Each question becomes a timeline showing whether training carries over to questions the model never trained on.

Chapter 75 min read4 references

What they are

On open models, Scalata can show you the real groups of answers the grader scored. On hosted reasoning models, the provider runs the grader itself and doesn't share the answers it scored during training. What it does share is a set of held-out checks: every few steps it asks a handful of validation questions the model never trains on, and grades those answers with the same grader.

Because the first check runs at step 0, before any training, each validation question becomes a small timeline: how the answer to the same question changed as training went on. That makes the checks the best available evidence that the gains carry over to questions the model hasn't seen, and not just to the ones it practised on.

0.000.501.0005101520training step (0 = before training)ceiling: 1.00 throughoutdip, then recoverslow start, risingvalidation rewardone bad sample
Three held-out questions, checked at steps 0, 5, 10, 15 and 20, plus the validation reward (dashed, the mean over all checked questions). Step 0 is the model before training. Rising from a low start is learning that carries over; flat at 1.00 is a ceiling; a single dip that recovers is one unlucky sample. Illustrative numbers.

Reading the timeline

  • Low at step 0, then rising: the clearest sign of learning that carries over to new questions.
  • 1.00 from step 0 onward: a ceiling. The model already answered well enough, so this question can't show improvement. Many of these means the grader is too easy, or the questions are.
  • A dip in the middle: normal noise. Each check is one sampled answer, and one unlucky sample can score low. Look at the trend across checks and across questions, not at one card.
  • Flat everywhere below the ceiling: the model isn't finding better answers. The usual cause is a starting model that rarely gets these right; a supervised run first helps.
Question (illustrative)Step 05101520Reading
How do I export a dashboard to PowerPoint?0.250.380.560.810.81Learning, levels off after 15
Can a client open a shared link without an account?0.500.690.750.940.94Learning
Which file types can I upload?0.750.940.320.880.94One bad sample at 10
How do I reset my password?1.001.001.001.001.00Ceiling: says nothing
Validation reward (mean)0.630.750.660.910.92Real gain; flat after 15
Reading the illustrative run above
  1. The first two questions start low and climb: the answers moved toward the facts in your reference replies. That is the learning you trained for.
  2. The third drops to 0.32 at step 10 and recovers to 0.88 and 0.94. One poor sample, not a trend, but it pulls the step-10 mean down from where it would otherwise be.
  3. The fourth scores 1.00 throughout. It was already answered well before training, so it can't show anything.
  4. Validation reward rises from 0.63 to 0.92, but 0.91 at step 15 and 0.92 at step 20 are almost the same. The step-15 checkpoint is likely as good as the final model.

Validation reward vs training reward

The provider reports two rewards. Training reward is the grader's mean score on the questions the model is training on at that step; those questions change from step to step, so the number jumps around, and a model can raise it by getting better at exactly those prompts. Validation reward is the mean of the held-out checks: the same questions every time, never trained on. Trust it more, for the same reason validation loss beats training loss. OpenAI's documentation describes it the same way: training reward values “can fluctuate drastically from step to step”, while validation reward is “a more stable metric”.

Checks and checkpoints

Providers usually save a checkpoint at the same steps as the checks. So if the checks stop improving halfway, the matching checkpoint may be as good as the final model, and a shorter run would have cost less. Hosted reinforcement fine-tuning is billed per training hour and reasoning models write long answers, so each step is slow: noting where the checks flatten is a direct saving on the next run.

What the model trains on

Reinforcement fine-tuning uses the same chats as supervised training, turned into one row per reply, ending at that reply. The conversation up to the reply is the prompt; the reply itself becomes a reference that only the grader sees. A chat with three replies gives three rows, and each row's reference is only its last reply, with earlier replies kept in the prompt as context.

Row 1
developer: your instructionsuser 1→reply 1reference, seen only by the grader
Row 2
developer: your instructionsuser 1reply 1user 2→reply 2reference, seen only by the grader
Row 3
developer: your instructionsuser 1reply 1user 2reply 2user 3→reply 3reference, seen only by the grader
A chat with three replies becomes three reinforcement rows. Each row ends at one reply: everything before it is the prompt, and that reply alone is the reference the grader compares against. For hosted reasoning models the system instructions travel as a developer message.
One chat, three rows
chat:  system · user 1 · reply 1 · user 2 · reply 2 · user 3 · reply 3

row 1  prompt: developer · user 1                                   reference: reply 1
row 2  prompt: developer · user 1 · reply 1 · user 2                reference: reply 2
row 3  prompt: developer · user 1 · reply 1 · user 2 · reply 2 · user 3   reference: reply 3

Hosted reasoning models (the o-series) don't accept a system message in reinforcement examples. The same instructions go in a developer message, which these models treat the way other models treat system; a training file with a system message there fails validation.

A reinforcement row for a hosted reasoning model
{"messages": [
   {"role": "developer", "content": "You are Scalata's support assistant. Be brief."},
   {"role": "user",      "content": "How do I share a report with a client?"}],
 "reference": "Open the report → Share → pick the client. They get an email link."}

Metrics

Validation rewardTypical Should trend up from step 0; ups and downs between checks are normal#

The mean grader score over the held-out checks at one step. The same questions every time, never trained on, so it is a steadier and more honest signal than training reward. A rising validation reward is learning that carries over; one that flattens marks where a shorter run would have done.

Step 0Typical The baseline for every question#

The check before any training: the starting model's answers to the validation questions. Every later check is read against it. A question that is already high at step 0 has little room to show improvement.

CeilingTypical A few per run at most#

A question that scores 1.00 from step 0 onward. The grader can't score higher, so it can't show any change. A few are normal; many mean the grader or the validation questions are too easy to measure progress.

Common mistakes

  • Reading one card. A single check is one sampled answer; judge the trend across checks and questions.
  • Trusting a rising training reward when validation reward is flat. The model may be fitting the training prompts, or gaming the grader.
  • Ignoring ceilings. Questions at 1.00 throughout inflate the average and hide whether anything changed.
  • Always using the final model. If the checks flattened halfway, the matching checkpoint is as good and the next run can be shorter.
  • Writing a system message in hand-built reinforcement files for o-series models. Use a developer message instead.

References and further reading

External sources open in a new tab.

  1. 01Reinforcement fine-tuningOpenAI API docs · developers.openai.comThe hosted RFT service: validation files, training and validation reward, and checkpoints.
  2. 02GradersOpenAI API docs · developers.openai.comHow the provider's graders are defined and what they read from each row.
  3. 03Fine-tune a model with reinforcement fine-tuning in Microsoft FoundryMicrosoft Learn · learn.microsoft.comReinforcement fine-tuning of reasoning models on Azure, including validation data.
  4. 04Scaling Laws for Reward Model OveroptimizationGao, Schulman & Hilton, 2022 · arXiv · arxiv.orgWhy a score the model is optimised against can rise while true quality falls.

Turn weeks of expert work into minutes

See how Scalata fits your team, your data, and your controls.

Contact Sales