Skip to content

Reference

Models reference

The models a room can run, where their weights come from, how much memory they need and how much context they get.

Pooled ships no weights. Each device downloads only its share of the layers from Hugging Face by range request, or from another device in the room that has them.

Model Quantization File Memory the room needs Context (default / max)
Qwen3 1.7B Q8_0 1.83 GB 4.0 GB 8192 / 16384
Qwen 3.8 27B Q4_0 16.06 GB 17.0 GB 16384 / 65536
Qwen 3.6 35B MoE (35B-A3B) Q4_0 20.84 GB 22.5 GB 32768 / 131072

“Memory the room needs” is the total across all devices. Raise the context with ?ctx=.

  • Qwen3 1.7B. A small dense model, for rooms of phones and light laptops. 28 layers. Its KV cache is f32, about 224 KB per token, so 8k of context is about 1.8 GB. Codex runs on it; Claude Code does not fit, since its prompt alone is about 15k of the 16k.
  • Qwen 3.8 27B. A hybrid: 64 layers, 48 Gated DeltaNet and 16 attention. It has a built-in draft layer (MTP) for speculative decoding. Only the attention layers keep a KV cache, 64 KB per token in f16, so 16k of context is about 1 GB.
  • Qwen 3.6 35B MoE. The same hybrid layout with 40 layers and 256 experts, 8 active per token (about 3B of the 35B), so it decodes several times faster than the 27B. Its KV cache is 20 KB per token in f16, so 32k is about 0.64 GB. This is the model to use for coding agents.
Model Hugging Face file
Qwen3 1.7B Qwen/Qwen3-1.7B-GGUF Qwen3-1.7B-Q8_0.gguf
Qwen 3.8 27B unsloth/Qwen3.8-27B-GGUF Qwen3.8-27B-Q4_0.gguf
Qwen 3.6 35B MoE bartowski/Qwen_Qwen3.6-35B-A3B-GGUF Qwen_Qwen3.6-35B-A3B-Q4_0.gguf
Qwen 3.5 122B MoE bartowski/Qwen_Qwen3.5-122B-A10B-GGUF Qwen_Qwen3.5-122B-A10B-Q4_0-0000{1,2}-of-00002.gguf (two files)

The Qwen3 dense models also fetch config.json and tokenizer.json from the matching Qwen/Qwen3-* repository. The 27B and the MoE read everything from the GGUF.

Setting Tokens
Short 150
Normal 400
Long 1200
With thinking on 1200, shared by the think block and the answer

A prompt must leave at least 32 tokens for the answer. Generation stops before the KV cache would overflow. The Serve API has its own limits: 16384 output tokens by default, capped by the room’s context.

f16 by default. With ?kv=q8 on the host, the 27B and the MoE keep it as int8 (about 56% of the memory); the host sends the choice to every device.

These stay in room/models.js for tests. The picker shows them with ?dev=1.

Model Format Engine Memory Context
Qwen3 0.6B GGUF Q8_0 DenseEngine 0.8 GB 2048
Qwen3 4B GGUF Q8_0 DenseEngine 4.6 GB 2048
SmolLM2 135M safetensors bf16 DenseEngine 0.6 GB 2048
Qwen 3.5 122B MoE (122B-A10B) GGUF Q4_0, two files, 72.52 GB Qwen35Engine 72 GB 32768 / 131072

Qwen3 0.6B is the golden-test model. The 122B MoE has 48 layers and 256 experts, 8 active per token (about 10B of the 122B). Besides ?dev=1, it is in the terminal’s list: pooled pull and pooled host (from @pooled/cli 0.4.0) offer it with what it needs.

On the 35B and the 122B MoE, a pooled host or pooled join device with a discrete GPU can keep some layers’ experts in system RAM when the room’s pledges can’t hold the model (--ram). It copies the experts each token uses into a cache on its GPU. One RTX 5070 (12 GB) runs the 35B alone at about 38-45 tok/s this way, and a Mac Studio (25 GB) with an RTX 5070 PC keeping 42 GB of experts in RAM runs the 122B at about 17 tok/s. Unified memory and browsers don’t do this. See MoE experts in system RAM.

Engine Models
Qwen35Engine Qwen 3.8 27B, Qwen 3.6 35B MoE (qwen35moe), Qwen3.5-122B-A10B
DenseEngine Qwen3 0.6B, 1.7B, 4B, SmolLM2 135M

Both are Pooled’s own WebGPU engines. See Engine and kernels.

Models with the hybrid layout of Qwen 3.5, 3.6 and 3.8 need only entries in room/models.js. See Adding a model.