KRXY

KRXY · independent research

Intelligence Beyond a Single Machine.

Exploring decentralised AI, distributed learning and collaborative computing across independent edge devices.

commissioned nodes
2
journal entries
12
public experiments
2
Conceptual KRXY network topologyA coordinator routes an inference request from a client to an available edge node that can run the requested model. One node is busy and one is offline. Dashed links are a sketch of learning updates. The journal has measured those updates between two Pis on a small arithmetic model, not across this whole drawing.learning sync · small-model resultclientcoordinatorroutes by capabilitynode A · availablenode B · busynode C · availablenode D · offlinenode E · available
availablebusyofflineConceptual illustration, not live telemetry. Through Part 12 the journal describes three physical nodes.

Research directions

Three questions, at different stages

Getting a model to answer, checking whether the answers are any good, and learning across machines are different problems. Each is labelled with how far the public record actually goes.

Research overview
Stage 01three physical nodes

Making inference work

A request still goes to a node that can run the requested model. A third Pi joined in Part 10. An experimental pool can divide one small model's inference across two Pis. That pool is operator-controlled, not the ordinary chat path.

Stage 02measured, default unchanged

Measuring the answers

Part 5 compared three deployments on one Pi. Part 9 ran the same 24-case hold-out across two Pis for three CPU models. A larger or newer model was not automatically better, and the Hailo deployment stayed the default.

Stage 03measured on a small task

Distributed learning and execution

Two Pis have trained a tiny arithmetic model together, including after a worker rejoined and after an emulated slow or cut link. A trusted coordinator still mixes the updates. This is not training of the hosted Qwen models.

Implemented

Three Raspberry Pi 5 nodes, one with Hailo and two CPU-only. Ordinary chat still admits one job per Pi. An experimental pool can reserve two CPU nodes for one generation, and it is not a public default.

Measured

Two Pis trained a small arithmetic model and a restarted worker could rejoin before the target (Part 7). One Qwen3 1.7B generation was faster across two Pis: 1.61× decode in a command-line comparison and 1.37× through the streamed API (Part 10). Part 9 did not change the default model.

Bounded

The learning result is a tiny arithmetic task with a trusted coordinator, not a language model. Prompt-phase cancellation and an admission-deadlock fix were tested off the fleet and were not deployed on the Pis in Part 12.

Inside KRXY

A closer look at the hardware, software and experiments behind our decentralised AI research.

Explore the Research Gallery

How KRXY works

Architecture, with the boundaries drawn in

Select a component or a step to see what the journal documents about it. This is a reading aid, not a live map.

Architecture notes

Public

Readable by anyone

Private control plane

Not exposed by this website

Edge nodes

Independently operated hardware

Data flow, as documented

Selected component

Coordinator

implemented on three nodes · Parts 4 to 12

Receives jobs and chooses a node that is online and able to run the requested model. Part 6 placed overlapping jobs on two Pis and found an admission race. Part 7 added a bounded retry. Part 10 can reserve two CPU nodes together for one experimental pooled generation. Part 12 found a database deadlock on that path; the lock-order fix was tested off the fleet and was not deployed on the Pis in that entry.

The public website and the private control plane are separate. Nothing on this page is live, and node addresses or credentials are never published.

Recorded milestones

What has actually happened

Each step links to the journal entry that records it. Work dates are shown where the entry gives them.

  1. Part 1plan published

    Plan, before hardware

    The research question, a heterogeneous Raspberry Pi design and a phased roadmap. None of it had been tried on real hardware yet.

    published
    evidence
    Design and roadmap only
    Read Part 1
  2. Part 2demonstrated

    One node commissioned

    A Raspberry Pi 5 with an AI HAT+ 2 booted, kept its identity across a reboot and returned one short prompted answer. No training step was run.

    work
    published
    evidence
    Commissioning notes, one inference reply
    Read Part 2
  3. Part 3implemented

    Identity and heartbeats

    A node agent that identifies itself and reports health, rather than an anonymous machine on a network.

    published
    evidence
    Node agent behaviour described in the journal
    Read Part 3
  4. Part 4implemented

    Model-aware routing begins

    Being online was no longer enough: a node had to be able to run the requested model. The same entry says there was still one physical Pi.

    work
    published
    evidence
    Capability routing on a single node
    Read Part 4
  5. Part 5measured

    Answers measured before choosing a model

    Part 4 got a request to the right model; Part 5 asked whether the answer was any good. A frozen hold-out compared a 3B CPU candidate with two 1.5B deployments. It passed more cases but missed the promotion rule, so the default stayed on Hailo. Still one physical Pi.

    work
    to
    published
    evidence
    Stored evaluations, 23 paired synthetic cases
    Read Part 5
  6. Part 6measured

    Two physical nodes, parallel inference

    A second Raspberry Pi 5 without Hailo joined. Paired Qwen2.5 3B jobs finished in about the wall time of one, roughly twice the batch throughput, but no single answer got faster. Splitting one answer across both Pis failed its validation. No training was run.

    work
    to
    published
    evidence
    36-request 512-token matrix, one session
    Read Part 6
  7. Part 7measured

    Two Pis learned a small model

    A roughly 0.86-million-parameter arithmetic model was trained from random weights. In E0008, two physical Pis reached the learning target after a killed worker rejoined, at 2.42×, 1.95× and 2.22× the one-Pi time across three seeds. A trusted coordinator still mixed the updates. The hosted Qwen models were not trained.

    work
    to
    published
    evidence
    E0008, three seeds, one local network
    Read Part 7
  8. Part 8measured

    Learning survived a slowed link

    The same small model kept a full-budget throughput advantage when the training link was emulated: about 1.7× at 20 Mbit/s and about 1.4× at 5 Mbit/s, and it survived a two-minute cut. The good-link time-to-target gate failed on one seed. Qwen3.5 2B and 4B were installed as experimental CPU runtimes and were not scored yet.

    work
    to
    published
    evidence
    E0009, 15 jobs, emulated link
    Read Part 8
  9. Part 9measured

    Five models, default unchanged

    The same 24-case hold-out ran 72 attempts across two Pis. Qwen3.5 4B passed 14, Qwen3.5 2B passed 11, and the CPU Qwen2.5 1.5B control passed 12. Neither new model became the default. Hailo Qwen2.5 1.5B stayed the default.

    work
    to
    published
    evidence
    Hold-out 24, 72 completed attempts
    Read Part 9
  10. Part 10measured

    Three Pis, one faster small answer

    A third Raspberry Pi joined, with a private Ethernet link for Pi-to-Pi research traffic. Splitting one Qwen3 1.7B generation across two Pis reached 1.61× decode throughput in a command-line comparison and 1.37× through the streamed API. The first platform pool could answer, then failed to drain and to cancel, and was switched off.

    work
    to
    published
    evidence
    E-P01 and E-P02; pool left disabled
    Read Part 10
  11. Part 11measured

    Stop had to be confirmed

    Closing a CPU chat could stop generation. In the checked case the slot was released only after the node confirmed the stop, about 0.31 seconds later. Hailo could not interrupt an accepted job. A stale pool record moved from DRAINING to a verified STOPPED. The pool stayed disabled.

    work
    published
    evidence
    CPU cancellation check; Hailo ran to completion
    Read Part 11
  12. Part 12measured

    Pooled generation can be stopped

    On two Pis, closing a pooled stream stopped native generation at a token boundary. Both boards stayed reserved until cleanup was confirmed, about 0.2–0.4 seconds after cancellation. A drain during a live job reached a verified STOPPED state. A long prompt before the first token still ran for 138 seconds, and one admission deadlocked. Fixes for both were tested off the fleet and were not deployed on the Pis in this entry.

    work
    to
    published
    evidence
    Live cancel and drain on 9 November; later fixes not deployed
    Read Part 12
  13. planned

    The remaining pool fixes on the Pis

    Part 12 leaves prompt-phase cancellation and the database lock-order fix implemented and tested, but not yet validated on the Pis during ordinary pooled chat. The experimental pool is not a public model.

    published
    not yet
    evidence
    No public evidence yet

Research funding

Support KRXY Research

What the research has cost so far and the voluntary support received, kept as separate figures.

Support KRXY Research

Total Research Expenditure

£1,926.82

Running total. No budget has been set, so no percentage is shown.

Research Support Received

£445.00

Running total. No target has been set, so no percentage is shown.

Development journal

Latest from the journal

All articles

10 min readBuilding KRXY

Building KRXY — Part 11: When Stop Must Really Mean Stop

KRXY fixes streaming cancellation, confirms CPU early stop in 0.31 s, and safely reconciles an inference pool from DRAINING to STOPPED on three Raspberry…

Raspberry Pidistributed systemsArtificial Intelligence

Plan, labelled as a plan

Roadmap

  1. Phase 1completed

    One physical node

  2. Phase 2completed

    A job leaves and a result comes back

  3. Phase 3ongoing

    More than one participant

  4. Phase 4ongoing

    Scheduling and recovery

  5. Phase 5ongoing

    Measurement

  6. Phase 6ongoing

    Learning experiments

Full roadmap

Hardware in the record

  • First commissioned nodecommissioned
  • Second node, CPU onlycommissioned
  • Reference node designreference design
Hardware notes

Platform status

No approved public Control Centre contract. This site does not call private platform APIs.

Contact the project