> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omnia-voice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Self-improvement (RL)

> Your model improves itself on your own traffic, judged by your own validated evaluators.

Self-improvement closes the loop between your logged traffic, your evaluators,
and your models. Instead of curating a training set by hand, Omnia generates
candidate answers to your real prompts, scores them with a **validated judge**
(an aligned criterion in the API), and trains on what passes: automatically, with
hard budget ceilings enforced server-side.

There are two halves, and they feed each other:

<CardGroup cols={2}>
  <Card title="Self-training rounds (offline)" icon="arrows-rotate">
    For each logged prompt, the platform samples several candidate answers,
    keeps the ones your judge passes, and fine-tunes on the winners. Prompts
    that fail every attempt are set aside rather than forced.
  </Card>

  <Card title="Online RL runs (GRPO)" icon="bolt">
    The prompts self-training gave up on become the **candidate queue**, and
    online reinforcement learning trains directly against your judge's graded
    signal on exactly those prompts, where offline sampling can't help.
  </Card>
</CardGroup>

## Why the judge must be aligned

Training a model toward an evaluator's opinion is only safe when the evaluator
is measured. Omnia refuses to start any self-improvement work unless the judge
is **aligned**: validated against your human labels with true-positive
and true-negative rates at or above the platform bar. An unvalidated judge as a
training signal is reward hacking by construction; the platform will not do it.

## Safety rails on every run

* **Reward budget**: a hard ceiling on judge spend, enforced by the platform's
  ledger (never self-reported by the trainer). A run that hits its ceiling is
  refused further scoring and marked over-budget.
* **GPU-hour budget**: a wall-clock ceiling on the training side.
* **Hacking tripwire**: a run whose policy collapses onto degenerate
  judge-pleasing answers (entropy collapse, vanishing reward variance,
  drifting divergence) is stopped automatically and flagged.
* **Held-out gate**: a slice of prompts is reserved at run start that the
  trainer never sees; adoption decisions use held-out judge pass-rate, not
  training reward.
* **Stop button**: stopping a run takes effect at its next scoring call.

## The candidate queue

Every self-training round records the prompts your model failed even with extra
attempts. The dashboard shows this as **candidates waiting**, the strongest
possible signal for when an online run is worth its cost, and a run started
with *use candidate queue* trains on exactly those prompts.

## API

Runs are scriptable with the same shapes as fine-tuning; see the
[GRPO runs API](/fine-tuning/grpo-api).
