Skip to content

smoke_v0 — CI load-path probe

Status — CI internal. This is not a quality model and must not be used for video quality assessment. It exists solely as a load-path probe for the libvmaf DNN integration CI gate.

smoke_v0 is a minimal ONNX graph (Conv + Identity, one initializer tensor, opset 17) used to verify that the C-side DNN loader, the ONNX wire-format scanner, the op-allowlist gate, and the ORT execution path all function correctly without requiring any training corpus or real model weights. It is exercised in core/test/ as part of the repository runner's --suite=fast gate.

Checkpoint facts

Field Value
Model id smoke_v0
Location model/tiny/smoke_v0.onnx
Architecture Conv (1-weight kernel) + Identity — intentional CI probe
Trainable parameters 1 (1-element Conv kernel; no bias)
Input features — float32 [1, 1, 4, 4]
Output score — float32 [1, 1, 4, 4]
Training None: the single Conv weight is a synthetic constant written by scripts/gen_smoke_onnx.py
ONNX opset 17
License BSD-2-Clause-Patent
Registry entry smoke_v0 in model/tiny/registry.json ("smoke": true)
SHA-256 c83a5f217fa3736bf575c52f7f4c187a6201951e8ddccb51bdcdcc136108fbe0

Purpose

The DNN integration CI gate needs a model file that:

  1. Loads without error through the ONNX wire-format scanner.
  2. Passes the op-allowlist check (Conv + Identity are both on the allowlist in core/src/dnn/op_allowlist.c).
  3. Runs a forward pass through ORT without segfault or numerical error.
  4. Does not require an actual training corpus, GPU, or network access.

smoke_v0 satisfies all four criteria with a trivial 1-weight Conv. The model is registered with "smoke": true in registry.json so validation scripts know to skip quality-metric assertions for it.

Evaluation metrics

Intentional smoke probe — not evaluated on any quality corpus. PLCC / SROCC / RMSE figures are not applicable. The only gate the model must pass is ORT load-and-run without error.

Runnable usage example

# Verify via the C unit test suite:
python3 "$(git rev-parse --show-toplevel)/scripts/ci/run_meson_test.py" -- \
  -C build --suite=dnn test_dnn_session_api

# Or inspect the session inputs via Python:
python3 -c "import onnxruntime as ort; sess = ort.InferenceSession('model/tiny/smoke_v0.onnx'); print('Loaded inputs:', [i.name for i in sess.get_inputs()])"

Known limitations / when NOT to use

  • Do not use for video quality assessment of any kind.
  • Do not reference smoke_v0 as a production model in any downstream pipeline. Its Conv kernel weight is a synthetic constant; its output has no relation to perceptual quality.
  • The "smoke": true registry flag means model-registry validation scripts skip quality assertions. Any code path that branches on smoke == false for production use will correctly skip this model.

See also

  • smoke_fp16_v0.md — companion fp16 I/O round-trip probe.
  • core/src/dnn/op_allowlist.c — the allowlist this probe exercises.
  • ADR-0042 — tiny-AI doc-substance rule this card satisfies.