File size: 4,514 Bytes
d9d6118 f80cc91 d9d6118 f80cc91 d9d6118 16acb08 d9d6118 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | ---
license: mit
library_name: pytorch
tags:
- modular-arithmetic
- neural-arithmetic
- bit-serial
- recurrent-neural-network
- gru
---
# MiniNeuralHorner v0.2
This is a development snapshot of NeuralHorner with 126,603 trainable
parameters. It uses the same learned transition and fixed Horner schedule as
the larger v8 model, but the recurrent hidden width is 61 instead of 128.
The learned cell approximates one transition:
```text
s_next = (2*s + d*x) mod p
```
The cell is reused to reduce `a`, reduce `b`, and multiply the two residues.
The surrounding code sequences binary digits and carries the predicted binary
state between calls. It does not compute the modular product as a Python
integer operation.
## Status
This artifact has now been measured on the SAIR Playground. It is not exact and
is not presented as a replacement for `TrickyRex/bitserial-modmul-v8`.
## Hosted SAIR Playground result
The hosted run evaluated repository revision
`d9d611833d340c72d90a97d995a94031b798cf7c` and completed successfully.
| Field | Hosted result |
| --- | ---: |
| Frontier | T9 |
| Displayed overall | 99% |
| Scored tiers 1-10 | 985/1,000 = 98.5% |
| All tiers, including the unscored tier-0 diagnostic | 1,025/1,100 |
| Runtime | 156.602 seconds |
| Artifact size | 520 KB |
| Completion time shown by the UI | 2026-08-16 20:44:20 |
| Tier | Correct |
| --- | ---: |
| T0, unscored pure-multiplication diagnostic | 40/100 |
| T1-T9 | 100/100 on every tier |
| T10 | 85/100 |
The UI's 99% is the rounded display of the scored result, 985/1,000 = 98.5%.
The 1,025/1,100 count includes tier 0 and is 93.18% across all generated cases;
tier 0 does not enter the scored overall accuracy. The frontier is T9 because
T10 scored 85%, below the frontier threshold.
These hosted numbers were transcribed by the submitter from the completed SAIR
Playground UI. No public run ID or receipt URL was available. Revision
`16acb08ea46295ac7c45be697890fd99dbe8e5b5` was a later wording correction
with identical `model.py` and `weights.pt`; it was not the evaluated revision.
The weights were trained through state width L=512. The same tensor values then
passed an update-zero L=1024 qualification:
| Check | Result |
| --- | ---: |
| L=1024 screen, tiers 6-9, fixed and dynamic width | 64/64 for every tier and mode |
| L=1024 confirmation, tiers 6-9, fixed and dynamic width | 256/256 for every tier and mode |
| Primes below 64, fixed L=1024 | 40,954/40,954 |
| Primes below 64, dynamic L=32 | 40,954/40,954 |
A separate zero-training width screen used the same tensor values:
| Inference width | Tier | Fixed | Dynamic |
| ---: | ---: | ---: | ---: |
| 1024 | 8 | 64/64 | 64/64 |
| 1024 | 9 | 64/64 | 64/64 |
| 2048 | 9 | 64/64 | 64/64 |
| 2048 | 10 | 63/64 | 63/64 |
The tier-10 miss matters. These counts are development evidence from fixed
local case sets, not a proof of exactness.
Before publication, the packaged float32 inference path was also run through
the current official interface on 110 separately generated cases. It was deterministic and
scored 99/100 across tiers 1-10: 10/10 on tiers 1-9 and 9/10 on tier 10. Tier 0,
which is an unscored pure-multiplication diagnostic, was 6/10. This was a local
interface check, not a SAIR Playground result.
## Artifact identity
| Field | Value |
| --- | --- |
| Parameters | 126,603 |
| Packaged inference width | 2,048 bits |
| Qualified source checkpoint | `d296b711bb6a7faaa1dd81e05478cfa75f11071c42a8c36fbf60e758ee7eb407` |
| Qualification receipt | `80948748a41183a809faf282600cc0f8343691b6cdb4bebaac4f1f468df95651` |
| Tensor digest | `7d1768ae1260f750e0a80ec93d98f86a80d441e479ce29e0a8e21fd098c742a3` |
`weights.pt` contains only the state dictionary, architecture fields, and
provenance. Optimizer, scheduler, and random-number-generator state were
removed. Full machine-readable identities and counts are in
`provenance.json`.
CUDA inference uses float32. On a 22-case non-edge precision check, BF16 and
float32 agreed on 21 outputs but differed on one tier-10 failure. Both versions
were wrong on that case, so this package keeps the precision used by the local
qualification instead of claiming BF16 decision safety.
## Interface
The SAIR entry class is `model.MiniNeuralHorner`, with output base 2. Inputs
outside the packaged width and operand limits return `[0]` rather than invoking
an untested fallback.
Code and research record: https://github.com/Robby955/neural-horner
License: MIT. Copyright (c) 2026 Robert Sneiderman.
|