--- license: mit language: - code library_name: sphere-attention tags: - poisson-attention - hypersphere - code-generation - long-context - sparse-attention - research datasets: - codeparrot/codeparrot-clean --- # POET-51M-certified 51M-parameter POET trained with a key-clustering regularizer, so its sparse-attention certificates are informative rather than merely sound. ## Results Trained with an auxiliary **key-clustering loss** (per-head EMA codebook; each key pulled toward its nearest centroid, λ=0.1) to induce the geodesic cap concentration the certificates rely on. | | unregularized POET | this model (λ=0.1) | |---|---|---| | paired ppl vs GPT-2 baseline | −2.9% | **−2.7%** (z = −64) | | median certificate ε @ 29% budget | 0.60 (vacuous) | **0.119** | | p90 certificate ε | ~0.99 | 0.89 | | sparse quality @ 29% budget | +1.4% ppl | **+0.5%** ppl | For ~0.25% perplexity, the median query now carries a proof that it retained **≥88%** of its attention mass under a 29% key budget. **The certificate is a trustworthy risk signal**: certified ε ranks queries by their *true* attention error with **Spearman ρ = 0.88**. Using it to gate — fall back to exact attention whenever ε > τ — bounds the tail by construction: | τ | suffix ppl vs dense | fallback rate | keys/query | |---|---|---|---| | 0.20 | 1.0001x | 62.5% | 71% of dense | | 0.50 | 1.0009x | 51.0% | 60% of dense | i.e. dense-quality output, ~35% of attention saved, worst-case certified error ≤ τ. This is the checkpoint to use if you care about *bounded* sparse attention rather than best raw perplexity. **Recipe:** seq 512, lr 6e-4, `--cluster-reg 0.1`, 60k steps, selective weight decay, EMA 0.999. ## What POET is **POET (POisson attEntion Transformer)** replaces softmax attention with the closed-form **spherical Poisson kernel**. Queries and keys are L2-retracted onto the unit hypersphere and scored by ``` P_r() = (1 - r^2) / (1 - 2 r + r^2)^(d/2) ``` with a **learnable per-head radius** `r` (resolution, replacing temperature), rotary positions (rotations are isometries of the sphere), and a QUEST-style query-norm sharpness term. Equivalently, each attention weight is the *harmonic measure* of where a random walk started at the query's interior point first exits the sphere at that key. Because keys live on a sphere, attention admits a geodesic **cap decomposition** that supports budgeted sparse attention with closed-form **per-query error certificates**. Architecture is otherwise a standard pre-LN transformer (GELU MLP, tied embeddings, GPT-2 BPE). Custom code — **not** `transformers`-compatible. ## Usage ```bash pip install git+https://github.com/Grayblock-AI/spherical-attention ``` ```python import torch, tiktoken from sphere_attention.hub import load_poet model = load_poet("Grayblock-AI/POET-51M-certified") enc = tiktoken.get_encoding("gpt2") ids = torch.tensor([enc.encode_ordinary("def quicksort(arr):")]) out = model.generate(ids, max_new_tokens=64, top_k=20) print(enc.decode(out[0].tolist())) ``` ## Training data `codeparrot/codeparrot-clean` (permissively licensed Python), GPT-2 BPE. The long-context variants use **repository-grouped packing**: files from the same repo are packed contiguously so long sequences contain genuine cross-file structure (imports, call sites, definitions). ## Limitations - **Research checkpoint, small scale.** Not instruction-tuned; a raw next-token model. Python only. - Trained on ~983M tokens, which is under compute-optimal for the larger sizes — absolute perplexities are compressed, though all comparisons in the results are matched arm-for-arm. - Exact long-range identifier retrieval is near-zero at these model sizes (for POET *and* all baselines) — a capacity limit, not architecture. - Sparse-attention certificates are sound (coverage 1.0) but conservative in the tail; see `POET-51M-certified` for the regularized variant and the gating mechanism that bounds the tail operationally. - Poisson attention has no fused kernel yet, so wall-clock is ~2x a flash-attention baseline at equal FLOPs. ## Links - Code, full experiment log, paper draft: https://github.com/Grayblock-AI/spherical-attention - Experiment log: https://github.com/Grayblock-AI/spherical-attention/blob/main/EXPERIMENTS.md ## Citation ```bibtex @misc{poet2026, title = {POET: Poisson Attention Transformers with Certified Sparsity on the Hypersphere}, author = {Jerge, Michael}, year = {2026}, url = {https://github.com/Grayblock-AI/spherical-attention} } ``` ## Config ```json { "model": "sphere-ff", "dim": 512, "depth": 8, "heads": 8, "seq_len": 512, "batch_size": 32, "steps": 60000, "warmup": 1000, "lr": 0.0006, "solver_iters": 4, "solver_tol": 0.001, "eval_every": 1000, "seed": 0, "grad_accum": 2, "no_bf16": false, "r_init": 0.7, "logit_scale": 10.0, "tag": "clufull1", "save_checkpoint": true, "checkpoint_every": 0, "s3_prefix": "", "data_dir": "data1b", "wandb": false, "wandb_project": "spherical-attention", "wandb_entity": null, "cloudwatch": false, "cloudwatch_region": "us-east-2", "resume": "", "ngpt": true, "selective_wd": true, "grad_steps": 1, "ema": 0.999, "cluster_reg": 0.1, "abort_divergence": 1.5 } ```