Files
2026-09-30 09:26:21 +08:00

5.5 KiB
Raw Permalink Blame History

Phase4AG: author LIF + frozen legacy graded APL

Execution revision r2: the first registered v1 attempt stopped before the first Brian tick because resolving the science-venv Python symlink launched system Python without NumPy. All v1 files and partial outputs are preserved separately. This revision retains the declared venv invocation path. It does not change any equation, arithmetic, mask, stimulus, gate, parameter or choice of trial. The complete original protocol is rerun from fresh state; no failed trial is overwritten or omitted, and the first version cannot be claimed numerical PASS.

Authorized independent hypothesis branch. All old source, raw connectome, signs, W_syn, APL calibration, eligibility-v2 and 14,232-edge mask remain read-only. No learning, gain/threshold changes, new edges, top-K, heldout activity, game or RL.

Author code provenance is the already archived MIT-licensed https://github.com/philshiu/Drosophila_brain_model at 91bdd1e7dcf193f3e7ca5a8933497fcef63b7960; original model.py SHA-256 fc45837d7122c6ce2a7f3f2f23c515992e4b232aadb919efabb72337fac88e4e. Associated paper: https://www.nature.com/articles/s41586-024-07763-9. This new MaleCNS/APL combination is not a strict reproduction of that model.

The declared combination is author float64 LIF plus the exact old float32 graded APL operator after synapses/resets at end. All 5,845 original APL fast out-edges are zeroed only in the effective in-memory model, as in the legacy overlay. Only KC receives graded replacement; known 1,212 non-KC edges remain unreplaced. This existing scope limitation is not silently repaired in a compatibility test.

Use the original full normalized I[2,166700]/O[2,4064] float32 bytes and original normalizers, even for induced real subgraphs. APL reads actual binary spikes, never requests, and keeps independent float32 state. Preserve unfused operations: state.mul_(float(f32(exp(-.1/20)))).add_(torch.mv(I, spikes_f32)); h32=torch.matmul(state,O)*f32(.01). Promote h32 to float64, multiply by float64 .001, then separately subtract from SI g. Do not alter TF32/default CuBLAS flags; record them. No added APL delay, drive dt/tau scaling, truncation or clipping.

APL writes KC g unconditionally after author reset, including refractory KC. Author g integration is frozen during refractory; therefore negative overlay g may accumulate and differs from old dynamics. This is an explicit hypothesis, not an assertion of original author or measured physiology. Guarded writes or reset-before/after changes would be different hypotheses, not fixes to this one.

Eight fixed metadata/connectivity-selected fixtures cover zero/reset, real PN/KC drive, current actual event feedback, duplicate natural/request event, 18-step arrival vs22-step refractory boundary, full fast APL mask, non-KC scope and mixed precision/high fan-in. No choice is made from runtime responses. Each GPU case has3 independent fresh runs. A Brian2 author oracle starts from its own state, computes its own actual spikes, and uses an isolated standard-I/O legacy-APL worker with independent state. No candidate inhibition trace is fed into Brian. All tick states, events, requests, queue order/guard, APL drive/state/h must agree exactly. The APL component is shared, so this is NOT a fully independent CPU oracle. Independently reconstruct old matrices using frozen initializer AST, replay actual events through original update AST, require exact component bytes; also quantify an independent float64 positive-sum arithmetic error bound. It is not a replacement for exact legacy equivalence. No arithmetic bound is adjusted.

Only after all fixture gates pass, run two predeclared full-graph probes: first old calibration odor, first original seed, both encoder modes. Compare each with the independently running Brian + isolated APL worker. Save state hashes and sparse events, not a time-by-all-neurons dense spike matrix. If a numerical gate fails, stop CAL; keep diagnostic evidence and do not widen tolerance.

Then run the complete original6 CAL odors ×5 original seeds ×2 original modes, 100ms per run. Retain the ORIGINAL12-odor median for matched-energy encoding, original pn_drive target/RNG column order, original evaluation seeds51101..51105. Save Poisson requests before any trajectory. Only calibration dynamic cases are used; formal A/B and heldout remain unrun. Repeat first seed for every odor/mode. No per-odor pulse, amplitude, timing or threshold search. No learning.

Recompute the full original4L representation criteria on CAL only: mean KC active fraction .03..09, min>0, max<.5, same-odor Jaccard>different, between Euclidean> within, >=3 pairs whose mean between exceeds THAT PAIR's pooled within distances, both modes. Add finiteness and exact repeat requirements. CAL PASS does not imply heldout generalization, timing/credit specificity, memory or learning usability. If CAL fails stop promotion and report it, not a least-bad candidate.

Before/after verify SHA-256 of all original230239 files and AA--AF seals; rerun original five deterministic reference trials to new output. Archive code/env/source SHA, matrices/norms/masks/identities, requests and all outputs. No published candidate.

Technical references (queried2026-09-30): Brian2 2.5.1 refractory documentation https://brian2.readthedocs.io/en/2.5.1/user/refractoriness.html (actual generated code remains authoritative); PyTorch numerical accuracy notes https://docs.pytorch.org/docs/2.14/notes/numerical_accuracy.html (cross-backend floating operations are not assumed bitwise equivalent).