Pavilion language-model tests · Measured 28–29 April 2026 · Edited 21 October 2026

How fast can a personal AI setup actually be?

TL;DR

An older gaming laptop can be useful for local AI. The useful question is how long your actual prompt takes to finish, including the software between you and the model. These tests measured that complete request path on Pavilion, an HP laptop with an Intel i7-9750H, a GTX 1050 with 4 GB of VRAM and 16 GB of RAM.

The results below cover Pavilion. They do not establish performance for the Mac, Predator, a CPU VPS or a combined four-machine cluster. They are historical measurements, not a statement about those machines' current configuration.

What we measured

On 28 April 2026, the test sent one greeting and five coding questions to each of sixteen model configurations through Weeyuga's OpenAI-compatible request endpoint. The router selected an inference engine on Pavilion. Qwen3.5 0.8B used llama.cpp; most other entries used Ollama. This therefore compares deployed configurations, including their engines and settings.

The questions asked for a disk-space guard script, an IPv4 validator with tests, a safe nginx reload, a YAML validation plan and SSH lockout diagnosis. Each question ran once per model. The first run recorded 96 calls in total: 81 without a recorded request error and 15 with one. Those totals include the greetings; the table reports only the five coding questions.

The first run: seconds per coding question

Model groupMean time per questionReported output tok/sRequest errorsFormat passesKeyword coverage
Qwen3.5, eight variants from 0.8B to 35B-A3B22–32 s30–410 / 403–4 / 5 per variant72–85%
Qwen2.5 Coder 0.5B / 1.5B10–14 s18–380 / 103 / 5 each82–90%
Qwen2.5 Coder 3B70.5 s3.20 / 53 / 590%
Qwen2.5 Coder 14BAll five timed out at the six-minute limit—5 / 50 / 50%
Qwen3 4B, thinking configuration263 s1.650 / 50 / 50%
Qwen3 8B / 14B, thinking configurations157–353 s, completed calls only—3 / 5 and 4 / 52 / 5 and 1 / 540% and 16%
Qwen2.5 3B28.0 s10.50 / 53 / 590%

“22 seconds” means the average time for one question, not the entire five-question packet. The 35B-A3B entries are mixture-of-experts models; their names do not mean all weights fit into 4 GB of VRAM. Memory placement was not established by these latency figures.

The Qwen3.5 configurations were the most consistently responsive group in this particular first run. That observation is useful for shortlisting a configuration to try. Five questions and one run per question are too little evidence to name a universal best model.

The next run changed the picture

The first run's 0.5B model averaged 10.4022 seconds through the router, compared with 7.99 seconds in a separate 11 April direct-to-Ollama GPU test. That is an observed difference of about 30%. The original article treated it as the router's fixed overhead. The evidence does not support that conclusion.

On 29 April, the test ran a complete greeting-plus-five-question block for each model before moving to the next. Its raw ledger gives these means:

ModelEarlier direct test, 11 AprilRouter run, 28 AprilRouter run, 29 April
Qwen2.5 Coder 0.5B7.99 s10.4022 s8.5332 s
Qwen2.5 Coder 3B13.00 s70.5146 s21.0400 s

The second run's 0.5B result is about 7% above the older direct test, while the 3B result is about 62% above it. Both are much closer than in the first run. Run order, model residency, request settings and device state can affect the difference. We did not vary only the router while keeping everything else fixed.

Model eviction and reloading were a plausible explanation for some of the slowdown. The planned comparison of Ollama and llama.cpp with one resident model stalled on a service-wrapper problem and remained incomplete. Neither run establishes how much latency each router component adds.

Explore the second run or download its complete call ledger. The published first-run viewer uses a partial original ledger; the fuller historical report is linked in the evidence notes below.

What the scores tell us

Keyword coverage is the fraction of expected text markers found in the response. Format passes check a requested output shape. In the older harness, a usable answer simply meant that the response was nonempty. These are inexpensive automated checks; they are not execution tests, expert review or an accuracy score.

For example, the first 0.5B router run had about 82% keyword coverage and three format passes out of five; the earlier direct run had 80% and three out of five. Similar scores on five prompts do not prove that routing preserves correctness. In the second router run, keyword coverage was about 77%, again with three format passes.

Qwen3 4B illustrates another limitation. It completed HTTP requests but spent the output budget on thinking text, yielding no markable final answer on the five questions. The 2,048-token output limit bounded the responses; it did not make them useful. Request success, response usefulness and solution correctness are separate checks.

What this means for a similar laptop

The measured small coding models are reasonable starting points for short, single-user tasks on this hardware. Try the actual request path you intend to use and include the first request as well as later ones. A fast warm response can hide a slow load, and an error-free response can still be wrong.

These runs do not measure long-context reliability, continuous background operation, concurrent users, voice latency or the effect of buying a newer GPU. Adding another computer also does not automatically combine the two GPUs' memory into one model's memory pool.

Evidence and limits

Each configuration had one greeting and five different coding prompts, with one observation per prompt. The configured context was 4,096 tokens, temperature 0.1 and output budget 2,048 tokens; the harness imposed a six-minute request timeout. These runs do not provide repeat-run percentiles.

The first run's primary JSONL stopped after 18 records; the source analysis reconstructed the 96 calls from its stdout log. Some original per-call fields could not be recovered, including prompt-token counts, response lengths and marker lists. The second run captured all 96 call records. Later comparisons should state which ledger they use and preserve errors alongside completed calls.

More findings · All Pavilion benchmarks