llm-d-sc-complexity-v2

complexity classifier for llm-d semantic classification. Labels: SIMPLE, MEDIUM, COMPLEX, REASONING.

Architecture: sequence-classification head (requires a runtime that reads logits), base sentence-transformers/all-MiniLM-L6-v2.

Accuracy

Read the real-traffic row first.

eval set n accuracy 95% CI macro F1
real traffic, refined gold (high-effort re-adjudication) 376 0.8963 0.861 โ€“ 0.923 0.8411
real traffic (WildChat, unanimous 3-model jury) 418 0.8923 0.859 โ€“ 0.919 0.8605
legacy hand-authored held-out 80 0.8875 0.800 โ€“ 0.940 0.8863

Hand-authored minus real traffic: -0.005. Hand-authored held-out prompts are written in the same clean register as the anchors; real users send truncated pastes, fragments and roleplay preambles. The real-traffic row is the one that predicts production behaviour.

The eval has a measured ceiling

Gold labels were audited by blind paired adjudication in two strata โ€” the rows this model got wrong, and a sample of the rows it got right โ€” with the judge shown two candidate labels in random order and no indication of provenance. Roughly 4.9% of the gold labels are themselves wrong, so a PERFECT classifier scored against this eval would reach about 0.95, not 1.0.

Read the real-traffic accuracy against that ceiling, not against 100%. Auditing only a model's mistakes would move the number up artificially; sampling the correct rows too is what makes the estimate honest, and it revealed that on ~3.3% of "correct" rows the model agreed with a bad label โ€” meaning measured accuracy is very slightly overstated.

How the eval was built

Real-traffic rows come from WildChat-1M (ungated real assistant traffic). Each prompt was labelled independently by three models (claude-opus-5, claude-sonnet-5, claude-fable-5-1) from the task rubric alone -- no labeller ever saw a proposed label, so agreement is evidence rather than assent. Only unanimous rows are scored.

Those three agree unanimously on roughly 70-74% of real prompts. The remaining prompts are published as a contested split rather than discarded: they measure how much real traffic this taxonomy does not resolve, which no single accuracy figure can express.

Training data

56259 rows from complexity-v2:5566+complexity-real:15600+complexity-real-contested:2358+complexity-active:7326+complexity-active-contested:1660+complexity-distill:30000, mixing jury-labelled real traffic (register and class prior) with rubric-grounded synthetic data (coverage of tiers that are rare in real traffic). Training prior: {'MEDIUM': 34763, 'COMPLEX': 3865, 'SIMPLE': 13852, 'REASONING': 3779}. Held-out eval prompts are excluded by content hash.

Latency

CPU single-request: p50 2.98 ms, p99 3.4 ms (Apple M-series, single thread). llm-d-sc serves the classifier on CPU, so model size trades directly against per-replica throughput.

Limitations

  • WildChat is consumer traffic. For sensitivity it is ~93% PUBLIC and cannot measure the tiers that gate egress; the enterprise row above covers those.
  • Labels come from LLM jurors, not human annotators. The rubric was validated by reproducing the project's hand-authored gold labels (complexity 0.9875, cost 1.000, sensitivity 1.000) before use.
  • Not independently reproduced.
Downloads last month
11
Safetensors
Model size
22.7M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for cnuland/llm-d-sc-complexity-v2