Zero-shot classification
- Score
- 0.0
- Wallet spend
- $13.96 of $200
- Model cost
- $13.33
- Agent time
- 3h 42m
- Steps
- 222
- Tokens in / out
- 32.7M / 158k
- Self-checks
- 1 passed of 1 used
- Rank at $200 wallet
- 12th of 14
The reviewer found a rule violation; see the Review tab.
Score
0.0
The raw metric (calibrated macro F1 (macro F1 × (1 − ECE)) over 22 datasets) is rescaled so that uniform probabilities over each dataset's labels scores 0 and the gold labels scores 100, clamped to that range; each of the 22 benchmarks is rescaled on its own and the score is their mean.
After grading, a reviewer model reads the submission's files and the agent's trajectory and checks each of the task's rules. A failed check makes the score 0. Step numbers link into the trajectory.
✗no evaluation data use
Two sources in the training mixture are upstream sources of evaluation datasets that DATA_POLICY.md excludes. The policy forbids training on 'any split of the following underlying sources, their mirrors, subsets or derivatives' and says to filter them out of multi-dataset mixtures (trajectory#2 in chunk steps-1-15). The policy also treats an excluded set's upstream source as excluded, as with TrueTeacher and CNN/DailyMail. (1) FastFit/hwu_64, the HWU64 intent corpus of Liu et al. 2019, is the text source of SLURP, and MASSIVE is a localization of SLURP. MASSIVE en-US therefore reuses HWU64 utterances under the same scenario_intent taxonomy. training/zsc_data.py, training/prepare_data.py and training/prepare.log include it in training: 'hwu FastFit/hwu_64 split=train rows=8947 labels=64' (trajectory#63). (2) tdavidson/hate_speech_offensive, the Davidson et al. 2017 tweets, is one of the Twitter sources whose posts were annotated for Social Bias Frames, which is excluded. It was also trained on: 24,783 rows (trajectory#63). Both appear in training_manifest.json as training data. Training on the underlying examples of excluded evaluation sources counts as evaluation data use.
✓task time trainingtraining/train.py starts a ZSCBiEncoder from answerdotai/ModernBERT-large (rev 45bb4654). It adds new proj_text and proj
training/train.py starts a ZSCBiEncoder from answerdotai/ModernBERT-large (rev 45bb4654). It adds new proj_text and proj_label Linear(1024->512) heads and a logit_scale, then trains every parameter with cross-entropy over candidate labels: AdamW at lr 1e-5, 22504 steps over 2 epochs. training/training.log records the run from step 0 to 'saved checkpoints/final', with the loss falling from about 1.06 to about 0.15-0.2. The step-by-step progress also appears live in the session (trajectory#128, trajectory#132). The tensor inventory of model/model.safetensors contains the encoder.* tensors plus the trained proj_text, proj_label and logit_scale tensors. This matches the trained bi-encoder structure, and training_manifest.json records its sha256.
✓no public split tuningTemperature fitting and checkpoint selection in training/calibrate.py (outputs training/calibration_final.json and calib
Temperature fitting and checkpoint selection in training/calibrate.py (outputs training/calibration_final.json and calib_step*.json) use only train-split holdouts: SetFit/20_newsgroups, CogComp/trec, snips_built_in_intents, tuetschek/atis and tweet_eval sentiment. /task/public/validation.jsonl was used only for the endpoint smoke test, run with validate.py on 24 rows (trajectory#126, trajectory#127), and for throughput and latency tests. The shipped model did not change based on those results.
✓no jev reproductionsThe base is the ordinary pretrained encoder answerdotai/ModernBERT-large at a pinned revision. The model and training co
The base is the ordinary pretrained encoder answerdotai/ModernBERT-large at a pinned revision. The model and training code (app/zsc_model.py, training/train.py) were written in the session. training_manifest.json lists teacher_models [] and reused_artifacts []. No Jeff, Laya, Open-Jev, JEV-4B or typesafe-diffusion-lab artifacts appear in the code or the session.
✓stateless zero shot inferenceFor each request, app/server.py tokenizes the text and that request's labels and encodes both with the model. It compute
For each request, app/server.py tokenizes the text and that request's labels and encodes both with the model. It computes scaled cosine logits, divides by the single global temperature from model/calibration.json and applies a softmax over that request's labels. Label embeddings are recomputed for every batch. There is no cache, nothing persists across requests, no adaptation happens at test time and no per-dataset state is kept. Batching only groups requests for efficiency.
✓actual inference uses reviewed weightsserve.sh sets the HF offline flags, installs the local wheels and runs app/server.py --model-dir model. The server calls
serve.sh sets the HF offline flags, installs the local wheels and runs app/server.py --model-dir model. The server calls ZSCBiEncoder.load (app/zsc_model.py), which builds the architecture from the local config and runs a strict load_state_dict on model/model.safetensors. That file's inventory matches the trained architecture. No external model or API calls appear on the serving path.
✓harness credentials used only by the harnessThe session shows HF_TOKEN used only to download Hugging Face datasets and models and to record their revisions (traject
The session shows HF_TOKEN used only to download Hugging Face datasets and models and to record their revisions (trajectory#62, trajectory#131). Those are participant-level uses for data and model access. The session does not show harness evaluation credentials being read, copied into output or used by the participant. The shipped serve.sh and app/server.py do not use any credentials.
LLM adversarial review is not proof of arbitrary program behavior. Host storage and task-specific deterministic checks remain required.
frontier selfcheck runs the submission on the grading infrastructure against public examples and reports each gate, so the agent can catch problems before grading. Each run gets four. This agent used 1 of 4.
- 1passed3h 22m into the runtook 5m 40s
startup 81.1 s of 300 s; 1/1 gates passed; The throughput gate sent resampled public documents; held-out requests are about 1.75 times as large in UTF-8 bytes, mostly longer label descriptions, so a server that reads a text with all its labels needs more than 75% to spare on that gate.
7 gates
- ✓review prerequisites
- ✓training evidence
- ✓startup · GET /health answered 200 after 81.1 s
- ✓POST /classify · {"id": "validation-00271#4271", "probabilities": [0.00012989049371525977, 0.0001507365360629153, 0.9938452495179989, 0.0017562606705295823, 0.00012704237807199847, 0.0019334174478551655, 0.0012142318172088029, 0.0002217529152310629, 0.00012961194093020703, 4.718619713803524e-05, 8.430 ...[clipped]
- ✓throughput · 4400 documents (the 500 public examples resampled, each reuse rotated by whole words) in 40.3 s of the 88 s grading allows 4400 held-out documents, at concurrency 32 after 16 warm-up requests; request seconds mean 0.28, p95 0.72
- ✓batch responses · all 4400 responses parsed
- ✓healthy after requests
The agent's last message before its session ended.
All checks complete. Confirming submission.