You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+42-1Lines changed: 42 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -195,6 +195,21 @@ Training dtype and resource policy:
195
195
- Native MLX training pushes UI logs, scalar readouts, and chart points every `log_interval` steps, and Web UI Stop is checked at each batch boundary.
196
196
- The Web UI writes a warning-only `<checkpoint>.verify.json` after each stage. It checks no-mask vs all-available MoE parity and, on Apple Silicon, MLX prefill logits against the PyTorch CPU baseline.
197
197
198
+
Native MLX training is a separate Apple Silicon backend, not `torch.to("mlx")`.
199
+
The six-stage MLX trainer mirrors the PyTorch loss stack in `chronos.mlx.*`:
Honest note: upstream PyTorch does not ship a real OpenCL backend, and Vulkan support is still niche. Chronos provides a dispatcher seam so external integrations can plug in cleanly without touching core code.
233
248
249
+
### MLX lazy/offload runtime
250
+
251
+
MLX uses Apple unified memory, so Chronos treats "VRAM" and "RAM" as logical
252
+
tiers rather than physical buses. The native lazy runtime still enforces the
253
+
same offload contract as CUDA/MPS/CPU:
254
+
255
+
-**Hot slots** hold only the execution-budget experts materialized as live
256
+
MLX modules.
257
+
-**Warm cache** holds a bounded prediction buffer loaded from `.ctsr`
258
+
safetensors, never a hidden copy of every expert.
259
+
-**Cold storage** is the checkpoint/export reader or per-expert cluster cache.
260
+
In lazy mode, live experts are replaced by placeholders after cache creation;
261
+
Chronos does not keep a `_saved_live` full-expert repair cache.
262
+
- Lookahead predictions are queued into the warm cache and only promoted when
263
+
ready. A true miss synchronously materializes the selected expert only; it
264
+
does not full-load the model.
265
+
- MLX attention dynamically grows RoPE lookup tables past
266
+
`max_position_embeddings`, so long prompts plus decode do not fail at token
267
+
257/513/etc.
268
+
269
+
Inference compare/sweep reports real hot/warm counts, resident hit rate,
270
+
prediction hit rate, sync SSD loads, MLX active/cache/peak memory, process RSS,
271
+
prefill/decode time, and tokens/sec. A lazy run is not considered
0 commit comments