AI & ML interests
Accelerated Computing
Recent Activity
Experimental Machines
Open-weight models compiled for phones, abliterated checkpoints, and tool-calling research. Each card says what was measured, how, and what was not.
experimentalmachines.org · experimentalintelligence.org · GitHub · OpenWeights on Google Play
Compiled for phones
ExecuTorch 1.4 programs for the XNNPACK CPU backend with a 32,768-token context window. Weights are int4 in groups of 32 with int8 dynamic activations, the layout Arm's KleidiAI kernels accelerate on Arm CPUs with the i8mm and dotprod extensions, which recent flagship and mid-range phones have. No GPU or NPU delegate, so the file is not tied to one chip vendor. They are in the format the OpenWeights Android app runs, and each card reports the memory and speed measured on a Dimensity 9400.
| Repository | Base model | File | Dimensity 9400 decode |
|---|---|---|---|
| LFM2.5-1.2B-Instruct-ExecuTorch-XNNPACK-32k | LiquidAI/LFM2.5-1.2B-Instruct | 827 MB | 40.5 tokens/s |
| Qwen3-1.7B-ExecuTorch-XNNPACK-32k | Qwen/Qwen3-1.7B | 1.35 GB | 16.6 tokens/s |
The Qwen3 file needs about 7 GB for its KV cache at the full window and ran only on a 16 GB phone; the LFM2.5 files need about 1 GB.
A defect worth knowing about
Every LFM2.5 export published here before 2026-09-19 lost most of its tool calling, for two reasons found in September 2026: ExecuTorch's LFM2 definition never cleared the short convolution's state between prompts, so each prompt ran on the last one's, and the int4 weights were rounded rather than solved. On 141 held-out questions the old 1.2B export searched when needed on 10 percent of the questions that needed it and spoke of search results it had never fetched in a quarter of its replies; the re-export, with the state cleared in the graph and the int4 codes solved by GPTQ on the delegate's own grid, reads 49 and 1 percent at the same size and speed. The 1.2B repository carries the fixed file. The 2.6B export and the files beside the abliterated weights were withdrawn rather than shipped broken, and return when each has its own solve. Method and numbers: a compiled LFM2.5 that calls tools.
Abliterated
Refusal-direction ablation of the LFM2.5 models with
heretic: a 200-trial search that trades
refusal rate against KL divergence from the original, a chosen point on that Pareto front,
weights merged, chat template and tool-calling tokens unchanged. Each repository holds the
merged safetensors weights. The ExecuTorch export that used to sit in
executorch/ was withdrawn on 2026-09-19; see the defect below.
Tool-calling research
From the OpenGrad study of calibrated tool use: QwenGrad-DPO, a Direct Preference Optimization checkpoint of Qwen3.5-2B selected under a pre-registered promotion policy, and its ExecuTorch CPU export, published as exported and pending behavioural evaluation. Research artifacts, not production models.
How the exports are made
executorch-model-exporter exports on GitHub-hosted runners with ExecuTorch's own per-family recipes, smoke-tests each program with the runner the app uses, and publishes here. It has shipped 24 repositories across Qwen3, Qwen2.5, Llama 3.2 and SmolLM2, holding 113 programs between them: 97 for XNNPACK on any arm64 CPU, 11 for Qualcomm's QNN, 4 for MediaTek and 1 for Vulkan, at every context window from 2k to 32k. The LFM2.5 files above were exported by hand, with the recipe recorded in each card. The phone measurements are on latency, context window and rerun pages, with raw results.
Contact: alpha@experimentalmachines.org