Files
ponytail/benchmarks/results/2026-06-15-llama3.2-local.md
T
Mandavilli Vijay 386f95734a benchmarks: add local model support and Node version note (#63)
Adds benchmarks/benchmark-local.py (Ollama-based local runner), a results writeup, and a Node version note. Thanks @mandavillivijay.
2026-06-15 15:27:11 +02:00

2.5 KiB
Raw Blame History

Local model benchmark: llama3.2 via Ollama — 2026-06-15

Same 5 tasks as the Claude benchmark, same three arms (baseline / caveman / ponytail), run against a local llama3.2:latest (3.2B, Q4_K_M) via Ollama on a Windows 11 machine. n=1 per cell. Tooling: benchmarks/benchmark-local.py (no promptfoo needed).

Results

Code LOC

arm email debounce csv-sum countdown rate-limit TOTAL
baseline 13 13 38 44 32 140
caveman 16 12 5 45 28 106
ponytail 18 21 7 38 49 133

Time (seconds)

arm email debounce csv-sum countdown rate-limit TOTAL
baseline 52.6 37.2 63.4 65.2 71.0 289.4
caveman 79.6 54.4 28.3 71.4 61.0 294.7
ponytail 99.7 71.0 25.4 74.8 97.3 368.2

LOC vs baseline

arm total LOC vs baseline
caveman 106 24%
ponytail 133 5%

Key findings

Ponytail does not transfer to llama3.2. On 3 of 5 tasks (email: 13→18, debounce: 13→21, rate-limit: 32→49) ponytail produced more code than the no-skill baseline. Total LOC reduction was 5% vs the 8094% seen on Claude. Response time increased by +27% (368s vs 289s) rather than the 36× speedup seen on Claude.

Caveman outperformed ponytail on this model (24% LOC, similar time to baseline). Caveman's rules are simpler prose instructions that a small model can follow more reliably; ponytail's multi-step decision ladder requires a stronger instruction-follower.

Why this happens: Ponytail is a prompt-engineering skill calibrated on Claude models, which are specifically trained to follow detailed system instructions. A 3.2B quantised model partially absorbs the ponytail rules and then adds extra prose justifying its choices — paying the complexity cost without getting the minimalism benefit.

Reproduce

Install Ollama and pull a model, then run from the repo root:

ollama pull llama3.2
python benchmarks/benchmark-local.py --model llama3.2

Optional flags:

--repeat N       Runs per cell; median is reported (default: 1)
--ollama-url URL Ollama base URL (default: http://localhost:11434)

Takeaway

The benchmark claims in the README are accurate for the models tested (Haiku, Sonnet, Opus). For local/small models, expect significantly smaller — or even negative — gains until instruction-following capability reaches a threshold comparable to Claude Haiku or better.