DaisyChain-Train / web /docs /TROUBLESHOOTING.md
Quazim0t0's picture
Upload web/docs/TROUBLESHOOTING.md with huggingface_hub
2841ec9 verified
|
Raw
History Blame Contribute Delete
3.85 kB
# 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.