Router Head Overview
A router head is a small classifier trained on top of a frozen backbone model. Instead of generating text itself, it looks at an incoming query and picks which model in a fixed pool (e.g. a mix of frontier and cheaper open models) should actually answer it. The pool member’s real reply is what gets returned — the head only makes the routing decision. This guide walks through the full loop: publish a training dataset, train a router head, and evaluate it on a benchmark, all using BenchGen — see BenchGen Router Lite for the step-by-step walkthrough.Why train a router head
- Cost control — send easy queries to a cheap model and only route hard ones to a frontier model.
- No generation weights to manage — the head is a few thousand parameters; there’s no adapter to merge or serve a full model for.
- Fast to train — training is separable CMA-ES against a static reward matrix, not gradient descent over the backbone. A pilot-sized dataset trains in well under a minute on CPU.
The loop
- Create a dataset — publish two paired HuggingFace datasets: per-task rewards for each pool member, and the task prompts themselves.
- Train a router head — pick the Head training method, point it at your datasets, and let separable CMA-ES evolve the head.
- Serve and benchmark it — register the trained head as a selectable model, test it live, and run it against a benchmark like any other model on the platform.
A router head’s own output is a routing decision, not an answer — benchmark scores measure the
router + pool system together, not the head in isolation. Keep this in mind when comparing scores
against a standalone model.