← Back to home

The lab

I test open models on real work before I trust them. Most coding jobs start on a fast local model, move to a stronger local one if it fails, and reach the cloud only after that. For a board, the lesson is less about any one model than about the habit: no tool is trusted until it passes a plain test on your own work.

How a model is made

Every model in the library passed through some of these eight stages. Select a stage to see how it works, what it trains for and the paper that introduced it.

Fig 1Training pipeline and objectives
BASEPOST-TRAININGCOMPRESSION · ADAPTATIONDEPLOYMENTθ0πθθSBAθmGGUF → llama-server01Pre-training02SFT03Preference04RL · GRPO05Distillation06LoRA07Merging08Quantization
causal maskquery i ↓ key j →Mij = 0 if j ≤ iMij = −∞ otherwisex1x2x3…xttoken + position embedding× Lmasked self-attentionMLPLM head → softmaxpθ(· | x≤t) over Vxt+1loss ℒtokens seen (log), schematicℒ(θ) = − ∑t=1T log pθ(xt+1 | x≤t)Self-supervised: the target is the corpusitself, shifted by one token.x1:T token sequence from the corpuspθ softmax over the vocabulary Vθ every weight, from random initialisationOutput: base model θ0. It continues text,but does not yet follow instructions.MECHANISMOBJECTIVEBrown et al., 2020 · Language Models are Few-Shot Learners⟨user⟩0x10x20…0⟨asst⟩0y11y21…1yn1⟨eos⟩1mtinstruction x · context only− log pθ(yt | x, y<t)One sequence s = [x ; y] in the chat template. The loss mask mtkeeps the gradient on the response tokens only.θ0 base∇θ ℒSFTθSFTfollows the reply formatℒSFT(θ) = − ∑t mt log pθ(st | s<t)The pre-training loss, masked to theresponse: mt = 1 on y, 0 on x.x instruction, with its template tokensy a written reference answermt loss mask per tokenOutput: θSFT. It answers in the shape ofthe examples it was shown.MECHANISMOBJECTIVEWei et al., 2021 · Finetuned Language Models Are Zero-Shot Learnersxyw ✓yl ✗preferredrejectedπθtrainedπreffrozen copy of θSFTσ(z)margin z = β(Δw − Δl)implicit reward r̂(x, y) = β log πθ(y|x) / πref(y|x)DPOℒDPO = − 𝔼 log σ(β [Δw − Δl])Δ = log πθ(y|x) − log πref(y|x)RLHFp(yw ≻ yl) = σ(rφ(x, yw) − rφ(x, yl))A reward model rφ is fit to the pairs, then thepolicy is optimised against it with PPO and aKL penalty to πref. DPO reaches the same optimumfrom the pairs directly, with no reward model.Ouyang et al., 2022 · Training language models to follow instructions…MECHANISMOBJECTIVERafailov et al., 2023 · Direct Preference Optimizationqπθ_oldG = 6 sampled answersverifierriÂio1✓1+1o2✗0−1o3✓1+1o4✓1+1o5✗0−1o6✗0−1unit tests or a known result give ri ∈ {0, 1}; mean(r) = 0.5, std(r) = 0.5Âi = (ri − mean(r)) / std(r)ρi = πθ(oi|q) / πθ_old(oi|q)J(θ) = 𝔼 [ 1/G ∑i min(ρi Âi,clip(ρi, 1−ε, 1+ε) Âi) ]− β 𝔻KL(πθ ‖ πref)Sequence-level form. No value network: thegroup mean is the baseline, so answers aboveit are reinforced and those below suppressed.MECHANISMOBJECTIVEShao et al., 2024 · DeepSeekMath, introducing GRPOteacher, largestudent, smallzTzSpTτ (fill τ = 4, outline τ = 1)pSτ (τ = 4)KL(pTτ ‖ pSτ)= 0.018 nats hereplus CE(y, pS) on thehard label at τ = 1piτ = exp(zi/τ) / ∑j exp(zj/τ)ℒ = (1 − α) CE(y, pS) + α τ2 KL(pTτ ‖ pSτ)A higher τ softens the teacher, so the studentalso learns how the wrong answers rank.τ2 keeps the gradient scale constant in τ.Output: θS. A fraction of the size, keepingmuch of the teacher's behaviour.MECHANISMOBJECTIVEHinton, Vinyals and Dean, 2015 · Distilling the Knowledge…x ∈ ℝkW0 ∈ ℝd×k frozenA ∈ ℝr×kB ∈ ℝd×rr+α/rh ∈ ℝdd = k = 4096, r = 16full ΔW: 16,777,216LoRA r(d + k): 131,072= 0.78 % of one matrixA ~ 𝒩(0, σ2), B = 0so ΔW = 0 at step 0h = W0 x + (α/r) B A xΔW = BA, rank(ΔW) ≤ r ≪ min(d, k)Only A and B receive gradients; W0 staysas released. A fine-tune fits on modesthardware, and the adapter file stays small.Before serving: W' = W0 + (α/r) B AMECHANISMOBJECTIVEHu et al., 2021 · LoRA: Low-Rank Adaptation of LLMsτ1τ2τ3γ+++−++−+τmoutline: trimmed (small) grey: kept dark: sign disagrees with γ, droppedθm = θbase + λ τmtop 5 of 8 kepttoy values, schematicτi = θi − θbase1 Trim keep the top-k % of |τi|2 Elect γ = sgn(∑i τ̂i)3 Merge τmj = mean{ τ̂ij : sgn = γj }Same architecture only. Trimming and the signvote stop one task's update cancelling another.LoRA merge: W = W0 + (α/r) B AMECHANISMOBJECTIVEYadav et al., 2023 · TIES-Mergingweights w, one tensor16 levels of a 4-bit grid, spacing sone blocks32 weights × 4-bit codes q, plus a scale per block7·109 weights14 GBbf16, 16 bits≈ 3.9 GBQ4_K, 4.5 bits per weights = (max w − min w) / (2b − 1)q = round(w / s) + z ∈ {0, …, 2b − 1}ŵ = s (q − z)GPTQminŴ ‖ W X − Ŵ X ‖22Column by column, each rounding error ispushed onto the columns not yet quantized,weighted by H−1, with H = 2 X X⊤.MECHANISMOBJECTIVEFrantar et al., 2022 · GPTQ: Accurate Post-Training Quantization…
Select a stage, or use the arrow keysStage 1 of 8 · Pre-training
  1. Pre-training

    A model lab feeds a very large corpus of text, code and images through the model, which learns to predict the next token. The result is a base model, which can continue text but does not yet follow instructions.

    In the lab I run released base and instruct models on my own hardware and test them; I do not pre-train them. See the model library

    Paper:Language Models are Few-Shot Learners (Brown et al., 2020)

  2. Instruction tuning (SFT)

    The base model is trained on worked examples, such as a question paired with a good answer. It thus learns the shape of a helpful reply.

    Paper:Finetuned Language Models Are Zero-Shot Learners (Wei et al., 2021)

  3. Preference tuning (RLHF, DPO)

    People or a judging model compare two answers and mark the better one. The model is then moved toward the preferred answers, either through a separate reward model (RLHF) or directly from the pairs (DPO).

    In the lab I don't preference-tune models myself. I check what it did to the ones makers release: every release gets the same tasks with known answers, so a change shows up as a score, not an impression. See evaluation

    Paper:Training language models to follow instructions with human feedback (Ouyang et al., 2022)Direct Preference Optimization (Rafailov et al., 2023)

  4. Reinforcement learning with checkable rewards (GRPO)

    The model writes a group of answers to one problem, and a checker, such as a unit test or a known result, scores each of them. Answers above the group average are reinforced, thus the model learns to reason toward results that pass.

    Paper:DeepSeekMath, the paper that introduced GRPO (Shao et al., 2024)

  5. Distillation

    A large teacher model produces outputs, and a smaller student model is trained to match them. The student can keep much of the teacher's behaviour at a fraction of the size.

    Paper:Distilling the Knowledge in a Neural Network (Hinton, Vinyals and Dean, 2015)

  6. LoRA fine-tuning

    The original weights stay frozen. Two small low-rank matrices are trained beside them, so a fine-tune fits on modest hardware and the adapter file stays small.

    In the lab I train LoRA adapters on Qwen3.5 Base models, merge them into bf16 GGUF and serve them with llama.cpp.

    Paper:LoRA: Low-Rank Adaptation of Large Language Models (Hu et al., 2021)

  7. Merging

    Two or more models with the same architecture are combined into one set of weights. A LoRA adapter can also be merged back into its base model, which gives one file to serve.

    In the lab The adapters are merged into bf16 GGUF files before they are served.

    Paper:TIES-Merging: Resolving Interference When Merging Models (Yadav et al., 2023)

  8. Quantization

    The weights are stored with fewer bits, such as 4 instead of 16. The file shrinks and runs on ordinary hardware, at a cost in accuracy that has to be measured on the task.

    In the lab My local models run as GGUF files under llama.cpp, most of them quantised below 16 bits.

    Paper:GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers (Frantar et al., 2022)

Building now

A fast browser agent for testing websites

I am building a local-first agent that drives Playwright to test websites quickly. Most browser agents ask one large model to read the whole page and decide everything, which can be slow and expensive. This one splits the work, thus letting each part do only what it is fast at.

  1. ObserveCode reads the page into a short, numbered table of the controls a person can see.
  2. PlanA planner model writes the next single step, such as filling in the email field, and any text to type.
  3. ChooseA small decision model picks the control and the action from that table. It never writes text.
  4. ActPlaywright clicks, types, selects or scrolls in a visible browser window.
  5. VerifyCode checks what changed, notices when the agent is stuck and climbs a retry ladder.

The pattern follows two rules. Only code can mark a task as done, through a finish gate that checks the page itself. A model can block an action it judges risky, but it can never approve one on its own say-so.

Status: a benchmark of 41 tasks (forms, widgets, dynamic pages, interactions and single-page apps) is built, together with 11 local test pages. The speed changes are in, but this core has not been measured yet, so no numbers appear here.

Model library

Every model I run or follow, grouped by the job it does. Each one says what it is for, where a business would use it, how accurate it is and where that figure comes from, how it was trained, and whether it keeps learning after deployment.

General assistants

Everyday writing, reasoning and chat, kept on my own machines.

  • Gemma 4 26B A4B

    Google DeepMind · 25.2B total, 3.8B active

    Best for Pull fields out of invoices, forms and contracts into structured data

    A fast all-round model that reads text and images and keeps to strict output formats. Only 3.8B of its 25.2B parameters work on each word, so it answers in about a second on ordinary workstation hardware.

    Accuracy

    Extraction test, 24 invoices and forms
    120 of 120 fieldsOur run
    LiveCodeBench v6, 30-task subset
    18 of 30Our run
    MMLU Pro
    82.6%Hugging Face card
    LiveCodeBench v6
    77.1%Hugging Face card

    My LiveCodeBench result is a 30-task subset with my own token limit. The card's figure uses the full set and the maker's settings, so the two are not directly comparable.

    How it was trained Used as releasedLearning after deployment Improves indirectly

    Features, business use, training and learning

    Key features

    • Mixture of experts: 3.8B of 25.2B parameters active per word
    • Reads images as well as text
    • Reasoning mode that can be switched on or off
    • Apache 2.0 licence, so it can run fully on premises

    Where a business would use it

    • Pull fields out of invoices, forms and contracts into structured data. It got every field right on my 24-document test, at a median of 0.89 seconds a document, the fastest of the models I ran.
    • First-line triage in a tiered AI set-up, with harder cases passed up. It is the first rung of my model ladder because it is quick and passed both of my coding checks.
    • High-volume classification and summaries where data must stay inside the company. It runs locally at roughly 87 to 115 tokens a second, with no per-token cloud bill.

    How it was trained

    Google DeepMind built it as a mixture of experts: many small expert blocks, with only a few used for each word. I run a 4-bit build that was trained with that compression in mind, and I have not fine-tuned it.

    Learning after deployment

    No. Its weights never change once released.

  • Qwen3.8-27B

    Alibaba Qwen (compressed build by ISTA-DASLab) · 27B dense

    Best for Data extraction where the answer has to be right every time

    A strong general reasoning and coding model, which I run in a build squeezed to under 12 GB. It scored full marks on my extraction test in all four builds I tried.

    Accuracy

    Extraction test, 24 invoices and forms (all four builds)
    120 of 120 fieldsOur run
    LiveCodeBench v6, 30-task subset (smallest build)
    17 of 30Our run
    Decode speed with the draft model, easy coding task
    38.9 tokens a secondOur run
    LiveCodeBench v6
    90.3Hugging Face card

    My coding result is a 30-task subset with my own token limit. The card's score uses the full set, so the two are not directly comparable.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • Dense 27B model under an Apache 2.0 licence
    • Compressed to 3.5 bits per weight, yet the compression card reports no score loss on three benchmarks
    • Optional draft model that speeds up decoding
    • Four builds compared directly on the same tests

    Where a business would use it

    • Data extraction where the answer has to be right every time. It got all 120 fields right on my golden set in every build, at 11 to 18 seconds a document.
    • Reasoning over long internal documents on one workstation. The compressed build keeps dense 27B quality in under 12 GB.
    • Testing how far a model can be compressed before it loses accuracy. Four builds of one model let a team see the cost of each step on its own tasks.

    How it was trained

    Alibaba trained it as a dense model, where all 27B parameters work on every word. ISTA-DASLab, not me, compressed the smaller build afterwards. I ran four released builds side by side and compared them.

  • Muse-Glimmer 30B

    Meta · 29.6B dense

    Best for Harder reasoning and multi-step planning that must stay on the company network

    A dense reasoning model that reads text and images and is tuned for agent work. It gave my best local coding score, but it is slow because every parameter works on every word.

    Accuracy

    LiveCodeBench v6, 30-task subset
    22 of 30Our run
    Extraction test, 24 invoices and forms
    120 of 120 fieldsOur run
    SWE-Bench Verified
    76.0Hugging Face card
    AIME 2026
    94.7Hugging Face card

    My coding result is a 30-task subset. The card's scores come from different tests, so they are not directly comparable.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • Dense 29.6B model with a built-in vision encoder
    • Distilled from a larger Meta model
    • Best LiveCodeBench subset score of any local model I ran
    • About 27 to 29 tokens a second

    Where a business would use it

    • Harder reasoning and multi-step planning that must stay on the company network. It had the highest coding pass count of any local model I ran, 22 of 30.
    • Reviewing documents or screenshots where images and text are read together. Image input is built in.
    • Overnight or batch analysis where quality matters more than speed. It got every extraction field right, at a median of 32.31 seconds a document.

    How it was trained

    Meta distilled it from a larger model of its own, Muse Spark, which is how a 30B model gets scores usually seen from bigger ones. I run it as released and have not trained it.

  • Gemma 4 E2B

    Google DeepMind · 2.3B effective

    Best for Always-on classification or routing of short messages on a laptop or edge device

    The smallest Gemma 4 model, made for laptops and phones. It is quick and cheap, and clearly weaker than its larger sibling on harder coding and reasoning.

    Accuracy

    LiveCodeBench v6, 30-task subset
    11 of 30Our run
    Hard coding problem, 8 hidden tests
    8 of 8Our run
    Decode speed, hard coding problem
    75.75 tokens a secondOur run
    MMLU Pro
    60.0%Hugging Face card

    On the easy coding problem the latest run returned no code block. My coding result is a 30-task subset, so it is not directly comparable with the card.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • 2.3B effective parameters, so it fits in a few GB of memory
    • Extra per-layer embeddings get more out of few parameters
    • Apache 2.0 licence
    • Text only in my tests

    Where a business would use it

    • Always-on classification or routing of short messages on a laptop or edge device. It is small and fast and needs no network.
    • A cheap pre-screen that decides whether a request needs a bigger model. It is quick enough to run on every request at almost no cost.
    • Offline help for field staff with no connection. It is small enough for a standard work laptop.

    How it was trained

    Google DeepMind built it as a small dense model for devices. I run it as released and have not trained it. Against the 26B sibling it gave up 7 coding tasks of 30 in my run.

  • Qwen3.8-Flash-Next

    Alibaba Qwen (Coder build compressed by ISTA-DASLab) · 125B total, 6B active

    Tested, then dropped It scored lower on my coding test than the models I kept, and it spent a long time thinking before each answer.

    A very large sparse model squeezed into a workstation-sized file. The Coder build prunes half of its experts and compresses the rest hard. I retired it at my October clean-up.

    Accuracy

    LiveCodeBench v6, 30-task subset (Coder build)
    18 of 30Our run
    LiveCodeBench v6, 30-task subset (plain build)
    16 of 30Our run
    Extraction test, 24 invoices and forms
    120 of 120 fieldsOur run
    SWE-bench Verified, Coder build at extra-high reasoning effort (full-precision reference 82.80)
    79.20Hugging Face card

    My coding result is a 30-task subset. The card's SWE-bench figure is a different test, so the two are not directly comparable.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • Sparse mixture of experts: 6B active out of 125B
    • Coder build prunes half of the experts and uses 1.89 bits per original parameter
    • Full marks on my extraction test in both builds
    • Removed from my serving set at the clean-up

    Where a business would use it

    • Large-model coding quality on a single workstation. The compressed Coder build passed 18 of my 30 coding tasks.
    • Testing extreme compression before buying bigger hardware. It shows whether a frontier-size model survives heavy pruning on your own task.
    • Document extraction with a quick turnaround. It got all 120 fields right at about 8 to 10 seconds a document.

    How it was trained

    Alibaba trained the sparse model. ISTA-DASLab made the Coder build by pruning half the experts and quantising the rest. I ran the released builds and did not change the weights.

  • DeepSeek-V4-Flash

    DeepSeek · About 304B total

    Tested, then dropped It ran slowly, and it scored lower on my coding test than Muse-Glimmer 30B and Qwen3-Coder-Next, which do the same job.

    A very large open reasoning and agent model that I squeezed onto local hardware. It passed my hard coding problem but ran slowly, and I retired it at my October clean-up.

    Accuracy

    LiveCodeBench v6, 30-task subset
    16 of 30Our run
    Hard coding problem, 8 hidden tests
    8 of 8Our run
    Terminal Bench 2.1
    82.7Hugging Face card

    The card is for the maker's later 0731 release, not the exact file I ran, and my coding result is a 30-task subset. The two are not directly comparable.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • About 304B parameters under an MIT licence
    • Strong agent and terminal results on its card
    • About 27 tokens a second on local hardware
    • Retired from my serving set

    Where a business would use it

    • Judging whether frontier-scale open weights can run privately. It showed what a model of this size does on one high-memory workstation, at heavy compression.
    • Agentic terminal and automation tasks. The maker reports 82.7 on Terminal Bench 2.1.
    • Policy or contract analysis that needs a long chain of reasoning. Large model, long context, and an MIT licence.

    How it was trained

    DeepSeek released it as a very large mixture of experts. I ran a compressed build as released. Speed and memory, not quality, were the limit.

  • NVIDIA Nemotron 3.5 Lightning 30B-A3B

    NVIDIA · 30B total, 3B active

    Tested, then dropped It was fast, but in my extraction test only 3 of 24 documents came back as usable data. Gemma 4 26B was faster and kept to the format.

    A fast mixture-of-experts model. It was quick at about 92 tokens a second, but it failed my extraction test, so I retired it.

    Accuracy

    Extraction test, 24 invoices and forms
    3 of 24 documents usableOur run
    LiveCodeBench v6, 30-task subset
    15 of 30Our run
    Decode speed, hard coding problem
    92.56 tokens a secondOur run
    MMLU Pro
    81.94Hugging Face card

    My coding result is a 30-task subset, so it is not directly comparable with the card.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • 30B total, 3B active parameters
    • 92.56 tokens a second on the hard coding problem
    • Only 3 of 24 extraction documents came back as usable data
    • Retired at my October clean-up

    Where a business would use it

    • Fast chat-style assistants where strict output formats are not needed. Speed is its strength.
    • Showing why format reliability has to be tested before deployment. It did well on coding and still failed structured extraction, so one benchmark is never enough.
    • Science and knowledge question answering. The maker reports 81.94 on MMLU Pro.

    How it was trained

    NVIDIA built it for throughput. I ran a 4-bit build as released. In my tests the speed came at the cost of reliable structured output.

  • GLM-5.3-Flash

    Z.ai · 320B total, 18B active

    Best for Capacity planning: will frontier-scale open weights fit on workstation hardware

    A very large open model squeezed to about 1 bit per weight to see whether it would fit and run on local hardware. It ran and passed the easy coding problem, but I did not take it further.

    Accuracy

    Easy coding problem, 7 hidden tests
    7 of 7Our run
    Hard coding problem, 8 hidden tests
    no code block returnedOur run
    Decode speed, easy coding problem
    25.96 tokens a secondOur run

    I ran only the two coding problems. There is no LiveCodeBench or extraction run, and the maker's card shows results as images only, so there are no card numbers.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • 320B total, 18B active
    • Extreme 1-bit-class compression
    • About 26 tokens a second
    • Hard coding problem returned no code block

    Where a business would use it

    • Capacity planning: will frontier-scale open weights fit on workstation hardware. One experiment shows the practical floor for memory and speed.
    • Feasibility studies for on-premises large-model deployment. It shows that a 320B model can be loaded locally, with a quality trade-off.
    • Compression research. It is a worst-case data point for how far quantisation can go.

    How it was trained

    Z.ai built it as a very large sparse model. I ran a community build compressed to about 1 bit per weight, as released, to find the limit.

  • Qwen2.5-0.5B-Instruct

    Alibaba Qwen · 0.5B

    Best for Infrastructure smoke tests before committing GPU time

    A tiny chat model that I use as a smoke test. It proved that the inference engine works on a consumer graphics card and that the server returns token probabilities.

    Accuracy

    Decode speed, 8-bit build, 95 tokens
    231.27 tokens a secondOur run

    I never measured its accuracy, because it is a test fixture. The maker's card has no benchmark table.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • 0.5B parameters, 8-bit build
    • All 25 layers on the graphics card
    • Used to confirm probability output before larger jobs

    Where a business would use it

    • Infrastructure smoke tests before committing GPU time. It loads in seconds and exercises the whole stack.
    • Very cheap text classification or formatting on commodity GPUs. It is tiny and fast.
    • A prototype of an on-premises assistant for low-stakes tasks. It runs on a consumer graphics card.

    How it was trained

    Alibaba released it as a small instruction-tuned model. I used it only as a test fixture, chosen for its size and not its quality, and did not train it.

Coding

Models that write and repair code, judged by tests that run.

  • Qwen3-Coder-Next

    Alibaba Qwen · 80B total, 3B active

    Best for First-draft bug fixes and small features in an internal codebase, reviewed by an engineer

    A coding specialist that edits real repositories, calls tools and works through multi-step tasks. Only 3B of its 80B parameters are active per word, so it is fast for what it can do.

    Accuracy

    SWE-bench Verified, sympy subset of 63 tasks
    24 of 63Our run
    LiveCodeBench v6, 30-task subset
    20 of 30Our run
    SWE-bench Verified, 150 tasks, solved before escalation, graded on Modal
    16 of 150Our run
    Decode speed, hard coding problem
    93.8 tokens a secondOur run

    The maker's card shows its results as images only, so there are no card numbers to quote.

    How it was trained Used as releasedLearning after deployment Improves indirectly

    Features, business use, training and learning

    Key features

    • Coding-focused mixture of experts: 80B total, 3B active
    • About 86 to 94 tokens a second on local hardware
    • My default local coding model
    • Passed both of my coding problems in full

    Where a business would use it

    • First-draft bug fixes and small features in an internal codebase, reviewed by an engineer. It is my best local score on repository bug fixing, 24 of 63 SWE-bench tasks, at a speed that suits interactive work.
    • Code review and unit-test generation on code that cannot leave the company. It runs on premises and passed all 15 hidden tests on my two coding problems.
    • Migration and refactoring chores such as API upgrades and renames. It handles tool use and long files well for its size.

    How it was trained

    Alibaba built it as a mixture of experts specialised for coding and tool use. I run it as released.

    Learning after deployment

    No. The model itself does not learn.

  • Devstral Small 2 (24B)

    Mistral AI · 24B dense

    Best for Agentic code exploration across a large repository

    A coding-agent model from Mistral built to explore and edit codebases. In an earlier role test it was the only model that refused a false premise, but it scored below the others on my plain coding checks.

    Accuracy

    LiveCodeBench v6, 30-task subset
    12 of 30Our run
    Easy coding problem, 7 hidden tests
    3 of 7Our run
    Hard coding problem, 8 hidden tests
    8 of 8Our run
    SWE Bench Verified
    68.0%Hugging Face card

    My coding result is a 30-task subset, and the card's SWE-bench score is a different test, so the two are not directly comparable.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • 24B dense model aimed at software-engineering agents
    • Apache 2.0 licence
    • Passed the hard coding problem 8 of 8, but only 3 of 7 on the easy one
    • About 32 to 35 tokens a second on local hardware

    Where a business would use it

    • Agentic code exploration across a large repository. Mistral built it for tool-driven code navigation, so it is useful as a second opinion beside a stronger coder.
    • The back end of an internal coding assistant on one workstation. A 24B dense model fits on a single high-memory workstation or large GPU.
    • Fact-check style tasks where the model must push back on a wrong premise. In one earlier role test it was the only model that refused a false premise. That was a single test, not a benchmark.

    How it was trained

    Mistral trained it as a dense model for agentic coding, not as a general chat model. I run it as released.

Documents and vision

Reading scans, forms, screenshots and images.

  • PaddleOCR-VL 1.6

    Baidu PaddlePaddle · 0.96B

    Best for Digitising scanned invoices, forms and archives

    A small vision-language model that reads scanned pages, tables and formulas and returns the text. At under a billion parameters it is quick enough to run on every page.

    Accuracy

    OCR text similarity to reference, 36 pages
    0.9161 similarityOur run
    Median time per page
    1.5 secondsOur run
    OmniDocBench v1.6, overall score
    96.33%Hugging Face card

    My 36 pages and the card's benchmark are different test sets, so they are not directly comparable.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • About 0.96B parameters
    • Reads text, tables, formulas and charts from page images
    • Median of 1.5 seconds a page on local hardware
    • Runs fully on premises

    Where a business would use it

    • Digitising scanned invoices, forms and archives. It is small enough to run on every page without a cloud OCR bill.
    • A pre-processing step before an extraction model. It turns page images into text so a language model can pull out fields.
    • Regulated document handling where pages cannot leave the network. All inference stays local.

    How it was trained

    Baidu built it as a purpose-built document reader, not a general chat model, which is why it is far smaller than the others. I use it as released.

  • Qwen3-VL 30B-A3B and 4B

    Alibaba Qwen · 30B total, 3B active; 4B dense

    Best for Reading screenshots and screen state for process-automation agents

    A vision-language model that reads screenshots and images and answers questions about them. I use it as the eyes for browser and screen tasks. The 4B build does quick image reading on modest hardware.

    Accuracy

    Not benchmarked yet on my current set-up. The only figure I have came from an engine I no longer use, so I do not quote it. The maker's card shows results as images only.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • Takes images and text together
    • Two sizes: 30B with 3B active, and 4B dense
    • Served locally, with no cloud calls
    • Apache 2.0 licence

    Where a business would use it

    • Reading screenshots and screen state for process-automation agents. Image input lets an agent see the screen.
    • Describing and tagging product or document images. It runs locally, so the images stay on the network.
    • Answering questions about charts and diagrams. It is built for vision-language work.

    How it was trained

    Alibaba added a vision encoder to the Qwen3 language model. I use it as released and have not trained it.

Routing and decisions

Small models that decide where work goes, or whether an answer holds up.

  • JEV-27B-VL (Q8_0 GGUF)

    autotrust (model), Atlas3D (GGUF builds) · 27B

    Best for Sorting and tagging large image or document collections

    A large vision-language decision model. Given an image and a question with fixed options, it picks an option and gives calibrated probabilities. I used it to sort a large image collection into 13 categories in one batch.

    Accuracy

    Image batch, 13 categories
    0 errors in 11,688 imagesOur run
    Batch throughput
    1.30 images a secondOur run
    Agreement with full precision, 8-bit build (309 decisions)
    99.0% (306/309)Hugging Face card
    ERQA, thinking set to medium
    61.5%Hugging Face card

    My image batch was a throughput run, not a labelled accuracy test, so the two sets of numbers measure different things.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • Reads images and picks from fixed options with probabilities
    • The 8-bit build gives the same answer as full precision 99 times in 100
    • Ran a batch of 11,688 images with no errors
    • Apache 2.0 licence

    Where a business would use it

    • Sorting and tagging large image or document collections. My batch put 11,688 images into 13 categories with no errors, at 1.30 images a second.
    • Visual quality control and inspection triage. Options with probabilities suit pass, fail and review thresholds.
    • Moderation of user-uploaded images. Calibrated probabilities let a team set its own review thresholds.

    How it was trained

    It is a LoRA adapter on Qwen3.8-27B, trained on a distilled decision set and merged into GGUF builds by Atlas3D. I used the 8-bit build, which matches full precision 99 times in 100. The 4-bit build matched only about 93 times in 100, so I avoided it. I needed a patched readout in llama.cpp, and I did no training.

  • Winnow-12B

    EldanRing · 12B

    Best for Decision scoring where text and images both matter

    A decision model built on Gemma. Given a state and typed questions with fixed options, it returns calibrated probabilities without writing text. It also takes images.

    Accuracy

    YouTube early-signal test, 300 held-out videos
    0.9501 AUCOur run
    Hacker News outcome test, 300 held-out stories
    0.5532 AUCOur run
    JevBench public subset, 231 items, full precision
    85.28%Hugging Face card
    My clean v9 test set, 1,046 items, full precision
    81.45%Hugging Face card

    The two web-prediction tests are my own. The card's tests are different, so the numbers are not directly comparable. It scores near chance on Hacker News outcomes.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • Gemma 4 12B base with a merged fine-tune, Apache 2.0
    • Also handles ordinary chat and image input
    • Strong on my YouTube early-signal test
    • 247 milliseconds median per answer

    Where a business would use it

    • Decision scoring where text and images both matter. It accepts image input, which most small decision models do not.
    • Calibrated triage with an explicit confidence. It returns a probability for every option.
    • A comparison baseline when choosing a decision model. Public JevBench figures let a team check it against their own data.

    How it was trained

    EldanRing fine-tuned Gemma 4 12B for typed decisions, chat and image input, and the GGUF files hold the merged result. I evaluated the 8-bit build only and did not train it.

  • Quyet 1.0 (Large and Medium)

    Independent release (Hugging Face: chinhnc) · 31.3B Large, 4.66B Medium

    Best for Multilingual intent and ticket triage

    A family of decision models that pick an option per question and return calibrated probabilities. I tested the Large and Medium sizes.

    Accuracy

    YouTube early-signal test, Large
    0.9575 AUCOur run
    YouTube early-signal test, Medium
    0.9191 AUCOur run
    Hacker News outcome test, Large
    0.5885 AUCOur run
    Hacker News outcome test, Medium
    0.5406 AUCOur run

    The maker's card has no benchmark numbers. The YouTube and Hacker News tests are my own.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • Typed questions: choice, score and true or false
    • Large size is a merged LoRA on Gemma 4 31B, Apache 2.0
    • Also tuned for Vietnamese
    • Large and Medium measured on the same tests

    Where a business would use it

    • Multilingual intent and ticket triage. The card states English plus Vietnamese tuning, with other languages at lower accuracy.
    • Calibrated scoring of text for review queues. It returns a probability for every option.
    • Choosing a model size by accuracy and latency. I measured Large at 270 ms and Medium at 287 ms on the same tests.

    How it was trained

    It is Gemma 4 31B with a merged LoRA fine-tune and a letter-readout decision prompt, built for calibration. I evaluated both sizes and did not train either.

  • Decider (2B and 4B v2.1)

    Mapika (Hugging Face) · 2B and 4B

    Best for Routing and classification inside business software

    Small decision models that read a state and typed questions and return a probability over the options in one pass. They are called from software, not chatted with.

    Accuracy

    YouTube early-signal test, 4B v2.1
    0.9624 AUCOur run
    Hacker News outcome test, 4B v2.1
    0.5065 AUCOur run
    Hacker News outcome test, 2B
    0.4698 AUCOur run
    Decision Index 0.3, 4,500-request sample (v2.1 row on the v3 card)
    41.55Hugging Face card

    The Hacker News and YouTube tests are my own. The card's index is a different test, so the numbers are not directly comparable. The 2B result is below chance.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • No generated text
    • Multi-task: classification, routing and scoring
    • Newer v3 adds image input; I tested v2.1
    • Apache 2.0 licence

    Where a business would use it

    • Routing and classification inside business software. It is called like a function and returns a probability.
    • Content scoring from early signals. The 4B v2.1 model reached 0.9624 AUC on my YouTube early-signal test.
    • Low-latency screening of high-volume text. I measured a median of 43.2 ms for the 2B and 86.4 ms for the 4B.

    How it was trained

    Both models are small Qwen3.5 base models trained for typed one-pass decisions. They are generalists, and they did not transfer to my Hacker News test. I evaluated them and did not train them.

  • Plumb-4B

    crh225 (Hugging Face) · 4B

    Best for Multiple-choice decisions with evidence, such as case review and policy lookup

    A 4B decision model that returns a probability for every option from one pass. It was trained on hard decisions written and double-checked by a larger model.

    Accuracy

    Hacker News outcome test, 300 held-out stories
    0.5485 AUCOur run
    JevBench easy, 48 items
    1.000Hugging Face card
    JevBench standard, 72 items
    0.972Hugging Face card
    JevBench hard, 111 items
    0.802 (89/111)Hugging Face card

    My Hacker News test and the card's JevBench are different tests, so they are not directly comparable. It scored close to chance on my test.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • 2 to 16 options per question
    • One pass, no generated tokens
    • A single fitted temperature for calibration
    • Apache 2.0 licence

    Where a business would use it

    • Multiple-choice decisions with evidence, such as case review and policy lookup. It is built for evidence plus options.
    • Quick calibrated triage on commodity GPUs. The card reports about 28 ms median on a consumer card.
    • Hard cases where a base decision model is unsure. Training weighted up the hard and uncertain questions.

    How it was trained

    It is a fine-tune of a base decision model on hard cases written and double-checked by Qwen3.8-27B, with wrong or uncertain questions weighted up. The training set comes from cases a weaker model got wrong. I evaluated it and did not train it.

  • Strands Decider 2B (hobson v21)

    StrandsAgents · 2B

    Best for Intent, sentiment and topic classification for customer messages

    A 2B decision adapter trained on many public classification datasets, such as sentiment, intent, spam, topic and toxicity, to return typed decisions with probabilities.

    Accuracy

    Hacker News outcome test, 300 held-out stories
    0.484 AUCOur run
    JevBench public, 231 items
    0.7619 (176/231)Hugging Face card

    My Hacker News result of 0.484 is below chance, so it did not suit that task. The card's JevBench is a different test, so the numbers are not directly comparable.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • LoRA adapter on Qwen3.5-2B-Base
    • Trained across about 30 public classification datasets
    • Apache 2.0 licence
    • Median of 42.3 ms on my test

    Where a business would use it

    • Intent, sentiment and topic classification for customer messages. Its training data covers these tasks.
    • Spam and abuse screening. The card lists spam and hate-speech datasets in training.
    • A cheap first pass at labelling text. It was quick in my test, at a median of 42.3 ms.

    How it was trained

    It is a LoRA adapter on a Qwen3.5 2B base across many small public tasks: breadth over depth. I evaluated it and did not train it.

  • Laya

    convaiinnovations (Hugging Face)

    Best for Multilingual ticket and email routing

    A multilingual decision model for more than 100 languages. It answers typed questions with calibrated probabilities in a single forward pass.

    Accuracy

    Hacker News outcome test, 300 held-out stories
    0.4786 AUCOur run
    Median time per decision
    16.1 msOur run

    My result of 0.4786 is below chance, so it did not suit that task. The card's benchmarks are chart images only, so there are no card numbers.

    How it was trained Used as releasedLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • Never generates text, so there is nothing to parse
    • Reads up to 8,192 tokens
    • More than 100 languages
    • Fastest model I compared: 16.1 ms median

    Where a business would use it

    • Multilingual ticket and email routing. The card says it covers more than 100 languages.
    • Moderation and guardrail checks. One pass, no text to parse, and very low latency.
    • Scoring and classification at very high volume. It had a median of 16.1 ms in my test.

    How it was trained

    It was trained with reinforcement learning against proper scoring rules, so it is rewarded for being well calibrated rather than only for matching labels. I evaluated it and did not train it.

Video

Understanding what happens in video.

  • VideoJev-4B

    Nanjing University MCG · 4B

    Best for Searching training, meeting or call archives for the moment a topic appears

    A video model that finds the moment in a video matching a question, which is called temporal grounding. It also answers multiple-choice questions about a video, by scoring candidates in one pass instead of writing text.

    Accuracy

    Moment finding on a 43.7-second video, 12 queries (mean overlap)
    68.8 mIoUOur run
    Moments located on the same video (midpoint hits)
    11 of 12Our run
    Multiple-choice questions on the same video
    4 of 4Our run
    Moments located on a 19.4-minute screen recording
    6 of 11Our run

    The maker's card shows its results as images only, so there are no card numbers. Both videos are my own choice of test.

    How it was trained Ported by meLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • Finds the start and end times of a described moment
    • Answers multiple-choice video questions
    • My llama.cpp port matches the PyTorch original to 0.99991 on questions
    • Good on visual events, poor at reading small on-screen text

    Where a business would use it

    • Searching training, meeting or call archives for the moment a topic appears. It returns a time range for a plain-English query.
    • Quality checks on produced video: does the cut show what the script says. On a 43.7-second test video it located 11 of 12 moments and got 4 of 4 questions right.
    • Automatic chaptering of long screen recordings. It found visual events well, though it missed cues that exist only as text.

    How it was trained

    Nanjing University fine-tuned Qwen3.5-4B to score time ranges and answers directly instead of describing the video. I converted it to GGUF, wrote my own llama.cpp scoring driver and checked it against the PyTorch original. I did not train it.

Cloud models

Hosted models I use where a local one is not yet good enough.

  • Claude

    Anthropic

    Best for Final-stage review and decision support on code, policy or documents

    A hosted frontier model that I use for the hardest steps of my work: writing and reviewing code, planning and final decisions. It is the top rung of my local-first ladder.

    Accuracy

    Not benchmarked yet. My tier-labelling run for this tier had an answer-extraction bug, so I do not quote its numbers.

    How it was trained Hosted by the makerLearning after deployment Improves indirectly

    Features, business use, training and learning

    Key features

    • Hosted, with no local weights
    • Top tier of my cascade: local, then Codex, then Claude
    • Cheaper tiers are used for sub-agents; the strongest only for final review
    • Reasoning, coding and long-context work

    Where a business would use it

    • Final-stage review and decision support on code, policy or documents. It has the highest capability, placed at the end of a cheaper pipeline.
    • Complex multi-step engineering and analysis. I use it for the hardest tasks in my tests.
    • Orchestrating cheaper local models. It acts as controller and checker. A local model may fail work but never approves it.

    How it was trained

    Anthropic trains and runs it as a closed hosted service, with no model card published. I use it through a subscription and change nothing about it.

    Learning after deployment

    The model does not learn from my data.

  • Codex

    OpenAI

    Best for Code changes and review that go beyond what a local model can do

    A hosted coding agent that I use as the middle rung of my ladder, between local models and the top tier, and as an independent reviewer of local work.

    Accuracy

    SWE-bench Verified, tasks the local model failed
    58 of 150Our run

    Counted on tasks the local model failed first, graded by the official SWE-bench harness. It is not a pass rate over all 150, and there is no card benchmark.

    How it was trained Hosted by the makerLearning after deployment Improves indirectly

    Features, business use, training and learning

    Key features

    • Hosted coding agent
    • Second rung of my cascade, after the local models
    • Used as an independent reviewer
    • Solved 58 of the 150 SWE-bench Verified tasks after the local model failed them

    Where a business would use it

    • Code changes and review that go beyond what a local model can do. It sits between free local inference and the most expensive tier.
    • An independent second opinion on model-written code. A different vendor catches different mistakes.
    • Automated repository maintenance. It works as an agent with tools.

    How it was trained

    OpenAI trains and runs it as a closed hosted service. I use it as a service and change nothing about it.

    Learning after deployment

    The model does not learn from my data.

Research I follow

New approaches I track before they are ready to run.

  • TRM (Tiny Recursion Model)

    Samsung SAIL Montreal · 7M

    Best for Embedded reasoning on very small devices

    A 7-million-parameter network that solves puzzles by refining its own answer in loops, instead of writing a long chain of thought. I follow it as research and have not run it.

    Accuracy

    ARC-AGI-1, test accuracy
    45%Paper
    ARC-AGI-2, test accuracy
    8%Paper

    These are the paper's own numbers. I have not reproduced them.

    How it was trained Not runLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • 7M parameters in a single 2-layer network
    • Refines a hidden answer in repeated loops
    • Strong reported puzzle scores for its size (see accuracy)
    • A puzzle solver, not a language model

    Where a business would use it

    • Embedded reasoning on very small devices. Seven million parameters fit almost anywhere.
    • Puzzle and constraint-solving research, such as scheduling and Sudoku-like logic. The paper's results are on Sudoku, mazes and ARC puzzles.
    • Understanding the cost floor of reasoning. It is a counterpoint to scale-first strategies.

    How it was trained

    The authors trained it from scratch on small puzzle sets, using recursive reasoning with supervision at each loop. That is very different from a large language model, which learns from huge text collections and writes its reasoning out. I have only read the paper and have not run it.

  • NanoJev

    C-Tianyu (Hugging Face) · 0.6B

    Best for Real-time control decisions on tiny hardware

    A 0.6B decision model for games and navigation, such as Maze, Snake and ViZDoom. I follow it as research and have not run it.

    Accuracy

    Matched test: Maze
    4/10Hugging Face card
    Matched test: Snake
    8/8Hugging Face card
    Matched test: Basic
    128/128Hugging Face card
    Matched test: Predict Position
    27/128Hugging Face card

    These are the maker's numbers from the card. I have not reproduced them.

    How it was trained Not runLearning after deployment Fixed after release

    Features, business use, training and learning

    Key features

    • 0.6B parameters, built on Qwen3-0.6B
    • Decides game moves by scoring the options
    • Mixed results across its own test games
    • The smallest Jev-style model I know of

    Where a business would use it

    • Real-time control decisions on tiny hardware. It is very small and quick.
    • Simulation and training environments. It is built for game-like state.
    • Research on how small a decision model can be. The mixed results show where the limit is.

    How it was trained

    It is a fine-tune of Qwen3-0.6B for game decisions. I have only read the model card and have not run it.

Training runs

Training and fine-tuning

I also fine-tune my own Kev checkpoints, following Jared Palmer's open-source recipe on an open base model.

On the radar

I follow NanoJev and Tiny Recursion Model research. Small models and open training pipelines worth watching when choosing what to test.

NanoJev

A nano replica of Jev: parallel decisions, dynamic candidates, and an end-to-end training pipeline. MIT licence.

Its open pipeline makes the route from training to a running small model inspectable.

View the code

Tiny Recursion Model (TRM)

Tiny Recursion Model (TRM) is a 7-million-parameter model described in ‘Less is More: Recursive Reasoning with Tiny Networks’ by Alexia Jolicoeur-Martineau (arXiv 2510.04871).

Its small size makes the paper and code useful when weighing how much model a task needs.

Read the paperView the code

Evaluation

Test suites

  • Extraction golden setField-by-field accuracy and time per document on 24 documents with 120 fields.
  • Held-out model benchmarksDiscrimination (AUC), calibration (Brier score), accuracy and latency of fine-tuned models on data they have not seen.
  • LiveCodeBench v6How many of 30 coding tasks a model solves, used to compare quantisations of the same model.
  • Serving speedPrefill and decode speed reported separately, with the llama.cpp build, quantisation and hardware beside each figure.
  • SWE-bench Verified (sympy subset)Whether a model can resolve real software issues, run through a native harness without containers. The harness itself passes 63 of 67 gold patches.
  • Video quality gatesWhether generated videos pass rule checks and human verdicts before they count as finished.

Harnesses

A harness is the code that runs a model on a task and checks the answer. These are the harnesses I have used or studied.

Run and scored

  • Native SWE-bench replay harnessRuns a SWE-bench Verified sympy subset through a native harness that validates 63 of 67 gold patches. On the SWE-bench Verified sympy subset, Qwen3-Coder-Next Q4_K_M under llama.cpp on local hardware resolved 24 of 63 tasks (native replay harness).
  • Official SWE-bench harness, own hardwareThe official SWE-bench harness, run in Docker on my own hardware, resolved all 5 gold patches across 5 repositories.
  • Official SWE-bench harness, Modal cloudOn Modal cloud sandboxes, the same official harness resolved 2 of 2 gold patches, then 10 of 10 across 6 repositories, for under 4 US cents of metered compute.
  • 150-task local-versus-cloud runAcross 150 SWE-bench Verified tasks graded by the official harness on Modal, Qwen3-Coder-Next under llama.cpp resolved 16. Codex resolved 58 that the local model missed. Neither resolved the other 76.
  • Studio evaluation harnessMy own evaluation harness has 24 modules, including contract, groundedness, provenance, plausibility and sandbox checks.

Studied, not yet scored

I have studied these agent harnesses in my studio. None has yet been scored against the others.

  • ThinHarnessA compact agent harness built only on a model SDK, with minimal framework code.Repository
  • prime-agentA self-improving coding agent from Prime Intellect for long-running autonomous tasks.Repository
  • PaperclipAn open-source app for managing AI agents at work.Repository
  • ARC-AGI-3 agents baselineExperiments with game-general coding agents for ARC-AGI-3.Repository
  • TychoAn ARC-AGI-3 solver built on rendered deterministic Moore machines.Repository
  • RetrodictAn agent for the ARC-AGI-3 interactive game benchmark.Repository
  • DeepSeek HarnessDeepSeek's open-source agent harness, in which everything is a plugin.Repository
  • Hermes AgentNous Research's open-source agent, which I have set up and run on my own hardware.Repository

Benchmark results

Measured in my studio

  • Decode speed (3 prompts, temperature 0, llama.cpp d454a20, local workstation)

    26.2 tok/s

    Model
    Qwen3.8-27B
    Engine
    llama.cpp
    Quant
    IQ3_S

    Measured in my studio

  • Decode speed (3 prompts, temperature 0, llama.cpp d454a20, local workstation)

    38.9 tok/s

    Model
    Qwen3.8-27B
    Engine
    llama.cpp
    Quant
    Q4_K_M + MTP Q4_0 sidecar

    Measured in my studio

  • Decode speed (3 prompts, temperature 0, llama.cpp d454a20, local workstation)

    25.9 tok/s

    Model
    Qwen3.8-27B
    Engine
    llama.cpp
    Quant
    Q4_K_M (older build)

    Measured in my studio

  • LiveCodeBench v6, tasks solved (30 tasks, llama.cpp, local workstation)

    17 of 30 tasks

    Model
    Qwen3.8-27B
    Engine
    llama.cpp
    Quant
    IQ3_S

    Measured in my studio

  • LiveCodeBench v6, tasks solved (30 tasks, llama.cpp, local workstation)

    16 of 30 tasks

    Model
    Qwen3.8-27B
    Engine
    llama.cpp
    Quant
    Q4_K_M + MTP Q4_0 sidecar

    Measured in my studio

  • LiveCodeBench v6, tasks solved (30 tasks, llama.cpp, local workstation)

    15 of 30 tasks

    Model
    Qwen3.8-27B
    Engine
    llama.cpp
    Quant
    Q4_K_M (older build)

    Measured in my studio

  • Video grounding, mean IoU (43.7 s clip, llama.cpp Metal, local workstation)

    68.8 mIoU

    Model
    VideoJev-4B
    Engine
    llama.cpp
    Quant
    bf16 GGUF + f32 mmproj

    Measured in my studio

  • Extraction golden set, fields correct (24 documents, llama.cpp 0.6.0, local workstation)

    120 of 120 fields

    Model
    qwen3.8-flash-next-coder
    Engine
    llama.cpp
    Quant
    IQ1_M

    Measured in my studio

  • Extraction golden set, median time per document (24 documents, llama.cpp 0.6.0, local workstation)

    9.84 s

    Model
    qwen3.8-flash-next-coder
    Engine
    llama.cpp
    Quant
    IQ1_M

    Measured in my studio

  • Decode speed smoke test (95 tokens, llama.cpp b11429, CUDA 12.4, own hardware)

    231.27 tok/s

    Model
    Qwen2.5-0.5B-Instruct
    Engine
    llama.cpp
    Quant
    Q8_0

    Measured in my studio

  • SWE-bench Verified, sympy subset, tasks resolved (llama.cpp, local workstation, native replay harness)

    24 of 63 tasks

    Model
    Qwen3-Coder-Next
    Engine
    llama.cpp
    Quant
    Q4_K_M

    Measured in my studio

Repos

The open-source projects I run, build on or follow. For each: the business case, the feature that matters, what I tested and what it measured.

  • Inference engine

    llama.cpp

    Tested

    Runs large language models on ordinary hardware, from laptops to servers, in plain C and C++. Models ship as single GGUF files and are served over an OpenAI-compatible web API.

    Key feature One light engine that runs compressed models on Apple Silicon, NVIDIA and plain CPU, with no Python stack.

    Business scenarios

    • Keep sensitive documents on premises by serving a model inside the company network instead of calling a cloud API.
    • Cut the per-token cost of high-volume work such as extraction, classification and triage.
    • Give each team a private assistant on existing workstations without buying GPU clusters.

    What I tested

    I use it as my only local inference engine, and every local model I run is a GGUF under it. I built it from source and used it to benchmark DeepSeek V4 Flash, Qwen3.8-27B with a draft model, and a 24-document extraction test.

    DeepSeek V4 Flash decode speed
    33.49 +/- 0.31 tokens a second
    DeepSeek V4 Flash prompt speed
    599.48 tokens a second
    Qwen3.8-27B decode speed, with and without the draft model
    38.9 tok/s vs 21.9 tok/s
    Field extraction, Qwen3.8-Flash-Next Coder build
    120 of 120 fields, 24 of 24 documents
  • Benchmark harness

    SWE-bench

    Tested

    A benchmark and official grading harness for coding agents. It is built from real GitHub issues and runs in Docker.

    Key feature Official, repeatable grading of whether an agent's patch really fixes a real issue.

    Business scenarios

    • Compare coding assistants on real defects before buying seats.
    • Decide which tasks can go to a cheap model and which need an expensive one.
    • Regression-test an internal coding agent after each change.

    What I tested

    I set up the official harness two ways, locally in Docker and on a cloud runner, and proved each with gold patches. Then I used it to grade a run that sent 150 SWE-bench Verified tasks first to a local model and then to Codex. That run is a tiering experiment, not a leaderboard score.

    Gold-patch check, local Docker harness
    5 of 5 resolved (5 repos), 379 s wall
    Gold-patch check, cloud harness
    10 of 10 resolved across 6 repos (122.47 s, $0.0382 metered)
    Local model, SWE-bench Verified subset
    16 of 150
    Codex, tasks the local model missed
    58 of 150
  • Decision models

    winnow-inference

    Tested

    Serves the Winnow-12B model through llama.cpp for typed decisions such as yes or no, choice and score, as well as chat and vision.

    Key feature Typed decision output with calibrated probabilities from a local 12B model.

    Business scenarios

    • Route and prioritise support tickets, leads or documents with a score and a confidence.
    • Screen content against policy and escalate only the uncertain cases.
    • Forecasting-style questions where a calibrated probability helps more than a text answer.

    What I tested

    I served Winnow-12B at 8-bit under llama.cpp through its server and scored it on five decision sets. It is strong on the short-form set and close to chance on social-media popularity.

    Winnow set
    accuracy 0.9231, AUC 0.9811, median 226.1 ms per call
    Hacker News set
    accuracy 0.5767, AUC 0.5532
    YouTube text set
    accuracy 0.59, AUC 0.7574
    YouTube early-signal set
    accuracy 0.5733
  • Coding agent

    Codex

    Tested

    OpenAI's terminal coding agent. It reads a repository, edits files and runs commands from a prompt.

    Key feature A scriptable coding agent that fits into build pipelines.

    Business scenarios

    • Offload well-specified implementation tickets to an agent and review the diff.
    • Use it as the escalation tier behind a cheaper model for hard tasks.
    • Get an independent second-opinion code review.

    What I tested

    I use it daily for implementation work, and it is the second tier of my SWE-bench ladder after the local model.

    Tasks solved after the local model failed, SWE-bench Verified subset
    58 of 150
  • Agent memory

    claude-mem

    Tested

    Records what a coding agent does, summarises it with a small model and feeds the relevant history back into later sessions.

    Key feature Persistent, searchable memory across agent sessions.

    Business scenarios

    • Keep engineering knowledge when staff change, because agents remember earlier decisions.
    • Shorten onboarding to a codebase by letting the agent recall earlier work.
    • Keep an auditable log of what an AI agent did and why.

    What I tested

    I use it every day. I moved my earlier file-based memory into it, run a small Haiku model as its observer and tuned the context it injects. I also built a memory provider for Hermes that passed a write, search and delete smoke test.

    Observations stored (a usage count, not a performance score)
    17,981
  • Agent framework

    Hermes Agent

    Tested

    A self-hosted agent that keeps skills and memory across sessions and can run tools, browsers and sub-agents.

    Key feature An agent that builds up reusable skills and persistent memory over time.

    Business scenarios

    • Automate recurring back-office research and reporting inside a controlled sandbox.
    • Give each department a specialist agent with its own tools and permissions.
    • Run agents entirely on local models for privacy-bound work.

    What I tested

    I installed it with a Docker sandbox that has no network, and a containment test blocked every attempt to get out. I set up seven specialist profiles on a shared web-tools server, linked 78 shared skills and built a claude-mem memory provider for it.

    Specialist profiles finding the web-tools server
    7 of 7 passed (2 tools discovered each)
  • Image generation

    stable-diffusion.cpp

    Tested

    Runs diffusion models for image and video generation in plain C and C++ with no Python runtime. It supports compressed GGUF models and a small web server.

    Key feature Image and video generation from a single native program on Apple Silicon, NVIDIA or CPU.

    Business scenarios

    • Generate product and marketing imagery inside the company network so source assets never leave it.
    • Produce draft visuals for design review without a per-image cloud fee.
    • Build image generation into internal tools through a local server.

    What I tested

    I built the command-line tool and the server and ran the Z-Image model locally. I also set up the Wan2.2 video models.

    Z-Image generation time per image
    71 s and 75 s
  • Image and video generation

    ComfyUI

    Tested

    A node-graph interface, API and back end for building and running diffusion image and video workflows.

    Key feature Reusable, scriptable generation workflows built as a graph of nodes.

    Business scenarios

    • Build repeatable creative pipelines that marketing teams can re-run with new inputs.
    • Generate image and video drafts on owned hardware.
    • Expose generation to internal tools through the API.

    What I tested

    I installed it locally and ran a MiniMax H3 video workflow. This is a single run.

    MiniMax H3 video render time
    10 min 16 s total (9 min 37 s sampling at 32.3 s/step)
  • Coding agent

    Qwen Code

    Tested

    An open-source coding agent for the terminal that reads, edits and runs code with the model you choose.

    Key feature A terminal coding agent that can be pointed at a locally hosted model.

    Business scenarios

    • Help developers on code that must not leave the company network.
    • Run an automated first-pass review on pull requests.
    • Do bulk refactors and test generation with a local model.

    What I tested

    I could not build it from source, so I installed the released npm package and smoke-tested it against a local coding model. It later produced a structured review with five defects on a code diff.

    First-call latency, smoke test
    41 s
  • Coding agent

    mini-swe-agent

    Tested

    A very small agent that solves software tasks using only a shell.

    Key feature A coding agent in about a hundred lines that is easy to audit.

    Business scenarios

    • A transparent baseline for benchmarking coding models.
    • A simple agent whose behaviour a security team can review.

    What I tested

    I installed it and ran a one-task smoke test and a small sweep. All of it ran on an engine I have since retired, so I report no scores from it.

  • Coding agent

    OpenHands

    Tested

    An open-source software-engineering agent platform with a Python SDK for running agents in a sandbox.

    Key feature An SDK for running a software agent with tools in an isolated workspace.

    Business scenarios

    • Prototype an internal software-engineering agent.
    • Run agents in sandboxes so they cannot touch production systems.

    What I tested

    I wrapped its SDK in my own runner and ran end-to-end smoke tests, with and without tools. There is no scored result yet.

  • Agent orchestration

    Agent Council

    Tested

    Convenes a panel of command-line AI agents to deliberate on a question in several stages and then writes a verdict.

    Key feature Multi-agent deliberation, with independent answers followed by a synthesis.

    Business scenarios

    • Second-opinion review of architecture and code changes.
    • Reduce single-model blind spots on high-impact decisions.

    What I tested

    I installed it and use it for review. I fixed some latency and correctness defects locally and added a local Qwen model as a council member. Nothing has been sent upstream.

  • Agent orchestration

    cortextOS

    Tested

    A framework that runs several AI coding agents in the background as a coordinated team.

    Key feature A headless multi-agent daemon with Telegram-based control.

    Business scenarios

    • Run unattended agent jobs on a schedule.
    • Monitor and steer agents from a chat app.

    What I tested

    I found that headless agents were blocked by a permissions prompt in a newer Claude Code release, wrote a fix, and checked it on that release with Node 22. I also made the Telegram step optional during set-up.

  • Agent orchestration

    Paperclip

    Built, not yet scored

    An app for managing a team of AI agents with roles, goals and budgets, like an org chart for agents.

    Key feature Agents organised as a company, with roles and task tracking.

    Business scenarios

    • Coordinate several agents on one project with a visible task board.
    • Track which agent did what and how much it cost.

    What I tested

    I installed and built it and created an instance. I also read its code while investigating a stray background process. I have no scored result.

  • Agent harness

    prime-agent

    Built, not yet scored

    A self-improving agent for coding and long-running tasks, built around a recursive language model.

    Key feature An agent that revises its own approach on long tasks.

    Business scenarios

    • Study long-horizon agent design for engineering automation.
    • Use it as a reference design for agents that must run for hours.

    What I tested

    I cloned, installed and built it, and read its code while investigating a stray background process. I have not scored it.

  • Agent harness

    Tycho

    Tested

    An ARC-AGI-3 solver that builds a deterministic state-machine model of each game and plans against it.

    Key feature Rendered Deterministic Moore Machines used as a learnable world model.

    Business scenarios

    • Check whether a published research agent holds up on a task it was not tuned for.
    • Stress-test long-horizon planning agents before trusting them with process automation.

    What I tested

    I ran it myself with a local model on ten games in an earlier set-up. That run used an engine I have since retired, so I do not report its score, and it needs rerunning on my current stack.

  • Speech synthesis

    omnivoice.cpp

    Built, not yet scored

    A C++17 port of OmniVoice that runs text-to-speech with voice cloning locally, covering about 646 languages.

    Key feature Local multilingual text-to-speech with voice cloning and no cloud dependency.

    Business scenarios

    • Produce multilingual voice-overs for training and onboarding material without sending scripts to a vendor.
    • Add spoken output to internal tools and phone-menu prototypes.
    • Generate localisation audio for many markets from one model.

    What I tested

    I built the speech and codec programs and downloaded the 8-bit models. I have not made a timed run or a quality test yet.

  • Inference engine

    colibri

    Tested

    Runs very large mixture-of-experts models on a single machine in pure C by streaming the active experts from disk.

    Key feature Disk-streamed experts let a 744B-parameter model run on one laptop, slowly.

    Business scenarios

    • Judge whether a frontier-size open model is feasible on owned hardware before buying infrastructure.
    • Run offline, privacy-bound analysis where an hours-long answer is acceptable.

    What I tested

    I built it with Metal support, its tests passed, and I ran GLM-5.2 744B at 4-bit on local hardware. It was far too slow for real work, so I deleted the 429 GB model. These are single runs.

    GLM-5.2 744B decode speed
    under 0.5 tokens a second
    Time to solve one coding problem: GLM-5.2 on colibri vs DeepSeek V4 Flash on llama.cpp
    63 min vs 37 s

Followed, not yet tested

  • AirLLMInference engineRuns very large language models on a single small GPU by loading one layer at a time from disk.
  • kimi-k3-in-cInference engineA portable C99 implementation that runs the 2.78T-parameter Kimi K3 on a CPU in about 8 GB of RAM by streaming weights.
  • thinharnessAgent harnessA compact, SDK-only harness for building coding agents.
  • RetrodictAgent harnessAn agent built for ARC-AGI-3 reasoning games.
  • arc-3-agents-baseline1Agent harnessA baseline agent for the ARC-AGI-3 interactive reasoning benchmark.
  • deepseek-harnessAgent harnessA plugin-based agent harness from DeepSeek in which everything is a plugin.