SPB Git

spb/wp33_uqo

Public MIT
4.1 KB

# TITAN-MoE research log (WP33 UQO)

Chronological, append-only. Times are local (America/Toronto). Every entry names the artifact it produced.

# 2026-11-01 — Session 1: mandate received, Gate A started

  • 13:xx Mandate pasted by the author (verbatim copy in docs/MANDATE.md). Project placed in the UQO working-paper series as WP33, directory Recherche-UQO/ia/titan-moe/ (series convention; the mandate's wp33_titan_moe/ name is kept as the repository name wp33_uqo.git on spbgit — see DECISIONS D-001).
  • Scaffold created from _modele-working-paper (UQO LaTeX template, Makefile, .latexmkrc, title pages). Git repo initialised (main).
  • Python 3.12 venv (uv): mlx 0.32.4, mlx-lm 0.32.2, numpy 2.5.4 (laptop). Lock file to be written at Gate B.
  • Reference repositories shallow-cloned into third_party/ (git-ignored) with commit hashes recorded in research/prior_art.csv: colibri 0a5504a (2026-10-31), mlx-lm 736ab0d (2026-10-30), mlx bd63d38 (2026-11-01, version header 0.32.5), llama.cpp a91eab6 (2026-10-31).
  • Hardware inventory of the MacLustr LAN launched (29 aliases). Results in artifacts/environment.json (sanitized) and artifacts/private/inventory-2026-11-01.txt (not committed). 7 aliases unreachable at probe time (SSH timeout): M2M32, M2M32b, M4M36, m4ma, m4mb, m4mc, m2m16; M4BP48 answered with an empty record. Treated as unavailable for WP33 unless they come back; not assumed from historical notes.
  • Literature search delegated to a web-research sub-agent (output → research/RELATED_WORK.md, research/prior_art.csv, paper/references.bib), to be verified entry by entry before use.
  • Small open-licensed MoE chosen for Gate B: mlx-community/OLMoE-1B-7B-0125-Instruct-4bit (Apache-2.0, 3.9 GB, revision e2384419), download started 2026-11-01 (laptop HF cache).
  • OLMoE-1B-7B-0125-Instruct-4bit downloaded (33 s). Layout read from model.safetensors (benchmarks/raw/gateA/smoke/): per-expert tensors model.layers.L.mlp.experts.E.{gate,up,down}_proj.{weight,scales,biases} (affine 4-bit, group 64; gate/up weight U32 [1024,256] = 1.05 MB + scales/biases F16 2×64 KB; down [2048,128] = 1.05 MB + 2×64 KB) → 3.375 MiB per expert, 1 024 experts = 3.625 GB; attention 0.151 GB; embeddings/head 0.116 GB (tied). Per decode token: 16 layers × top-8 = 128 experts = 432 MiB of weights touched.
  • Smoke baseline mlx-lm generate on the laptop (M5 Max, 48 GB, mlx 0.32.4, mlx-lm 0.32.2, temp 0, 33-token prompt, 85 generated): prompt 45.0 tok/s (includes first-call compilation), generation 493.9 tok/s, peak memory 4.11 GB. Raw: benchmarks/raw/gateA/smoke/mlx_lm_generate_laptop_*.txt.
  • SSD probe benchmarks/scripts/ssd_bandwidth.py (single-threaded pread, F_NOCACHE after sudo purge): laptop random 3.4 MB reads 8.50 GB/s (p50 0.43 ms / chunk, p99 0.49 ms), page-cached 28.4 GB/s, sequential 8 MB reads 11.5 GB/s. Lesson: F_NOCACHE alone does not evict already-cached pages — purge is mandatory before a cold measurement (first attempt read 37 GB/s = cache). Raw: benchmarks/raw/gateA/ssd/laptop-M5Max.json.
  • Design microbenchmark for the slot table (benchmarks/raw/gateB/design/slot_update_microbench_laptop.txt): in-place slot update 0.305 ms; gather_qmm 0.260 ms/layer; per-expert loop 0.428 ms; restack 0.502 ms; lazy mmap expert load 0.53 ms (cached).
  • Gate B implemented: titan/registry.py (safetensors byte ranges, routing semantics), titan/store.py (pread SSD tier with accounting), titan/slots.py (LRU/LFU slot tables, stall accounting), titan/moe.py (TitanSwitchGLU, exact row chunking), titan/runtime.py (mlx-lm host model with experts spliced out). Tests tests/ (7 passed, raw benchmarks/raw/tests/pytest_gateB_20261101T011805.txt): registry; pread bytes == mx.load bytes; logits vs mlx-lm max |Δ| = 0.0 for capacity 64/32/16/8 on 4 prompts (argmax equal); greedy 32-token decode token-identical with 16 slots. First unfused activation attempt gave Δ = 0.0195 (fixed, D-006).
  • Literature pass completed: 59 verified works → research/prior_art.csv, paper/references.bib (59 entries), synthesis and novelty matrix in research/RELATED_WORK.md.
Files · 7ab0c879e1457dd71afdcec6e1bbfae1fc1ef904
Menu

Theme