spb/localvm-research Public License
Running LLMs larger than memory on a consumer Mac — falsification-driven research: margin-gated deferred refinement, out-of-core verification on Apple Silicon. TR-01 published.
Python 63.2%
JavaScript 23.5%
CSS 11.8%
Shell 0.9%
Makefile 0.5%
1{2 "experiment": "candidate_01_deferred_refinement",3 "author": "Simon-Pierre Boucher",4 "contact": "contact@spboucher.ai",5 "manifest": {6 "author": "Simon-Pierre Boucher",7 "contact": "contact@spboucher.ai",8 "project": "localvm-research",9 "collected_utc": "2026-08-12T05:24:15.161152+00:00",10 "chip": {11 "brand": "Apple M5 Max",12 "arch": "arm64",13 "cores_total": 18,14 "cores_performance": 6,15 "cores_efficiency": 12,16 "gpu_cores": 4017 },18 "memory": {19 "unified_bytes": 51539607552,20 "unified_gb": 48.0,21 "pagesize": 1638422 },23 "ssd": {24 "model": "APPLE SSD AP2048Z",25 "size": "2 TB",26 "smart_status": "Verified"27 },28 "os": {29 "product": "macOS",30 "version": "27.0",31 "build": "26A5388g",32 "kernel": "27.0.0"33 },34 "software": {35 "python": "3.14.4",36 "mlx": "0.32.0",37 "mlx_lm": "0.31.3",38 "torch": null,39 "numpy": "2.5.2"40 },41 "git": {42 "commit": "ad9db7a3b447837ebb15d9776a5d220a13f00f84",43 "dirty_tree": true44 },45 "thermal_level_at_collect": null46 },47 "config": {48 "build": false,49 "per_domain": 4,50 "max_tokens": 128,51 "window": 32,52 "taus": "1.0,2.0"53 },54 "model": "mlx-community/Qwen3-1.7B-bf16",55 "q4_resident_bytes": 968080210,56 "q8_stream_bytes": 1828306411,57 "baselines": {58 "pure_q4": {59 "tokens_per_s": 294.29358902494874,60 "fidelity_vs_q8_mean": 0.48632812561 },62 "pure_q8": {63 "tokens_per_s": 204.40615588770143,64 "fidelity_vs_q8_mean": 1.065 }66 },67 "runs": [68 {69 "mode": "margin",70 "tau": 1.0,71 "window": 32,72 "fidelity_vs_q8_mean": 0.5481770833333334,73 "tokens_per_s": 110.29541090003036,74 "deferral_rate": 0.369140625,75 "rollback_rate": 0.06412760416666667,76 "sweeps_per_100tok": 8.203125,77 "sweep_latency_s_mean": 0.012119657567447055,78 "logical_verify_bytes_per_token": 149978260.27734375,79 "raw": {80 "tokens": 3072,81 "deferred": 1134,82 "sweeps": 252,83 "rollbacks": 197,84 "sweep_s": 3.054153706996658,85 "gen_s": 24.798319709004318,86 "logical_bytes": 46073321557287 }88 },89 {90 "mode": "margin",91 "tau": 2.0,92 "window": 32,93 "fidelity_vs_q8_mean": 0.6611328125,94 "tokens_per_s": 78.09292765190605,95 "deferral_rate": 0.99609375,96 "rollback_rate": 0.10286458333333333,97 "sweeps_per_100tok": 11.5234375,98 "sweep_latency_s_mean": 0.011960842370043571,99 "logical_verify_bytes_per_token": 210683746.58007812,100 "raw": {101 "tokens": 3072,102 "deferred": 3060,103 "sweeps": 354,104 "rollbacks": 316,105 "sweep_s": 4.234138198995424,106 "gen_s": 35.10361097200803,107 "logical_bytes": 647220469494108 }109 },110 {111 "mode": "verify-all",112 "tau": 2.0,113 "window": 32,114 "fidelity_vs_q8_mean": 0.8863932291666666,115 "tokens_per_s": 68.72679721691286,116 "deferral_rate": 1.0904947916666667,117 "rollback_rate": 0.12076822916666667,118 "sweeps_per_100tok": 12.98828125,119 "sweep_latency_s_mean": 0.0121271853809379,120 "logical_verify_bytes_per_token": 237465578.77246094,121 "raw": {122 "tokens": 3072,123 "deferred": 3350,124 "sweeps": 399,125 "rollbacks": 371,126 "sweep_s": 4.838746966994222,127 "gen_s": 39.85997499300447,128 "logical_bytes": 729494257989129 }130 }131 ],132 "quality_bf16_judge": {133 "pure_q4": {134 "mean_logprob_bf16": -0.3872091167916854,135 "n": 24136 },137 "pure_q8": {138 "mean_logprob_bf16": -0.13283097247282663,139 "n": 24140 },141 "margin_tau1.0": {142 "mean_logprob_bf16": -0.2670727012058099,143 "n": 24144 },145 "margin_tau2.0": {146 "mean_logprob_bf16": -0.17614666558802128,147 "n": 24148 },149 "verify-all_tau2.0": {150 "mean_logprob_bf16": -0.12973888901372752,151 "n": 24152 }153 }154}