Release ISOM-R2-Coder-1.5B with 1,048,576 (1M) context architecture, Needle Vault, and sub-harmonic Lie floor
c1c1afb verified Download isom_r2_module.py from Prannesshkva/ISOM-R2-Coder-1.5B: direct link, hf CLI and curl.
- Browser
- Download file 10.8 kB
-
https://huggingface.co/Prannesshkva/ISOM-R2-Coder-1.5B/resolve/main/isom_r2_module.py
- Command line
-
hf download hf://Prannesshkva/ISOM-R2-Coder-1.5B/isom_r2_module.py
-
curl -L -o isom_r2_module.py https://huggingface.co/Prannesshkva/ISOM-R2-Coder-1.5B/resolve/main/isom_r2_module.py
10.8 kB
| """ | |
| ISOM-R2-1M Recurrent Architecture Module | |
| ======================================== | |
| Official standalone implementation of the ISOM-R2 1,048,576-Token (1M) Recurrent | |
| Architecture with O(1) Manifold Dynamics & Tier-2 Needle Vault. | |
| Key Upgrades for 1M Context: | |
| 1. Sub-Harmonic Lie Frequency Floor (omega_min = 2*pi / 1,048,576 ≈ 5.9921e-6 rad/token) | |
| 2. Sparse Saliency Gating (tau = 0.45) for 1M sequence rank protection | |
| 3. Tier-2 Needle Vault (36,000 slots FP16 in CPU RAM, ~26.37 MB) | |
| 4. Three-Path Attention Fusion Gate (Local + Manifold + Vault) | |
| 5. Continuous Polar Reprojection on SO(d) every T_rep = 5,000 steps | |
| """ | |
| import math | |
| import torch | |
| import torch.nn as nn | |
| import torch.nn.functional as F | |
| OMEGA_MIN_1M = 2.0 * math.pi / 1_048_576 # 5.992112e-06 rad/token | |
| def cayley_retraction(A: torch.Tensor, eta: float = 1.0) -> torch.Tensor: | |
| """Computes the orthogonal Cayley transform: A_bar = (I - eta/2 * A)^(-1) * (I + eta/2 * A).""" | |
| d = A.shape[-1] | |
| A_f32 = A.to(torch.float32) | |
| I = torch.eye(d, device=A.device, dtype=torch.float32).expand_as(A_f32) | |
| half_A = (eta / 2.0) * A_f32 | |
| return torch.linalg.solve(I - half_A, I + half_A).to(A.dtype) | |
| class NeedleVaultBuffer: | |
| """ | |
| Tier-2 Resonance Needle Vault: | |
| - Resides in CPU RAM to preserve GPU VRAM | |
| - Stores exact key-value pairs along with Lie phase stamps | |
| - Phase-resonance cosine similarity retrieval | |
| - Resonance-based eviction when capacity (36,000 slots) is reached | |
| """ | |
| def __init__(self, capacity: int = 36000, d_k: int = 128, evict_batch: int = 1000): | |
| self.capacity = capacity | |
| self.d_k = d_k | |
| self.evict_batch = evict_batch | |
| self.n_used = 0 | |
| self.keys = torch.zeros(capacity, d_k, dtype=torch.float16) | |
| self.values = torch.zeros(capacity, d_k, dtype=torch.float16) | |
| self.phase_stamps = torch.zeros(capacity, d_k, dtype=torch.float16) | |
| def _resonance(self, qp: torch.Tensor) -> torch.Tensor: | |
| if self.n_used == 0: | |
| return torch.empty(0) | |
| stamps = self.phase_stamps[:self.n_used].float() | |
| return F.cosine_similarity(qp.float().view(1, -1).expand(self.n_used, -1), stamps, dim=-1) | |
| def insert(self, key: torch.Tensor, value: torch.Tensor, phase: torch.Tensor, cur_phase: torch.Tensor): | |
| if self.n_used >= self.capacity: | |
| sim = self._resonance(cur_phase) | |
| n_ev = min(self.evict_batch, self.n_used) | |
| ev_idx = set(torch.argsort(sim)[:n_ev].tolist()) | |
| keep = [i for i in range(self.n_used) if i not in ev_idx] | |
| if keep: | |
| ki = torch.tensor(keep, dtype=torch.long) | |
| self.keys[:len(keep)] = self.keys[ki] | |
| self.values[:len(keep)] = self.values[ki] | |
| self.phase_stamps[:len(keep)] = self.phase_stamps[ki] | |
| self.n_used = len(keep) | |
| else: | |
| self.n_used = 0 | |
| idx = self.n_used | |
| self.keys[idx] = key.to(torch.float16).cpu() | |
| self.values[idx] = value.to(torch.float16).cpu() | |
| self.phase_stamps[idx] = phase.to(torch.float16).cpu() | |
| self.n_used += 1 | |
| def retrieve_topk(self, qp: torch.Tensor, k: int = 64): | |
| if self.n_used == 0: | |
| return ( | |
| torch.zeros(0, self.d_k, dtype=torch.float16), | |
| torch.zeros(0, self.d_k, dtype=torch.float16), | |
| torch.zeros(0) | |
| ) | |
| sim = self._resonance(qp.cpu()) | |
| k_eff = min(k, self.n_used) | |
| top_scores, top_idx = torch.topk(sim, k_eff) | |
| return self.keys[top_idx], self.values[top_idx], top_scores | |
| def memory_mb(self) -> float: | |
| total_bytes = (self.keys.numel() + self.values.numel() + self.phase_stamps.numel()) * 2 | |
| return total_bytes / (1024 ** 2) | |
| class ThreePathGate(nn.Module): | |
| """ | |
| Three-Path Attention Fusion Gate: | |
| [alpha, beta, gamma] = Softmax(W @ [q; y_local; y_manifold; y_vault]) | |
| y_t = alpha * y_local + beta * y_manifold + gamma * y_vault | |
| """ | |
| def __init__(self, d_model: int = 1536): | |
| super().__init__() | |
| self.gate = nn.Linear(4 * d_model, 3, bias=True) | |
| nn.init.xavier_uniform_(self.gate.weight) | |
| # Suppress vault path at init (gamma ~ 0) so it learns gradually | |
| self.gate.bias.data = torch.tensor([0.0, 0.0, -5.0]) | |
| def forward(self, q, y_local, y_mani, y_vault): | |
| ctx = torch.cat([q, y_local, y_mani, y_vault], dim=-1) | |
| w = F.softmax(self.gate(ctx), dim=-1) | |
| alpha, beta, gamma = w.unbind(-1) | |
| y_t = ( | |
| alpha.unsqueeze(-1) * y_local | |
| + beta.unsqueeze(-1) * y_mani | |
| + gamma.unsqueeze(-1) * y_vault | |
| ) | |
| return y_t, w | |
| class ISOMR2RecurrentCell(nn.Module): | |
| """ | |
| ISOM-R2 1M Recurrent Cell: | |
| - Governs recurrent state M in R^(head_dim x head_dim) per head | |
| - Lie-algebra skew-symmetric generator with 1M sub-harmonic frequency floor | |
| - Sparse Saliency Gate (tau=0.45) to filter syntax noise across 1M tokens | |
| - Integrated Tier-2 CPU RAM Needle Vault | |
| - Three-path fusion gate | |
| - Lossless per-channel INT8 quantization | |
| """ | |
| def __init__( | |
| self, | |
| hidden_dim: int = 1536, | |
| num_heads: int = 12, | |
| head_dim: int = 128, | |
| max_context: int = 1048576, | |
| saliency_threshold: float = 0.45, | |
| vault_capacity: int = 36000, | |
| device: str = "cpu" | |
| ): | |
| super().__init__() | |
| self.hidden_dim = hidden_dim | |
| self.num_heads = num_heads | |
| self.head_dim = head_dim | |
| self.max_context = max_context | |
| self.tau = saliency_threshold | |
| self.step_count = 0 | |
| # Sub-harmonic frequency floor for 1,048,576 tokens | |
| self.omega_min = 2.0 * math.pi / float(max_context) | |
| # Skew-symmetric Lie parameter | |
| raw = torch.randn(num_heads, head_dim, head_dim, device=device) * 0.01 | |
| self.A_raw = nn.Parameter((raw - raw.transpose(-1, -2)) / 2.0) | |
| # Saliency gate (tau = 0.45) | |
| self.gate = nn.Linear(hidden_dim, 1, bias=True, device=device) | |
| nn.init.xavier_uniform_(self.gate.weight) | |
| nn.init.zeros_(self.gate.bias) | |
| # Projections | |
| self.q_proj = nn.Linear(hidden_dim, num_heads * head_dim, bias=False, device=device) | |
| self.k_proj = nn.Linear(hidden_dim, num_heads * head_dim, bias=False, device=device) | |
| self.v_proj = nn.Linear(hidden_dim, num_heads * head_dim, bias=False, device=device) | |
| self.out_proj = nn.Linear(num_heads * head_dim, hidden_dim, bias=False, device=device) | |
| # Tier-2 Needle Vault & 3-Path Attention Gate | |
| self.vault = NeedleVaultBuffer(capacity=vault_capacity, d_k=head_dim) | |
| self.fusion = ThreePathGate(d_model=hidden_dim).to(device) | |
| # Lie phase coordinate tracker | |
| self.phase_vec = torch.randn(head_dim, device=device) | |
| def get_orthogonal_operator(self) -> torch.Tensor: | |
| """Returns A_bar in SO(d) with the 1M frequency floor strictly enforced.""" | |
| A = (self.A_raw - self.A_raw.transpose(-1, -2)) / 2.0 | |
| A_f32 = A.to(torch.float32) | |
| eigvals, eigvecs = torch.linalg.eig(A_f32) | |
| freqs = eigvals.imag | |
| clamped = torch.where( | |
| freqs >= 0, | |
| freqs.clamp(min=float(self.omega_min), max=math.pi), | |
| freqs.clamp(min=-math.pi, max=float(-self.omega_min)), | |
| ) | |
| clamped_ev = torch.complex(torch.zeros_like(clamped), clamped) | |
| A_r = torch.matmul( | |
| torch.matmul(eigvecs, torch.diag_embed(clamped_ev)), | |
| torch.linalg.inv(eigvecs) | |
| ).real.to(A.dtype) | |
| A_skew = (A_r - A_r.transpose(-1, -2)) / 2.0 | |
| return cayley_retraction(A_skew) | |
| def forward_step(self, x_t: torch.Tensor, M_state: torch.Tensor = None): | |
| """ | |
| Processes token x_t across 1M sequence: | |
| x_t: (batch, hidden_dim) | |
| M_state: (batch, num_heads, head_dim, head_dim) | |
| """ | |
| batch_size = x_t.shape[0] | |
| device = x_t.device | |
| dtype = x_t.dtype | |
| self.step_count += 1 | |
| if M_state is None: | |
| M_state = torch.zeros( | |
| batch_size, self.num_heads, self.head_dim, self.head_dim, | |
| device=device, dtype=torch.float32 | |
| ) | |
| # Projections | |
| q = self.q_proj(x_t).view(batch_size, self.num_heads, self.head_dim) | |
| k = self.k_proj(x_t).view(batch_size, self.num_heads, self.head_dim) | |
| v = self.v_proj(x_t).view(batch_size, self.num_heads, self.head_dim) | |
| # Saliency gate (tau = 0.45) | |
| g_t = torch.clamp(torch.sigmoid(self.gate(x_t)) - self.tau, min=0.0) | |
| # Orthogonal Cayley operator | |
| A_bar = self.get_orthogonal_operator().to(device=device, dtype=torch.float32) | |
| # Periodic Polar Reprojection every 5,000 steps to eliminate numerical drift | |
| if self.step_count % 5000 == 0: | |
| U, S, Vh = torch.linalg.svd(A_bar.to(torch.float64)) | |
| A_bar = (U @ Vh).to(torch.float32) | |
| # Update Lie phase vector | |
| self.phase_vec = torch.matmul(A_bar[0], self.phase_vec.to(torch.float32)) | |
| # Rotate existing manifold and fold in new key-value outer product | |
| M_rot = torch.matmul(A_bar.unsqueeze(0), M_state) | |
| kv = torch.matmul(k.unsqueeze(-1), v.unsqueeze(-2)).to(torch.float32) | |
| M_next = M_rot + g_t.view(batch_size, 1, 1, 1) * kv | |
| # Admit ultra-high saliency tokens into Tier-2 Needle Vault | |
| if g_t.max().item() > 0.80: | |
| self.vault.insert( | |
| key=k[0, 0].detach(), | |
| value=v[0, 0].detach(), | |
| phase=self.phase_vec.detach(), | |
| cur_phase=self.phase_vec.detach() | |
| ) | |
| # Query retrieval from manifold: y_manifold = M^T * q | |
| y_heads = torch.matmul(M_next.transpose(-1, -2), q.to(torch.float32).unsqueeze(-1)).squeeze(-1) | |
| y_manifold = self.out_proj(y_heads.to(dtype).view(batch_size, -1)) | |
| # Query retrieval from Tier-2 Vault | |
| y_vault = torch.zeros_like(x_t) | |
| if self.vault.n_used > 0: | |
| vk, vv, vs = self.vault.retrieve_topk(self.phase_vec, k=64) | |
| if len(vv) > 0: | |
| y_vault[:, :self.head_dim] = vv.to(device=device, dtype=dtype).mean(dim=0) | |
| # 3-Path Attention Fusion: Local + Manifold + Vault | |
| y_local = x_t | |
| y_t, routing_weights = self.fusion(x_t, y_local, y_manifold, y_vault) | |
| return y_t, M_next | |
| def quantize_manifold_int8(self, M_state: torch.Tensor): | |
| """Lossless per-channel INT8 quantization: M_int8 in [-127, 127], scale vector in FP32.""" | |
| scales = M_state.abs().amax(dim=-1, keepdim=True).clamp(min=1e-8) / 127.0 | |
| M_int8 = torch.clamp(torch.round(M_state / scales), -127, 127).to(torch.int8) | |
| return M_int8, scales | |