Upload web/docs/TROUBLESHOOTING.md with huggingface_hub
Browse files- 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.
|