AIToday
Large Language ModelsTop Companies' AI MovesTop Companies AI — US (1/2)Published: Aug 12, 2026, 06:30 JST6 min read

Local 122B model scores 89% of Claude at 787× lower cost

Local 122B model scores 89% of Claude at 787× lower cost

Key takeaway

  • A user replaced Claude with a 122-billion-parameter local model running on consumer-grade GPUs in their AI agent, achieving 80% of Claude's performance (80.0/100 vs 89.4/100) at 787× lower cost per task ($0.000969 vs $0.763).

  • The key breakthrough was moving from a 16K to a 256K context window alongside a larger model—eliminating syntax errors and enabling the agent to handle real messy production workloads.

  • Tool-call accuracy still lags, and one real task still overflows context, but the trade-off now favors local deployment for cost-sensitive production use.

3 Key Points

  1. What happened

    Running a 122-billion-parameter model on three RTX 3090 GPUs with a 256K-token context, the author's AI agent scored 80.0/100 versus Claude's 89.4/100 on 27 real production tasks—up from 22.8/100 when a 30B model ran on a single GPU with a 16K context. The larger model eliminated malformed tool-call syntax entirely (0 of 27 tasks, down from 7 of 27) and cost $0.000969 per task versus Claude's $0.763.

  2. Why it matters

    For teams running AI agents on internal tools (email, calendar, files, messaging), local deployment at this scale now reaches near-Claude reliability while cutting per-task costs by roughly 787×. The cost difference ($0.000969 vs $0.763 per task) is material enough to shift economics; the author cancelled Claude Max and moved production workloads to the local model. However, the improvement came from both model size AND context budget increasing together—a system upgrade rather than an isolated model effect, so the gains may not fully isolate which lever matters most.

  3. What to watch

    Tool-choice accuracy (overlap recall) remains weak at 38.0% versus Claude's superior selection of which tools to call; the model now picks well-formed calls but often chooses different tools than the historical solution. One production task (336,906 characters) still overflows even the 256K context window by roughly 25,000 tokens, showing that real workloads keep outrunning headroom.

In Depth

Read the full story

The author runs Jarvis, a personal AI agent built on LangGraph, wired into roughly 90 tools—email (Outlook), calendar, notes, files, Office, WhatsApp, Discord, image generation, and sub-agents for longer jobs. It had always run on Claude. A month earlier, the author had tested five local models on a small benchmark (17 tasks, two agent frameworks, 12 coding and 5 general tasks) and found qwen3-coder:30b winning cleanly. On the smaller stage, the benchmark result held. But when the same 30B model was dropped into Jarvis's real environment—messier, broader, deeper in tool chaining—it crashed. The author measured that failure by replaying 28 real historical task prompts from Jarvis's own tracing logs (Langfuse), stratified across seven categories (calendar, code, email, files, general, messaging, notes). Claude's baseline was frozen: the actual production answer already logged, not re-run. Only the local model ran fresh, in a sandboxed harness that replayed real tool data from the original traces instead of stubbing generic placeholders.

Scoring was independent, using Claude Opus 4.8 as an LLM judge on a 1–5 scale mapped to 0–100. The author flags a real limitation: the judge is a Claude model, which introduces documented self-preference bias. That caveat mattered more in round 2, where the local model scored close enough for the bias to potentially shift perception. The process itself had three major bugfixes: a silent JSON parser failure in scoring, a mock harness returning canned text instead of real data (flattening the local model's score unfairly), and a Claude API rate-limit ghost-scoring some judge calls. The author verified everything, including eight round-2 tasks that scored exactly 70.0 (the neutral-failure sentinel) by hand-checking the judge's rationales—all eight were genuine "3/5" judgements.

Round 1: qwen3-coder:30b on a single RTX 3090 with a hard 16,384-token context limit (the shared GPU couldn't spare more VRAM alongside 18 GB of model weights). Claude averaged 89.4/100. qwen averaged 22.8/100 and never won a single category. The failure modes were stark: malformed tool-call tags (<function=send_email>...</function>) leaked into 7 of 27 final answers—raw syntax a user would have read, not a proper tool call. Tool-overlap recall (did the model call the tools that historically solved the task?) averaged 14.8% across the 18 tasks where tools were actually used. Two tasks orchestration-failed entirely—pilot-17 (email, 24 tool calls) and pilot-27 (messaging, 27 tool calls)—looping on the same already-answered tool instead of stopping. One shared failure mode: both models mishandled the mocked environment (where tool calls are intercepted). Claude over-claimed success (told the user an email was sent when it had been intercepted). qwen correctly reported that the send didn't go through—but it also leaked malformed syntax a quarter of the time and looped twice. Both models lied, in opposite directions.

Then the author upgraded the hardware: three RTX 3090s (72 GB VRAM), allowing a 122-billion-parameter mixture-of-experts model (Q3_K_M quantization, ~53 GB weights, no CPU spill) and a 256,000-token context window—a 16× increase. Same 27 tasks. Same frozen Claude baseline. Same judge.

Score: 80.0/100—89.4% of Claude, up from 25%. By category, the 122B model beat Claude on general (90 vs 85), landed within a few points on notes (92 vs 97) and email (87 vs 92), and trailed on files (64 vs 88, the most tool-chaining-heavy category). Reliability transformed: malformed tool calls went from 7 of 27 to zero. Tool-overlap recall doubled to 38.0% (still clearly behind Claude's implicit choices, but no longer broken). One production task—pilot-12, a code dump of 336,906 characters expanding to 281,190 tokens when encoded—still overflowed the 256K context window by roughly 25,000 tokens; Ollama rejected it precisely.

Cost is the other half. Claude's side came from real Langfuse API billing. The local side was metered per-task electricity using HomeLab Monitor (the author's open-source stack), attributed to measured GPU energy and converted at the author's actual dual-rate tariff. Neither is an estimate. The result: $0.000969 per task on local hardware versus $0.763 on Claude—roughly 787× cheaper. That gap was enough to move the dial: the author cancelled Claude Max and moved Jarvis to the local model, though keeping Claude Pro for other work. The honest caveat: model size and context budget changed together, with no isolated control, so the numbers measure a system upgrade rather than a clean model effect.

Context & Analysis

The article documents a real production deployment decision backed by measured data rather than benchmark wins. The author's earlier controlled test had shown a 30B model winning a small, scoped benchmark (17 tasks, 2 frameworks), but when dropped into Jarvis—a personal AI agent wired to ~90 real tools spanning email, calendar, files, messaging, and more—the same model collapsed to 22.8/100 versus Claude's 89.4/100. That failure was instructive: it showed that benchmark wins do not guarantee production safety, because the real environment imposes complexity (tool chaining, orchestration, context pressure) that small test suites do not expose.

The second round changed both the model and the hardware in tandem: a larger model (122B vs 30B) and a vastly larger context window (256K vs 16K). The combination lifted score to 80.0/100 and—critically—eliminated the worst failure mode (malformed syntax leaking into user-facing text). However, the author explicitly flags that model size and context budget moved together with no isolated control, so the 3.5× score improvement cannot cleanly attribute how much came from scale versus how much from context headroom. The cost advantage (787× cheaper per task) is unambiguous because it was metered at actual GPU electricity cost rather than estimated.

The remaining gaps are telling. Tool-recall accuracy (which tools does the model choose?) improved from 14.8% to 38.0% but still lags behind Claude's implicit tool choices in the production traces. The model now produces grammatically valid tool calls; it simply picks different tools. One real production task still overflows the 256K window, a reminder that context budgets are moving targets when real work keeps growing.

FAQ

What hardware runs the 122B model?
Three RTX 3090 GPUs, providing 72 GB of VRAM total. The 122-billion-parameter mixture-of-experts model at Q3_K_M quantization uses about 53 GB of weights and runs entirely on GPU with no CPU spillover.
How did malformed tool calls get fixed?
They weren't fixed—they disappeared when the model size and context window increased together. The 30B model on a single 3090 with 16K context leaked raw <function=...> syntax into 7 of 27 answers (25.9%). The 122B model with 256K context produced zero malformed calls across 27 tasks.
Why did one task still not run in round 2?
Pilot-12 is a code dump of 336,906 characters, which expands to 281,190 tokens when encoded. The 256K context window was insufficient by roughly 25,000 tokens; Ollama rejected it with a precise overflow error.
Top Companies AI — US (1/2)Read Original Article

Get the latest Large Language Models news every morning

AI-summarized, only the topics you pick — one digest a day via Email, Slack, or Discord.

Free · takes 30 seconds · unsubscribe anytime

Ask AI

Ask AI anything about this article. Q&As are published on this page for other readers too.

Related Articles

Next articleAI drugs clear Phase I at record rates, but Phase II success stalls at decades-old baseline

The AI news that matters, in one minute each morning.

Sign up free