Download o1_native/scan.py from davidfoss/o1: direct link, hf CLI and curl.
- Browser
- Download file 10.2 kB
-
https://huggingface.co/davidfoss/o1/resolve/main/o1_native/scan.py
- Command line
-
hf download hf://davidfoss/o1/o1_native/scan.py
-
curl -L -o scan.py https://huggingface.co/davidfoss/o1/resolve/main/o1_native/scan.py
10.2 kB
| """Unified O(1) & O(log T) Scan + Optical Kerr-Cavity Attention Primitives for O1-GSSM. | |
| Unites four bounded O(1)-memory dynamical operators: | |
| 1. `stateful_affine_scan` / `parallel_doubling_scan`: | |
| z_t = gamma_t * z_{t-1} + a_t | |
| 2. `moebius_rapidity_scan`: | |
| PS-lifted Lorentz Z2 rapidity `rho_t = gamma_t * rho_{t-1} + beta_t * atanh(v_t)` | |
| 3. `holographic_aperture_scan`: | |
| Multi-aperture Fourier phase wave `S_t = gamma_t * S_{t-1} + u_t * exp(i * phi_t)` | |
| 4. `kerr_cavity_scan` (Native O(1) Optical Attention): | |
| Causal delayed 2-harmonic Fejér unit-sphere key binding with Householder/Delta | |
| erase-before-write, write-coupled retention (`beta=0 => gamma=1` across infinite | |
| silence/distractor gaps), and optional analytical Kerr-Resonator phase lock: | |
| k_t, q_t in S^{P-1} (exact analytic ||k_t||_2 == 1 via Fejér harmonics) | |
| v_hat_t = M_{t-1}^T k_t | |
| M_t = (1 - beta_t * delta_t) * M_{t-1} + beta_t * k_t (v_t - alpha_t * v_hat_t)^T | |
| r_t = M_t^T q_t^* | |
| Breaks the historical 7-15% R^2 scalar holographic recall wall to ~99-100% | |
| and enables 1-layer induction + live variable reassignment in fixed O(1) SRAM. | |
| """ | |
| from __future__ import annotations | |
| import math | |
| from typing import Optional, Tuple | |
| import torch | |
| import torch.nn as nn | |
| LOG_COMPLEMENT_CLAMP = 0.999 | |
| MOEBIUS_CLAMP = 0.995 | |
| EPS = 1e-6 | |
| class MuPLinear(nn.Module): | |
| """Maximal-Update (muP) scaled linear projection (M1 width-stabilization fix).""" | |
| def __init__( | |
| self, | |
| d_in: int, | |
| d_out: int, | |
| *, | |
| base_d: int = 128, | |
| init_gain: float = 0.6, | |
| bias: bool = False, | |
| ) -> None: | |
| super().__init__() | |
| self.d_in = d_in | |
| self.d_out = d_out | |
| self.scale = math.sqrt(base_d / float(max(d_in, 1))) | |
| self.linear = nn.Linear(d_in, d_out, bias=bias) | |
| nn.init.xavier_uniform_(self.linear.weight, gain=init_gain) | |
| if self.linear.bias is not None: | |
| nn.init.zeros_(self.linear.bias) | |
| def forward(self, x: torch.Tensor) -> torch.Tensor: | |
| return self.linear(x) * self.scale | |
| def stateful_affine_scan( | |
| a: torch.Tensor, | |
| gamma: torch.Tensor, | |
| z0: Optional[torch.Tensor] = None, | |
| ) -> Tuple[torch.Tensor, torch.Tensor]: | |
| """Exact sequential recurrence z_t = gamma_t * z_{t-1} + a_t along dim=1.""" | |
| B, T = a.shape[0], a.shape[1] | |
| state_shape = (B,) + tuple(a.shape[2:]) | |
| z = torch.zeros(state_shape, device=a.device, dtype=a.dtype) if z0 is None else z0 | |
| if T == 0: | |
| return a.clone(), z | |
| steps = [] | |
| for t in range(T): | |
| z = gamma[:, t] * z + a[:, t] | |
| steps.append(z) | |
| return torch.stack(steps, dim=1), z | |
| def parallel_doubling_scan( | |
| a: torch.Tensor, | |
| gamma: torch.Tensor, | |
| z0: Optional[torch.Tensor] = None, | |
| ) -> Tuple[torch.Tensor, torch.Tensor]: | |
| """O(log T) Hillis-Steele doubling prefix scan with exact carried z0 support.""" | |
| B, T = a.shape[0], a.shape[1] | |
| state_shape = (B,) + tuple(a.shape[2:]) | |
| if T == 0: | |
| z_init = torch.zeros(state_shape, device=a.device, dtype=a.dtype) if z0 is None else z0 | |
| return a.clone(), z_init | |
| cur_a = a.clone() | |
| cur_g = gamma.clone() | |
| if z0 is not None: | |
| cur_a[:, 0] = cur_a[:, 0] + cur_g[:, 0] * z0 | |
| stride = 1 | |
| while stride < T: | |
| prev_a = cur_a[:, :-stride] | |
| prev_g = cur_g[:, :-stride] | |
| head_a = cur_a[:, stride:] | |
| head_g = cur_g[:, stride:] | |
| new_a = head_a + head_g * prev_a | |
| new_g = head_g * prev_g | |
| cur_a = torch.cat([cur_a[:, :stride], new_a], dim=1) | |
| cur_g = torch.cat([cur_g[:, :stride], new_g], dim=1) | |
| stride <<= 1 | |
| return cur_a, cur_a[:, -1] | |
| def dispatch_affine_scan( | |
| a: torch.Tensor, | |
| gamma: torch.Tensor, | |
| z0: Optional[torch.Tensor] = None, | |
| *, | |
| mode: str = "auto", | |
| ) -> Tuple[torch.Tensor, torch.Tensor]: | |
| """Dispatch to sequential loop on short CPU sequences, doubling scan on GPU/MPS/long T.""" | |
| if mode == "sequential": | |
| return stateful_affine_scan(a, gamma, z0) | |
| if mode == "parallel": | |
| return parallel_doubling_scan(a, gamma, z0) | |
| T = a.shape[1] | |
| if a.device.type in ("cuda", "mps") and T >= 16: | |
| return parallel_doubling_scan(a, gamma, z0) | |
| if T >= 128: | |
| return parallel_doubling_scan(a, gamma, z0) | |
| return stateful_affine_scan(a, gamma, z0) | |
| def moebius_rapidity_scan( | |
| v_pol: torch.Tensor, | |
| gamma: torch.Tensor, | |
| beta: torch.Tensor, | |
| rho0: Optional[torch.Tensor] = None, | |
| *, | |
| scan_mode: str = "auto", | |
| ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: | |
| """PS-Lifted Möbius-Lorentz rapidity scan without matrix overflow.""" | |
| v_clamped = torch.clamp(v_pol, -MOEBIUS_CLAMP, MOEBIUS_CLAMP) | |
| drive = beta * torch.atanh(v_clamped) | |
| rho_seq, rho_fin = dispatch_affine_scan(drive, gamma, rho0, mode=scan_mode) | |
| polarity = torch.tanh(rho_seq) | |
| return polarity, rho_seq, rho_fin | |
| def holographic_aperture_scan( | |
| drive_u: torch.Tensor, | |
| gamma_holo: torch.Tensor, | |
| phi_write: torch.Tensor, | |
| phi_read: torch.Tensor, | |
| s_re0: Optional[torch.Tensor] = None, | |
| s_im0: Optional[torch.Tensor] = None, | |
| *, | |
| scan_mode: str = "auto", | |
| ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]: | |
| """Multi-aperture key-conditioned complex holographic binding scan.""" | |
| cos_w = torch.cos(phi_write) | |
| sin_w = torch.sin(phi_write) | |
| a_re = drive_u * cos_w | |
| a_im = drive_u * sin_w | |
| s_re_seq, s_re_fin = dispatch_affine_scan(a_re, gamma_holo, s_re0, mode=scan_mode) | |
| s_im_seq, s_im_fin = dispatch_affine_scan(a_im, gamma_holo, s_im0, mode=scan_mode) | |
| cos_q = torch.cos(phi_read) | |
| sin_q = torch.sin(phi_read) | |
| read_re = s_re_seq * cos_q + s_im_seq * sin_q | |
| read_im = s_im_seq * cos_q - s_re_seq * sin_q | |
| return read_re, read_im, s_re_fin, s_im_fin | |
| def kerr_harmonic_phase_features(theta: torch.Tensor) -> torch.Tensor: | |
| """Map phase angles `(..., M_ang)` onto exact unit sphere `S^{4*M_ang - 1}`. | |
| Uses 2-harmonic Fejér phase rotors: | |
| psi(theta) = [cos(theta), sin(theta), cos(2*theta), sin(2*theta)] / sqrt(2 * M_ang) | |
| Since cos^2(x) + sin^2(x) == 1 identically, ||psi(theta)||_2 == 1.0 analytically | |
| without norm-division singularities, while sharpening matched-key passbands. | |
| """ | |
| m_ang = theta.shape[-1] | |
| inv_norm = 1.0 / math.sqrt(2.0 * float(max(m_ang, 1))) | |
| two_theta = 2.0 * theta | |
| return torch.cat( | |
| [ | |
| torch.cos(theta), | |
| torch.sin(theta), | |
| torch.cos(two_theta), | |
| torch.sin(two_theta), | |
| ], | |
| dim=-1, | |
| ) * inv_norm | |
| def _kerr_harmonic_jacobian_step( | |
| theta_q: torch.Tensor, | |
| cavity_m: torch.Tensor, | |
| lam: torch.Tensor, | |
| ) -> torch.Tensor: | |
| """Single analytical Kerr-Resonator phase-lock step ascending 0.5 * ||M^T q(theta)||^2.""" | |
| m_ang = theta_q.shape[-1] | |
| inv_norm = 1.0 / math.sqrt(2.0 * float(max(m_ang, 1))) | |
| q0 = kerr_harmonic_phase_features(theta_q) # (B, H, 4*M) | |
| r0 = torch.einsum("bhp,bhpd->bhd", q0, cavity_m) # (B, H, Dv) | |
| energy_vec = torch.einsum("bhpd,bhd->bhp", cavity_m, r0) # (B, H, 4*M) | |
| c1, s1, c2, s2 = torch.chunk(energy_vec, 4, dim=-1) | |
| two_th = 2.0 * theta_q | |
| grad_theta = inv_norm * ( | |
| -torch.sin(theta_q) * c1 | |
| + torch.cos(theta_q) * s1 | |
| - 2.0 * torch.sin(two_th) * c2 | |
| + 2.0 * torch.cos(two_th) * s2 | |
| ) | |
| return theta_q + lam * torch.tanh(grad_theta) | |
| def kerr_cavity_scan( | |
| theta_k: torch.Tensor, | |
| theta_q: torch.Tensor, | |
| values: torch.Tensor, | |
| beta_write: torch.Tensor, | |
| alpha_erase: torch.Tensor, | |
| decay_delta: torch.Tensor, | |
| m0: Optional[torch.Tensor] = None, | |
| *, | |
| resonator_lam: Optional[torch.Tensor] = None, | |
| ) -> Tuple[torch.Tensor, torch.Tensor]: | |
| """Stateful O(1) Optical Kerr-Cavity Delta Attention recurrence. | |
| Args: | |
| theta_k: Write key angles `(B, T, H, M_ang)`. | |
| theta_q: Read query angles `(B, T, H, M_ang)`. | |
| values: Value vectors `(B, T, H, D_v)`. | |
| beta_write: Selective write gate in `[0, 1]` `(B, T, H, 1)`. | |
| alpha_erase: Selective erase gate in `[0, 1]` `(B, T, H, 1)`. | |
| decay_delta: Write-coupled global damping in `[0, 0.25]` `(B, T, H, 1)`. | |
| m0: Optional initial cavity matrix `(B, H, 4*M_ang, D_v)`. | |
| resonator_lam: Optional per-head resonator cleanup gain `(1, H, 1)`. | |
| Returns: | |
| `(read_seq, m_final)` with shapes `((B, T, H, D_v), (B, H, 4*M_ang, D_v))`. | |
| """ | |
| B, T, H, M_ang = theta_k.shape | |
| P = 4 * M_ang | |
| D_v = values.shape[-1] | |
| M = ( | |
| torch.zeros((B, H, P, D_v), device=values.device, dtype=values.dtype) | |
| if m0 is None | |
| else m0 | |
| ) | |
| if T == 0: | |
| return values.clone(), M | |
| k_all = kerr_harmonic_phase_features(theta_k) # (B, T, H, P), ||k||_2 == 1 | |
| use_res = resonator_lam is not None | |
| q_all_base = None if use_res else kerr_harmonic_phase_features(theta_q) | |
| reads = [] | |
| for t in range(T): | |
| kt = k_all[:, t] # (B, H, P) | |
| vt = values[:, t] # (B, H, D_v) | |
| bt = beta_write[:, t] # (B, H, 1) | |
| at = alpha_erase[:, t] # (B, H, 1) | |
| dt = decay_delta[:, t] # (B, H, 1) | |
| # 1. Read existing projection along kt & apply Delta erase-before-write | |
| v_old = torch.einsum("bhp,bhpd->bhd", kt, M) | |
| v_corr = vt - at * v_old | |
| gamma_t = (1.0 - bt * dt).unsqueeze(-1) # (B, H, 1, 1); beta==0 => gamma==1.0! | |
| M = gamma_t * M + (bt.unsqueeze(-1) * kt.unsqueeze(-1) * v_corr.unsqueeze(-2)) | |
| # 2. Coherent query readout (with optional 1-step Kerr-Resonator phase lock) | |
| if use_res and resonator_lam is not None: | |
| th_locked = _kerr_harmonic_jacobian_step(theta_q[:, t], M, resonator_lam) | |
| qt = kerr_harmonic_phase_features(th_locked) | |
| else: | |
| assert q_all_base is not None | |
| qt = q_all_base[:, t] | |
| rt = torch.einsum("bhp,bhpd->bhd", qt, M) | |
| reads.append(rt) | |
| return torch.stack(reads, dim=1), M | |