Quazim0t0 commited on
Commit
2841ec9
Β·
verified Β·
1 Parent(s): 631a273

Upload web/docs/TROUBLESHOOTING.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. web/docs/TROUBLESHOOTING.md +85 -0
web/docs/TROUBLESHOOTING.md ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Troubleshooting
2
+
3
+ Common failure modes, what the log messages mean, and what to do.
4
+
5
+ ## Connection problems
6
+
7
+ **Devices don't see each other.**
8
+ - Same network? Auto-grouping is by **public IP** β€” devices on different
9
+ networks (e.g. phone on cellular) will never auto-group. Use
10
+ `?room=CODE` on every device instead.
11
+ - Room joins need **host approval** β€” the first device in the room must click
12
+ Accept for each newcomer.
13
+ - Corporate/CGNAT networks can block WebRTC (only STUN is configured, no TURN
14
+ relay). Try a room over the hosted Space, or another network.
15
+
16
+ **"WebGPU not available" / backend shows CPU.**
17
+ - WebGPU needs a **secure context**: `localhost` or HTTPS. Plain
18
+ `http://192.168.x.x` never gets WebGPU β€” tunnel it or use the Space.
19
+ - Old hardware/drivers without a modern GPU backend fall back to CPU. That's
20
+ supported β€” CPU devices compute the identical bits, just slower.
21
+
22
+ **A kernel warning at startup** (e.g. "failed verification β€” using CPU LUT
23
+ mirrors"). The device's GPU produced values that don't match the verified
24
+ units bit-for-bit, so that kernel was refused and a slower-but-exact path is
25
+ used. This is the system working as designed; the run stays correct.
26
+
27
+ ## Training problems
28
+
29
+ **"SYNC GUARD: stopped β€” weight hash mismatch."** Replicas forked β€” the run
30
+ is stopped rather than trained past a divergence. The most common cause is
31
+ **mixed builds**: devices running different versions of the page whose math
32
+ specs differ (the quantize respec is a real, bounded spec change β€” old and
33
+ new builds must not co-train). Make sure every device has the same version
34
+ (hard-refresh: Ctrl+Shift+R), then restart the run or restore from a
35
+ checkpoint.
36
+
37
+ **"missing a roster gradient … requesting repair from the leader."** A
38
+ gradient reached some peers but not others (asymmetric mesh). The follower
39
+ re-requests it from the leader, who retains the last 8 steps β€” normally the
40
+ run continues by itself. If repair fails repeatedly, the sync guard stops the
41
+ run; check whether a device went offline.
42
+
43
+ **"probe hash mismatch."** A device's *kernel* is producing wrong values at
44
+ runtime (the seeded probe GEMM no longer matches the fleet). That device
45
+ should rejoin β€” its gates will re-run at init and demote it to CPU if its GPU
46
+ misbehaves.
47
+
48
+ **Loss looks stuck / falls very slowly.** Small widths and short runs are
49
+ modest models β€” try more steps, a wider model, or more devices (each adds
50
+ its batch to the effective batch). Remember the envelope: this pools
51
+ compute, not memory; it is a proof of concept for small models.
52
+
53
+ **A slow device paces everyone.** Steps are synchronous: the group advances
54
+ when every roster gradient arrives. Removing (or upgrading) the slowest
55
+ device speeds up everyone.
56
+
57
+ ## Data problems
58
+
59
+ **"dataset unreachable β€” using built-in corpus."** The `/data` endpoint
60
+ couldn't read the FineWeb-Edu shards (offline, or the CDN hiccuped β€” the
61
+ server reads parquet slices straight off the HF CDN with range requests).
62
+ Training continues on the built-in fallback text; generation quality will
63
+ reflect the smaller corpus.
64
+
65
+ ## Checkpoint problems
66
+
67
+ **"tokenizer mismatch."** The checkpoint was trained with a different vocab
68
+ than the tokenizer this page loaded β€” it cannot be resumed here.
69
+
70
+ **"bad dims in checkpoint."** Width/sequence outside the supported 16–128
71
+ range β€” likely a corrupted or foreign file.
72
+
73
+ Loading a valid checkpoint on **one** device broadcasts it to the whole
74
+ group; you don't need to load it everywhere.
75
+
76
+ ## Verifying your install
77
+
78
+ ```bash
79
+ npm test
80
+ ```
81
+
82
+ All ten suites should pass on a clean clone (Node only, no browser/GPU
83
+ required). If a suite fails on unmodified code, please report it β€” the tests
84
+ are deterministic apart from bounded random sweeps that are designed not to
85
+ flake. See [TEST_RESULTS.md](../TEST_RESULTS.md) for what each suite proves.