hetki ennen webgpu inferenssiä
This commit is contained in:
@@ -41,14 +41,16 @@ Hajautettu AI-laskentaverkko selaimessa ja natiivina. Käyttäjät tarjoavat GPU
|
||||
|
||||
- `lib.rs` — Wasm-entrypoint, tehtävävalinta (`SELECTED_TASK`), WebSocket-handler, GPU/CPU-valinta
|
||||
- `storage.rs` — IndexedDB read/write (tokenizer, mallin painot)
|
||||
- `sampling.rs` — Top-k sampling EOS-penaltilla (kiertää Candlen softmax Wasm-bugin)
|
||||
- `smollm.rs` — SmolLM 135M Candle-inferenssi (Llama-arkkitehtuuri)
|
||||
- `qwen.rs` — Qwen2.5 0.5B Candle-inferenssi (Qwen2-arkkitehtuuri)
|
||||
- `qwen_coder.rs` — Qwen2.5-Coder 0.5B/3B koodigenerointi (sama arkkitehtuuri, koodikoulutettu)
|
||||
- `phi3.rs` — Phi-3 placeholder (liian iso selaimelle)
|
||||
|
||||
### Native Node (`native-node/src/`)
|
||||
|
||||
- `main.rs` — GPU-tunnistus (wgpu + NVML + sysfs + Apple), HF Hub -lataus, WS-yhteys
|
||||
- `inference.rs` — Qwen2.5-0.5B Candle-inferenssi, KV-cache reset per prompti, mmap-lataus
|
||||
- `inference.rs` — Qwen2.5-0.5B Candle-inferenssi, CUDA/CPU, KV-cache reset per prompti, mmap-lataus
|
||||
|
||||
## Kehitysympäristö
|
||||
|
||||
@@ -87,6 +89,7 @@ Solmu → hub:
|
||||
| `llm_done` | LLM-tulos: `{response, tokens_generated, tokens_per_sec}` |
|
||||
| `llm_chunk` | Streaming-token |
|
||||
| `download_progress` | Mallin latauksen edistyminen |
|
||||
| `user_text` | Käyttäjän oma teksti: `{text, task_type}` |
|
||||
|
||||
## API-endpointit
|
||||
|
||||
@@ -105,6 +108,7 @@ Solmu → hub:
|
||||
- **IP-rajoitus** — max 4 WS-yhteyttä per IP, X-Forwarded-For -tuki
|
||||
- **Viestivalidointi** — pakollinen `type`, sallitut tyypit, kenttäkohtaiset rajat
|
||||
- **Viestikoko** — max 16 KB per WebSocket-viesti
|
||||
- **Admin Basic Auth** — `/admin` ja `/api/*` salasanan takana (`ADMIN_PASSWORD` env, oletus: `kipina`)
|
||||
- **Caddy** — automaattinen TLS (Let's Encrypt)
|
||||
|
||||
## Tuotanto-deploy
|
||||
@@ -119,10 +123,11 @@ docker compose -f docker-compose.prod.yml down && docker compose -f docker-compo
|
||||
|
||||
## Tiedossa olevat rajoitukset
|
||||
|
||||
- LLM-inferenssi on **greedy** (argmax) — ei temperature/top-p samplingia Wasmissa (Candlen `SoftmaxLastDim` bugi)
|
||||
- LLM-inferenssi käyttää **top-k samplingia** (k=10, EOS-penaltti) — ei täyttä temperature/top-p -tukea Wasmissa
|
||||
- Qwen selaimessa: ~0.4 tok/s CPU — käyttökelpoinen demona mutta ei tuotantoon
|
||||
- Native node + CUDA: ~50-100 tok/s (RTX 4090)
|
||||
- Hub broadcastaa kaikki viestit kaikille — ei kohdennettu reititystä
|
||||
- CUDA-tuki vaatii `nvidia-cuda-toolkit` asennuksen + Cargo.toml featuren
|
||||
- 3B Coder-malli vaatii ~12 GB RAM selaimessa (Wasm)
|
||||
|
||||
## Lisenssi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user