Back to corpus
technical noteexperiment writeup candidatescore 24

ADR-001: On-Device Serving — Feature-Extractor Consistency, the ANE, and TurboQuant

- **Status:** Accepted (2026-06-02) - **Scope:** How N'Ko ASR is served on-device, and the discipline that keeps a model decodable end to end. Does **not** change the training/research path. - **Authors:** Mohamed + Claude

Full HTML reader

Read the full artifact

Open in new tab

Extracted abstract or opening context

# ADR-001: On-Device Serving — Feature-Extractor Consistency, the ANE, and TurboQuant - **Status:** Accepted (2026-06-02) - **Scope:** How N'Ko ASR is served on-device, and the discipline that keeps a model decodable end to end. Does **not** change the training/research path. - **Authors:** Mohamed + Claude 1. **Research / training path** — features extracted with standard **PyTorch-GPU Whisper-large-v3**, giving `(1500, 1280)` encoder output (1500 frames / 30 s). The validated 20.57 %-CER anchor (`paper4_reproduction_35205256`, `UnifiedCTCHead(use_trajectory=True, use_tar=False, use_ttt=False)`) trains and decodes on this path. Its model contains an internal `temporal_ds` (Conv1d, stride 4) that downsamples 1500 → 375 frames *inside* the network. 2. **On-device path** — features extracted with a **CoreML Whisper encoder on the Apple Neural Engine (ANE)** (`Desktop/ane-training/ane_ctc_train.py`: "Frozen Whisper encoder on ANE, CTC head on MLX GPU"), giving **pre-downsampled `(375, 1280)`** features. The 297k pilot model is compatible with this 375-frame layout. Feeding the GPU-trained anchor the ANE's 375-frame features produced **all-blank output** (`blank_mass = 1.000` on every frame). Root cause: a **train/serve feature mismatch** — the anchor expects raw 1500 frames and downsamples internally; the ANE features are already downsampled, so the model double-downsampled (375 → ~94) into garbage. The cleanly-loaded state dict (0 missing / 0 unexpected) was a red herring; the features were out of distribution.

Promotion decision

What has to happen next

Attach run IDs, datasets, metrics, and reproduction commands.

Why this is not always a full paper yet

Corpus pages are public-safe readers for discovered workspace artifacts. They are not automatically final papers. A corpus item becomes a polished paper only after the editable source, evidence checkpoints, references, figures, render path, and release status are attached through the paper schema.