Skip to content

Model & Task Distribution

Full task catalog, model sourcing, and dataset planning Revised after verification (Context7 + Firecrawl + benchy validation gate): runtime-support claims corrected, core benchmark restructured, settings aligned with the frozen benchy suite


Overview

The platform provides a comprehensive ML test suite spanning computer vision, audio, and NLP. Each task includes standard benchmark datasets, multiple model options in web-friendly formats, and a runtime/framework compatibility matrix.

The core benchmark automates fair comparisons across runtimes using matched models. Users can also run any task manually with custom configurations and run counts (1, 10, 25, 50, or more; below 30 measured runs benchy draws a statistical warning — automated sweeps clamp to the 30-run minimum, A8).

Verified feasibility

The runtime-support claims in earlier drafts of this page were optimistic. After verifying model availability against official docs and the benchy validation gate, only image classification has an identical model architecture across all six engines. The other tasks are benchmarked as task-pipeline comparisons (each engine's canonical task model, with input resolution documented per run) — not as model-for-model comparisons. See the corrected matrix in Core Benchmark and the Cross-Reference table.


Task Categories

Category Tasks Count
Computer Vision Image Classification, Object Detection, Semantic Segmentation, Pose Estimation, Facial Landmark Detection, Face Recognition, Body Segmentation, Depth Estimation, Style Transfer 9
Audio Noise Suppression, Speech Recognition, Audio Classification 3
NLP Text Classification, Text Embeddings, Question Answering, Text Generation 4
Total 16

Auto-bench inclusion rule

A task enters the automated benchmark only if it satisfies all of:

  1. ≥ 3 runtime paths — at least three of onnx (direct), litert.js, transformers.js, tfjs, mediapipe can execute it; strict same-model artifacts (identical weights converted per format) are strongly preferred over task-pipeline comparisons.
  2. Testable ground truth — a small curated fixture set whose correct output is known independently of any runtime (image → ImageNet label, sentence → sentiment label, clip → AudioSet label), so every measured run is graded automatically.
  3. Comparable outputs — the engines' outputs must live in the same label space, otherwise cross-engine numbers are meaningless.

Tasks failing the rule may still exist as playground-only demos (manual exploration, no suite numbers).

Catalog vs. core benchmark

The 16 tasks below are an ecosystem catalog — they document what exists and what could be added. Only the tasks marked ★ CORE are part of the automated benchmark, and only image classification is a strict same-model comparison. The remaining core tasks compare each engine's canonical model for the task (task-pipeline comparison).


Core Benchmark

The core benchmark is an automated "autoplay" comparison that runs matched models across all compatible runtimes with standardized settings.

Inclusion criteria:

  1. Same model architecture available in ≥3 formats (ONNX, TFLite, TF.js) — only image classification meets this today
  2. Standard benchmark dataset with published metrics
  3. Automatable evaluation (no subjective judgment)
  4. Supported by ≥3 runtimes/frameworks

Core benchmark tasks:

Task Comparison type Models per engine Dataset context Engines
Image Classification Strict same-model (MobileNetV2 in all formats) mobilenet-v2: TF.js graph, ONNX, TFLite, HF ONNX (q8), ml5 ImageNet-1K labels All 6
Object Detection Task-pipeline TF.js coco-ssd (SSD-MobileNetV2 base) · ONNX zoo ssd_mobilenet_v1_12 (V1!) · MediaPipe EfficientDet-Lite0 (320²) COCO (80 classes) TF.js, ORT, MediaPipe (LiteRT only float32 EfficientDet — untested; Transformers.js = RT-DETR/YOLOS only)
Semantic Segmentation Removed from auto-bench — fails the inclusion rule: single MediaPipe path (transformers.js image-segmentation exists but uses different label spaces; selfie tflite is f32 so LiteRT.js could run it raw, yet no ground-truth masks exist and outputs are not comparable across engines). Playground-only demo with mask rendering.
Pose Estimation Task-pipeline TF.js MoveNet Lightning (192²) / Thunder (256²) · MediaPipe PoseLandmarker (BlazePose) COCO Keypoints (17 pts) TF.js, MediaPipe — LiteRT impossible (MoveNet tflite = uint8 I/O; LiteRT.js requires int32/f32)
Facial Landmarks Task-pipeline MediaPipe FaceLandmarker (478 pts) · TF.js face-landmarks-detection (wrapper) 300W / WFLW MediaPipe ✅, TF.js (wrapper)

Qualifying candidates for future auto-bench tasks (omni-task roadmap):

Task Paths (same weights where noted) Ground truth Status
Audio classification (YAMNet) onnx direct (tf2onnx conversion) · litert.js (Google f32 tflite, 3.7 MB) · mediapipe AudioClassifier — identical weights Curated clips → AudioSet label (dog bark, speech, music) Planned (task #2, needs audio input pipeline)
Text classification (sentiment, SST-2) transformers.js (DistilBERT q8 onnx) · litert.js (f32/int32 tflite via onnx2tf) · onnx direct Labeled sentences (trivial) Planned (task #3, needs text input pipeline + JS tokenizer)
Object detection tfjs coco-ssd · mediapipe EfficientDet-Lite0 · onnx zoo SSD (task-pipeline, different models) Curated images → class presence Candidate (GT is class-presence only; conversion route litert-torch/onnx2tf identified)

Key verified facts:

  • No identical detection model exists across runtimes. ONNX zoo ships SSD-MobileNetV1 (not V2); TF.js coco-ssd bases are lite_mobilenet_v2/v1/v2; MediaPipe uses EfficientDet-Lite0; Transformers.js only supports RT-DETR/YOLOS/DETR for detection.
  • Input resolution is a model property, not a runtime property (coco-ssd ~300², EfficientDet-Lite0 320², MoveNet 192²/256², selfie-multiclass 256²). It must be recorded per run and treated as a documented model attribute.
  • LiteRT.js I/O constraint: int32/float32 tensors only — this rules out uint8-quantized pose models and int8 detection models for LiteRT.
  • Post-processing location differs per engine: TF.js coco-ssd and MediaPipe ship post-processed outputs; ONNX zoo SSD ships raw boxes/scores (JS decode + NMS needed). This is a documented validity factor.
  • Future extension — converted same-model pairs: converting one model (e.g., RTMDet-n, RTMPose-t) to both ONNX and TFLite via litert-torch/onnx2tf enables a strict ORT↔LiteRT comparison for detection/pose. Requires one-time conversion + vendoring effort. See Model Sources & Conversion.

Core benchmark settings (aligned with the frozen benchy suite):

  • Warmup: 5 iterations
  • Measurement runs: 30 (frozen in suiteConfig.ts; A8 minimum clamp applies)
  • Statistical analysis (e.g., Mann-Whitney U): computed offline from the raw-sample exports, not in-app
  • Network: uncached (models vendored same-origin; cold-start = first load, reported separately via firstInferenceMs)

Computer Vision Tasks

1. Image Classification ★ CORE BENCHMARK

Classify the major object in an image into a set of pre-defined classes.

Dataset: ImageNet-1K (ILSVRC 2012) — 50K validation images, 1000 classes

Metric: Top-1 Accuracy, Top-5 Accuracy, Inference Latency (ms)

Models:

# Model Paper / Year Top-1 Acc Size ONNX TFLite TF.js Core
1 MobileNetV2 Sandler et al., 2018 71.8% ~14 MB
2 MobileNetV3-Large Howard et al., 2019 75.2% ~22 MB
3 EfficientNet-B0 Tan & Le, 2019 77.1% ~23 MB
4 ConvNeXt-Tiny Liu et al., 2022 82.1% ~115 MB Community
5 ViT-B/16 Dosovitskiy et al., 2020 84.0% ~344 MB Community

Runtime Support:

TF.js ORT Web LiteRT.js Transformers.js MediaPipe ML5.js

2. Object Detection ★ CORE BENCHMARK

Detecting instances of semantic objects of a certain class in digital images and videos, outputting bounding boxes and labels.

Dataset: COCO val2017 — 5K images, 80 classes

Metric: [email protected], [email protected]:0.95, Inference Latency (ms)

Models:

# Model Paper / Year mAP Size ONNX TFLite TF.js Core
1 SSD MobileNetV2 Google, 2018 22.0% ~14 MB
2 YOLOv8n Ultralytics, 2023 37.3% ~6 MB
3 EfficientDet-D0 Tan et al., 2020 33.8% ~16 MB
4 YOLOv8s Ultralytics, 2023 44.9% ~22 MB
5 DETR-R50 Carion et al., 2020 42.0% ~164 MB Community

Runtime Support:

TF.js ORT Web LiteRT.js Transformers.js MediaPipe ML5.js
✓ (coco-ssd) ✓ (zoo SSD-MobileNetV1, raw outputs → JS NMS) ⚠️ float32 EfficientDet only (int8 fails I/O rule; untested) ⚠️ RT-DETR/YOLOS only — not SSD ✓ (EfficientDet-Lite0) ⚠️ objectDetector (coco-ssd wrapper; verify 1.4.0)

No identical detection model exists across runtimes

The ONNX Model Zoo ships SSD-MobileNetV1 (onnxmodelzoo/ssd_mobilenet_v1_12, 28 MB, opset 12, mAP 23.0%) — not V2. TF.js coco-ssd bases are lite_mobilenet_v2 (default), mobilenet_v1, mobilenet_v2. MediaPipe uses EfficientDet-Lite0 (320×320). Transformers.js supports only RT-DETR/YOLOS/DETR for object detection. Detection is therefore a task-pipeline comparison, not a model-for-model comparison.


3. Semantic Segmentation ★ CORE BENCHMARK

Partitioning an image into semantically meaningful parts, classifying each pixel into a pre-determined class.

Dataset: PASCAL VOC 2012 — 1.4K validation images, 20 classes + background

Metric: mIoU (mean Intersection over Union), Inference Latency (ms)

Models:

# Model Paper / Year mIoU (VOC) Size ONNX TFLite TF.js Core
1 DeepLabV3+ (MobileNetV2) Chen et al., 2018 75.2% ~84 MB
2 SegFormer-B0 Xie et al., 2021 34.0% (ADE20K) ~15 MB Community
3 FCN-ResNet50 Long et al., 2015 76.5% ~132 MB
4 BiSeNetV2 Yu et al., 2020 73.1% (Cityscapes) ~20 MB Community
5 Mobile-SAM Zheng et al., 2023 77.2% (SA-1B) ~37 MB Community

Runtime Support:

TF.js ORT Web LiteRT.js Transformers.js MediaPipe ML5.js
✓ (body-segmentation: SelfieSegmentation/BodyPix; @tensorflow-models/deeplab is 3 years stale) ⚠️ zoo deeplab/fcn ResNet50 (heavy, untested on wasm) ✗ (no official DeepLab tflite in litert-community) ⚠️ HF segmentation models only (heavy) ✓ (ImageSegmenter — implemented in benchy)

DeepLabV3+ claim corrected

The earlier draft claimed DeepLabV3+ on TF.js/ORT/LiteRT/Transformers. Verified reality: TF.js's maintained segmentation package is body-segmentation (MediaPipe SelfieSegmentation + BodyPix); the standalone @tensorflow-models/deeplab package is v2.2.3, ~3 years unmaintained. The one true cross-engine same-model pair is MediaPipe's SelfieSegmentation consumed via the MediaPipe runtime vs. the TF.js runtime of body-segmentation. The implemented core is MediaPipe ImageSegmenter (selfie-multiclass, 256×256).


4. Pose Estimation ★ CORE BENCHMARK

Detect human body keypoints (skeleton) — joints like shoulders, elbows, knees, and ankles.

Dataset: COCO Keypoints val2017 — 5K images, 17 keypoints

Metric: AP (Average Precision), Inference Latency (ms)

Models:

# Model Paper / Year AP Size ONNX TFLite TF.js Core
1 MoveNet Thunder Google, 2021 61.2% ~18 MB
2 MoveNet Lightning Google, 2021 52.9% ~12 MB
3 BlazePose (GPU) Bazarevsky et al., 2020 33 landmarks ~4 MB
4 HRNet-W32 Sun et al., 2019 74.4% ~114 MB Community
5 ViTPose-Small Xu et al., 2022 74.1% ~88 MB Community

Runtime Support:

TF.js ORT Web LiteRT.js Transformers.js MediaPipe ML5.js
✓ (MoveNet Lightning 192² / Thunder 256²) ✗ (no zoo MoveNet) architecturally impossible ✓ (PoseLandmarker / BlazePose) ✗ (no pose API)

Pose claim corrected

The earlier draft claimed TF.js, LiteRT, MediaPipe, ML5. Verified reality: MoveNet TFLite variants use uint8 input/output tensors, which LiteRT.js cannot feed (int32/float32 I/O only). ML5 has no pose API. The realistic cross-engine pair is TF.js MoveNet ↔ MediaPipe BlazePose — different model families, so pose is a task-pipeline comparison only.


5. Facial Landmark Detection ★ CORE BENCHMARK

Detecting facial landmarks like eyes, nose, mouth, and jawline — used for face alignment, tracking, and try-on applications.

Dataset: 300W — 68 landmarks; WFLW — 98 landmarks

Metric: NME (Normalized Mean Error), Inference Latency (ms)

Models:

# Model Paper / Year NME (300W) Size ONNX TFLite TF.js Core
1 MediaPipe Face Mesh Google, 2019 2.21% ~4 MB
2 Dlib 68-Point Kazemi & Sullivan, 2014 4.18% ~2 MB Community Community
3 3DDFA_V2 Guo et al., 2020 1.69% ~32 MB Community
4 FAN (Face Alignment Net) Bulat & Tzimiropoulos, 2017 3.78% ~76 MB Community Community
5 Dlib 5-Point Kazemi & Sullivan, 2014 ~5% <1 MB Community Community

Runtime Support:

TF.js ORT Web LiteRT.js Transformers.js MediaPipe ML5.js
✓ (face-landmarks-detection — wrapper over MediaPipe FaceMesh) ✗ (community conversions only) ✓ (FaceLandmarker, 478 landmarks incl. iris)

Facial-landmark claim corrected

The earlier draft claimed TF.js, ORT, LiteRT, MediaPipe, ML5. Verified reality: MediaPipe FaceLandmarker is the only strong native implementation; the TF.js package is a thin wrapper around the same MediaPipe models; ORT/LiteRT/ML5 have no official path.


6. Face Recognition

Detecting faces and verifying whether a face matches a known identity.

Dataset: LFW (Labeled Faces in the Wild) — 13K images, 5.7K identities

Metric: Verification Accuracy, TAR @ FAR=0.001, Inference Latency (ms)

Models:

# Model Paper / Year Acc (LFW) Size ONNX TFLite TF.js
1 ArcFace-R100 Deng et al., 2019 99.83% ~60 MB Community
2 MobileFaceNet Chen et al., 2018 99.55% ~5 MB Community
3 FaceNet (InceptionResNet) Schroff et al., 2015 99.63% ~100 MB
4 AdaFace Kim et al., 2022 99.82% ~72 MB Community Community
5 InsightFace-MobileNet Deng et al., 2020 99.77% ~6 MB Community

7. Body Segmentation

Segmenting human body regions from the background — used for background blur, virtual backgrounds, and AR effects.

Dataset: COCO-Stuff / ADE20K

Metric: mIoU, Inference Latency (ms)

Models:

# Model Paper / Year Size ONNX TFLite TF.js
1 MediaPipe Selfie Segmentation Google, 2020 ~3 MB
2 BodyPix Google, 2020 ~25 MB
3 U-Net (MobileNet backbone) Ronneberger et al., 2015 ~20 MB Community

8. Depth Estimation

Predicting depth from a single image — used for 3D reconstruction, AR placement, and scene understanding.

Dataset: DIODE / NYU Depth V2

Metric: Abs Rel, RMSE, δ < 1.25, Inference Latency (ms)

Models:

# Model Paper / Year Size ONNX TFLite TF.js
1 MiDaS v2.1 Ranftl et al., 2020 ~40 MB Community
2 DPT-Large Ranftl et al., 2021 ~344 MB Community
3 MiDaS v3.1 Small Ranftl et al., 2022 ~25 MB Community

9. Image Style Transfer

Applying artistic styles (e.g., Van Gogh, Monet) to photographs in real time.

Dataset: WikiArt (perceptual quality — no standard accuracy metric)

Metric: Inference Latency (ms), FID (optional)

Models:

# Model Paper / Year Size ONNX TFLite TF.js
1 FastStyleTransfer Johnson et al., 2016 ~28 MB
2 AdaIN (Arbitrary) Huang & Belongie, 2017 ~28 MB Community Community
3 STROTSS Kolkin et al., 2019 ~80 MB Community Community

Audio Tasks

10. Noise Suppression

Removing background noise from audio in real time — used for video calls, podcasts, and voice assistants.

Dataset: DNS Challenge (Microsoft Deep Noise Suppression Challenge)

Metric: PESQ (Perceptual Evaluation of Speech Quality), STOI, Inference Latency (ms)

Models:

# Model Paper / Year Size ONNX TFLite TF.js
1 RNNoise Valin, 2018 <1 MB Community Community
2 NSNet2 Microsoft, 2021 ~3 MB Community
3 CMGAN Zhang et al., 2022 ~10 MB Community Community

11. Speech Recognition (ASR)

Converting spoken language into text — used for transcription, voice commands, and accessibility.

Dataset: LibriSpeech / CommonVoice

Metric: WER (Word Error Rate), Inference Latency (ms)

Models:

# Model Paper / Year Size ONNX TFLite TF.js
1 Whisper-Tiny OpenAI, 2022 ~75 MB Community
2 Whisper-Base OpenAI, 2022 ~140 MB Community
3 Whisper-Small OpenAI, 2022 ~460 MB Community

12. Audio Classification

Classifying audio clips into categories — used for sound event detection, environmental monitoring, and music genre classification.

Dataset: ESC-50 / AudioSet

Metric: Accuracy, Inference Latency (ms)

Models:

# Model Paper / Year Size ONNX TFLite TF.js
1 YAMNet Google, 2020 ~3 MB
2 AST (Audio Spectrogram Transformer) Gong et al., 2021 ~90 MB Community Community

NLP Tasks

13. Text Classification

Assigning a label or class to text — used for sentiment analysis, spam detection, topic categorization, and toxicity detection.

Dataset: GLUE Benchmark / SST-2 (Stanford Sentiment Treebank)

Metric: Accuracy, GLUE Score, Inference Latency (ms)

Models:

# Model Paper / Year SST-2 Acc Size ONNX TFLite TF.js
1 DistilBERT Sanh et al., 2019 92.8% ~264 MB
2 MobileBERT Sun et al., 2020 90.6% ~100 MB
3 TinyBERT Jiao et al., 2020 91.3% ~56 MB Community
4 BERT-Base Devlin et al., 2019 93.5% ~440 MB
5 ALBERT-Base Lan et al., 2020 93.2% ~48 MB Community

14. Text Embeddings

Generating dense vector representations of text — used for semantic search, clustering, and retrieval-augmented generation (RAG).

Dataset: MTEB (Massive Text Embedding Benchmark)

Metric: MTEB Average Score, Inference Latency (ms)

Models:

# Model Paper / Year MTEB Score Size ONNX TFLite TF.js
1 all-MiniLM-L6-v2 Reimers & Gurevych, 2019 56.3 ~90 MB
2 all-mpnet-base-v2 Reimers & Gurevych, 2019 57.8 ~440 MB Community
3 BGE-small-en-v1.5 Xiao et al., 2023 62.2 ~132 MB Community
4 E5-small-v2 Wang et al., 2022 58.8 ~132 MB Community Community
5 nomic-embed-text-v1.5 Nomic AI, 2024 62.4 ~550 MB Community Community

15. Question Answering

Extracting answers from a context paragraph — used for document search, chatbots, and knowledge bases.

Dataset: SQuAD v2.0 (Stanford Question Answering Dataset)

Metric: F1 Score, Exact Match, Inference Latency (ms)

Models:

# Model Paper / Year F1 Size ONNX TFLite TF.js
1 DistilBERT-SQuAD Sanh et al., 2019 80.1 ~264 MB
2 BERT-Base-SQuAD Devlin et al., 2019 84.3 ~440 MB
3 MobileBERT-SQuAD Sun et al., 2020 79.2 ~100 MB

16. Text Generation

Generating text autoregressively given a prompt — used for content creation, code generation, and conversational AI.

Dataset: WikiText-2 (perplexity)

Metric: Perplexity, Inference Latency (tokens/sec)

Models:

# Model Paper / Year Size ONNX TFLite TF.js
1 GPT-2 Radford et al., 2019 ~500 MB
2 GPT-2 Small Radford et al., 2019 ~250 MB
3 TinyStories (custom) Eldan & Li, 2023 ~50 MB Community Community

Cross-Reference: Runtime × Task Availability

Verified rows — checked against official docs, model hubs, and the benchy validation gate:

Task TF.js ORT Web LiteRT.js Transformers.js MediaPipe ML5.js
Image Classification ★ ✓ (remote)
Object Detection ★ ⚠️ V1, raw outputs ⚠️ f32 only, untested ⚠️ RT-DETR/YOLOS only ⚠️ verify 1.4.0
Semantic Segmentation ★ ⚠️ body-segmentation ⚠️ heavy zoo models ⚠️ heavy HF models done
Pose Estimation ★ ✓ MoveNet ✗ uint8 I/O ✓ BlazePose
Facial Landmarks ★ ⚠️ wrapper

Legend

  • = verified available with official or well-maintained model
  • ⚠️ = available with caveats (see task section / warning boxes above)
  • = verified unavailable or no web-compatible path

Remaining catalog rows (unverified estimates) — the audio and NLP rows below were drafted optimistically and have not been verified the way the rows above were. Treat them as leads, not facts:

Task TF.js ORT Web LiteRT.js Transformers.js MediaPipe ML5.js
Face Recognition ? ? ? ? ? ?
Body Segmentation ? ? ? ? ? ?
Depth Estimation ? ? ? ? ? ?
Style Transfer ? ? ? ? ? ?
Noise Suppression ? ? ? ? ? ?
Speech Recognition ? ? ? ? ? ?
Audio Classification ? ? ? ? ? ?
Text Classification ? ? ? ? ? ?
Text Embeddings ? ? ? ? ? ?
Question Answering ? ? ? ? ? ?
Text Generation ? ? ? ? ? ?

Legend

  • ? = unverified estimate from the original draft; verify before relying on it

Model Sources

Source URL Used For
ONNX Model Zoo (HuggingFace) https://huggingface.co/onnxmodelzoo ORT Web, Transformers.js models
TensorFlow Hub https://tfhub.dev/ TF.js, ML5.js models
HuggingFace Hub https://huggingface.co/models Transformers.js, ONNX models
Kaggle Models https://www.kaggle.com/models LiteRT.js / TFLite models (alternative source)
Google Storage https://storage.googleapis.com MediaPipe pre-optimized models
Ultralytics https://github.com/ultralytics/ultralytics YOLOv8 ONNX/TFLite exports

Model Sources & Conversion

Model availability in a browser-executable format is itself a compatibility property. The conversion toolchain from creation frameworks to browser formats:

Path Tool Status
PyTorch → ONNX torch.onnx.export / ONNX exporter official, mature
PyTorch → TFLite/LiteRT litert-torch (renamed from ai-edge-torch; built on torch.export()) official Google, Beta
TF/Keras → TF.js tensorflowjs_converter official
TF/Keras → TFLite LiteRT converter (ai-edge-litert) official
ONNX → TFLite onnx2tf (PINTO0309) third-party, battle-tested
Cross-format proof PINTO Model Zoo — 100+ models inter-converted across TF, PyTorch, ONNX, OpenVINO, TFJS, TFLite (f32/f16/int8), EdgeTPU, CoreML community, 4.6k ⭐

Taxonomy (mirrors thesis Background §Conversion Paths):

  • Creation/training frameworks: PyTorch, TensorFlow/Keras, JAX
  • Interchange format: ONNX
  • Edge optimization/deployment runtimes (not creation frameworks): OpenVINO, TensorRT, LiteRT
  • Legacy: Caffe (historical training framework)

Implications for the benchmark:

  1. Format choice gates runtime choice — a model only exists for the runtimes whose format it was converted to
  2. Conversion settings (opset, quantization, NCHW/NHWC) are part of the experimental setup and must be documented per artifact
  3. Conversion is the precondition for strict same-model cross-runtime comparison — the MobileNetV2 artifacts in public/models/ exist in three formats precisely because of this toolchain
  4. Future extension: converting one detection/pose model (e.g., RTMDet-n, RTMPose-t) to both ONNX and TFLite would enable a strict ORT↔LiteRT pair beyond classification (one-time conversion + vendoring effort; fp16 TFLite keeps float32 I/O and satisfies the LiteRT.js constraint)

User Workflows

The platform supports two usage modes:

Automated Core Benchmark

Click "Start Benchmark" on the /bench page to automatically (frozen protocol, A8/A19):

  1. Prepare matched models across all compatible runtimes (artifacts warmed into the Cache API so load times are cache-warm)
  2. Per combo: one model load, then 5 warmup inferences pinned to the first image slot
  3. Execute 30 measured inferences rotating over the 3 bench images (10 per slot; warmups never advance the rotation)
  4. Per-slot majority top-1 against registered ground truths → accuracyAt1 (fraction correct)
  5. Median (p50) and p95 latency stats; composite score = latency score × accuracyAt1
  6. Display per-run results with verdict badges and per-run detail (ⓘ)
  7. Export CSV/JSON download for plotting

Manual Task Exploration

Users can also:

  1. Browse the full task library (16 tasks, 50+ models)
  2. Select a specific task and model
  3. Choose which runtime(s) to benchmark against
  4. Configure run count (1, 10, 25, 50, or custom — below 30 measured runs a statistical warning is shown)
  5. Run benchmarks and view detailed results
  6. Upload custom models for comparison