Skip to content

v0.5.0 — Your checkpoint, your dataset, proven

Latest

Choose a tag to compare

@PogChamper PogChamper released this 17 Jul 16:34

v0.5.0 — Your checkpoint, your dataset, proven

The most requested capability since v0.4.0: taking this pipeline to a model that is not COCO.
This release makes that a first-class, verifiable path — export a fine-tuned D-FINE checkpoint
without a training checkout, evaluate it on your own COCO-format dataset, and compare operating
points through a chain that refuses to compare the wrong things. The published model artifacts
are byte-identical to v0.3.1–v0.4.0; no re-export is required.

Validate on your own dataset

  • preset_sweep (dfine sweep) runs the whole comparison in one command: export, slim
    conversion, engine builds, accuracy on your split, baseline deltas, and native throughput over
    configurable operating points (graph × precision × engine profile × runtime mode), assembled
    into one decision table with an --ap-budget recommendation. Every step is the documented tool
    run with its argv recorded, so the table is reproducible by hand.
  • D-FINE-seg YOLO splits convert on the fly (--yolo-dataset); yolo_to_coco.py is the
    standalone converter.
  • Validation is a reproducible workflow for a custom checkpoint and any
    COCO-format detection dataset: any class count, the same 640×640 stretch contract, standard
    COCO bbox metrics.
  • Accuracy reports carry AP/AR slices, per-IoU and per-class metrics, GT density, and
    original-pixel versus model-space object-size breakdowns, plus annotation, image, evaluator,
    artifact, and lineage hashes.
  • accuracy_chain.py assembles export → TensorRT → precision → preset deltas and rejects reports
    with different annotations, image bytes, preprocessing, thresholds, Top-K, inference batch,
    evaluator source, GT population, model contract, or artifact lineage. Reports that predate
    lineage recording are rejected unless --allow-missing-lineage is passed.
  • The v0.5 preset report is the worked example: four
    independently fine-tuned cross-domain datasets (RF4) plus full COCO, five graph presets, every
    backend transition isolated.

Self-contained checkpoint export

  • The detection-only D-FINE definition is bundled; export no longer needs a training repository
    checkout. Breaking: export requires an explicit --checkpoint; --dfine-src and
    DFINE_SEG_DIR/DFINE_SEG_SRC are removed from the export toolchain.
  • A path-gated CI job proves the bundled model bit-exact against the pinned D-FINE-seg revision
    over all five published checkpoints whenever the bundle or the pin changes.
  • Checkpoint provenance is strict, model packs are validated canonically, and engine builders
    deserialize the published plan to verify its compiled batch profile before recording metadata.

Benchmark surface

  • The throughput surface was re-measured under an idle-gated protocol: five interleaved
    single-round processes per configuration, published medians with min–max ranges. Batch-8 gains
    are monotonic in pruned query count; Q200→C100 is the fastest preset at +9.7%.
  • Runtime modes are now published points: full-pipeline CUDA Graph and 1/8/8 serving profiles,
    including the max configuration — 1.99 ms at batch 1 under graph capture and 662 img/s at
    batch 8 (−0.96 COCO AP), measured with the standard fidelity chain.
  • A controlled eager versus torch.compile baseline accompanies the study.

Runtime and tooling contracts

  • GPU-decode host staging buffers are pinned, so the mode's async copies stay asynchronous and
    the reported dispatch/wait timing split is truthful; detections are unchanged.
  • profile.py enforces --topk on the native accuracy backend and rejects values above the
    native decode limit.
  • Evaluation reports are stretch-only end to end; the producer-less letterbox report schema was
    removed and accuracy_chain rejects letterbox geometry.

Assets

The wheel is dfine-0.5.0-py3-none-linux_x86_64.whl; the model pack republishes the pinned
v0.3.1-lineage artifacts unchanged. Install and verification commands are in
Getting started; the asset grammar is in Naming.