Layer2C Labs

What's ready, what's not, where the boundary lives.

Hands-on technical validation across the 4+1 AI Infrastructure framework. A lab takes a slice of the stack, a single layer, a combination, or the whole model, builds it for real, and renders a verdict on where authority actually sits, scored against the 4+1 model and DAPM.

Part of the Layer2C research system · System map
Canon
Layer2C
Assesses where vendor authority sits across the 4+1 stack.
Readiness
Fourth Cloud
Assesses on-prem control-plane readiness, FC-0 to FC-4.
Validation
Layer2C Labs
Validates where authority actually holds, on real hardware.
Application
StackBuilder
Composes architectures from the assessed evidence.

Start with a question

Each lab answers one slice. These are the questions they answer together, with the labs in reading order.

Does an agent need a frontier model to finish the work?

On bug-fix repair with an executable test, the deterministic validator decides when the work is done.

Read the verdict

On bug-fix repair with an executable test, the deterministic validator decides when the work is done. The loop doesn't, and neither does the model tier. How much a repair loop helps depends on what it feeds back. In Lab 003, a stateless local loop gained nothing, and the band of tasks where any repair loop could help was about 5%. In Lab 011, a local loop with stateful test feedback recovered 14 of the 22 tasks the local model first missed, out of 70. Within that one constrained harness, a frontier model in the controller seat recovered no task the free loop didn't. In the worker seat it lifted recovery from 14 to 20 of the 22. On those same 22 tasks, the cheapest way to finish all of them was gpt-5.4-mini, a mini-class hosted model, in an agentic harness, at $3.14. If you own the hardware, a 30B coder model on one box cleared 18 of 22, and the bill is wall clock: 11.4 hours against 40 minutes hosted. Lab 013 read the gap to a 31B general model, 11 of 22 on a rented L40S because the 31B timed out on the Spark, as training for tools rather than size. Lab 018 then found the tool-call parser had been dropping Gemma's tool calls, and with the right parser Gemma 4 26B scored 15 of 22. Lab 022 later ran the untuned 31B through the full pool on a Mac Studio, and it scored 15 of 22 too. So that reading is reopened, not settled. On the one from-scratch API task in Lab 016, the approach each run took predicted its score in every arm measured. Most rungs ran once, and the test of whether the approach causes the score hasn't run.

  1. Lab 003The validator determines done, not the loop
  2. Lab 009Recovered capacity is real, and it fails honest
  3. Lab 011Buy the labor, not the judgment
  4. Lab 012Buy the harness, not the tier
  5. Lab 013The floor is trained, not sized
  6. Lab 016They can all write it. Not all of them take direction.

Which owned box should run the model?

On Apple silicon, unified memory decides which model can run an agentic coding harness, and the model decides the score.

Read the verdict

On Apple silicon, unified memory decides which model can run an agentic coding harness, and the model decides the score. One 256 GB M5 Ultra Studio served the 156 GiB checkpoint that took two clustered Sparks, cleared the same 22 of 22, and costs less at US list price as tested: $12,299 against $13,900 for the pair, before the cable, with half the storage. It took about twice as long per agentic turn with two sessions sharing it. The venues differ in hardware, serving software and speculative decoding together, so that speed comparison is directional. On the 11 tasks a single Spark ran, a dense 31B solved 5 on the Spark and 6 on the Studio, at a median 61 minutes per task against 12.8. Runtime and file format differed too, so that ratio isn't bandwidth alone. The parity holds only under a two-hour ceiling: under 60 minutes the Spark would have kept 3 of its 5 solves, and under 40 minutes none. Bandwidth set how fast the work went, and a tighter deadline turns that speed into the score. For a lab, the bigger cost is how long the serving software takes to support a new model.

  1. Lab 014The second box works. The playbook doesn’t.
  2. Lab 020For a lab, the software lag is the cost.
  3. Lab 021Memory decides which model can do the work.
  4. Lab 022Memory bandwidth sets how fast a 31B dense model works, not how well.

Can you get off the GPU you can't get?

Every lane off NVIDIA opened, and each one charged a different toll.

Read the verdict

Every lane off NVIDIA opened, and each one charged a different toll. On the 32-vCPU C4 shape this project could reach, zero of 22 Xeon configurations met the interactive latency bar for a mid-size mixture-of-experts (MoE) model, so for that model the CPU is a batch lane. Renting a v5e TPU was fast, but Trillium (v6e) had no capacity in any of three zones, and serving a bring-your-own model on v5e meant adopting Google's stack or quantizing off-box. On AMD, Lab 002's mainstream fine-tune and serving recipe ran with zero code changes. Lab 017 didn't retest newer architectures or exotic quantization. What gated that path was who would sell the silicon at all, and whether the acceptance gate measured what it claimed. Thread 5 is the other side of this: on Apple silicon, the dense 31B tune needed platform work before it ran.

  1. Lab 007The CPU exit is a batch lane, not a serving lane
  2. Lab 008Renting the chip was the easy part
  3. Lab 017Beyond CUDA: the lock was never the silicon

Should you fine-tune?

Own the weights once you need a custom model, and check whether the managed service lets you.

Read the verdict

Own the weights once you need a custom model, and check whether the managed service lets you. In Lab 002, Bedrock's native fine-tune couldn't export them. In Lab 024, CoreWeave Forge's adapter downloaded as a standard file. Fine-tuning is still the narrowest door to self-hosting. On judgment work, it captured voice and not judgment, and one paragraph of standing positions in the system prompt beat two training rounds. Lab 018 turned that into a decision procedure: five conditions, and code repair meets two. The measured gain came on a narrow job. In Lab 024's clinic booking workflow, a small tune of the model that reads patient replies cut consent misreads from 13 to 0 or 1 of 496 where the model's "yes" counted. Where code decides consent, the design that ships, it cut avoidable hand-offs from 16 to 4 of 955 at a fifth of the tokens. Against the fair six-example prompt it sent more patients to staff overall, and which design serves patients better is unmeasured. That's a narrow measured gain, not proof the tune is the better design.

  1. Lab 002Own the weights, or the platform owns you
  2. Lab 006Put the judgment in the constraints, not the weights
  3. Lab 018You can’t price the task without pricing the fine-tune.
  4. Lab 024Fine-tune the interpreter, then find out what it does to the queue.
  5. Lab 030Examples aren’t portable. Validate them per model.

Where do you train it?

Pick the model first.

Read the verdict

Pick the model first. It picks the training hardware, and it can rule out the managed service. On Lab 024's MoE tune, the Mac Studio trained about 6x faster than a DGX Spark, and the rank-16 adapters from both passed the same bar. Lab 026 set no equivalence margin, and a narrower rank-1 recipe failed twice on the Mac where the Spark's passed. On the dense 31B, the Studio trained 3.8x faster, but only after I rewrote attention in the model code, and the adapters from both boxes scored 11 to 14 of 22 on Lab 018's coding loop on either box, one run per arm, inside the range Lab 018 called noise. Lab 028 replaced that rewrite with a patch to MLX's attention backward pass. It trained 15% faster at the same held-out loss, in one run each. The coding loop wasn't rerun, and no MLX maintainer has reviewed the patch. The Spark didn't take the job as shipped either: it trained only on an older, pinned transformers release. Software differed along with the hardware in both labs, so neither ratio is silicon alone. CoreWeave Forge's self-serve list doesn't include the dense 31B at all. Off NVIDIA, the speed was real and the platform work was mine.

  1. Lab 026On this fine-tune, the Mac Studio trained six times faster than a DGX Spark, and both adapters passed.
  2. Lab 027Pick the model first. It picks the training hardware, and it can rule out the managed service.
  3. Lab 028Off NVIDIA, you fix the platform yourself

What do you have to define before you hand work to an AI?

You can hand off the work, but not the definition of correct.

Read the verdict

You can hand off the work, but not the definition of correct. Lab 004 covered intake and control-plane construction on one estate. No migration ran. A frontier model held wherever the patterns and done-criteria were owned and encoded as gates that could refuse to proceed, and failed where it became the author of correctness. In Lab 010, two AI agents shipped one browser game across a file-based seam. The contract between them was fully delegable. The verdict on whether it was done wasn't: the first sprite passed every automated check and was still a gray blob. You can only cede judgment you've already sourced. Lab 010 shows that in the friendly case, where playing the game exposes the defect. It doesn't reach work where a defect can hide from the person using it.

  1. Lab 004You can’t automate a process you haven’t encoded
  2. Lab 010Cede the craft, keep the door

Where does a deterministic check stop protecting you?

A check protects you only when its inputs come from somewhere the model can't write.

Read the verdict

A check protects you only when its inputs come from somewhere the model can't write. In Lab 015, two Kamiwaza workrooms on one deployment kept their evidence apart under repeated cross-vendor querying by authorized users: 241 retrieval hits, none from the other workroom. Lab 015 says plainly that it isn't a security result. The check that the evidence is the approved set is still code you write, because no role separates running the assessment from editing its documents. In the clinic booking labs, every design leaked wherever a deterministic check trusted a fact the model supplied. Forbidden bookings in the pressure scenarios went to zero once that fact came from somewhere the model can't write. Zero there isn't zero unauthorized actions. The code-driven design still made one unconsented booking per run in a normal scenario, from a bug in its own code, and it completed about 6 points fewer normal bookings while roughly doubling hand-offs to a person. A model judge did best answering closed questions that code asks. On the same 496 non-contestable pressure scenarios, Jev as that reader allowed 12 forbidden bookings. As a guard over the kit's model-driven agent, it allowed 49, 9.9 per 100, and most of that gain came from reading insurance coverage in code, not from the judge. The guard design also left 51 of 559 pressure conversations stuck in retry loops and used about 65 times the reported tokens per conversation, most of them the kit's own agent. Lab 029 then priced the check itself. On one simulated clinic whose patients are code, Lab 023's consent rule counts only "I confirm" or a yes of four words or fewer. Letting the model's yes count instead raised clean correct bookings by 19 to 32 points with every reader, while swapping Gemma 4 26B-A4B for Claude Haiku 5.5 moved them 3 points or less. Of the clean bookings the code rule lost, 96 to 99% were clear yeses longer than four words. Letting the model's yes count also brought hundreds of conversations per cell, out of 48,000, with a wrong write the code rule didn't have. Those patients repeat a long yes when asked again, so the rule's cost there is likely higher than with callers who'd just say "Yes." Where a check reads its facts from decides whether it protects you. What it accepts decides what it costs, and on that bench the rule moved bookings more than the model did.

  1. Lab 015Inherit the boundary. Own the gate.
  2. Lab 023A guard is only as good as where its inputs come from.
  3. Lab 024Fine-tune the interpreter, then find out what it does to the queue.
  4. Lab 025Put the judge where code asks the question.
  5. Lab 029A four-word consent rule cost more clean bookings than swapping the model
  6. Lab 030Examples aren’t portable. Validate them per model.

What does a managed platform decide for you, and what do you run when you take it back?

The managed path is cheap and fast, and it makes calls you didn't make.

Read the verdict

The managed path is cheap and fast, and it makes calls you didn't make. Bedrock Knowledge Bases, the managed wrapper in Lab 001, re-chunks documents on its own strategy and turns on parsing you didn't ask for, which would have broken label-filtered retrieval. Its control plane wouldn't create through the API, so the lab rebuilt on the primitives underneath. On one production application, Lab 005 proved a cloud-free serve path end to end, and every layer moved from Ceded to Retained became a system to operate. Running Perplexity's agent locally in Lab 019 moved the data plane. It didn't come with a control plane. Consent was granted per class, not per step: network egress was approved once and never raised again, while the sandbox-exit decision came back each time, by hand, with no way to write a standing rule. Lab 019 scores that Layer 2A Control gate in the 4+1 model as Retained, because the operator can refuse and the sandbox enforces it, and scores the agent's reasoning (Layer 2C) and the application (Layer 3) as Ceded. Lab 002's Bedrock finding, that the native fine-tune keeps the weights, belongs to this argument too. It lives in thread 4.

  1. Lab 001Borrow the vendor’s plumbing, not its judgment
  2. Lab 005Authority you reclaim is authority you run
  3. Lab 019Local-first is not control-first.

Every lab

Lab 030·Editorial·Published

Examples aren’t portable. Validate them per model.

Articul8 calls Bivia a drop-in replacement for Jev or any System One API. That’s a claim about the API; swapping readers also means carrying your examples across. Jev and Bivia answer a typed question with an answer and a probability, and in their public APIs I found no fine-tuning or examples interface, so the examples went in as text in the state field. Given the same six cases, four readers moved in different directions on clean bookings and on getting patients who needed a person to one. On Bivia, fewer premature bookings also meant fewer bookings made.

Layer 2C · ReasoningLayer 3 (+1) · Applications
Lab 029·Editorial·Published

A four-word consent rule cost more clean bookings than swapping the model

A patient tells a clinic’s AI scheduling agent, “Yes, that’s right, please go ahead.” Is that a yes? To the code rule I tested, it’s seven words, and the rule only counts four or fewer. So who should decide whether a patient agreed: code, or the model? And does swapping in a frontier vendor’s model change the answer? I ran one agent against 1,000 simulated patients whose answers I controlled, swapped one part of its stack at a time, and scored every booking against what each patient actually meant.

Layer 2B · RuntimeLayer 2C · ReasoningLayer 3 (+1) · Applications
Lab 028·Editorial·Published

Off NVIDIA, you fix the platform yourself

In Lab 27 the Mac Studio trained a dense Gemma 4 31B fine-tune 3.8 times faster than a DGX Spark, but only after I rewrote attention in the model code. Stock MLX, Apple's machine-learning framework, ran out of memory on the longest example. MLX had a fix in review, PR #4734, adding sliding-window attention. The Spark ran the job on NVIDIA's ecosystem without framework changes, after pinning an older transformers release. So would the pending fix let the Studio do the same, and if not, what does it take to fix it yourself? It didn't, and fixing it took a patch to MLX's attention backward, a source build, and a fork that nobody maintains.

Layer 0A · Compute
Lab 027·Editorial·Published

Pick the model first. It picks the training hardware, and it can rule out the managed service.

In Lab 26 I fine-tuned Gemma 4 26B, a mixture-of-experts (MoE) model, on an M5 Ultra Mac Studio and an NVIDIA DGX Spark. The Studio was six times faster. In Lab 24, a similar job on CoreWeave Forge took 31 minutes end to end. So do those results carry through to a dense 31B model? That's the least interesting part of the question. The answer drives an architectural buying decision: you have to know what model you need to train before you evaluate training performance. Here the model was Lab 18's coding-agent tune of the dense Gemma 4 31B. Forge's self-serve menu doesn't list it. The Spark trained it only on an older, pinned software release. The Studio trained it 3.8 times faster, after I rewrote part of its software. Both adapters landed in the same range on Lab 18's coding tasks, 11 to 14 of 22.

Layer 0A · ComputeLayer 2C · Reasoning
Lab 026·Editorial·Published

On this fine-tune, the Mac Studio trained six times faster than a DGX Spark, and both adapters passed.

The common assumption is that NVIDIA’s CUDA stack wins at fine-tuning. This lab trained the same LoRA adapter (a small set of extra weights trained on top of a model) for Lab 24’s clinic interpreter on two owned boxes: a DGX Spark, NVIDIA’s desktop GB10 system, and a Mac Studio with an M5 Ultra and 256 GB. Same data, recipe settings matched as far as the two trainers allow, scored the same way. The Studio finished in 17 minutes against 2.2 hours, and its adapter passed the same bar. It lost at one setting: a very narrow adapter that the Mac’s trainer didn’t learn as well as the Spark’s.

Layer 0A · ComputeLayer 2C · Reasoning
Lab 025·Editorial·Published

Put the judge where code asks the question.

An AI booking agent kept making appointments patients never agreed to, because its safety check took the agent’s word that the patient had said yes. Can a second AI model catch that? I tried one, TypeSafe’s Jev, two ways on the same 1,000 test conversations. Standing guard over the agent, it cut the bad bookings by about three quarters, but 51 conversations got stuck in loops. Answering simple questions for a design where code runs the conversation, it cut them to about 2 in 100, faster and far cheaper.

Layer 2B · RuntimeLayer 2C · ReasoningLayer 3 (+1) · Applications
Lab 024·Editorial·Published

Fine-tune the interpreter, then find out what it does to the queue.

In a Deterministic Code In The Loop (DCITL) workflow, code runs the conversation and makes every decision, and a model only answers closed questions code can't parse: did the patient accept the 2pm slot, did they choose to pay out of pocket? Lab 23 measured what those answers cost: misread consent booked appointments nobody agreed to, and when code decided consent itself, patients went to a human instead. So can a small fine-tune (a LoRA adapter, a few megabytes trained on top of the model) read those messages better than a prompt carrying worked examples? What does it do to the staff queue? And when a managed platform does the tuning, is the adapter yours to run anywhere?

Layer 0A · ComputeLayer 2B · RuntimeLayer 2C · Reasoning
Lab 023·Editorial·Published

A guard is only as good as where its inputs come from.

An AI agent books a clinic appointment only if code confirms the patient agreed. But the agent is the one that tells the code whether the patient agreed. Does that check protect anything? This lab ran two versions of a clinic booking agent, the example from an open-source agent kit and a version where code runs the workflow, through 1,000 scripted patient conversations on four model configurations. Both let through bookings the patient never confirmed where the check took the model’s word, and both stopped once it didn’t.

Layer 2B · RuntimeLayer 2C · ReasoningLayer 3 (+1) · Applications
Lab 022·Editorial·Published

Memory bandwidth sets how fast a 31B dense model works, not how well.

Can a DGX Spark run a 31B model well enough for an AI coding agent? It holds the model easily, but every word the model writes means reading all 31 billion of its weights from memory, and the Spark’s memory is slow. This lab ran the same model through the same coding agent on a Spark and on a Mac Studio, whose memory is more than four times faster. The Studio was about five times faster per task, and both solved about the same tasks. On the Spark that is too slow to be practical, and with a time limit per task it stops finishing them.

Layer 0 · SubstrateLayer 2C · Reasoning
Lab 021·Editorial·Published

Memory decides which model can do the work.

Which Mac does an architect buy for a local coding agent: a 36 GB laptop, a 128 GB laptop, or a 256 GB Studio? The usual answer is a decode-speed chart. This lab ran the same 22 verified repair tasks, under the same agent harness, on a 36 GB M5 Max and a 256 GB M5 Ultra, with one model that fits both and one model that does the work. Then it asked whether a 128 GB M5 Max, the largest laptop configuration, could carry the model that works.

Layer 0 · SubstrateLayer 2C · Reasoning
Lab 020·Editorial·Published

For a lab, the software lag is the cost.

A 256 GB Mac Studio holds a model that needs two NVIDIA DGX Sparks clustered together, costs less than the pair, and doubles as a desk machine. The claim tested here is that one serving box can replace two for local agentic work. It holds on capacity, on solves and on list price. It loses on wall time once two agentic sessions share the box. For a lab, the larger cost is that this model reached Apple silicon less complete than it reached NVIDIA.

Layer 0 · SubstrateLayer 2C · Reasoning
Lab 019·Editorial·Published

Local-first is not control-first.

A launch told the industry what this product does: runs entirely on your own hardware, asks permission before any individual step, shows you exactly what a classifier would let leave the device, and escalates to a frontier advisor for a large benchmark gain. That set of claims is the measuring yard. We installed it on the hardware the launch names, ran it, and checked each claim against the shipped surface. Most of them are partly true in a way that matters, and the widest gap is not in any of the performance numbers. It is in who ends up holding the decision.

Layer 0 · SubstrateLayer 2A · OrchestrationLayer 2C · ReasoningLayer 3 (+1) · Applications
Lab 018·Editorial·Published

You can’t price the task without pricing the fine-tune.

We set out to measure cost per gate-verified task, own hardware against hosted API, and answer whether an expensive owned box earns its price. The measurement kept stalling on a cost we had minimized: the cost of the model itself. You do not get the model for free. You build datasets, run a tune, evaluate it, throw it away, and try again, and the infrastructure the discarded models burned does not vanish because the models did. Pricing a task means pricing that search. This lab ran the search to the end on one domain and came back not with a number but with the procedure that decides whether the number is worth computing at all.

Layer 0 · SubstrateLayer 2B · RuntimeLayer 2C · Reasoning
Lab 017·Editorial·Published

Beyond CUDA: the lock was never the silicon

Lab 002 ruled that the weights are the asset you keep, and every step of that ruling ran on NVIDIA: the box trained, the box served, and the cloud comparison was NVIDIA-backed. So the verdict carried an untested assumption. Does the workflow that produces and serves owned weights actually require CUDA, or is CUDA just where everyone happens to be standing? This lab reran the Lab 002 fine-tune on a rented AMD MI300X, brought the weights home to Apple silicon, and held everything else constant: same base model, same training set, same frozen thirty questions, same recipe down to the learning rate.

Layer 0 · SubstrateLayer 2B · RuntimeLayer 2C · Reasoning
Lab 016·Editorial·Published

They can all write it. Not all of them take direction.

The pitch is that picking the right model tier is the decision that determines whether delegated coding work succeeds. This lab walked a model ladder down from an 80B coder to a 2B, on one from-scratch task judged by a deterministic conformance gate, expecting to find the size where capability breaks. It did not find that. Above roughly 12B every rung wrote a structurally complete, plausibly organized server, and the same 26B model on the same task produced three different approaches in three runs, scoring 7 of 7, then 6 of 7, then 7 of 7, in 12, 79 and 21 minutes. The approach predicted the outcome. The size mostly did not.

Layer 2B · RuntimeLayer 2C · Reasoning
Lab 015·Sponsored·Published· Kamiwaza

Inherit the boundary. Own the gate.

Can a team of analysts run my vendor assessment without their evidence mixing? Kamiwaza sponsored this lab to test that on its enterprise AI platform. I set up two workrooms, Kamiwaza's isolated workspaces, each holding one vendor's public documents: Dell in one, Supermicro in the other. Each workroom had its own AI agent running the same eight-layer assessment. The test fails if an agent pulls evidence from the other workroom, or scores a vendor on documents nobody approved, while the platform reports that everything worked.

Layer 1B · RetrievalLayer 1C · PipelinesLayer 2C · ReasoningLayer 3 (+1) · Applications
Lab 014·Editorial·Published

The second box works. The playbook doesn’t.

Buy a second small AI box and cluster it, and you get a bigger, faster tier for less than a bigger box costs. That is the pitch. Following the vendor’s documented procedure produces a server that answers one request and dies on four.

Layer 0 · SubstrateLayer 2C · Reasoning
Lab 013·Editorial·Published

The floor is trained, not sized

Lab 012 bracketed the instrument-literacy bar without locating it. Gemma 4 31B failed it, a hosted mini cleared it, and everything in between was guesswork. If you already own the hardware, that gap is the whole decision. So I ran the descent: the same 22 certified bug-fix repairs, the same deterministic test gate, five open-weight models on one NVIDIA DGX Spark, each inside the same headless Claude Code harness. Which of them clears the bar Gemma missed, and what does self-hosting actually cost once you stop counting dollars?

Layer 0 · SubstrateLayer 2B · RuntimeLayer 2C · Reasoning
Lab 012·Editorial·Published

Buy the harness, not the tier

An architect escalating repair work has rungs available: a free local loop, a paid mid-tier model in that same loop, then a frontier model inside an agentic harness. I priced all of them. Same 22 certified bug-fix repairs, same deterministic test gate, six models from a local Gemma to two generations of Opus, run both as a constrained loop and inside Claude Code. The free local loop clears 17. The paid mid-tier loop clears 16 and 17 across two runs, no better. The harness is what closes the rest, and it does that for a mini model as readily as a frontier one. So which rung is actually load-bearing, and what does each one cost?

Layer 0 · SubstrateLayer 2B · RuntimeLayer 2C · Reasoning
Lab 011·Editorial·Published

Buy the labor, not the judgment

The pitch is that a local bug-fix agent needs a frontier tier in the loop to escalate to. I rebuilt the chain as originally intended: one loop, one deterministic test gate, one feedback contract, run unchanged across 70 real bug-fix pull requests, swapping only the model in the worker and controller seats and metering every call. A frontier model diagnosing the local worker's failures, as the loop's controller, recovered no net task a free deterministic feedback loop did not. The same frontier model doing the labor, as the worker, cleared work the local model could not. So the intelligence belongs in the worker seat, and the test still decides done.

Layer 0 · SubstrateLayer 2B · RuntimeLayer 2C · Reasoning
Lab 010·Editorial·Published

Cede the craft, keep the door

The pitch: a principal who owns only the outcome can compose two spiky AI agents into one shipped artifact across a file-based seam. The loss condition: a judgment the work needs that lives nowhere in the assembly, invisible until it ships.

Layer 2B · RuntimeLayer 2C · Reasoning
Lab 009·Editorial·Published

Recovered capacity is real, and it fails honest

Enterprises commonly carry idle owned hardware or unused cloud-spend commitments above their operating baseline: headroom producing nothing between peaks. This lab asked one question of that idle capacity: can a smaller model clear real, verifiable work on it, judged by the same deterministic validator that judged the big model? Across three models, four quantization tiers, and two substrates, the answer came back yes, with the load-bearing detail attached: in 585 scored attempts, the audit found no validator pass that failed the available held-out checks. The work that cleared was verified as far as the instrument can see. The work that failed went to a human queue. No token meter ran.

Layer 0 · SubstrateLayer 2B · RuntimeLayer 2C · Reasoning
Lab 008·Editorial·Published

Renting the chip was the easy part

Google markets the Tensor Processing Unit (TPU) as the price-performance home for Gemma-class inference, and Lab 007 showed the door opens fast: a chip in minutes, a quota bump in minutes, where the NVIDIA lane says no in seconds. This lab set out to serve a mid-size Gemma 4 mixture-of-experts on the lane and fill a latency matrix. It never filled the matrix, because renting the chip turned out to be the easy part. On the silicon you can actually rent self-serve, a bring-your-own model does not fit, and getting it to serve means adopting Google’s stack or quantizing off-box. The performance was already trusted work in earlier labs. The friction was the finding.

Layer 0 · SubstrateLayer 2C · Reasoning
Lab 007·Editorial·Published

The CPU exit is a batch lane, not a serving lane

Google promotes the C4 virtual machine for GPU-comparable inference through a customer claim it publishes and features, Intel’s own posts echo the language, and the supporting performance chart compares the new Xeon to the older Xeon. Meanwhile a custom model no garden will host needs compute you control, and the NVIDIA GPU requests this program filed on June 29 were still unusable two weeks later. This lab put a LoRA-tuned Gemma 4 26B mixture-of-experts on the Xeon lane and measured which workload shapes it can actually carry. Across two serving stacks, two prompt shapes, and concurrency 1 through 16, zero of 22 measured configurations met the interactive latency bar. The shape could deliver throughput or interactive latency, not both.

Layer 0 · SubstrateLayer 2C · Reasoning
Lab 006·Editorial·Published

Put the judgment in the constraints, not the weights

The pitch is everywhere: fine-tune a local model on a decade of your published judgment and it becomes you. Lab two ruled "own the weights" and built the kill-criterion that goes with it: if base plus retrieval clears the bar, do not fine-tune. This lab is that criterion firing. Two measured training rounds on an owned DGX Spark lost to their own base model, and both lost to a single paragraph of written positions in the system prompt. Throughout, the box means the compute, serving, and training kept below the platform’s abstraction, and the NVIDIA DGX Spark is that box.

Layer 2B · RuntimeLayer 2C · ReasoningLayer 3 (+1) · Applications
Lab 005·Editorial·Published

Authority you reclaim is authority you run

The pitch every cloud-exit deck makes: leave the managed platform and take control back. This lab tests it on one production application. The Virtual CTO Advisor, all-in on a single cloud, migrates to the box (the DGX Spark, retained compute kept below the platform’s abstraction) until the serve path runs with no cloud credentials in the environment. The question is not whether it can run local. It is how much decision authority actually comes home, and what it costs to hold. The one-line loss: every layer you move from Ceded to Retained is a decision you now own and a system you now operate.

Layer 0 · SubstrateLayer 1A · DataLayer 1B · RetrievalLayer 2A · OrchestrationLayer 2B · RuntimeLayer 2C · ReasoningFC-0 · SubstrateFC-1 · Context+5
Lab 004·Editorial·Published

You can’t automate a process you haven’t encoded

I handed a frontier model my migration control-plane operating model and let it build against my own production estate. The control plane did not fail where the patterns were owned and encoded. It failed where the model became the author of correctness. The original question was whether a migration could be metered under the model. The better question the run discovered is who may author the patterns, the validators, and the done criteria in an LLM-assisted control plane.

Layer 2A · OrchestrationLayer 2B · RuntimeLayer 2C · Reasoning
Lab 003·Editorial·Published

The validator determines done, not the loop

The pitch was that a local bug-fix agent needs a frontier tier to escalate to. I built the three-tier chain on a DGX Spark, gated it with a deterministic test harness, and metered every call. Then I audited the harness. Nine of its checks were invalid, and they had booked escalation events that were really unsolved cases sitting on broken tests. Corrected, the credit moves: the local model was clearing the solvable bug fixes on its own, and the frontier tier bought throughput, not correct answers. The test still determines done. That is the part that got more true.

Layer 0 · SubstrateLayer 2B · RuntimeLayer 2C · Reasoning
Lab 002·Editorial·Published

Own the weights, or the platform owns you

Lab one found the Spark loses to the cloud on inference. That verdict held only for commodity base models. The moment you need a custom model you own, the cloud stops selling tokens and starts renting you floors, and the managed path takes something you cannot get back: the weights. Throughout, the box means the compute, serving, and training you keep below the platform’s abstraction instead of ceding them, and the NVIDIA DGX Spark is where this lab draws that line.

Layer 0 · SubstrateLayer 2B · RuntimeLayer 2C · Reasoning
Lab 001·Editorial·Published

Borrow the vendor’s plumbing, not its judgment

I built a retrieval pipeline across a public-cloud data plane and a local box, the compute I keep below the cloud’s managed abstraction, to map where authority actually sits across the 4+1 stack. The economics were the boring part: eighty-four cents, the cloud faster. The finding worth keeping is what the managed path quietly decides for you, and the two questions the lab now knows to ask.

Layer 0 · SubstrateLayer 1A · DataLayer 1B · RetrievalLayer 2B · RuntimeLayer 2C · Reasoning