Local-LLM field test · June 2026

I ran a frontier open model 100% on my laptop — here's what it can replace.

A product manager's hands-on evaluation of Google's brand-new Gemma 4 12B against the cloud model I use daily, Claude Opus 4.8 — across writing, orchestration, coding, summarizing, and image / audio / video. Free, private, offline. No prior local-model experience.

$0 cost 100% on-device 22/22 tasks passed native audio + video MacBook Pro M4 Max

TL;DR

A 12B open model on a laptop handled the large majority of everyday PM work at a quality I'd genuinely ship — including the parts I expected to fail: reading a KPI dashboard, transcribing and diarizing audio, and summarizing a video. The real cost isn't quality — it's latency (30–90s on heavy tasks) and the need to verify code and extracted facts.

22/22
tasks succeeded
~27
tok/s (text)
$0
total cost
0 KB
data sent off-device

The verdict map

Per category: is local Gemma 4 12B good enough to use instead of Opus? Use local With caveats

CategoryVerdictWhy
Daily workflows
emails, notes→actions, RICE
Use localNailed structure & tone; even flagged ambiguous task owners.
Orchestration
multi-step, JSON, tool routing
Use localClean JSON-schema adherence; sensible tool calls. Validate JSON in prod.
Light coding
Python, SQL, refactor, regex
With caveatsCorrect & idiomatic for snippets (nailed an O(n²)→fix). Verify before running.
Summarizing
PRD, threads, transcripts
Use localBest category — accurate, cited section IDs, found a real gap. 256K context.
Vision
dashboards, charts, OCR
Use localRead exact KPI values; chart→table with correct total; near-perfect OCR.
Audio ⭐
transcribe, diarize
Use localThe surprise: accurate transcription + Speaker A/B diarization, on-device, ~20–35s.
Video
screen-demo summary
With caveatsGreat on slide-style content (frames + audio); motion lost at 1 FPS; slowest.

Speed by modality

Generation speed (tokens/sec) — text is snappy; multimodal pays a tax.

Text
27 tok/s
Image
22 tok/s
Audio
21 tok/s
Video
11 tok/s

Latency ranged 18–92s depending on output length and modality. On an M4 Max with 64 GB, the 7.6 GB model loads in seconds and never touched the network.

The local model line-up — what I'd actually run

Beyond Gemma, I benchmarked two Qwen models locally on the same 14 text tasks to find the best free, private workhorse — and to see whether a bigger model was worth it. Bigger turned out not to be better.

ModelRuntimeAvg latencyAvg tok/sRAMModalities
Gemma 4 12BOllama28.3s467.6 GBtext + image + audio + video
Qwen3‑Coder 30B (MoE) ⭐Ollama6.0s11018 GBtext only
Qwen3‑Coder‑Next 80B‑A3BLM Studio (MLX)4.9s6344.9 GBtext only

The 80B was slower per-token than the 30B and needed ~2.5× the RAM (it trips LM Studio's 64 GB load guardrail) — for only a marginal, inconsistent quality edge. It even skipped part of a multi-part task and leaked a stray non-English token into JSON. On a 64 GB laptop, the 30B MoE is the sweet spot.

My recommendation: run Qwen3‑Coder 30B (MoE) for most daily text & code — it's ~5× faster than Gemma and matches it on quality — and keep Gemma 4 12B for audio & vision (the Qwen coders are text-only). Reserve Claude Opus 4.8 for the hardest 10–20%. Free, private, and it covers the rest.

It really read this

One vision task: "read this KPI dashboard and tell me the most concerning number." Gemma reported all six KPIs with exact values and trends, correctly singled out the Activation Rate (41%, −2.0%), and recommended an onboarding-funnel audit.

Synthetic KPI dashboard the model read
The synthetic dashboard image fed to the model (all data fabricated).

Where each one wins

✅ Local Gemma 4 12B

  • Summarizing & writing — ship-ready drafts, with citations.
  • Audio — native transcription + diarization, no Whisper, no cloud.
  • Vision / OCR — exact dashboard reads, chart→table, scanned docs.
  • $0, private, offline — for sensitive work, it never leaves the laptop.

🔵 Claude Opus 4.8

  • Speed — replies feel instant vs. 30–90s locally.
  • High-stakes correctness — code you'll run, data you'll trust.
  • The hardest reasoning & longest agentic chains.
  • The last 10% — caught one extra anomaly the local model missed.

Head-to-head: 7 hero prompts

Same prompt, same input, both models. 🟰 tie · 🔵 Opus better · 🟢 local good enough

TaskGemma 4 12B (local)Verdict
Stakeholder emailScannable, all points, clear ask (30s)🟰 / 🟢
Plan → JSON → risksValid JSON + plan + risks (72s)🔵 Opus more specific
Python CSV + chartRunnable, correct top-3 (57s)🟰 verify either
Summarize long PRDCited section IDs, found missing spec (72s)🟰 parity
Read dashboardAll 6 KPIs exact (92s)🔵 Opus faster + 1 extra catch
Voice memo → actionsNative transcription + actions (35s)🟢 local win
Summarize demo videoAll 5 slides from frames+audio (53s)🟢 local win
Quality parity on 4 of 7. Opus's edge is speed and the last 10%. Gemma's edge is structural: native audio & video, on-device, for free.

Reproduce it yourself

The full workbench — code, the 22-task prompt pack, synthetic inputs, raw outputs, scores, and the head-to-head — is open source. Setup takes ~30 minutes and every test input is fabricated, so nothing sensitive is involved.

View the repo & workbench →

Stack: Ollama + Gradio + ffmpeg, all local. Key gotcha for builders: native audio/video go through Ollama's OpenAI-compatible /v1 endpoint with input_audio, not the native /api/chat field.