Adaptive engine (Orca Stage 1)¶
engine ¶
core/engine.py¶
AdaptiveSignalStabilizer — filtro adattivo per serie temporali e gradienti IA.
Caratteristiche¶
- Rilevazione di anomalie tramite soglia dinamica basata su volatilità rolling.
- Damping selettivo con preservazione della norma L2 per evitare esplosioni locali.
- Calibrazione macro-contesto su batch 2D (N_scenari × T_steps) con parametri dinamici.
- Implementazione interamente JAX-compatibile, con kernel vmap + scan precompilati.
AdaptiveSignalStabilizer ¶
AdaptiveSignalStabilizer(static_threshold: float = 1e-05, initial_damping: float = 0.1, alpha: float = _SIGMA, anomaly_sigma_mult: float = 2.0, k_anom_min: float = _ALPHA, k_anom_max: float = _K_MAX_ZETA, window_radius: int = 1, smooth_l2_blend: float = 0.5)
Filtro antipanico adattivo per segnali IA caotici.
Configura soglie/gain iniziali e precompila i kernel JAX (scan 1D, batch vmap).
Source code in dense_armor/core/engine.py
calibrate_macro_context ¶
Calibra le soglie dinamiche sul contesto globale del batch.
Analizza la distribuzione dei salti fra campioni per individuare ambienti estremamente turbolenti (shock) rispetto a rumore fisiologico.
Source code in dense_armor/core/engine.py
calibrate_macro_context_independent ¶
calibrate_macro_context_independent(raw_batch: ndarray) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]
Stesse formule di calibrate_macro_context, ma calcolate PER RIGA (axis=-1) invece che sull'intero batch appiattito insieme -- ritorna (dyn_thr, dyn_dmp, dyn_alp, noise_scalar), ciascuno shape (n_scenarios,). Non muta self.* (pura, sicura da vmappare a valle) -- a differenza di calibrate_macro_context, che e' condivisa/con stato per design (vedi la sua docstring) e resta invariata per i chiamanti esistenti (test_boundA.py e la suite adversarial la usano cosi' apposta: scenari correlati che devono condividere un contesto).
raw_batch: shape (n_scenarios, F). Se F<2 (nessun "salto" da misurare in nessuna riga) ritorna i default di init (self.threshold/damping/alpha) per ogni riga invece di provare a replicare l'early-return con stato residuo di calibrate_macro_context (che dipende dalla cronologia delle chiamate precedenti -- non replicabile in una funzione pura, e comunque irrilevante per F>=2, il caso reale di Orca).
Source code in dense_armor/core/engine.py
filter_batch_scenarios_independent ¶
filter_batch_scenarios_independent(raw_batch: ndarray, hard_clamp_mask: Optional[ndarray] = None) -> np.ndarray
Come filter_batch_scenarios, ma ogni scenario riceve la PROPRIA calibrazione (calibrate_macro_context_independent) invece di una condivisa sull'intero batch -- stesso risultato numerico che si otterrebbe chiamando filter_batch_scenarios una volta per scenario (n_scenarios=1 ciascuna), ma in UNA sola chiamata vmap invece di N dispatch JAX separati. Aggiunta per Orca.protect_and_forward (vedi _execute_4_phase_input_shield_batch): la libreria non ha mai esercitato n_scenarios>1 su scenari INDIPENDENTI prima d'ora (l'unico chiamante multi-scenario esistente, la suite adversarial di test_boundA.py, vuole apposta la calibrazione condivisa).
Source code in dense_armor/core/engine.py
filter_data_stream ¶
Filtra una singola serie temporale 1D garantendo la simmetria strutturale.
Source code in dense_armor/core/engine.py
filter_batch_scenarios ¶
Filtra in parallelo (vmap) un batch di scenari strutturati. Accetta tensori 2D nativi o array multidimensionali (3D/4D).
hard_clamp_mask: stessa shape di raw_batch, opzionale (default: nessuna macro-anomalia, comportamento identico a prima). Dove True, attiva lo State Flush dentro _step_kernel per quell'elemento -- vedi la sua docstring. Pensato per essere lo STESSO segnale gia' calcolato a monte da Orca (raw_noise sui dati grezzi > soglia critica), non una sua ricostruzione approssimata qui dentro.
Source code in dense_armor/core/engine.py
dynamic_damping_gain ¶
dynamic_damping_gain(local_noise: ndarray, k_min: float = 0.0, k_max: float = _K_MAX_ZETA) -> jnp.ndarray
Curva di damping a sigmoide, funzione del rumore locale: - local_noise basso → gain vicino al minimo (massima trasparenza) - local_noise alto → gain vicino al massimo (massima purificazione)
Source code in dense_armor/core/engine.py
See also: Orca, which uses AdaptiveSignalStabilizer as Stage 1, followed
by a Collatz-based gate (Stage 2) deciding how much to damp toward the clean reference. This
is also the engine exercised directly by the adversarial test suite
(test/test_boundA-E.py) behind the robustness numbers on the home page.