Downloads · 30 days
19
10% of all-time downloads
adidshaft/signalfit-slm-1.7b-4bit
signalfit-slm-1.7b-4bit is a text generation model from adidshaft. Use it when you need the model to write or continue text. It is set up for mlx. The card lists the license as apache-2.0.
SignalFit-SLM is an on-device fitness, health-and-wellness, and wearable-data assistant for Apple Silicon. Given a structured fitness and health context, it explains recovery, sleep, HRV, resting heart rate, training…
Downloads · 30 days
19
10% of all-time downloads
All-time downloads
197
Public
Parameters
1.7B
984 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors968 MB · 98%
How the weights are stored.
U321.7B · 100%
From the Hugging Face model README
SignalFit-SLM is an on-device fitness, health-and-wellness, and wearable-data assistant for Apple Silicon. Given a structured fitness and health context, it explains recovery, sleep, HRV, resting heart rate, training load, and recent workouts while grounding every number in the supplied data.
This release is a standalone 4-bit affine-quantized MLX model: a LoRA
fine-tune of Qwen/Qwen3-1.7B, fused into the base model and quantized to 4
bits with group size 64. The weight file is 968 MB.
| Hardware | Status | Evidence / integration path |
|---|---|---|
| Apple Silicon Mac | Verified bare-model smoke | Apple M4 Pro, 24 GB: 0.705 s model load and 83.57-148.85 output tokens/s across three wearable queries. See the raw result. |
| iPhone 15 Pro | Physical bare-model smoke | MLX Swift on a wired physical device: 3 warmups + 10 runs per fitness, sleep/recovery, and medical-red-flag query. Median decode: 33.70, 32.33, and 29.76 tokens/s; peak MLX allocation: 1.03 GB. See raw per-run evidence. |
| iPhone 15 Pro Max | Same A17 Pro integration tier | Not individually measured; do not substitute this result for app-level or sustained-performance evidence. |
| iPhone 16 / 17 families | Benchmark targets | MLX Swift integration candidates; not yet a performance or health-deployment claim. |
| iPad mini (A17 Pro), iPad Air / Pro (M1+) | Benchmark targets | Apple-device families selected for on-device tests; not yet measured. |
| Android phones | Not compatible with this artifact | This release is MLX-only. A separately benchmarked GGUF, ExecuTorch, or MLC export is required first. |
The supported mlx-lm plus answer-check-v7 path runs on macOS with Apple
Silicon. The project was trained and evaluated on a 24 GB unified-memory Mac,
but 24 GB is not an inference minimum: it is a training/evaluation-machine
constraint. The 968 MB 4-bit weight file is smaller, but actual inference
memory also depends on context length, concurrency, and the surrounding app.
No lower unified-memory minimum is claimed without device measurements.
iPhone and iPad have an MLX Swift integration path. A physical iPhone 15 Pro now has a bare-model MLX Swift smoke result: 30 measured short-context generations after three warmups per workload, 29.76-33.70 median decode tokens/s, 447.6-679.8 ms median TTFT, and 1.03 GB peak MLX allocation. It is an A17 Pro integration result, not production readiness: the checked answer-check-v7 safety wrapper has not been ported to Swift, and cold-load, long-context, battery, and sustained-thermal measurements remain outstanding. Keep context bounded and independently validate safety controls before handling health or wearable data.
The model is being benchmarked on real Apple hardware, starting with iPhone 15 Pro / iPhone 15 Pro Max. The device matrix also includes iPhone 16, iPhone 16 Pro, iPhone 17, iPhone Air, iPhone 17 Pro, iPad mini (A17 Pro), and iPad Air / iPad Pro models with M1 or later. These names are benchmark targets only until each device has a published result; they are not an unsupported compatibility claim dressed up in a table.
The precise protocol, required metrics, and promotion rule are in DEVICE_BENCHMARK_PROTOCOL.md. It requires three representative wearable contexts, 3 warmups plus 10 measured runs, and reports load time, time to first token, prefill/decode throughput, peak memory, OOM rate, and sustained thermal behavior. The current MLX artifact cannot run on Android unchanged; Android entries require a separately exported and tested runtime artifact before they are listed as compatible.
A physical iPhone 15 Pro (A17 Pro, 256 GB, iOS 27.0 beta) ran the 4-bit MLX model through MLX Swift with temperature=0, thinking disabled, a 128-token cap, three warmups per workload, and ten recorded runs per workload. All inputs were synthetic fitness and health contexts.
| Workload | Median TTFT | P90 TTFT | Median decode | P90 decode |
|---|---|---|---|---|
| Training decision | 447.6 ms | 500.9 ms | 33.70 tok/s | 33.73 tok/s |
| Sleep / recovery | 679.8 ms | 787.7 ms | 32.33 tok/s | 32.78 tok/s |
| Medical red flag | 538.9 ms | 559.5 ms | 29.76 tok/s | 30.47 tok/s |
Peak MLX allocation was 1.03 GB. The machine-readable result includes all 30 measurements, metric definitions, and limitations. These are encouraging interactive-response numbers for a 1.7B 4-bit model, but they are not a medical, thermal, battery-life, or checked-wrapper certification.
The verified Apple Silicon path now has a transparent bare-model smoke result on a MacBook Pro with Apple M4 Pro and 24 GB unified memory: three synthetic wearable-style queries measured 83.57, 148.85, and 130.83 output tokens/s, with a 0.705 s model-load measurement. See the machine-readable macOS smoke result. This is not an iPhone result, not a full device certification, and not a safety claim: it omits p90, peak memory, time-to-first-token, sustained thermal behavior, and the checked serving system.
The included synthetic benchmark contains four reproducible input/output
conversations from the shipped 4-bit model running behind answer-check-v7:
recovery explanation, daily training guidance, sleep coaching, and a
medical-red-flag triage. These are synthetic examples, not user records.
| Fitness training | Wearable sleep insight | Wearable sleep detail |
|---|---|---|
| <img src="training-coach.png" alt="Synthetic fitness training guidance from SignalFit" width="280"> | <img src="sleep-coach-wide.png" alt="Synthetic wearable sleep insight from SignalFit" width="280"> | <img src="sleep-coach-compact.png" alt="Synthetic wearable sleep detail from SignalFit" width="280"> |
The four-case benchmark was 4/4 deterministic pass, 4/4 grounded, 4/4 field-bound, 4/4 comparative-arithmetic pass, and 1/1 safety-triage pass. Its inputs, raw outputs, correction trace, and machine-readable report are included here:
This is not a medical device. It supports fitness and wearable-data interpretation; it does not diagnose, treat, or replace professional care.
The supported production path is the answer-check-v7 serving wrapper from
the SignalFit-SLM source repository.
The wrapper checks a model draft for grounding and safety violations, then
retries bounded failures. It also refuses to coach through medical red flags
and does not allow invented wearable metrics. The safety metrics on this page
were measured with that wrapper, not with unconstrained bare-weight inference.
git clone https://github.com/adidshaft/signalfit-slm.git
cd signalfit-slm
python3 -m venv .venv
.venv/bin/pip install -r requirements-mlx.txt
.venv/bin/python scripts/answer_with_check.py \
--context examples/sample_context.json \
--expected-action answer_with_caveat \
--model adidshaft/signalfit-slm-1.7b-4bit \
-o /tmp/signalfit-answer.jsonl
The supplied sample context demonstrates the
contract. Every numeric value the assistant is allowed to mention belongs in
allowed_numbers.
Bare inference is useful for integration experiments, but it is not the supported safety path. Do not transfer the wrapper evaluation claims below to a bare model call.
pip install mlx-lm==0.31.3
from mlx_lm import generate, load
model, tokenizer = load("adidshaft/signalfit-slm-1.7b-4bit")
messages = [
{
"role": "system",
"content": (
"You are a fitness and wearable-data assistant. Use only numbers "
"provided in the user context."
),
},
{
"role": "user",
"content": "Wearable context: recovery 74%, HRV 66 ms, sleep 8.5 h. "
"Should I do hard rowing intervals today?",
},
]
prompt = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True, enable_thinking=False
)
print(generate(model, tokenizer, prompt=prompt, max_tokens=180, verbose=False))
The release evaluation is the frozen, synthetic 200-case sf-eval-v1 suite at
gate version sf-gates-13, served behind answer-check-v7.
| Check | Result |
|---|---|
| Deterministic pass rate | 135/200 (68.0%) |
| No coaching during medical-red-flag triage | 18/18 |
| No protocol details in drug-related refusals | 19/19 |
| Correct wearable and fitness field binding | 196/200 |
The artifact cleared the project's safety-based promotion bar with no safety gate regression. The machine-readable 4-case report and ship rationale are included in this repository. The full 200-case frozen suite remains maintained with the checked serving code in the source repository, rather than being represented as a general-purpose public benchmark.
These are release-gate results, not strong general benchmark results. The 68.0% aggregate is useful for tracking this model against its own frozen synthetic fitness/wearable suite, but it is too low and too domain-specific to claim broad model quality. The safety subsets are encouraging within this checked-wrapper evaluation, yet are small and synthetic. A credible next quality claim needs a public held-out domain set plus independently reproducible general instruction/format evaluation; neither is claimed by this release.
agen-v1-000135 is a safe performance-enhancing-drug refusal that slightly
exceeds its length ceiling.advs-v1-000007 is a safe chest-symptom triage response with an
arithmetic-wording issue and a length violation.SignalFit-SLM is intended for structured fitness, health-and-wellness, recovery, sleep, HRV, resting-heart-rate, and training-load questions. It is designed to cite only the supplied wearable context and to redirect medical red flags to professional care rather than coaching through them.
It is not intended for diagnosis, emergency assessment, medication or performance-enhancing-drug protocols, or decisions where a clinician is required. Integrators are responsible for their own safety, privacy, and regulatory review.
model.safetensors: fused 4-bit MLX model weightsconfig.json, tokenizer.json, vocab.json, merges.txt, and
chat_template.jinja: complete MLX and Qwen3 tokenizer runtime configurationsample_context.json, human-*.json, responses.jsonl,
correction_log.jsonl, and eval_report.json: synthetic fitness and
wearable-data examples plus their reproducible 4-case benchmark evidenceSHIP_VERDICT.md: frozen-suite shipping decisionMODEL_MANIFEST.json: SHA-256 hashes for the released model filesSignalFit-SLM and its Qwen3-1.7B base model are released under Apache-2.0.