CoolFace
Datasetpublic

AverageMetaheuristicsEnjoyer/moe-routing-drift-results

MoE routing drift — results Measurements for a 2x2 experiment: adaptation (none / GEPA / prompt-tuning / prefix-tuning) crossed with router retraining (frozen gate / gate retrained), on inclusionAI/Ling-mini-2.0 and Qwen/Qwen3-30B-A3B-Instruct-2507. The weights are in moe-routing-drift-checkpoints. Content warning. quality/*/*.responses.jsonl contain verbatim comments from civil_comments together with model outputs; the task is toxicity labelling, so the text includes insults… See the full description on the dataset page: https://huggingface.co/datasets/AverageMetaheuristicsEnjoyer/moe-routing-drift-results.

sourceHugging Facecc-by-4.0updated 4d agoView on Hugging Face
1likes965downloads
Dataset Card

MoE routing drift — results

Measurements for a 2x2 experiment: adaptation (none / GEPA / prompt-tuning / prefix-tuning) crossed with router retraining (frozen gate / gate retrained), on inclusionAI/Ling-mini-2.0 and Qwen/Qwen3-30B-A3B-Instruct-2507. The weights are in moe-routing-drift-checkpoints.

Content warning. quality/*/*.responses.jsonl contain verbatim comments from civil_comments together with model outputs; the task is toxicity labelling, so the text includes insults, identity attacks and obscenity.

What is here

folderwhat
cells.jsonlthe curated table: one row per measured cell — model, task, arm, router state, split, F1, exact match, paired t
quality/{ling,qwen}/raw measurement JSON (including per_example scores, so the paired tests are reproducible) and per-example generations
routing/{ling,qwen}/routing drift and expert-load measurements: Gini, effective experts, dead-expert share
gepa/GEPA-optimised prompts, the seed they had to beat, candidate scores, budgets
reports/the write-up and the 2x2 figure
analysis/derived analysis JSON (soft-prompt geometry, shift vectors)

The quantity the experiment is built around is the interaction

Delta_PEFT = (q11 - q10) - (q01 - q00)

i.e. how much quality the router recovers because adaptation moved its inputs, over and above what it recovers on the base. Headline: it is negative for every arm (-0.13 to -0.15 on Ling, t about -13; -0.20 for prompt-tuning on Qwen). Gate recalibration and prompt adaptation turn out to be substitutes, not complements — the retrained router gains +0.146 on the base and roughly nothing on top of any arm. Separately, the retrained router does not rebalance expert load: Gini, effective expert count and dead-expert share all move in the fourth decimal, on both architectures.

The two GEPA legs are logged differently

Both arms were optimised the same way — the same external reflection model (qwen/qwen3.7-plus, distinct from either model being adapted), the same 10 000-rollout budget, the same seed — but they carry different amounts of log. gepa/qwen_ml-1000/ has the full search tree (candidate_tree.html, gepa_state.bin, the run log, and the best generated outputs per validation task); gepa/ling_ml-1000/ has only candidates.json, because that run was made with reduced logging. Nothing was dropped during upload, and the part that matters for reproducibility — every candidate prompt with its score — is present for both.

Provenance and what is deliberately missing

Task data is derived from `google/civil_comments` (CC0-1.0). The train/val/test splits are not redistributed here — the multi-label split bundle came from a collaborator rather than from the public dataset, so this repo ships the measurements and the recipe, not the split files.

Scoring: per-example F1 over the predicted label set, exact match for the whole set, paired t-test over the same examples in all four cells. Every arm is scored on its own greedy generation — generations from different arms are never aligned token by token.

Caveats

  • One seed per PEFT cell; base and GEPA cells are replicated at seeds 42/43/44.
  • Checkpoint selection uses 200 validation examples (se about 3.5 pp), by quality, not loss.
  • Ling cells with bias_gamma=1e-4 were computed before a fix to bfloat16 accumulation in the expert_bias balancing buffer, where the 1e-4 step rounded away for most experts. The basefix rows are the re-run against which those cells should be read.
  • task: civil rows are the earlier binary-toxicity rung, kept for continuity; everything else is civil_multilabel.
AverageMetaheuristicsEnjoyer/moe-routing-drift-results · CoolFace