A-LIST exercise extractor (Core ML)

On-device replacement for the remote LLM that extracts structured numbers from free-text exercise entries in the A-LIST app (locomo mode). Single fp16 Core ML graph: MiniLM-L6 encoder (frozen, mean-pool + L2-norm inside the graph) + MLP heads.

  • Inputs: input_ids int32 (1,128) WordPiece/bert-base-uncased; attention_mask int32 (1,128); parsed float32 (1,10) regex features (see the app's ExerciseFeatureParser for the exact order and transforms).
  • Output: float32 (1,8) — [log1p(duration_min), log1p(calories), heart_rate_bpm, intensity_1_10, steps_gate_logit, log1p(steps), distance_gate_logit, log1p(distance_km)].

Versions

  • v2/ (current, 2026-08-23): identical graph retrained on the sol-relabeled dataset (exercise-text-unified:v0 — one uniform frontier teacher, calorie CV 1.6% vs the old labels' ~11%). On the frozen held-out-user sol eval (1,127 entries) it beats the v1 artifact on every field: duration 68.5% vs 62.7%, calories 58.0% vs 51.5%, heart rate ±10bpm 76.0% vs 67.6%, intensity ±1 81.7% vs 76.0%, steps gate 94.9% vs 88.6%, distance gate 94.6% vs 90.8%. Same I/O contract and footprint.
  • Root files (v1, 2026-08-16): distilled from ~14.5k historical production extractions (mixed teacher generations). Kept resolvable for rollback; the app's ExerciseExtractorDescriptor.v1() still pins these bytes.
  • golden_cases.json holds 10 input→output cases generated from the v1 artifact — the app uses them to pin the decode rules (weights-independent), so they remain valid across versions.

Internal model for the A-LIST iOS app. Not intended for third-party use.

Downloads last month
54
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support