bob-int / README.md
f32-dev's picture
Update README.md
5dc77c2 verified
|
Raw
History Blame Contribute Delete
5.42 kB
---
license: apache-2.0
language:
- en
pipeline_tag: text-generation
tags:
- fixed-point
- integer-arithmetic
- deterministic
- reproducibility
---
# bob-int
The weights and every file in this repository are licensed
**Apache-2.0**. The bob name and marks are not part of that grant.
Model: bob 2-ck_13000 (bob-talk)
A small integer language model. The same, every time.
Try it: **https://bob-talk.org** ; the model in this repository is the
model answering that page, verifiable by digest (below).
Bob exists because I asked the question: "If fixed point buys exactness, can exact multithreading/parallelism then provide speed?"
I'm still working on that question. This project was inspired by Norm Winningstead, and my own dumb questions.
Bob has demonstrated the ability to resume his own training, cross-ISA and byte-exact reproducible. I do not know if Bob's training model
can do this on *every* possible combination- and make no claims to his ability outside of what I have already demonstrated.
## What is in this repository
```text
ck_13000.weights.bin the final weights, training step 13,000
sha256 53ae7609f22e580ac1d67ad1995dfc2d87c0ebcd5f60f3ab7136345f502c2890
ck_13000.opt.bin the optimizer state at the same step, so the
trajectory can be resumed, not only replayed
registration/exponents.json the registered fixed-point exponents and bit
widths for every activation and gradient site
registration/width-sites.json the accumulator width registrations
registration/init/ the initial weights and ordering- the
trajectory is replayable from step 0
SHA256SUMS digests for every file above
```
## The property these files carry
Every number in training and inference is fixed-point integer
arithmetic under a registered contract: each site has a registered
exponent and width, and arithmetic that would leave its registration
**refuses**- it stops with a named site and an exit code rather than
saturating or wrapping silently.
Because the arithmetic is integer, results do not depend on
floating-point summation order. The digest of the reply tokens for a
given (prompt, seed, effort) is the same on every conforming build.
Four pre-published examples with their digests are on
https://bob-talk.org and embedded in its page source.
Two portability results are in the project record, each stated no
wider than its measurement:
**bob 2's own training** (the weights in this repository) was saved
mid-run and resumed on different rented machines across two GPU
generations of one vendor, with checkpoint digests matching at the
joints. All of bob 2's GPU lineages are one vendor; no cross-vendor
claim is made for this trajectory.
**A separate 80-step synthetic trial (2026-08-17, not these weights)**
ran the same integer training on an Apple M4 via Metal (arm64, macOS)
and a Pascal-era NVIDIA GTX 1070 via Vulkan (x86_64, Linux)-> produced
byte-identical weights AND optimizer state- sha256
`cddab458c1e2e8b9…` / `436114216b977be2…`- hashed independently on
each machine. The two devices also made byte-identical refusal
decisions: the enforcement machinery itself is deterministic across
vendors. The trial is synthetic and unregistered; it demonstrates the
arithmetic contract's portability, not this model's history.
I know of no shipped system combining an end-to-end integer training
loop with integer optimizer state, overflow semantics that refuse with
a named site and typed exit, and demonstrated mid-run save-and-resume
with matching digests- resting on a documented 2026-08-17 survey of
eleven named systems: unoccupied as of the search date, not
impossible, not permanent. Please direct me toward prior art if available.
## Verify this is the model behind bob-talk.org
```
sha256sum ck_13000.weights.bin
# 53ae7609f22e580ac1d67ad1995dfc2d87c0ebcd5f60f3ab7136345f502c2890
```
That digest is compiled into the public server, which refuses to start
if its embedded weights do not hash to it. Ask the live page
(POST /ask, `{"prompt": "Alice was", "seed": "7"}`) and compare the
reply digest against the published table on the page.
## Format
Weights are raw little-endian integer tensors in the registered
layout; `registration/exponents.json` gives each site's fixed-point
interpretation. This is not a transformers/safetensors checkpoint and
will not load with `from_pretrained`. Geometry: d_model 512, 8 layers,
8 heads, head_dim 64, d_mlp 2048, context 8192, vocab 8192; parameter
count 33,608,704 with the learned position table (proved at both ends
of the pipeline; receipts in the project record).
Inference code: [TBD - LIVE GH REPO NOT RELEASED; https://bob-talk.org/ for live inference]
## What is NOT claimed
bob 2 is deterministic in the sense stated above. He is not thereby
accurate, clever, or safe, and no such claim is made. He is small
(33.6M parameters), his prose is what a 33.6M-parameter model's prose
is, and the property I claim to be interesting is the arithmetic,
not the model's vocabulary.
## Provenance
Trained August of 2026 by f32. Training step 13,000; two legs; the enforcement
regime is part of the record (one leg ended in a registered disagreement event on a
named site; the refusal machinery was demonstrated live, then the
registration corrected and the run completed).