Files
digital-drosophila/models/male-cns-lif/conditioning-execution-v1/PROTOCOL.md
T
2026-09-30 19:49:02 +08:00

11 KiB

Conditioning execution branch — bounded preparation protocol

Status: DRAFT, NOT REGISTERED, NO GPU EXECUTION AUTHORITY YET.

This is a new independent model branch authorized by the user. All previously registered sources, raw data, frozen brains and experiment artifacts remain read-only. Existing scientific failures remain failures. The completed AP interface test does not establish functional learning.

Scope and the next scientific decision

Consolidate updated-weight/same-state continuation, fixed functional gates and measured complete-process resource costs in this package. Then register and run the already proposed normal acquisition and all six controls, for all eight cells and five independent training replicates. Do not keep replacing functional learning experiments with unbounded engineering milestones.

No learning-rate, threshold, gain, transmitter, anatomical weight, input-rate, odor, mask, APL calibration or eligibility-v2 changes are permitted by this package. Any future biological dynamics hypothesis requires a separately named model/version and a pre-outcome hypothesis; permission for a new branch does not reclassify a changed model as an exact optimization of the old one.

No games, decoder, RL, visual stimulation, web services or 3D are included.

Exact boundary semantics

  • A fresh, sealed neural epoch and its actual original E postprocess identify the one permitted update. Recompute original U from the actual sealed spike events in a separate CPU interpreter, without executing the brain or E again.
  • Install original base plus the full after-delta once, using the frozen float32-mV to float64-SI bridge. Never add the after-delta to old effective weights. Keep the original 14,232 existing candidate edges and fixed floor.
  • Preserve voltage, existing g, refractory state, pending spike ring, APL state, complete APL pending amplitudes and absolute tick. Counts/events are explicitly segment-local in the new recording, not falsely lifetime counts.
  • Already accumulated g is not recomputed or rescaled. Pending presynaptic spike flags use current weights when they arrive, exactly as the frozen runtime does. Already queued APL amplitudes are preserved. The delays remain 18 steps; the spike ring has 19 slots and the APL ring has 18.
  • Later idle continuations retain the same after-overlay. A probe can fork a checkpoint but cannot become an idle ancestor. No analytical time advance.
  • New checkpoints use their own explicit updated-boundary schema. They do not claim the original C fixed-weight boundary rule was satisfied.

The independent oracle re-executes the exact fresh parent prefix, never calls restore, verifies live prefix state/events against that parent, changes only the authorized weights once and executes the unchanged reference timestep loop. Its explicit within-run weight switch is diagnostic, not a production backend. The one added boundary hook is independently removed to verify exact AST rollback. Its honest within_trial_weight_updates=true admission is not passed off as an unchanged-weight checkpoint.

Bounded validation inventory

Use sealed AP reference epoch-001 parents for D1, D0 and frozen. New outputs never go into AP. Compare D1 restored reference/light 100 ms suffixes to a fresh 220 ms continuous oracle. Compare D0/frozen new reference/light suffixes to original C fixed-weight continuation. Compare all events and final state/queues exactly; compare per-tick hashes, request acceptance, CSR queue and APL traces where actually recorded. Do not claim light records unseen intermediate states.

AP D1 epoch-001 has 765 spikes in its final 18 ticks, but none from its 79 changed-edge sources. Thus it has useful real pending queues but cannot alone prove updated-weight handling on a pending changed candidate edge.

Add one deterministic mechanical diagnostic parent: 120 ms fresh dynamics with no requests until tick 1199, then one requested spike in the minimum canonical KC source ID among actual y5B'2a candidates, together with the four verified PAM15 DAN IDs. Run original U with US at tick 1199, D=1 and the unchanged rule. This is a test fixture stimulus, not a new odor or a learning-success trial. No seed search or parameter adjustment follows missing coverage. Require a real changed existing candidate edge, a real source spike crossing the boundary, and an accepted timed arrival. Nonempty queues alone are insufficient. Compare its restored reference/light suffixes to the independent continuous oracle.

Also run actual no-input 1 s then 9 s idle dynamics from AP D1, preserving one lineage. At 0, 1 and 10 s fork A/B no-US/no-update 120 ms probes. The two saved evaluation inputs use the original first block's distinct evaluation streams from master 20260930, the original L physiological rate tables and [0,100 ms) CS window; no sampler is run until registration. Repeated probes are not new training seeds and never feed back to the idle chain.

The bounded engineering suite does not run acquisition or claim retention of a learned association. A failure is preserved with partial outputs; no silent retry, replacement seed or post-result trial selection is allowed.

Two fixed measurement calls avoid extrapolating incomplete or mismatched costs. Re-execute AP D1 epoch-001's original saved natural input from a fresh state and its recorded before-overlay, using light recording followed by original E and the independent CPU validator. Compare its events, final state and actual delta to AP. Separately measure one fresh-state/no-US A evaluation probe with the original zero overlay. Retention-continuation probes are not substituted for normal fresh-state probe costs. These measurements are engineering diagnostics, not additional acquisition or a seed search.

The complete proposed inventory is 23 new brain calls / 125,200 ticks, seven CPU update/validation children and one GPU sampler process (two uniform batches): 31 child processes. Compilation caches may evolve and are inventoried separately; previous scientific outputs remain immutable. All future checkpoints/hashes are derived from actual completed children, not fabricated during registration.

Functional gates fixed before acquisition

learning_gates.py retains the frozen normal/delayed predicates, requires five independent training replicates, checks full 63-bit stream identities and keeps evaluation streams separate. A majority means at least three replicates each satisfy the entire conjunction, not different seeds passing different clauses.

Two explicit additional operationalizations are fixed before outcomes:

  1. Reversal and real-time retention use nonMBONDownstream for the downstream functional gate, while reporting the entire legacyDownstream union as well. MBON-local change cannot be counted twice as downstream transfer.
  2. The legacy H mean-control predicate is called separately for the PAM15 and PPL103 control sources in each (input mode, reinforced cue) group. Both must pass that separate audit. No control pooling or favorable-source selection.

Reversal keeps the original conditioned-minus-neutral orientation and original pre baseline, with strict nonzero sign crossing and no-reversal continuation remaining on its original side. Retention requires the same replicate to pass both 1 s and 10 s against time-matched frozen controls. Delta change alone is never a functional learning gate. See the pinned original PROTOCOL_DRAFT and EVALUATION_POLICY_DRAFT for the complete unchanged input/assay inventory.

Pure gate functions authenticate neither disk/process evidence nor anatomy; their results explicitly say conditional predicates, not scientific PASS. The eventual coordinator must bind completed real trajectories and input, population, seed, delta and checkpoint receipts before making a learning claim.

Resource accounting and stop policy

Proposed bounded validation cap: 4 GiB of new outputs, at least 10 GiB free reserve, 1,800 seconds per child and 7,200 seconds total. Confirm measured free space and commit the registration before execution. Use only the admitted RTX 4090, check all three ComfyUI queues and do not stop or evict services.

Measure parent wall time from before spawn through actual exit and independent result validation, including input hashing, CUDA startup/compilation, graph load, CPU update verification, lossless compression and I/O. Worker/core timing is a separate field. No extrapolation may label GPU-only time as complete latency.

The proposed normal suite has 30,000 training/control epochs plus 3,920 probes: 33,920 brain calls and 4,070.4 biological seconds. The full proposal has 68,000 epochs, 9,440 probes and 80 actual 10 s idle lineages, totaling 11,892.8 biological seconds before engineering validation. These are inventory arithmetic, not wall time or disk measurements. Predeclare a finite normal-run resource budget using measured complete outputs, a stated reserve and explicit uncertainty about learning-dependent activity. No unbounded automatic launch is authorized here.

If normal acquisition fails the registered all-cell gate, preserve and seal the actual failure; delayed/reversal/retention are NOT-RUN. Do not tune to rescue it. If it passes, run the already registered follow-up matrix. Frozen integrity and required numerical regressions remain independent gates, not learning evidence.

Provenance

Before registration require every new source to match its recorded Git commit, snapshot the protocol and sources, and pin all old inputs by SHA-256. Record actual child exits; worker self-receipts do not prove their own process exited. All output files receive SHA-256 and an exact manifest at sealing. No old source or runtime global is patched. Full experimental arrays remain server-side; source/evidence Git synchronization must not be described as a bulk-data backup.

audit_execution.py reads actual recorded process exits and full output hashes; prepare_execution.py integrity runs in a separate CPU process after execution. finalize_execution.py requires externally supplied registration, numerical, budget and after-integrity report hashes and creates an exclusive experiment seal. The entire model directory is not itself claimed sealed: every registered source is bound to its committed blob and sealed source snapshot instead.

budget_report.py may return insufficient information rather than invent future large-suite overhead. A few measured cycles cannot establish the cost of a growing full-directory hash policy, unknown learning-dependent activity or final integrity work. No normal-suite resource assumptions or execution authorization are implicitly supplied by this finite engineering registration. Real measured cycle cost and conservative accounting bounds must still be reported even when a credible reserved complete-suite projection is unavailable.