File size: 3,845 Bytes
2841ec9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# Troubleshooting

Common failure modes, what the log messages mean, and what to do.

## Connection problems

**Devices don't see each other.**
- Same network? Auto-grouping is by **public IP** β€” devices on different
  networks (e.g. phone on cellular) will never auto-group. Use
  `?room=CODE` on every device instead.
- Room joins need **host approval** β€” the first device in the room must click
  Accept for each newcomer.
- Corporate/CGNAT networks can block WebRTC (only STUN is configured, no TURN
  relay). Try a room over the hosted Space, or another network.

**"WebGPU not available" / backend shows CPU.**
- WebGPU needs a **secure context**: `localhost` or HTTPS. Plain
  `http://192.168.x.x` never gets WebGPU β€” tunnel it or use the Space.
- Old hardware/drivers without a modern GPU backend fall back to CPU. That's
  supported β€” CPU devices compute the identical bits, just slower.

**A kernel warning at startup** (e.g. "failed verification β€” using CPU LUT
mirrors"). The device's GPU produced values that don't match the verified
units bit-for-bit, so that kernel was refused and a slower-but-exact path is
used. This is the system working as designed; the run stays correct.

## Training problems

**"SYNC GUARD: stopped β€” weight hash mismatch."** Replicas forked β€” the run
is stopped rather than trained past a divergence. The most common cause is
**mixed builds**: devices running different versions of the page whose math
specs differ (the quantize respec is a real, bounded spec change β€” old and
new builds must not co-train). Make sure every device has the same version
(hard-refresh: Ctrl+Shift+R), then restart the run or restore from a
checkpoint.

**"missing a roster gradient … requesting repair from the leader."** A
gradient reached some peers but not others (asymmetric mesh). The follower
re-requests it from the leader, who retains the last 8 steps β€” normally the
run continues by itself. If repair fails repeatedly, the sync guard stops the
run; check whether a device went offline.

**"probe hash mismatch."** A device's *kernel* is producing wrong values at
runtime (the seeded probe GEMM no longer matches the fleet). That device
should rejoin β€” its gates will re-run at init and demote it to CPU if its GPU
misbehaves.

**Loss looks stuck / falls very slowly.** Small widths and short runs are
modest models β€” try more steps, a wider model, or more devices (each adds
its batch to the effective batch). Remember the envelope: this pools
compute, not memory; it is a proof of concept for small models.

**A slow device paces everyone.** Steps are synchronous: the group advances
when every roster gradient arrives. Removing (or upgrading) the slowest
device speeds up everyone.

## Data problems

**"dataset unreachable β€” using built-in corpus."** The `/data` endpoint
couldn't read the FineWeb-Edu shards (offline, or the CDN hiccuped β€” the
server reads parquet slices straight off the HF CDN with range requests).
Training continues on the built-in fallback text; generation quality will
reflect the smaller corpus.

## Checkpoint problems

**"tokenizer mismatch."** The checkpoint was trained with a different vocab
than the tokenizer this page loaded β€” it cannot be resumed here.

**"bad dims in checkpoint."** Width/sequence outside the supported 16–128
range β€” likely a corrupted or foreign file.

Loading a valid checkpoint on **one** device broadcasts it to the whole
group; you don't need to load it everywhere.

## Verifying your install

```bash
npm test
```

All ten suites should pass on a clean clone (Node only, no browser/GPU
required). If a suite fails on unmodified code, please report it β€” the tests
are deterministic apart from bounded random sweeps that are designed not to
flake. See [TEST_RESULTS.md](../TEST_RESULTS.md) for what each suite proves.