The Face-Off

Three generations of face verification technology. One experiment: run them all on the same images and see what holds up. Plus a second track on whether model size or compression quality wins when hardware is the constraint.

Rounds 1 & 2, May 8, 2026  ·  RTX 3060 12GB
Round 3 complete, May 18, 2026
V100 32GB: 70B finally runs clean in VRAM. ↓ Jump to results
DeepSeek R1 14B wins again  ·  6.1s  ·  3 rounds, 3 wins  ·  18× faster than 70B Q4
Late entries complete, May 18, 2026
Q4 wins the ladder · Q8 9.1s · fp16 24.9s · all 10/10 · precision doesn't help ↓
The Setup

Two questions drove this experiment. First: can modern LLM vision models do face verification as well as purpose-built tools, or do 60 years of dedicated computer vision still have an edge? Second: on consumer hardware with limited VRAM, does a bigger model at lower compression still beat a smaller model at higher quality?

For the vision track we benchmarked three generations of technology. dlib (2017) uses 128-dimension face embeddings, the classic workhorse. InsightFace/ArcFace (2021) expanded that to 512 dimensions and trained on 5.8 million images using ArcFace loss. And then there are LLM vision models: Llama 3.2 Vision, Gemma 3 27B, general-purpose multimodal models that look at two photos and answer "same person?" in plain English.

For the text track we ran four language models on a content classification task to test whether model size beats compression efficiency on a single consumer GPU. Everything ran locally on a single RTX 3060 12GB. No cloud, no API calls.

Each model received the same reference image and candidate image. The question: are these the same person?

same person, easy same person, different angle different person, similar age different person, obvious

Test images: Creative Commons photos of public figures. Fully local: no API calls, no external services, no private data.

Gen 1 / 2017 dlib / face_recognition

128-dimension face embeddings. The original workhorse of local face recognition. Fast, reliable, gets the job done, but the embedding space is small by modern standards and training data was limited by 2017 benchmarks.

Model
Correct
Accuracy
Avg Conf
Avg Latency
dlib face_recognition
128-dim · HOG detector · ResNet
4/4
100%
0.36
9.4s avg
Gen 2 / 2021 InsightFace / ArcFace buffalo_l

512-dimension embeddings. ArcFace loss training on MS1MV3 (5.8M images). State of the art for dedicated face recognition. The model security researchers actually use.

Model
Correct
Accuracy
Avg Conf
Avg Latency
InsightFace buffalo_l
512-dim · ArcFace · ResNet-50
4/4
100%
0.95
0.7s avg
Gen 3 / 2024-2025 LLM Vision Models

General-purpose multimodal models doing face verification in natural language. Not designed for this task. Running entirely on a consumer RTX 3060 12GB GPU: no cloud, no API.

Model
Correct
Accuracy
Avg Conf
Avg Latency
Llama 3.2 Vision 11B
11B params · Q4_K_M · Meta · retest pending, cold-load conditions
0/4
0%
,
24.2s avg
Gemma 3 27B
27B params · Q4_K_M · Google · spills to CPU · retest pending, cold-load conditions
3/4
75%
1.00
80.7s avg
Qwen 2.5 VL 7B
7B params · Q4_K_M · Alibaba · name mismatch, excluded
,
,
,
,
Expected
InsightFace would beat dlib on speed. LLM vision models would handle obvious pairs, two clear photos of the same person, even if edge cases tripped them up.
Actual
InsightFace matched dlib's 100% accuracy and ran 13× faster. Llama 3.2 Vision refused every pair (HTTP 400, content policy). Gemma 3 27B completed 3 of 4 but failed the only true positive: two photos of the same person. Called them different with 100% confidence.
Takeaway
For face verification, purpose-built tools still win. A model that won't compare faces is useless for identity work. A model that's confidently wrong is worse than useless. InsightFace ran in 0.7s. The LLMs needed 80 seconds to fail.
The Core Question: Size vs Quality

A 70 billion parameter language model has 70 billion numbers, the weights that define what the model knows. At full precision (16 bits per number), a 70B model takes about 140GB of storage and RAM. Most consumer GPUs have 8–24GB. Something has to give.

Quantization compresses those weights by reducing how many bits represent each number. The levels break down like this:

fp16

16 bits per weight: full precision

No compression. Every weight stored at native floating-point precision. This is the baseline everything else is measured against. A 70B model weighs ~140GB, requires datacenter hardware or multi-GPU rigs. A 14B model at fp16 is ~29GB, which fits in a 32GB V100 with room to spare.

Q8

8 bits per weight

50% size reduction from full precision. Near-identical quality. A 70B model is still ~70GB, too large for a 12GB GPU either way.

Q4

4 bits per weight

75% size reduction. The practical sweet spot for local deployment. A 70B model shrinks to ~40GB. Quality loss is measurable but usually acceptable.

Q3

3 bits per weight

81% size reduction. Aggressive compression. A 70B model hits ~26GB. Quality degradation becomes noticeable on complex reasoning tasks.

Q2

2 bits per weight

87% size reduction. A 70B model drops to ~18GB , finally fits on larger consumer GPUs. But you've thrown away a lot. The big open question: how much?

The Experiment Question

Consumer hardware like a single RTX 3060 with 12GB VRAM can't run a 70B model at Q4 in GPU memory. It spills into system RAM and slows down dramatically. But what if you quantize down to Q2? The model fits better, but you've compressed away a lot of what made it smart.

Here's the real question this track is trying to answer: can a 70B model at Q2 (heavily compressed, larger brain) still outperform a 14B model at Q4 (less compressed, smaller brain)? In this first round we tested everything at Q4_K_M to establish the baseline. The 70B spilled to RAM and ran 8x slower for identical accuracy on a simple task. Round 2 tests the compression frontier, running the 70B at Q2 and Q3 to find where the quality breaks.

Four language models, same task: classify 10 text snippets as content match vs. non-match. 5 true matches, 5 non-matches. All models ran at Q4_K_M quantization. Round 1 baseline. Round 2 compression results below.

FPR = False Positive Rate (flagged legit content as a match). FNR = False Negative Rate (missed a real match).

What a case looks like

Each model received a reference description and a candidate text snippet. The question: does this text describe content that matches the reference?

Reference description
Exclusive content featuring performer "Aria V", originally published at creator's primary site. 4K. Solo format.
Candidate page text (scraped)
Watch "Aria V" full 4K video, leaked from [creator site]. No paywall. Original source confirmed.
VERDICT: MATCH · performer name, format, and sourcing language all align, unauthorized redistribution indicator
Model
Accuracy
FPR
FNR
Avg Latency
DeepSeek R1 14B
14B · Q4_K_M · reasoning model
100%
0%
0%
10.9s avg
Qwen3 14B
14B · Q4_K_M · reasoning model
100%
0%
0%
20.3s avg
Gemma 3 27B
27B · Q4_K_M · spills to CPU · 2 cold-load timeouts
80%
0%
40%
39.5s avg
Llama 3.3 70B
70B · Q4_K_M · largest tested
100%
0%
0%
88.6s avg
Finding 01

InsightFace is a free upgrade over dlib.

InsightFace matched dlib's 100% accuracy on every test pair and ran 13x faster. 0.7 seconds vs 9.4 seconds per comparison. Same correctness, dramatically faster pipeline. There's no practical reason to stay on dlib for local face verification tasks.

Finding 02

Llama 3.2 Vision refused the task entirely.

0 for 4. After a 95-second first inference, the model never produced a SAME/DIFFERENT verdict. Likely refused face comparison of public figures due to content policy guardrails. This is a real limitation for content protection use cases: a model that won't say "same person" is useless for the job.

Retest pending. The original test loaded Llama 3.2 Vision cold, the first scored query was also the first query after load, forcing a full KV cache initialization mid-test. The 95-second latency spike was likely a cold-start artifact, not a baseline inference time. We're rerunning with a proper pre-warm (model fully loaded at full context size before any scored queries). Results will be updated here when complete.
Finding 03

Gemma 3 27B is close but fails where it matters most.

3 for 4. It correctly identified all three different-person pairs. But it missed the one true positive: two photos of the same person. For content protection that's the critical failure mode: if a model can't confirm a match, it can't help a creator prove infringement. Confidence was 1.0 on its calls. Wrong direction.

Retest pending. Gemma 3 27B cold-loaded twice during the test: first query after load triggered a KV cache resize because the warm-up used a smaller context window than the actual test queries. Those cold-load timeouts (180s each) inflated latency and may have affected answer quality on the first cases. We're retesting with the model pre-warmed at full context size before scored runs begin. Results will be updated here when complete.
Finding 04

At Q4_K_M, bigger doesn't win. It just costs more.

DeepSeek R1 14B, Qwen3 14B, and Llama 3.3 70B all scored 10/10 on the classification task. But the 70B averaged 88.6 seconds per case vs 10.9s for DeepSeek. Same accuracy, 8x the wait. At Q4_K_M on a 12GB GPU, the 70B can't fully load into VRAM, it spills into system RAM and slows to a crawl. The 14B fits cleanly and runs fast. This is the baseline. The question for Round 2: what happens when we drop the 70B to Q2 or Q3? Does it finally fit in VRAM? Does accuracy hold? That's where the real size-vs-quality tradeoff starts.

Finding 05

Dedicated models still beat general LLMs for face verification. For now.

A general-purpose LLM vision model cannot do face verification as well as a purpose-built model. Not yet. The classical models (both generations) ran circles around the LLMs on accuracy and speed. But the LLMs weren't useless: they excelled at the text classification track, where reasoning about context is exactly the job. The lesson isn't that one approach is better. It's that the right tool depends entirely on the task. A model trained to identify faces will always know something a general-purpose chatbot doesn't.

Expected (Text Track R1)
Bigger model = better results. Llama 3.3 70B should dominate on the classification task; the 14B models were expected to fall short on edge cases.
Actual
Three models tied at 100% accuracy: DeepSeek R1 14B (10.9s), Qwen3 14B (20.3s), and Llama 3.3 70B (88.6s). The task was too easy for size to matter. The tiebreaker became speed, and the 70B lost by 8×.
Correct Answer
DeepSeek R1 14B. For this classification task, a 14B reasoning model carries all the signal needed. The 70B's brain adds nothing. It just adds time.
Vision Track Winner
Winner InsightFace / ArcFace (Gen 2)
4/4
Accuracy
0.7s
Avg latency
13×
Faster than dlib
512
Embedding dims

Why it won: Accuracy was the threshold: you either verify the face correctly or you don't. InsightFace matched dlib's perfect score on all 4 pairs. Tie goes to speed. At 0.7s average vs dlib's 9.4s, InsightFace runs the same verification 13 times while dlib finishes once. At scale, thousands of image pairs in a scan, that gap compounds into hours.

Why the LLMs lost: Llama 3.2 Vision returned HTTP 400 on every pair. The model refused to compare faces of real people, likely a content policy guardrail. Gemma 3 27B completed 3 of 4 but failed the only true-positive pair: two photos of the same person. It called them different with 100% confidence. That's the worst failure mode in identity verification: high confidence in the wrong answer. It also averaged 80 seconds per pair and spilled heavily onto CPU, making it impractical even if it had gotten the answer right.

Deciding metric: Accuracy first, then latency as the tiebreaker. InsightFace won both. dlib matched it on accuracy but lost by 13x on speed. The LLMs were disqualified by accuracy before speed was even a factor.

Text Track Winner
Winner DeepSeek R1 14B
10/10
Cases correct
10.9s
Avg latency
8×
Faster than 70B
14B
Parameters

Why it won: Three models hit 100% accuracy: DeepSeek R1 14B, Qwen3 14B, and Llama 3.3 70B. Tie goes to speed. DeepSeek averaged 10.9 seconds per case. The 70B averaged 88.6 seconds. Same answer, same confidence. One model got there 8 times faster. On a 12GB GPU, the 70B can't fit in VRAM at Q4_K_M quantization and spills into system RAM. RAM is slower than VRAM by an order of magnitude. The 14B fits cleanly, stays in VRAM, and runs hot.

Why Gemma 3 27B lost: Accuracy. It scored 80%, two missed cases, while the others got 100%. It also hit cold-load timeouts on the first two cases (model loading from disk took longer than the 120-second cutoff), meaning the first results it produced came after the other models had already answered multiple cases.

Deciding metric: Accuracy first, latency as tiebreaker. DeepSeek and Qwen3 tied on both accuracy and near-identical run profiles; DeepSeek edges out on average latency by a few seconds. The 70B had the same accuracy but was disqualified from the win by the hardware constraint: size without VRAM is a liability, not an advantage.

Round 2: Complete
↓ Full results below

The 70B got faster at every compression level: Q4 (100s) → Q3 (85s) → Q2 (66s). Accuracy held 100% across all three. Compression didn't crack the brain. But it also couldn't close the gap. DeepSeek R1 14B: 9.6 seconds. Llama 70B Q2: 66.1 seconds. Same verdict as Round 1, different cause.

The bottleneck isn't precision. It's size. A 70B at Q2 is still a 70B.

Same 10-case classification task. Five models: the two baseline winners re-run for comparison, the 70B at Q4_K_M as reference, and the 70B at Q3 and Q2 as challengers. Question: does compression close the speed gap without breaking accuracy?

Run: May 8, 2026 · Behemoth (RTX 3060 12GB) · No cloud, no API calls.

Model
Accuracy
FPR
FNR
Avg Latency
DeepSeek R1 14B
14B · Q4_K_M · baseline rerun
100%
0%
0%
9.6s avg
Qwen3 14B
14B · Q4_K_M · baseline rerun · case 1 cold-load timeout
100%
0%
0%
22.5s avg*
Llama 3.3 70B
70B · Q4_K_M · reference · spills to RAM
100%
0%
0%
100.4s avg*
Llama 3.3 70B Q3
70B · Q3_K_M · ~26GB · challenger
100%
0%
0%
85.2s avg*
Llama 3.3 70B Q2
70B · Q2_K · ~18GB · challenger · fastest 70B
100%
0%
0%
66.1s avg*

* Case 1 latency includes cold-load time from disk for Qwen3 and all 70B variants. Warm inference is faster.

What Changed Between Rounds

Round 1 tested all models at Q4_K_M, full quantization for baseline accuracy. The 70B spilled into system RAM and ran 8× slower than the 14B with identical accuracy. The question was whether compressing the 70B to Q3 or Q2 would change that calculus.

Round 2 added three challengers: the 70B at Q4 (reference), Q3 (81% size reduction to ~26GB), and Q2 (87% reduction to ~18GB). The baseline winners, DeepSeek and Qwen3, were re-run alongside them for direct comparison on the same hardware on the same day.

All five models scored 100% accuracy. The 70B got faster with each compression level. It still wasn't close to the 14B. The speed gap is a function of model size, not quantization level.

Finding R2-01

Compression sped it up. It didn't fix the problem.

Q4 to Q3 cut the 70B's average latency from 100.4s to 85.2s, a 15% improvement. Q3 to Q2 cut it further to 66.1s, another 22%. That's real. But DeepSeek R1 14B ran in 9.6 seconds. The 70B at maximum compression is still 7× slower. Quantization reduces how many bits represent each weight, not how many weights there are. A 70B model at Q2 still has 70 billion parameters moving through computation. The bottleneck is size, not precision.

Finding R2-02

Q2 compression didn't crack accuracy.

The 70B at Q2 scored 10/10 with zero false positives and zero false negatives. Confidence on individual cases dropped slightly (0.8–0.9 where the Q4 version reported 0.9-0.99) but the verdicts were correct every time. For this classification task, throwing away 87% of each weight's precision left the model fully capable of answering the question. Whether that holds on harder reasoning tasks is a separate question. On this one, Q2 held.

Finding R2-03

Qwen3 cold-loaded again. Consistent, not a fluke.

Case 1 timed out at 120 seconds with no response. Same cold-load behavior as Round 1. Once the model was warm, Cases 2–10 averaged 11.7 seconds each and hit 100% accuracy. This is reproducible: Qwen3's first inference from a cold start exceeds the 120-second cutoff on this hardware. The fix is simple: pre-warm the model before the first case. But in an unattended pipeline, that's a real operational consideration.

Finding R2-04

Two rounds in, DeepSeek R1 14B is the production call.

After Round 1, DeepSeek won because the 70B couldn't fit in VRAM and spilled to RAM. That felt like a hardware constraint: run the 70B on a bigger card and it might win. Round 2 tested the other side of that: compress the 70B so it fits better. Same answer. The 70B at Q2 is faster than Q4, but still 7× behind DeepSeek. The task doesn't require a bigger brain. A 14B reasoning model that fits cleanly in VRAM gives the same answer in one-seventh the time. Unless the task gets harder, the 14B wins.

Expected (R2)
Compressing the 70B to Q2/Q3 would let it fit better in VRAM and close the speed gap. At some compression level, the bigger brain would finally win.
Actual
Q4→Q3→Q2 sped the 70B from 100s to 66s. Real improvement. DeepSeek R1 14B: 9.6 seconds. The gap narrowed from 8× to 7×. Accuracy stayed 100% at every compression level, precision didn't crack. Size was still the bottleneck.
Correct Answer
Quantization reduces bits per weight, not the number of weights. A 70B at Q2 is still a 70B. The bottleneck is size, not compression.
Winner, Round 2 DeepSeek R1 14B, Again
10/10
Cases correct
9.6s
Avg latency
7×
Faster than 70B Q2
2 for 2
Rounds won

Why it won (different reason than Round 1): Round 1 verdict: the 70B spills to RAM on a 12GB GPU, and RAM is slow. Round 2 hypothesis: compress the 70B so it spills less. Round 2 result: compression helped (100s → 66s) but didn't change the outcome. The 70B at Q2 still has 70 billion parameters. The 14B has 14 billion. On identical hardware, bigger models take longer to run regardless of how efficiently you pack the numbers. VRAM spillover was a symptom, not the disease. Size is the disease.

Why this matters for the use case: Content monitoring pipelines run this classification at scan time, potentially thousands of URLs per session. At 9.6 seconds per URL, a 500-URL scan takes about 80 minutes. At 66 seconds, the same scan takes over 9 hours. For automated monitoring, latency is the product. DeepSeek gives the same answer in one-seventh the time.

The unanswered question: This task was designed to be solvable. A 14B reasoning model was always going to handle it. What if the task required more? Deeper context, ambiguous cases, multi-signal reasoning? That's where a 70B earns its weight. The right model for this classification layer is the 14B. Whether a harder layer needs the 70B remains untested.

Round 3: Complete
↓ Full results below

A Tesla V100-SXM2-32GB joined the lab. The 70B finally ran fully in VRAM at every quantization level. The speed gap closed. DeepSeek R1 14B still won, 6.1s vs 108s for the 70B Q4. Three rounds. Same verdict. Smaller is faster, and on this task, faster is better.

The V100 confirmed what two rounds of RAM spillover couldn't: VRAM was a symptom. Model size was always the disease.

Same 10-case classification task. Five models. New hardware: Tesla V100-SXM2-32GB (32GB VRAM) added to Behemoth alongside the RTX 3060. For the first time, the 70B ran fully in VRAM at all three quantization levels, no spillover, no RAM bottleneck.

Run: May 17, 2026 · Behemoth (V100 32GB + RTX 3060 12GB) · No cloud, no API calls.

Model
Accuracy
FPR
FNR
Avg Latency
DeepSeek R1 14B
14B · Q4_K_M · baseline · V100
100%
0%
0%
6.1s avg
Qwen3 14B
14B · Q4_K_M · baseline · case 1 cold-load timeout
100%
0%
0%
28.0s avg*
Llama 3.3 70B Q2
70B · Q2_K · 26GB · fully in V100 VRAM
100%
0%
0%
29.4s avg
Llama 3.3 70B Q3
70B · Q3_K_M · 34GB · spans V100 + RTX 3060
100%
0%
0%
60.2s avg
Llama 3.3 70B Q4
70B · Q4_K_M · 42GB · fully in VRAM for first time
100%
0%
0%
108.1s avg

* Qwen3 case 1 cold-load timeout excluded from average. Cases 2–9 scored.

What the V100 Changed

Rounds 1 and 2 ran on a single RTX 3060 with 12GB VRAM. The 70B at Q4 spilled heavily into system RAM. Q3 spilled less. Q2 spilled the least. All three were slower than the 14B because RAM is an order of magnitude slower than VRAM.

The V100 removed the spillover constraint entirely. The 70B Q2 (26GB) and Q3 (34GB) fit fully on the V100. The 70B Q4 (42GB) spans both cards, V100 plus the RTX 3060, but still runs entirely in VRAM. For the first time in three rounds, the 70B ran the way it was designed to.

Result: the 70B Q2 dropped from 66.1s to 29.4s. The Q3 dropped from 85.2s to 60.2s. Real improvements. Still not enough. DeepSeek R1 14B went from 9.6s to 6.1s on the faster hardware. The 14B benefited too.

Finding R3-01

VRAM was real. It wasn't the whole story.

Moving the 70B Q2 from RAM spillover to full VRAM cut its latency by 55%, 66s down to 29s. That's the VRAM effect in numbers. It's real and it's significant. But the 14B went from 9.6s to 6.1s on the same hardware upgrade. Both models benefited. The ratio barely changed. VRAM was a constraint on the 70B, but removing it exposed a deeper one: parameter count.

Finding R3-02

The 70B Q4 in full VRAM is slower than the 70B Q2 in RAM.

Round 2: 70B Q4 averaged 100.4s spilling to RAM. Round 3: 70B Q4 averaged 108.1s fully in VRAM on the V100. Running in VRAM was slightly slower than running in RAM on the 3060. The V100 has massive bandwidth but the model is 42GB spanning two cards across PCIe. For the Q4 version, the dual-GPU split introduced overhead that offset the VRAM advantage. Quantize it down and the story changes, but at Q4, bigger memory didn't help.

Finding R3-03

Three rounds. Three wins. DeepSeek R1 14B is the answer.

Round 1: hardware constraint. The 70B couldn't fit in 12GB VRAM. Round 2: compression challenge. Drop the 70B to Q2 and see if it fits and stays accurate. Round 3: remove the ceiling entirely. Run the 70B at Q4 on 32GB VRAM, fully loaded, no excuses. Same result every time. The 14B reasons through the classification task in 6 seconds. The 70B takes 108. For this specific task, 70 billion parameters is solving a problem that 14 billion already solved. The 70B earns its size on harder jobs.

Finding R3-04

The V100 is a real upgrade. Just not for this task.

Adding a Tesla V100-SXM2-32GB to the lab opened up model categories that were impossible before: 32B models fully in VRAM, 70B models without RAM spillover, Q4 quantization on the largest publicly available open-source models. None of that changed the classification verdict. But it opens the door to experiments that actually need it: longer context windows, multi-document reasoning, models above 30B parameters. Round 3 closed the Face-Off. The V100 opens the next chapter.

Expected (R3)
Removing the VRAM constraint would finally let the 70B close the gap. The RAM spillover was the root cause, fix that, and the bigger model wins.
Actual
70B Q2 dropped from 66s to 29.4s, real improvement. But DeepSeek R1 14B also dropped: 9.6s to 6.1s. Same ratio. The 70B at Q4, fully loaded in VRAM for the first time ever, averaged 108 seconds. 18× behind the 14B.
Correct Answer
VRAM was a symptom. Model size was always the disease. DeepSeek R1 14B wins 3 for 3, same accuracy, fraction of the time, fraction of the hardware cost.
Winner, Round 3 DeepSeek R1 14B, Again
10/10
Cases correct
6.1s
Avg latency
18×
Faster than 70B Q4
3 for 3
Rounds won

Why it won: Three rounds, three different hardware environments, same result. On 12GB VRAM, the 70B spilled to RAM and lost. On a 32GB V100, it ran clean and still lost. The task, classify 10 text cases as content match or non-match, is solved completely by a 14B reasoning model. No 70B adds anything except latency. At 6.1 seconds per case, DeepSeek R1 14B is the production answer.

What the V100 proved: VRAM was a real bottleneck, the 70B Q2 cut from 66s to 29s when RAM spillover was eliminated. But the 14B also got faster (9.6s to 6.1s). The 70B's architecture is the constraint, not its memory environment. More VRAM is a prerequisite for running bigger models, not a reason to run them when smaller ones work.

Shipping it: DeepSeek R1 14B on Behemoth, local inference, no API costs. The V100 gives it room to run fast. The Face-Off is closed.

Three rounds decided. Same winner every time. Now the same question with one variable changed: does precision matter? DeepSeek R1 14B won at Q4_K_M, 75% compression, 9GB. Here it runs at Q8 (50% compression, 15GB) and fp16 (full precision, 29GB). Same 10 DMCA classification cases. Same hardware. Same scoring. Only the quantization changes.

Model Quant VRAM Accuracy Latency Status
DeepSeek R1 14B Round 3 baseline Q4_K_M 9 GB 10/10 6.1s ✓ Done
DeepSeek R1 14B Q8 LATE ENTRY Q8_0 15 GB 10/10 9.1s ✓ Done
DeepSeek R1 14B fp16 LATE ENTRY fp16 29 GB 10/10 24.9s ✓ Done
FINDING

Precision didn't help. All three scored 10/10. Q4 won the ladder on speed. Q8 ran at 9.1s, 62% slower than Q4, zero accuracy gain. fp16 at 24.9s is 4.4× slower than Q4 and still 10/10. The model brain is the same across all three quantization levels. For this classification task, the information is fully preserved at Q4. Compression artifacts don't appear to exist below the threshold that would change a SAME/DIFFERENT verdict. The production answer is Q4: smallest, fastest, correct.

Note: fp16 case 1 hit 114.5s on first inference, cold-load overhead for a 29GB model. Cases 2–10 averaged ~14.5s. Full average including cold load: 24.9s.

Every test case. Every verdict. Every model's actual reasoning. Nothing cherry-picked.

Vision Track 4 image pairs × 4 models

Reference image shown left. Candidate image right. Ground truth: whether they are the same person.

PAIR 1 · easy Obama: two official portraits GROUND TRUTH: SAME PERSON
GEN 1 · dlib
✓ SAME
dist=0.318 · conf=0.97 · 10.2s
GEN 2 · InsightFace
✓ SAME
sim=0.696 · conf=0.70 · 0.96s
GEN 3 · Llama 3.2 Vision
✗ HTTP 400
refused · 95.3s
GEN 3 · Gemma 3 27B
✗ TIMEOUT
cold load · 180s
PAIR 2 · medium Obama vs Biden: different presidents, similar age GROUND TRUTH: DIFFERENT
GEN 1 · dlib
✓ DIFFERENT
dist=0.837 · 11.1s
GEN 2 · InsightFace
✓ DIFFERENT
sim=-0.068 · 0.68s
GEN 3 · Llama 3.2 Vision
✗ HTTP 400
refused · 0.5s
GEN 3 · Gemma 3 27B
✓ DIFFERENT
conf=0.99 · 109.7s
"While both are former US presidents, the reference image depicts Barack Obama and the candidate image depicts Joe Biden, who are distinct individuals."
PAIR 3 · easy Obama vs Elon Musk, clearly different GROUND TRUTH: DIFFERENT
GEN 1 · dlib
✓ DIFFERENT
dist=0.857 · 7.9s
GEN 2 · InsightFace
✓ DIFFERENT
sim=0.010 · 0.51s
GEN 3 · Llama 3.2 Vision
✗ HTTP 400
refused · 0.4s
GEN 3 · Gemma 3 27B
✓ DIFFERENT
conf=1.0 · 15.9s
"The reference image shows Barack Obama, while the candidate image shows Elon Musk, who are distinct individuals."
PAIR 4 · hard Obama portrait 2 vs Biden: harder negative GROUND TRUTH: DIFFERENT
GEN 1 · dlib
✓ DIFFERENT
dist=0.827 · 8.3s
GEN 2 · InsightFace
✓ DIFFERENT
sim=-0.049 · 0.67s
GEN 3 · Llama 3.2 Vision
✗ HTTP 400
refused · 0.5s
GEN 3 · Gemma 3 27B
✓ DIFFERENT
conf=1.0 · 17.0s
"The reference image shows Barack Obama, while the candidate image shows Joe Biden, who are distinct individuals."
Text Track 10 cases × 4 models, reasoning shown
CASE 01 · easy · MATCH leak-site-1.net: "[LEAK] Full exclusive set" with 847 files listed
DeepSeek R1 14B · 10.4s
✓ MATCH 0.95
"URL explicitly offers unauthorized downloads of Creator-A's premium content."
Qwen3 14B · 94.6s*
✓ MATCH 0.95
"URL hosts a 'leak' of premium subscription content with explicit download counts."
Gemma3 27B · TIMEOUT*
cold load
Model loading, no response in 120s.
Llama 3.3 70B · 205.3s*
✓ MATCH 0.99
"URL and snippet explicitly mention a leak site redistributing the creator's content."
CASE 02 · easy · MATCH scraper-site-2.to: "Creator-A exclusive content, complete archive"
DeepSeek R1 14B · 15.3s
✓ MATCH 0.95
"URL hosts explicit material, likely without authorization."
Qwen3 14B · 9.7s
✓ MATCH 0.95
"scraper-site-2.to is a known piracy and unauthorized content hosting platform."
Gemma3 27B · TIMEOUT*
cold load
Llama 3.3 70B · 96.5s
✓ MATCH 0.90
"Appears to be a piracy site hosting a collection of the creator's content."
CASE 03 · easy · MATCH scraper-site-3.net: "Scraped content, 1,203 files"
DeepSeek R1 14B · 10.1s
✓ MATCH 0.95
Qwen3 14B · 9.7s
✓ MATCH 0.95
Gemma3 27B · 55.6s
✓ MATCH 0.95
"Clearly indicates a scraping site hosting content from a known creator's paid platform."
Llama 3.3 70B · 64.4s
✓ MATCH 0.99
CASE 04 · medium · NO MATCH mayatorres-photography.com: professional portrait studio, same name
DeepSeek R1 14B · 6.5s
✓ NO MATCH 0.95
"Appears to be the professional photography portfolio of Maya Torres, not a content redistribution site."
Qwen3 14B · 8.5s
✓ NO MATCH 0.95
Gemma3 27B · 13.5s
✓ NO MATCH 0.95
Llama 3.3 70B · 72.4s
✓ NO MATCH 0.90
"Appears to be the creator's official professional website showcasing their portfolio."
CASE 05 · medium · NO MATCH twitch.tv: gaming clips, "No NSFW" in snippet
DeepSeek R1 14B · 11.1s
✓ NO MATCH 0.95
Qwen3 14B · 9.9s
✓ NO MATCH 0.95
Gemma3 27B · 10.8s
✓ NO MATCH 0.95
Llama 3.3 70B · 67.5s
✓ NO MATCH 0.90
CASE 06 · medium · NO MATCH deviantart.com: fan art, "all ages friendly"
DeepSeek R1 14B · 10.6s
✓ NO MATCH 0.95
Qwen3 14B · 24.5s
✓ NO MATCH 0.95
Gemma3 27B · 18.9s
✓ NO MATCH 0.95
"Fan art constitutes discussion and creative work about the creator, not redistribution."
Llama 3.3 70B · 93.4s
✓ NO MATCH 0.90
CASE 07 · medium · MATCH forum-site.com/r/requestthread: "Anyone have her full subscription set?"
DeepSeek R1 14B · 10.8s
✓ MATCH 0.95
"Thread requests leaked subscription content in a forum focused on sharing paid creator content."
Qwen3 14B · 15.7s
✓ MATCH 0.95
Gemma3 27B · 14.9s
✓ MATCH 0.95
Llama 3.3 70B · 70.0s
✓ MATCH 0.90
CASE 08 · hard · NO MATCH en.wikipedia.org: Wikipedia biographical article
DeepSeek R1 14B · 12.0s
✓ NO MATCH 0.95
Qwen3 14B · 7.6s
✓ NO MATCH 0.95
Gemma3 27B · 12.2s
✓ NO MATCH 0.95
Llama 3.3 70B · 77.9s
✓ NO MATCH 0.90
"Wikipedia is a legitimate online encyclopedia that provides factual information."
CASE 09 · hard · MATCH mirror-site-4.com: "Premium content mirrored for free access"
DeepSeek R1 14B · 11.3s
✓ MATCH 0.95
Qwen3 14B · 12.6s
✓ MATCH 0.95
Gemma3 27B · 15.2s
✓ MATCH 0.95
"URL and snippet explicitly state unauthorized mirroring of content for free access."
Llama 3.3 70B · 63.9s
✓ MATCH 0.90
CASE 10 · hard · NO MATCH creatorreviews.com: "We reviewed 50 subscription creators including Maya Torres"
DeepSeek R1 14B · 11.0s
✓ NO MATCH 0.95
"Appears to be a promotional review of subscription creators, not hosting content."
Qwen3 14B · 10.2s
✓ NO MATCH 0.95
Gemma3 27B · 13.7s
✓ NO MATCH 0.95
"A review article discussing subscription platform creators, not hosting unauthorized content."
Llama 3.3 70B · 75.1s
✓ NO MATCH 0.90

* First-case latency includes model cold-load time from disk. Subsequent cases run significantly faster once the model is resident in memory.

Round 2 · Text Track 10 cases × 5 models: DeepSeek · Qwen3 · 70B Q4 · 70B Q3 · 70B Q2

Same 10 cases as Round 1. Models shown left to right: DeepSeek R1 14B · Qwen3 14B · Llama 70B Q4 · Llama 70B Q3 · Llama 70B Q2.

CASE 01 · easy · MATCH leak-site-1.net: "[LEAK] Full exclusive set" with 847 files listed
DeepSeek R1 14B · 10.3s
✓ MATCH 0.95
"The title, URL, and snippet indicate unauthorized distribution of Creator-A's subscription content through leaks."
Qwen3 14B · 120.0s*
cold load
Model loading, no response in 120s.
70B Q4 · 305.8s*
✓ MATCH 0.99
"URL and snippet explicitly mention a 'leak' and offer downloads of the creator's exclusive content."
70B Q3 · 294.8s*
✓ MATCH 0.99
"URL and snippet explicitly mention 'leak' and 'download' of Creator-A's exclusive content."
70B Q2 · 258.7s*
✓ MATCH 0.90
"URL and snippet explicitly indicate the hosting of leaked copyrighted content from Creator-A."
CASE 02 · easy · MATCH scraper-site-2.to: "Creator-A exclusive content, complete archive"
DeepSeek R1 14B · 7.5s
✓ MATCH 0.95
"URL suggests unauthorized redistribution of exclusive creator content through a scraper site."
Qwen3 14B · 9.7s
✓ MATCH 0.95
"URL is a scraper site hosting a 'complete archive' of Creator-A's content, strongly indicating unauthorized redistribution."
70B Q4 · 77.1s
✓ MATCH 0.90
"URL and snippet explicitly mention hosting a complete archive of the creator's content."
70B Q3 · 131.6s
✓ MATCH 0.90
"URL and snippet suggest the website is hosting a complete archive of Creator-A's exclusive content."
70B Q2 · 81.3s
✓ MATCH 0.90
"URL appears to be a scraper site hosting the creator's content without authorization."
CASE 03 · easy · MATCH scraper-site-3.net: "Scraped content, 1,203 files"
DeepSeek R1 14B · 9.4s
✓ MATCH 0.95
Qwen3 14B · 11.9s
✓ MATCH 0.95
"URL hosts scraped content from Creator-A's paid subscription."
70B Q4 · 60.9s
✓ MATCH 0.99
"Site is hosting scraped content from the creator's paid subscription website."
70B Q3 · 49.7s
✓ MATCH 0.90
70B Q2 · 47.6s
✓ MATCH 0.90
CASE 04 · medium · NO MATCH mayatorres-photography.com: professional portrait studio, same name
DeepSeek R1 14B · 10.1s
✓ NO MATCH 0.95
"URL appears to be the official portfolio website of Maya Torres."
Qwen3 14B · 18.4s
✓ NO MATCH 0.95
"URL appears to be Maya Torres' official portfolio website, authorized and legitimate."
70B Q4 · 78.1s
✓ NO MATCH 0.90
"URL appears to be the creator's own official website showcasing their portfolio."
70B Q3 · 46.9s
✓ NO MATCH 0.90
"URL appears to be the creator's own official platform hosting their professional portfolio."
70B Q2 · 32.7s
✓ NO MATCH 0.80
"Search result appears to be the creator's own official portfolio website."
CASE 05 · medium · NO MATCH twitch.tv: gaming clips, "No NSFW" in snippet
DeepSeek R1 14B · 11.2s
✓ NO MATCH 0.95
"URL is from Twitch, the creator's official platform."
Qwen3 14B · 10.9s
✓ NO MATCH 0.95
70B Q4 · 63.8s
✓ NO MATCH 0.90
"URL appears to be an official Twitch page, a legitimate platform where creators host their own content."
70B Q3 · 44.5s
✓ NO MATCH 0.90
70B Q2 · 37.7s
✓ NO MATCH 0.80
"URL appears to be an official Twitch link, content hosted on the creator's own platform."
CASE 06 · medium · NO MATCH deviantart.com: fan art, "all ages friendly"
DeepSeek R1 14B · 11.5s
✓ NO MATCH 0.95
"URL is a community gallery of fan art, not unauthorized hosting of copyrighted content."
Qwen3 14B · 11.8s
✓ NO MATCH 0.95
"References a community-driven fan art gallery on DeviantArt, legitimate platform for user-generated content."
70B Q4 · 99.9s
✓ NO MATCH 0.90
"URL points to a community-driven fan art platform, not indicative of redistributing unauthorized content."
70B Q3 · 63.7s
✓ NO MATCH 0.90
"Community-driven fan art gallery on DeviantArt, transformative and non-infringing use."
70B Q2 · 38.7s
✓ NO MATCH 0.80
"Community-driven fan art gallery on a legitimate platform, not an unauthorized redistribution site."
CASE 07 · medium · MATCH forum-site.com/r/requestthread: "Anyone have her full subscription set?"
DeepSeek R1 14B · 7.9s
✓ MATCH 0.90
"Search result indicates an attempt to distribute leaked subscription content without authorization."
Qwen3 14B · 14.1s
✓ MATCH 0.90
"Forum thread seeking and discussing a leaked subscription set, suggests unauthorized distribution."
70B Q4 · 82.6s
✓ MATCH 0.90
"Title and snippet explicitly mention a 'leaked subscription set' and request for unauthorized access."
70B Q3 · 62.0s
✓ MATCH 0.90
"URL and snippet suggest a discussion about obtaining a creator's full subscription set."
70B Q2 · 35.9s
✓ MATCH 0.80
"URL and snippet suggest a forum discussion about obtaining a leaked subscription set."
CASE 08 · hard · NO MATCH en.wikipedia.org: Wikipedia biographical article
DeepSeek R1 14B · 8.7s
✓ NO MATCH 0.95
"URL is a Wikipedia page providing general information, does not host unauthorized content."
Qwen3 14B · 8.1s
✓ NO MATCH 0.95
"Wikipedia page providing general biographical information, not an unauthorized host."
70B Q4 · 79.7s
✓ NO MATCH 1.00
"Wikipedia is a general knowledge website that provides biographical information."
70B Q3 · 46.4s
✓ NO MATCH 1.00
"Wikipedia is an official encyclopedia, not a site known for hosting unauthorized copyrighted content."
70B Q2 · 53.5s
✓ NO MATCH 0.80
"Wikipedia page, an encyclopedia entry about the creator, not a hosting or redistribution site."
CASE 09 · hard · MATCH mirror-site-4.com: "Premium content mirrored for free access"
DeepSeek R1 14B · 10.0s
✓ MATCH 0.95
"Search result explicitly mentions 'mirrored for free access' of premium content, unauthorized redistribution."
Qwen3 14B · 10.7s
✓ MATCH 0.95
"URL hosts a 'mirror-site' offering 'Premium content from Creator-A' for free, unauthorized redistribution."
70B Q4 · 87.5s
✓ MATCH 0.99
"Site is hosting the creator's premium content without authorization, using the word 'mirrored.'"
70B Q3 · 58.3s
✓ MATCH 0.90
"URL and snippet explicitly mention 'mirrored' and 'free access' to premium content, unauthorized hosting."
70B Q2 · 38.2s
✓ MATCH 0.90
"URL and snippet explicitly indicate the site is mirroring and redistributing the creator's premium content."
CASE 10 · hard · NO MATCH creatorreviews.com: "We reviewed 50 subscription creators including Maya Torres"
DeepSeek R1 14B · 9.9s
✓ NO MATCH 0.95
"Search result appears to be a review or promotional article, not hosting unauthorized content."
Qwen3 14B · 9.4s
✓ NO MATCH 0.95
"Promotional review roundup of subscription creators, not unauthorized hosting or redistribution."
70B Q4 · 68.3s
✓ NO MATCH 0.90
"Search result appears to be a review article discussing multiple creators, not hosting content."
70B Q3 · 54.1s
✓ NO MATCH 0.90
"URL and snippet indicate a review article discussing multiple creators, not hosting unauthorized content."
70B Q2 · 37.2s
✓ NO MATCH 0.80
"Review article discussing multiple creators, not hosting or redistributing unauthorized content."

* Case 1 latency includes cold-load time for Qwen3, 70B Q4, Q3, and Q2. Warm inference is 3–10× faster on subsequent cases.

← Back to AI Lab Follow on LinkedIn for results →