CoolFace
Datasetpublic

LibreYOLO/rf100-vl-results

RF100-VL campaign artifacts Raw artifacts from RF100-VL benchmark campaigns run with LibreYOLO: the per-dataset training configs, per-epoch metrics, logs, GPU telemetry, scoring inputs and submissions. Published so a result can be checked rather than believed. Protocol: fine-tune one checkpoint per dataset across the 100 RF100-VL datasets, score each on its test split with pycocotools at maxDets 500, and report the unweighted mean AP50:95. Epochs, batch size, seed and selection… See the full description on the dataset page: https://huggingface.co/datasets/LibreYOLO/rf100-vl-results.

sourceHugging Facemitupdated 1mo agoView on Hugging Face
0likes3.9kdownloads
Dataset Card

RF100-VL campaign artifacts

Raw artifacts from RF100-VL benchmark campaigns run with LibreYOLO: the per-dataset training configs, per-epoch metrics, logs, GPU telemetry, scoring inputs and submissions. Published so a result can be checked rather than believed.

Protocol: fine-tune one checkpoint per dataset across the 100 RF100-VL datasets, score each on its test split with pycocotools at maxDets 500, and report the unweighted mean AP50:95. Epochs, batch size, seed and selection metric are fixed by the recipe recorded in each run.

Results

Every row below is a complete campaign: 100 of 100 datasets, valid_submission: true, unweighted mean over the test splits. Read the number from the run id given here, and from that model's own submission file inside it.

modelAP 50:95AP 50authoritative run id
yolonas-s0.58000.841620260809-yolonas-s-02926964
yolox-m0.57010.848620260804-yolox-m-c7bd2a8c
yolov9-s0.55910.814020260802-yolov9s-a8f74d5b
yolox-s0.55250.835420260803-yolox-s-c7bd2a8c
yolov9-t0.54020.796320260802-yolov9t-a8f74d5b
yolox-tiny0.52180.804420260803-yolox-tiny-c7bd2a8c
yolox-nano0.48530.773020260803-yolox-nano-c7bd2a8c

Two traps when reading these numbers

A run folder contains other models' submissions. The uploader ships the whole local submissions directory, so each folder accumulates copies left by earlier campaigns. Those copies are frozen at the moment they were made and go stale. Take a model's result only from a file named for that model, inside the run id listed above. Reading a neighbour's copy is how superseded numbers get requoted as current.

For `yolox-nano` and `yolox-tiny`, two folders are both real and neither is complete on its own. 59f893f2 holds the 100 trained checkpoints; c7bd2a8c holds the corrected evaluation and the authoritative submission. The split exists because those two models were rescored after a BatchNorm eps bug: LibreYOLO applied YOLOX's eps=1e-3 after construction, and rebuilding the head for a new class count reset every BatchNorm to 1e-5, so models trained at one epsilon were evaluated at another. Depthwise nano took nearly all of the damage. The checkpoints were repaired by folding eps into the BatchNorm scale, with zero fold error, and rescored. The pre-correction submissions still exist in the older folders and must not be cited.

Layout

<model_key>/<run_id>/
  state/manifest.json     which code, recipe and data produced this run
  state/summary.json      orchestrator outcome
  state/logs/             one worker log per dataset
  runs/<dataset>/<variant>/
      train_config.yaml   the exact config the trainer received
      metrics.jsonl       per-epoch metrics
      results.csv         per-epoch metrics, flat
      train.log           trainer log
      status.json         final per-dataset status
      gpu_trace.jsonl.gz  1 Hz GPU telemetry for this dataset
      gpu_summary.json    utilization, power, idle time, attribution
  stats/<dataset>.json    training stats used to validate protocol conformance
  eval/                   per-dataset scores and raw prediction dumps
  submissions/            submission JSON and markdown report
  provenance/             the recipe and the dataset version lock

Every run keeps its recipe in provenance/, including campaign variants that existed only on the box that ran them. Check it against the recipe_sha256 recorded in that run's submission before trusting either. yolox-nano and yolox-tiny also carry fold_eps.py, the script that repaired the BatchNorm eps bug described below, and a SUPERSEDES.md naming which run replaces which.

Read manifest.json first

Every run carries one. It records the resolved commit of both LibreYOLO and the benchmark harness (from pip's direct_url.json, since a campaign box installs from git and has no .git to interrogate), the recipe hash and its protocol block, the dataset version-lock hash, the host and GPU inventory, and the count of datasets in each state. The hashes the workers actually recorded are stored alongside the ones derived at upload time, so a mismatch is visible rather than reconciled away.

A result whose exact commit cannot be identified is an anecdote, not evidence. That is what this file is for.

Runs that are not results

run idmodelstatusdatasetsuse it for
20260731-yolov9t-partialyolov9-tEXPERIMENTAL, not a result7 of 100 trainedharness development only
20260731-pilot-5070tiyolov9-tpilotpartialhardware shakedown only
20260804-ec-s-2cc4e326ec-sabandoned16 of 100failure record only

Folders holding neither checkpoints, evaluation, nor their own submission are superseded attempts kept only as a record of what was tried.

About 20260731-yolov9t-partial

This run exists because it was used to develop and debug the harness, and it is kept for that record. Do not cite it, and do not compare it to anything. Specifically:

  • Only 7 of 100 datasets completed. The submission is correctly marked invalid, and no mean AP over 100 datasets exists for it.
  • Its GPU telemetry is wrong. Datasets were packed several to a card, and the sampler of that version attributed a card to a single dataset: 16 datasets have no trace at all, and the 21 that do include work done by their cardmates. Later versions record every dataset on the card and label shared attribution honestly.
  • Datasets within it were produced across more than one harness commit, so the single commit in its manifest does not describe all of them.

A campaign intended as a result runs all 100 datasets from a clean state under one set of commits.

LibreYOLO/rf100-vl-results · CoolFace