PROJEKTYPROJECTS
saiko.cz · benchmark

Benchmarky AI modelů v kódováníAI Models Coding Benchmarks

Jak dobře dnešní AI modely hledají chyby v cizím kódu? Každý model dostane stejnou službu — zkracovač odkazů — napsanou v sedmi jazycích, plus jeden návrhový dokument, a do všeho jsou nastražené známé chyby. Model dělá revizi, deterministický porovnávač počítá, kolik nastražených chyb našel. Žádný posuzovatel, žádný vkus. Data pocházejí z otevřeného nástroje fixpoint, který modely používá jako panel revizorů kódu.How well do today's AI models find defects in code they did not write? Every model gets the same service — a link shortener — written in seven languages, plus one design document, all of it with known, planted defects. The model reviews it; a deterministic matcher counts how many planted defects it found. No judge, no taste. The data comes from fixpoint, an open-source tool that runs models as a code-review panel.

ModelůModels
25
CílůTargets
8 7 jazyků + návrh7 languages + design
Nastražených chybPlanted defects
484
Revizních sezeníReview sessions
587
MěřenoMeasured
2026-08-20 – 2026-09-07

Co se měříWhat is measured

Model pracuje jako revizor kódu: dostane celý projekt a tři revizní „čočky" — chyby, souběžnost, bezpečnost (u návrhového dokumentu dvě: selhání a data). Bod dostane za každou nastraženou chybu, kterou pojmenuje ve správném souboru, na správných řádcích a správnými slovy.The model works as a code reviewer: it gets the whole project and three review lenses — bugs, concurrency, security (two for the design document: failure and data). It earns a point for every planted defect it names in the right file, at the right lines, in the right words.

Skóre je součet za všech 8 cílů, 484 bodů celkem. Nikdo nemá plný počet a tak to má být — zajímavá je vzdálenost k nejlepšímu, ne ke stu procentům.The score is the sum over all 8 targets, 484 points in total. Nobody scores full marks, by design — what matters is the distance to the best, not to 100%.

Stejná služba, sedm jazykůOne service, seven languages

Go, Rust, Java, TypeScript, C#, C++ a Python. Držet stejnou doménu a měnit jen jazyk dělá z jazyka jedinou proměnnou: model, který najde obrácenou kontrolu expirace v Go a mine ji v Rustu, selhává na jazyce, ne na typu chyby.Go, Rust, Java, TypeScript, C#, C++ and Python. Holding the same domain and changing only the language makes the language the one variable: a model that finds the inverted expiry check in Go and misses it in Rust is failing at the language, not at the defect class.

Část chyb je paralelní (tatáž logická chyba ve všech jazycích), část jen pro daný jazyk — třeba unwrap() na prázdném Option, zamčení ve špatném pořadí nebo nedosažitelná podmínka, kterou TypeScript odhalí už při kompilaci.Some defects are parallel (the same logical bug in every language), some are language-only — an unwrap() on an absent Option, a lock-order inversion, or an always-true condition that TypeScript rejects at compile time.

Jedna proměnná, žádný posuzovatelOne variable, no judge

Každý model běží ve stejném harnessu se stejnými produkčními prompty nad stejnými zmrazenými cíli. Bodování dělá porovnávač: soubor, okno řádků, klíčová slova. Jedno zjištění se počítá nejvýš jednou; zjištění, které zabalí dvě chyby do jedné věty, dostane jeden bod.Every model runs in the same harness with the same production prompts over the same frozen targets. Scoring is a matcher: file, line window, keywords. One finding is credited at most once; a finding that bundles two defects into one sentence earns one point.

Skóre z jednoho opakování je vzorek, ne rozsudek: i nejlepší model najde chybu v jednom běhu a v dalším ne. Tabulka níže je jedno opakování na model.A single-repeat score is a sample, not a verdict: even the best model finds a defect in one run and not the next. The table below is one repeat per model.

Co stojí jeden nalezený bodWhat one found defect costs

Tokeny a čas jsou skutečné; cena je z veřejných ceníků každé cesty. $ jsou peníze účtované kartě (OpenRouter), ~$ je cena nominální — cesta účtuje předplatné, ne tokeny, a číslo říká, kolik by tentýž běh stál za katalogové sazby. Jen tak lze srovnat sedadlo placené předplatným se sedadlem placeným kredity.Tokens and time are real; the price comes from each route's published rate card. $ is money billed to a card (OpenRouter), ~$ is notional — the route bills a plan, not tokens, and the figure is what the same run would cost at list rates. It is the only way to compare a seat paid by subscription with one paid in credits.

Selhání kontraktu — výstup, který nejde přečíst — je diskvalifikace bez ohledu na skóre: v panelu spálí celé kolo. Čas váží stejně jako tokeny: kolo panelu běží tempem nejpomalejšího revizora.A contract failure — output that cannot be parsed — disqualifies regardless of score: in a panel it burns a whole round. Wall clock matters as much as tokens: a panel round runs at the pace of its slowest reviewer.

PořadíStandings

Seřazeno podle skóre; kliknutím na hlavičku přeřadíš. Jedno opakování na model.Ranked by score; click a header to re-sort. One repeat per model.

#ModelModelCestaRouteSkóreScoreÚspěš.RecallTokenyTokensBodů/MtokPts / MtokCenaTotal $Za bodPer pointČas (s)Wall (s)ChybErrMěřenoMeasured
1
claudezákladbaseline
claude-opus-5 (high)
CLICLI
sub (claude)
376/484
78%354,0481062~$8.61~$0.0233,958008-20 … 2026-09-01
2
claude-opus-5
AnthropicAnthropic
sub (claude)
373/484
77%355,0411051~$8.84~$0.0244,15202026-09-01
3
claude-fable-5-1
AnthropicAnthropic
sub (claude)
365/484
75%303,6151202~$13.65~$0.0373,504009-01 … 2026-09-02
4
qwen/qwen3.8-max
OpenRouterOpenRouter
credits
331/484
68%465,715711$6.35$0.01911,266008-20 … 2026-09-01
5
kimi-k3:cloud
ollama cloudollama cloud
sub (ollama)
319/484
66%1,818,863175~$7.58~$0.0242,17902026-09-02
6
qwen/qwen3.8-27b
OpenRouterOpenRouter
credits
314/484
65%1,939,356162$2.48$0.00812,930008-20 … 2026-09-01
7
glm-5.3:cloud
ollama cloudollama cloud
sub (ollama)
313/484
65%4,706,91667~$7.31~$0.0232,540008-31 … 2026-09-01
8
nemotron-3-ultra:cloud
ollama cloudollama cloud
sub (ollama)
310/484
64%5,937,43652~$1.66~$0.00520,31612026-09-02
9
glm-5.3-flash:cloud
ollama cloudollama cloud
sub (ollama)
304/484
63%4,717,63464~$0.78~$0.0032,209008-28 … 2026-09-01
10
codexzákladbaseline
gpt-5.6-sol (high)
CLICLI
sub (chatgpt)
298/484
62%569,942523~$8.36~$0.0286,810008-20 … 2026-09-01
11
glm-5.2:cloud
ollama cloudollama cloud
sub (ollama)
278/484
57%3,596,25777~$5.72~$0.0213,94802026-09-01
12
claude-fable-5
AnthropicAnthropic
sub (claude)
277/484
57%298,667928~$13.39~$0.0483,65302026-09-01
13
x-ai/grok-4.6
OpenRouterOpenRouter
credits
277/484
57%1,427,795194$6.00$0.0227,955008-20 … 2026-09-01
14
deepseek-v4-pro:cloud
ollama cloudollama cloud
sub (ollama)
270/484
56%3,546,23876~$2.83~$0.0102,55102026-09-01
15
gpt-6-astra-xhigh
gpt-6-astra (xhigh)
CLICLI
sub (chatgpt)
270/484
56%607,708444~$14.94~$0.0555,61702026-09-05
16
claude-opus-4-8
AnthropicAnthropic
sub (claude)
268/484
55%254,6301053~$6.04~$0.0232,91202026-09-01
17
gpt-6-astra
(high)
CLICLI
sub (chatgpt)
265/484
55%533,834496~$10.58~$0.0403,600009-05 … 2026-09-07
18
minimax-m3:cloud
ollama cloudollama cloud
sub (ollama)
251/484
52%6,569,97838~$4.56~$0.0186,00322026-09-01
19
deepseek-v4-flash:0731-cloud
ollama cloudollama cloud
sub (ollama)
249/484
51%4,499,46055~$1.19~$0.0056,80002026-09-02
20
claude-sonnet-5
AnthropicAnthropic
sub (claude)
245/484
51%447,211548~$4.89~$0.0204,31302026-09-05
21
kimi-k2.7-code:cloud
ollama cloudollama cloud
sub (ollama)
242/484
50%1,561,494155~$2.54~$0.0102,87602026-09-01
22
gpt-oss:120b-cloud
ollama cloudollama cloud
sub (ollama)
236/484
49%8,458,31428~$1.41~$0.0063,53302026-09-02
23
gpt-5.6-terra
(high)
CLICLI
sub (chatgpt)
221/484
46%612,382361~$3.04~$0.0142,89602026-09-07
24
qwen3.5:397b-cloud
ollama cloudollama cloud
sub (ollama)
186/484
38%2,376,51878~$1.66~$0.0091,18702026-09-02
25
gemma4:31b-cloud
ollama cloudollama cloud
sub (ollama)
156/484
32%4,444,30235~$0.66~$0.0041,59802026-09-01

Úspěšnost podle cíleRecall per target

Skóre nahoře je součet těchto sloupců — a právě součet schová cíl, na kterém je slabé celé pole. Poslední řádek je medián pole.The score above collapses these columns into one number, which is what hides a target the whole field is weak on. The last row is the field median.

ModelModelgodesigncppcsharpjavapythonrusttypescript
claude
77% 43/5659% 20/3480% 51/6475% 51/6875% 52/6977% 51/6683% 53/6487% 55/63
claude-opus-5
75% 42/5647% 16/3480% 51/6476% 52/6880% 55/6974% 49/6683% 53/6487% 55/63
claude-fable-5-1
71% 40/5644% 15/3477% 49/6475% 51/6877% 53/6979% 52/6681% 52/6484% 53/63
qwen/qwen3.8-max
66% 37/5656% 19/3477% 49/6463% 43/6864% 44/6973% 48/6669% 44/6475% 47/63
kimi-k3:cloud
73% 41/5641% 14/3472% 46/6471% 48/6864% 44/6959% 39/6664% 41/6473% 46/63
qwen/qwen3.8-27b
68% 38/5644% 15/3478% 50/6463% 43/6868% 47/6964% 42/6655% 35/6470% 44/63
glm-5.3:cloud
70% 39/5641% 14/3459% 38/6465% 44/6871% 49/6973% 48/6661% 39/6467% 42/63
nemotron-3-ultra:cloud
57% 32/5647% 16/3473% 47/6465% 44/6868% 47/6964% 42/6661% 39/6468% 43/63
glm-5.3-flash:cloud
71% 40/5632% 11/3467% 43/6466% 45/6864% 44/6968% 45/6655% 35/6465% 41/63
codex
70% 39/5638% 13/3466% 42/6465% 44/6864% 44/6959% 39/6656% 36/6465% 41/63
glm-5.2:cloud
59% 33/5641% 14/3463% 40/6456% 38/6861% 42/6959% 39/6655% 35/6459% 37/63
claude-fable-5
73% 41/5635% 12/3452% 33/6453% 36/6855% 38/6973% 48/6652% 33/6457% 36/63
x-ai/grok-4.6
57% 32/5632% 11/3461% 39/6454% 37/6855% 38/6962% 41/6659% 38/6465% 41/63
deepseek-v4-pro:cloud
52% 29/5644% 15/3459% 38/6451% 35/6861% 42/6958% 38/6652% 33/6463% 40/63
gpt-6-astra-xhigh
57% 32/5641% 14/3470% 45/6446% 31/6849% 34/6964% 42/6655% 35/6459% 37/63
claude-opus-4-8
55% 31/5635% 12/3458% 37/6454% 37/6864% 44/6961% 40/6650% 32/6456% 35/63
gpt-6-astra
63% 35/5641% 14/3466% 42/6441% 28/6858% 40/6961% 40/6645% 29/6459% 37/63
minimax-m3:cloud
66% 37/5638% 13/3459% 38/6446% 31/6854% 37/6955% 36/6644% 28/6449% 31/63
deepseek-v4-flash:0731-cloud
50% 28/5626% 9/3450% 32/6451% 35/6848% 33/6962% 41/6644% 28/6468% 43/63
claude-sonnet-5
50% 28/5624% 8/3452% 33/6451% 35/6864% 44/6956% 37/6645% 29/6449% 31/63
kimi-k2.7-code:cloud
57% 32/5644% 15/3447% 30/6450% 34/6854% 37/6942% 28/6652% 33/6452% 33/63
gpt-oss:120b-cloud
41% 23/5626% 9/3455% 35/6456% 38/6859% 41/6942% 28/6648% 31/6449% 31/63
gpt-5.6-terra
50% 28/5626% 9/3455% 35/6440% 27/6842% 29/6948% 32/6641% 26/6456% 35/63
qwen3.5:397b-cloud
30% 17/5635% 12/3444% 28/6438% 26/6845% 31/6938% 25/6641% 26/6433% 21/63
gemma4:31b-cloud
30% 17/5629% 10/3438% 24/6429% 20/6843% 30/6929% 19/6630% 19/6427% 17/63
medián polefield median
59%41%61%54%61%61%55%63%

! označuje buňku, jejíž běh přišel o jednu čočku kvůli selhání kontraktu: úspěšnost je podhodnocená, ne nízká, a do mediánu se nepočítá. Řádek podbarvený červeně má aspoň jedno selhání kontraktu.marks a cell whose run lost a lens to a contract failure: its recall is deflated, not low, and it is left out of the median. A red-tinted row has at least one contract failure.

Co benchmark neměří: jedno kolo nad známými chybami. Skutečná revize je vícekolová a hledá chyby, které nikdo předem nenastražil. Model, který je tu silný, nemusí být nejlepším členem panelu — ten se kupuje za to, co najde navíc oproti ostatním, ne za samostatné skóre.What the bench does not measure: one round over known defects. Real review is multi-round and hunts defects nobody planted. A model that is strong here is not automatically the best panel member — a seat is bought for what a model finds on top of the others, not for its solo score.

Ceny jsou z ceníků platných v den měření; cesty přes předplatné (Claude, ChatGPT, ollama cloud) účtují limity, ne tokeny, takže jejich ~$ je srovnávací číslo, nikoli faktura.Prices are from the rate cards current on the day of measurement; subscription routes (Claude, ChatGPT, ollama cloud) meter quotas, not tokens, so their ~$ is a comparison figure, not an invoice.