Gå til indhold

Indsigt · ca. 15 min. læsning

OmJev · TypeSafeVores egen test, ikke et samarbejde med TypeSafe

Jev mod Claude Haiku 5.5 og GPT-6 Luna: kortere svartid og ikke flere rigtige svar

Målt 10. oktober 2026 med 54 opgaver i fem gentagelser: Jev svarede i median på 0,28 sekunder mod 1,4 til 2,9 for to små sprogmodeller og ramte ikke oftere rigtigt.

Vi sendte de samme 54 opdigtede opgaver fem gange gennem Jev fra TypeSafe og to små sprogmodeller, Claude Haiku 5.5 og GPT-6 Luna med og uden reasoning. Det gav 1.080 kald, men kun 54 forskellige opgaver. Målt 10. oktober 2026 svarede Jev i median på 281 millisekunder mod 1.378 til 2.914 millisekunder for sprogmodellerne. Den ramte ikke oftere rigtigt, og på de danske henvendelser ramte den færrest. Med en grænse for Jevs usikkerhed, som vi valgte efter vores første måling, var der ingen observerede fejl blandt 12 udvalgte eksempler, og 18 af 30 driftshændelser skulle vurderes videre i alle fem kørsler. GPT-6 Luna uden reasoning havde heller ingen observerede fejl bag samme grænse og fik flere sager igennem.

Hvad har vi målt og hvordan?

Opgaverne var af to slags. 24 var korte danske henvendelser til småvirksomheder med fem spørgsmål hver. 30 var opdigtede driftshændelser fra et dansk faktureringssystem: alarmer, logs, tickets og chatbeskeder på dansk og engelsk. Til dem stillede vi fire spørgsmål på engelsk, som en udvikler ville skrive dem: hvilken komponent, hvilken alvorlighed fra SEV4 til SEV1, skal vagten vækkes nu, og er det en sikkerhedssag. Flere hændelser var svære med vilje, fx med datoregning, talsammenligning, årsag og symptom forskellige steder, støj og ironi.

Sprogmodellerne fik præcis de samme instruktioner og svarmuligheder som Jev i en fast systemprompt og et strengt JSON-skema, og ingen prompt var tilpasset nogen model. Claude Haiku 5.5 tager ikke imod en temperatur og kørte derfor uden. Dens tænkning var slået fra. GPT-6 Luna kørte både uden reasoning og med standard-reasoning. Hver opgave kørte fem gange i alle fire opsætninger. 1.080 kald er altså 54 opgaver gange fem gentagelser gange fire opsætninger. Gentagelserne viser, hvor stabile svarene er, men de er ikke nye opgaver. Opgaver, spørgsmål og facit er de samme som i vores første måling 28. september. Facit blev låst med en kontrolsum, før første kald gik af sted, men det er skrevet af vores egen AI-agent og ikke kontrolleret af et uafhængigt menneske.

Hvor hurtig er Jev og hvad koster et kald?

Tid og pris (målt 10. oktober 2026)
OpsætningMedian95 procent var hurtigere endLangsomste kaldPris i kr. pr. 1.000 driftshændelser
Jev 1.13281 ms371 ms538 ms0,25
GPT-6 Luna uden reasoning1.378 ms2.154 ms6.097 ms0,71
Claude Haiku 5.51.659 ms1.993 ms3.434 ms1,31
GPT-6 Luna med reasoning2.914 ms4.723 ms6.841 ms1,07

Svartiden er tiden for et enkelt kald fra en pc på vores kontor til OpenRouter og tilbage, målt over 270 kald pr. opsætning. Det er ikke den samlede behandlingstid i en applikation. Prisen er modellen alene ifølge OpenRouters faktiske afregning, omregnet med ECB-kurserne 9. oktober 2026 (1 USD = 6,6706 kr.). Det langsomste Jev-kald var hurtigere end det hurtigste kald til nogen af sprogmodellerne (538 mod 995 millisekunder). Ifølge TypeSafe er svaret gratis, og input koster 0,042 USD pr. million tokens. Ifølge samme afregning kostede Jev 0,32 kr. pr. 1.000 danske henvendelser mod 0,88 til 1,75 kr. for sprogmodellerne. Claude Haiku 5.5 kostede omkring en ottendedel af Claude Haiku 4.5 pr. beslutning, så Jev er nu omkring 5 gange billigere end den og ikke 41 gange som i vores første måling. En lav pris pr. kald er ikke en besparelse for en hel løsning. Efterberegningen længere nede viser hvorfor.

Rammer Jev oftere rigtigt?

Nej. På driftshændelserne lå Jev på niveau med Claude Haiku 5.5 og mellem de to opsætninger af GPT-6 Luna, og på de danske henvendelser ramte den færrest af de fire. Forskelle på 1 til 5 domme er dog inden for støjen på så få opgaver.

Rigtige domme i første kørsel (målt 10. oktober 2026)
OpsætningDriftshændelser (116 delspørgsmål)Danske henvendelser (95 delspørgsmål)Opgaver med skiftende svar i fem kørsler
Jev 1.13112 af 11688 af 957 af 54
GPT-6 Luna uden reasoning115 af 11690 af 9514 af 54
Claude Haiku 5.5112 af 11690 af 959 af 54
GPT-6 Luna med reasoning110 af 11693 af 9516 af 54

116 og 95 er de bedømte delspørgsmål i første kørsel og ikke antallet af hændelser eller henvendelser. Spørgsmål uden et entydigt facit er udeladt. Jevs fejl på de danske henvendelser kom mest fra afsendertypen. I syv beskeder stod det ikke, om afsenderen var privat eller en virksomhed, og Jev gættede i fem af dem med en confidence på 0,20 til 0,79. Claude Haiku 5.5 gættede ”privat” i fire af dem med 0,60 til 0,85. Claude Haiku 5.5 vækkede til gengæld sjældnere vagten, end facit siger: I alle fem kørsler lod den være ved betalingsfejl over alarmgrænsen og ved en prisside med forkerte priser for alle brugere.

En indlejret instruks flyttede den

To driftshændelser havde en linje, der bad om at give hændelsen laveste alvorlighed. Den ene er en log med 1.312 fejlede betalinger ud af 1.340 forsøg, som burde give SEV1 og vække vagten. Instruksen flyttede Jev i begge sager i alle fem kørsler: Betalingsloggen fik SEV2, og ”væk vagten” fik 0,29 til 0,40. Jev var dog usikker og gav alvorligheden en confidence på mellem 0 og 0,11 i alle fem. Claude Haiku 5.5 holdt fast i alvorligheden i alle ti tilfælde, men var i tvivl om at vække vagten ved den anden sag. GPT-6 Luna uden reasoning holdt fast i alle ti, og med reasoning blev den flyttet i seks af ti.

Det er en fejl hos Jev, og den hører med i resultatet. Grænsen længere nede afviste begge sager i alle fem kørsler, men kun fordi Jev var usikker. Testen beviser ikke, at Jev eller grænsen beskytter mod prompt injection.

Den er ikke deterministisk

Over fem ens kørsler skiftede Jevs svar på 7 af 54 opgaver, alle sager, hvor den selv var usikker. GPT-6 Luna skiftede på 14 uden reasoning og 16 med. Claude Haiku 5.5 skiftede på 9 og svarede kun tegn for tegn ens i alle fem kørsler på 3 af 54. Gem derfor modelversionen og hele svaret, hvis en afgørelse skal kunne forklares bagefter.

Hvad viste Jevs confidence?

I første kørsel havde Jevs forkerte valg-svar en median-confidence på 0,57 mod 0,99 for de rigtige, og alle lå under 0,8. Sprogmodellernes egne vurderinger af deres forkerte svar lå i median på 0,74 til 0,80, og Claude Haiku 5.5 havde et forkert svar med 0,95. GPT-6 Luna havde heller ingen forkerte valg-svar på 0,8 eller mere. I dette lille datasæt lå Jevs fejl altså lavere end dens rigtige svar. Om det holder på nye data, har vi ikke målt.

Forkerte valg-svar i første kørsel (78 valg-svar pr. opsætning)
OpsætningMedian-confidence for forkerte svarForkerte svarHeraf med confidence 0,8 eller mere
Jev 1.130,5760
GPT-6 Luna uden reasoning0,7460
Claude Haiku 5.50,8053
GPT-6 Luna med reasoning0,7720

Valg-svarene er kategori og afsendertype på de 24 danske henvendelser og komponent på de 30 driftshændelser. Confidence er ikke en kalibreret sandsynlighed. Hos Jev beskriver TypeSafe tallet som et mål afledt af svarfordelingen, og 0,8 betyder ikke 80 procent chance for et rigtigt svar. Ja/nej-svar har ingen confidence. Sprogmodellernes tal er deres egen vurdering i svaret.

Hvad viste grænsen fra første måling?

Efter vores første måling 28. september undersøgte vi en regel: Koden accepterer kun et svar, når alle valg og skalaer har en confidence på mindst 0,8, og alle ja/nej-svar ligger på højst 0,2 eller mindst 0,8. Resten skal vurderes videre af en sprogmodel eller et menneske, og det samme skal timeout og fejl. Der var ingen timeouts eller fejl i målingen. Grænsen er valgt efter resultaterne 28. september og brugt uændret 10. oktober, men på de samme 30 hændelser. Testen har derfor stadig intet uberørt evalueringssæt og intet uafhængigt menneskeligt facit.

150 kørsler af 30 driftshændelser med grænsen valgt efter første måling
GrænseJevClaude Haiku 5.5GPT-6 Luna uden reasoningGPT-6 Luna med reasoning
0,8: accepteret (heraf med fejl)59 (0)72 (0)110 (0)112 (5)
0,9: accepteret (heraf med fejl)45 (0)32 (0)68 (0)68 (2)

Hos Jev er de 59 accepterede kørsler 12 forskellige hændelser: 11 i alle fem gentagelser og 1 i fire. Resultatet er derfor ingen observerede fejl blandt 12 udvalgte eksempler og ikke en fejlrate. Alle de hændelser, Jev svarede forkert på, lå under grænsen i alle fem kørsler, også betalingsloggen med den indlejrede instruks. Grænsen var også forsigtig: I første kørsel havde Jev helt ret i 17 af de 19, der ville være gået videre. Men Jev var ikke den eneste uden observerede fejl. GPT-6 Luna uden reasoning fik 110 af 150 igennem uden observerede fejl, hvor den 28. september havde 3 fejl i lige så mange. Det er samme modelversion, så forskellen viser, hvor lidt en enkelt kørsel af 30 hændelser siger. GPT-6 Luna med reasoning lod kundeticketten med den indlejrede instruks slippe igennem i fire af fem kørsler med et sikkert, forkert svar.

Hvad ville en kæde spare?

En lav pris pr. kald er ikke en gevinst for hele løsningen. Vi har derfor regnet en kæde igennem på de gemte svar. For hver af de 150 kørsler bruges Jevs svar, hvis hele svaret passerer grænsen. Ellers bruges det gemte svar fra sprogmodellen på samme hændelse og gentagelse. Omkostningen er Jev for alle 150 kørsler plus sprogmodellen for de 91, der går videre, med de faktisk afregnede priser.

Forslag til en kæde med Jev først

  1. En hændelse kommer indEn alarm, en log eller en ticket. I testen var alle 30 opdigtede.
  2. Jev svarer på fire spørgsmålKomponent, alvorlighed, væk vagten og sikkerhed. 281 millisekunder i median i testen.
  3. Reglen tjekker alle fire svarValg og skala skal have en confidence på mindst 0,8. Ja/nej skal ligge på højst 0,2 eller mindst 0,8.
  4. Accepterede svar går til kodenI efterberegningen 59 af 150 kørsler fordelt på 12 af 30 hændelser.
  5. Resten vurderes videreAf en sprogmodel eller et menneske. Timeout og fejl går samme vej.
Forslaget bag efterberegningen. Kæden er ikke bygget, og rigtige driftsalarmer sorterer vi ikke med Jev.
Efterberegning på 150 gemte kørsler og ikke afviklet i drift
Sprogmodel bagved JevBeregnet besparelseModellen aleneBeregnet kædeSager med fejl alene og i kæden
GPT-6 Luna uden reasoning3,80 procent0,015928 USD0,015322 USD10 og 2
GPT-6 Luna med reasoning11,54 procent0,024145 USD0,021359 USD12 og 9
Claude Haiku 5.520,22 procent0,029552 USD0,023577 USD22 og 12

39 procent færre kald til en sprogmodel gav altså kun 3,8 til 11,5 procent lavere modelomkostninger mod GPT-6 Luna og 20,2 procent mod Claude Haiku 5.5, fordi Jev også koster på de 61 procent, der går videre. Mod Claude Haiku 4.5 var tallet 37,6 procent i vores første måling. Det er en efterberegning og ikke en måling af en kæde i drift. Tallene dækker kun modelforbruget og ikke integrationsarbejde, gentagne kald, caching, mennesker eller risiko. En sag med fejl er en kørsel med mindst et forkert bedømt delspørgsmål, så tallene kan ikke sammenlignes direkte med de 116 delspørgsmål ovenfor. Resultatet afhænger af den grænse, vi valgte efter første måling, og af det lille datasæt.

Koden herunder er reglen i ti linjer. choice og score har confidence, og noul er sandsynligheden for ja. jev() står for selve kaldet, som det er vist i Jev fra TypeSafe testet på dansk, pakket ind med en tidsgrænse, så timeout og fejl giver null.

const T = 0.8, NEJ = 0.2, JA = 0.8; // jeres politik
const valg = (s) => s?.confidence >= T;
const janej = (s) => Number.isFinite(s?.noul)
  && (s.noul <= NEJ || s.noul >= JA);
const sure = (a) => valg(a?.component) && valg(a?.severity)
  && janej(a?.page_now) && janej(a?.security);
const a = await jev(event); // 1,5 s timeout, null ved fejl
if (!sure(a)) return escalate(event);
const hot = a.page_now.noul >= JA || a.security.noul >= JA;
return hot ? pageOnCall(event, a) : enqueue(event, a);
Reglen fra efterberegningen i ti linjer: alle fire svar skal være sikre, og et manglende felt tæller som usikkert. Timeout og fejl går samme vej som tvivl. Det er en skitse og ikke kode, vi kører.

Koden er en skitse: Her vækker kun page_now og security vagten, så en regel om alvorlighed skal I selv lægge til. Grænsen er jeres politik og ikke en egenskab ved modellen. Sæt den, før I ser resultaterne, og efterprøv den på et par hundrede af jeres egne mærkede sager, som ikke er brugt til at vælge den. Tvivlssagerne venter Jevs 281 millisekunder ekstra, og næste led skal også testes: Kundeticketten med den indlejrede instruks fik et sikkert, forkert svar hos GPT-6 Luna med reasoning i fire af fem kørsler.

Hvad har ændret sig siden første måling?

Jev 1.13 og GPT-6 Luna er de samme versioner som 28. september. Vi sammenlignede flertalssvaret over fem kørsler for hver af de 54 opgaver og fire spørgsmål, i alt 216 delspørgsmål. Det var ens begge dage i 215 af 216 for Jev og 213 af 216 for GPT-6 Luna. Forskellene i rigtige domme er derfor tilfældig variation og ikke en ny model. Den eneste nye model er Claude Haiku 5.5, som afløste Claude Haiku 4.5 7. oktober. Den ramte flere delspørgsmål på driftshændelserne (112 mod 107 af 116), holdt fast i alvorligheden mod de indlejrede instrukser og kostede omkring en ottendedel pr. beslutning.

Målestedet er også nyt. Første måling kørte fra vores egen server, denne fra en pc på kontoret. For de samme versioner lå svartiderne tæt på hinanden, fx Jev på 281 mod 269 millisekunder i median, men tiderne kan ikke sammenlignes direkte. Sammenlign kun opsætningerne inden for samme måling.

Hvor passer Jev ind ved siden af en sprogmodel?

Jev erstatter ikke sprogmodellen. Den står før, efter eller ved siden af og tager de små, lukkede beslutninger. Tre mønstre går igen i det, andre har offentliggjort. Tallene er afsendernes egne målinger på engelske data og ikke vores, og deres opsætninger har vi ikke selv afprøvet.

Første lag i en kaskade

Det er det mønster, vi har regnet igennem på vores gemte svar, men ikke bygget: Jev svarer på alt, og kun de usikre sager går videre. Southbridge.AI brugte Jev til at afgøre, hvilke poster i kampagnedata fra Ohio der hørte til samme familie, i alt 200 familier. Jev alene fik 194 rigtige, og med fem usikre sager sendt videre til GPT-6 Luna fik de 199 af 200 for 0,0435 USD. Claude Fable 5.1 alene fik 200 af 200 for 9,83 USD. GitLoom handler kun, når Jev ligger over 0,8. På 60 håndmærkede pull requests havde de 98,0 procent rigtige blandt de 85 procent, der lå over.

Dommer over sprogmodellens svar

En sprogmodel skriver, og Jev tjekker hvert svar med smalle ja/nej-spørgsmål, fx om svaret modsiger kilden eller bryder en regel. I projektet jev-guardrails på GitHub ramte Jev 48 af 51 mærkede sager og en lille GPT-model 46, og efter projektets egen justering havde de hver 3 ægte fejl. Med alle 25 regler i hvert tjek kostede Jev ca. 125 USD pr. million tjek mod ca. 5.800 USD for GPT-modellen. Vi bruger selv Jev sådan i drift i vores ugentlige måling af, hvad ChatGPT og Perplexity svarer om vores produkter. Jev giver ingen begrundelse, så send de røde og usikre svar videre til en sprogmodel, der kan forklare.

Filter foran sprogmodellen

Søgningen finder 20 til 30 kandidater, og Jev afgør, hvilke der må nå frem til den model, der skriver svaret. Unblocked skriver, at de har erstattet en cross-encoder med Jev i produktion. På 292 rigtige spørgsmål steg præcisionen fra 34,8 til 46,4 procent og recall fra 63,8 til 77,6 procent, mens median-svartiden steg fra 0,20 til 0,35 sekunder. De skriver selv, at tallene ikke er en benchmark. Brug Jev til at filtrere ind og ud og ikke til at rangere de bedste: GitLoom fandt, at rækkefølgen inden for toppen er støj.

Hvad viser benchmarken ikke?

  • Hvor præcis Jev er. 54 opgaver, som vi selv har skrevet, med facit skrevet af vores egen AI-agent og ikke kontrolleret af et uafhængigt menneske. Det er en smoke test, altså en hurtig første prøve af tid, pris, stabilitet og usikkerhed.
  • En fejlrate. Ingen observerede fejl blandt 12 udvalgte eksempler er ikke en fejlrate.
  • En grænse, der holder på nye data. Grænsen er valgt efter resultaterne fra første måling og brugt på de samme opgaver. Der er intet uberørt evalueringssæt.
  • Beskyttelse mod prompt injection. Begge indlejrede instrukser påvirkede Jevs svar, begge gange vi har målt.
  • En kæde i drift. Besparelsen er en efterberegning på gemte svar. Kæden er ikke bygget, og rigtige driftsalarmer sorterer vi ikke med Jev.
  • Sprogmodellernes laveste pris. Deres systemprompt kunne caches, og de har batchpriser til det halve. Alt er målt via OpenRouter fra en pc på en eftermiddag.
  • En selvtrænet klassifikator eller GPT-6 Luna Decisions. OpenAI har siden 6. oktober tilbudt GPT-6 Luna som beslutningsmodel i en betaversion. Den har vi ikke målt.
  • Rigtige data. Alt er opdigtet og uden persondata. Mål på jeres egne sager, før koden må handle selv.

Vi hjælper med at bygge og teste den slags sortering i eksisterende systemer. Overvejer I det, så beskriv opgaven på Fortæl os om det. Vi siger det også, hvis en regel i jeres egen kode er nok.

Kilder

Kontakt

Fortæl os om jeres projekt.

Beskriv opgaven, og få et vejledende estimat på omfang, pris og næste skridt. I får en fast kontaktperson, der følger opgaven fra afklaring til aflevering.

Skriv til os
Mads Sørensen, stifter af Platformhuset

Mads Sørensen

Stifter og direktør, Platformhuset