ATOM (atom-ai): code snapshot (100fae0 + batched-train), README with measured numbers, curated checkpoints (part 4)
b9301f1 verified Download src/toroidal/encoder.py from thefinalboss/atom-ai: direct link, hf CLI and curl.
- Browser
- Download file 2.54 kB
-
https://huggingface.co/thefinalboss/atom-ai/resolve/main/src/toroidal/encoder.py
- Command line
-
hf download hf://thefinalboss/atom-ai/src/toroidal/encoder.py
-
curl -L -o encoder.py https://huggingface.co/thefinalboss/atom-ai/resolve/main/src/toroidal/encoder.py
2.54 kB
| """Token + context -> structured toroidal atom.""" | |
| from __future__ import annotations | |
| import torch | |
| import torch.nn as nn | |
| import torch.nn.functional as F | |
| from .atom import ToroidalAtom | |
| class ToroidalEncoder(nn.Module): | |
| """Shared encoder that creates/modifies computational matter.""" | |
| def __init__(self, vocab_size=32000, d_model=256, d_hidden=512, n_atoms_max=1024, tau_eps=1e-6): | |
| super().__init__() | |
| self.vocab_size, self.d_model, self.n_atoms_max, self.tau_eps = vocab_size, d_model, n_atoms_max, tau_eps | |
| self.token_embedding = nn.Embedding(vocab_size, d_model) | |
| self.mapping = nn.Sequential(nn.Linear(d_model, d_hidden), nn.GELU(), nn.Linear(d_hidden, 8 * d_model)) | |
| self.op_gate = nn.Linear(d_model, 7) | |
| self.theta_shared = nn.ParameterDict({ | |
| "coupling_scale": nn.Parameter(torch.tensor(1.0)), | |
| "energy_decay": nn.Parameter(torch.tensor(0.99)), | |
| "phase_sync_strength": nn.Parameter(torch.tensor(0.5)), | |
| }) | |
| def forward(self, token_ids, context_ids=None, existing_atoms=None): | |
| tok = self.token_embedding(token_ids) | |
| if context_ids is not None: | |
| ctx = self.token_embedding(context_ids).mean(dim=-2) if context_ids.dim() > 1 else self.token_embedding(context_ids) | |
| tok = tok + 0.25 * ctx | |
| raw = self.mapping(tok).view(tok.shape[0], 8, self.d_model) | |
| r = F.normalize(raw[:, 0], dim=-1) | |
| phi = raw[:, 1] | |
| omega = F.softplus(raw[:, 2]) + 1e-3 | |
| E = torch.sigmoid(raw[:, 3]) | |
| kappa = F.softplus(raw[:, 4]) | |
| M = F.normalize(raw[:, 5], dim=-1) | |
| tau = F.softplus(raw[:, 6]) + self.tau_eps | |
| # Hierarchical level is structural metadata, not random noise. | |
| base_rho = len(existing_atoms) if existing_atoms is not None else 0 | |
| rho = torch.full((tok.shape[0], 1), min(base_rho // 64, 4), dtype=tok.dtype, device=tok.device) | |
| new_atom = ToroidalAtom(r=r, phi=phi, omega=omega, E=E, kappa=kappa, M=M, tau=tau, rho=rho) | |
| op_logits = self.op_gate(tok) | |
| operation = op_logits.argmax(dim=-1) | |
| confidence = op_logits.softmax(dim=-1).max(dim=-1).values | |
| return new_atom, operation, confidence | |
| def get_shared_params(self): | |
| return {k: v.detach().clone() for k, v in self.theta_shared.items()} | |
| def load_shared_params(self, params): | |
| with torch.no_grad(): | |
| for k, v in params.items(): | |
| if k in self.theta_shared: | |
| self.theta_shared[k].copy_(v) | |