memories in git
This commit is contained in:
5
.claude/memory/MEMORY.md
Normal file
5
.claude/memory/MEMORY.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Memory Index
|
||||||
|
|
||||||
|
- [Product selling points](product-selling-points.md) — key differentiators and landing page angles for neuron-tai
|
||||||
|
- [User profile](user-profile.md) — who Dobromir is and how to work with him
|
||||||
|
- [Project status](project-status.md) — 29/30 done; US-030 (manual route + hop benchmark) is the only open story
|
||||||
38
.claude/memory/product-selling-points.md
Normal file
38
.claude/memory/product-selling-points.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
name: product-selling-points
|
||||||
|
description: Key differentiators and landing page angles for neuron-tai distributed inference network
|
||||||
|
metadata:
|
||||||
|
node_type: memory
|
||||||
|
type: project
|
||||||
|
originSessionId: 8fb120ee-7b8e-45be-98c0-b5ae9c64d1ec
|
||||||
|
---
|
||||||
|
|
||||||
|
# neuron-tai — Product Selling Points
|
||||||
|
|
||||||
|
## Core pitch
|
||||||
|
Volunteer GPU network for distributed LLM inference. Small GPU owners contribute compute and earn TAI tokens. Clients get inference on models larger than any single machine can serve.
|
||||||
|
|
||||||
|
## Confirmed technical differentiators (verified working)
|
||||||
|
|
||||||
|
### Mixed hardware inference routes
|
||||||
|
The tracker can chain CPU nodes and GPU nodes into a single inference route. Shard A on a CPU node → Shard B on a GPU node → valid streamed response. Each participant in the route only needs to fit *their shard* in memory, not the whole model.
|
||||||
|
|
||||||
|
**Angle for landing page:** "Run a 70B model across three laptops and a gaming PC. Each machine only holds the layers it can fit."
|
||||||
|
|
||||||
|
**Nuance to acknowledge:** PyTorch/HuggingFace `device_map="auto"` already does CPU+GPU mixing on a single machine. Our value-add is doing this *across machines over the network*, democratizing access to models that no single volunteer machine could serve alone.
|
||||||
|
|
||||||
|
### Hardware-aware routing
|
||||||
|
Tracker scores nodes by `benchmark_tokens_per_sec / (queue_depth + 1)` and always routes to the fastest available node per shard range. A GPU node at 11,200 throughput index beats a CPU node at 626 automatically — no user configuration needed.
|
||||||
|
|
||||||
|
### Zero port-forwarding required
|
||||||
|
Nodes connect outbound to the relay via WebSocket. Works from behind NAT, WSL2, 5G, or a home router with no config. The public tracker at ai.neuron.d-popov.com handles discovery.
|
||||||
|
|
||||||
|
### OpenAI-compatible API
|
||||||
|
Any app using the OpenAI Python SDK works by changing only `base_url`. No code changes for the client.
|
||||||
|
|
||||||
|
## Landing page content TODO
|
||||||
|
- User asked to capture these points for the landing page copy (2026-07-01)
|
||||||
|
- No landing page file exists in the repo yet
|
||||||
|
- When writing copy, lead with the "run models bigger than your GPU" angle, then support with mixed-hardware routing, relay, and OpenAI compat
|
||||||
|
|
||||||
|
**How to apply:** When writing product descriptions, pitches, or landing page copy, use these as the primary hooks. The mixed-network inference route (CPU+GPU across machines) is the biggest differentiator vs. single-machine solutions.
|
||||||
31
.claude/memory/project-status.md
Normal file
31
.claude/memory/project-status.md
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
name: project-status
|
||||||
|
description: Current state of neuron-tai development as of 2026-07-01
|
||||||
|
metadata:
|
||||||
|
node_type: memory
|
||||||
|
type: project
|
||||||
|
originSessionId: 8fb120ee-7b8e-45be-98c0-b5ae9c64d1ec
|
||||||
|
---
|
||||||
|
|
||||||
|
# Project Status (2026-07-01)
|
||||||
|
|
||||||
|
29/30 user stories done. US-030 is the only open story, ready for ralph.
|
||||||
|
|
||||||
|
## US-030 — Manual route selection + hop-penalty benchmarking
|
||||||
|
- Status: open / ready
|
||||||
|
- Optional `"route": [node_id, ...]` in POST /v1/chat/completions body
|
||||||
|
- `POST /v1/benchmark/hop-penalty` — privileged (non-empty Authorization header), fans out to 1/2/3-node routes, records per-hop latency
|
||||||
|
- Results appended to `benchmark_results.json` in tracker working dir
|
||||||
|
- `GET /v1/benchmark/results` — also auth-gated
|
||||||
|
- Routing algorithm unchanged — data collection only
|
||||||
|
- Source: `.scratch/distributed-inference-network/issues/30-manual-route-and-hop-benchmark.md`
|
||||||
|
|
||||||
|
**Why:** Need real hop-latency data to eventually optimize route selection beyond synthetic benchmarks.
|
||||||
|
**How to apply:** When asked about next steps, US-030 is the one ready story.
|
||||||
|
|
||||||
|
## Windows CUDA node (working as of 2026-07-01)
|
||||||
|
- miniforge3 base env, torch 2.7.1+cu118, torchvision 0.22.x+cu118
|
||||||
|
- RTX 4060 Laptop GPU, 8 GB VRAM, benchmark index ~11,200
|
||||||
|
- Run: `meshnet-node start --tracker https://ai.neuron.d-popov.com --model Qwen/Qwen2.5-0.5B-Instruct`
|
||||||
|
- Known: tracker registration fails with `http://` — must use `https://`
|
||||||
|
- pynvml deprecation warning is harmless (use nvidia-ml-py to silence it)
|
||||||
15
.claude/memory/user-profile.md
Normal file
15
.claude/memory/user-profile.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
name: user-profile
|
||||||
|
description: Who Dobromir is and how to collaborate effectively
|
||||||
|
metadata:
|
||||||
|
node_type: memory
|
||||||
|
type: user
|
||||||
|
originSessionId: 8fb120ee-7b8e-45be-98c0-b5ae9c64d1ec
|
||||||
|
---
|
||||||
|
|
||||||
|
# Dobromir Popov
|
||||||
|
|
||||||
|
- Building neuron-tai: a distributed LLM inference network with volunteer GPU nodes, tracker, relay, and token rewards
|
||||||
|
- Works across Linux (AMD Ryzen AI Max APU, 124 GB RAM) and Windows 11 (RTX 4060 Laptop GPU, 8 GB VRAM, miniforge3 Python env)
|
||||||
|
- Uses ralph for project management (prd.json + issues in .scratch/)
|
||||||
|
- Iterates quickly — prefers short, direct answers and learns from real output/errors rather than pre-emptive explanations
|
||||||
27
.claude/settings.json
Normal file
27
.claude/settings.json
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"hooks": {
|
||||||
|
"PreToolUse": [
|
||||||
|
{
|
||||||
|
"matcher": ".*",
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "bash -c 'SRC=\"/mnt/d/DEV/workspace/REPOS/git.d-popov.com/neuron-tai/.claude/memory\" && DST=\"/home/dev/.claude/projects/-mnt-d-DEV-workspace-REPOS-git-d-popov-com-neuron-tai/memory\" && mkdir -p \"$DST\" && rsync -a --update \"$SRC/\" \"$DST/\" 2>/dev/null; true'",
|
||||||
|
"runOncePerSession": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"PostToolUse": [
|
||||||
|
{
|
||||||
|
"matcher": "Write|Edit",
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "bash -c 'SRC=\"/mnt/d/DEV/workspace/REPOS/git.d-popov.com/neuron-tai/.claude/memory\" && DST=\"/home/dev/.claude/projects/-mnt-d-DEV-workspace-REPOS-git-d-popov-com-neuron-tai/memory\" && mkdir -p \"$DST\" && rsync -a \"$SRC/\" \"$DST/\" 2>/dev/null; true'"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## Memory
|
||||||
|
|
||||||
|
Persistent memory lives in `.claude/memory/`. Read `MEMORY.md` there at the start of every session for project context, user preferences, and open work. Write updates back to those files so knowledge carries across devices and sessions.
|
||||||
|
|
||||||
## Agent skills
|
## Agent skills
|
||||||
|
|
||||||
### Issue tracker
|
### Issue tracker
|
||||||
|
|||||||
Reference in New Issue
Block a user