Files
digital-drosophila/models/male-cns-lif/author-apl-lab-v1/PROTOCOL.md
T
2026-09-30 09:26:21 +08:00

77 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase4AG: author LIF + frozen legacy graded APL
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).