Jev tegenover een LLM

Ze strijden niet om dezelfde baan. Een LLM schrijft; Jev beslist. De nuttige vergelijking is niet welke slimmer is, maar wat je code met het antwoord moet doen — en dat verschil is groot genoeg om te veranderen hoe het programma eromheen geschreven wordt.

Dezelfde beslissing, op beide manieren geschreven

Routeer een supportticket naar een van vier wachtrijen. Zo veel kost elke kant je werkelijk aan code.

Met een taalmodel

const res = await llm.chat({
  messages: [{ role: "user", content:
    `Route this ticket. Reply with JSON: {"queue": "Billing"|"Technical"|"Account"|"Sales"}
     Ticket: ${ticket}` }],
  response_format: { type: "json_object" }
});

let queue;
try {
  queue = JSON.parse(res.content).queue;        // may not be JSON
} catch {
  return retry();                               // ...so there is a retry
}
if (!QUEUES.includes(queue)) return retry();    // may be a queue you never had
// and no idea how close the call was

Met Jev

const { answers } = await jev.systemOne({
  state: ticket,
  model: "jev-latest",
  questions: { queue: { type: "choice", instructions:
    "Which team should own this ticket?", criteria: QUEUES } }
});

const { choice, probabilities, confidence } = answers.queue;
// choice is one of QUEUES. It cannot be anything else.
if (confidence < 0.7) return humanReview(ticket, probabilities);
route(choice);

De retry-lus is het verklikkertje. Hij bestaat in de eerste versie omdat het antwoord als tekst binnenkomt die misschien niet parset, of parset naar een wachtrij die nooit op de lijst stond. In de tweede heeft hij geen plek: het antwoord is per constructie een van QUEUES. Wat ervoor in de plaats komt is een heel andere tak — een die afgaat wanneer het model onzeker is in plaats van wanneer het misvormd is.

Wat de tweede versie kan zien

Dat ticket, echt door Jev gehaald. De winnaar verrast niet; de nummer twee is het deel dat een kaal label had weggegooid.

“Onze SSO-login geeft sinds de 4.2-release van vanochtend een 500. Niemand in het team komt binnen. Hetzelfde in Chrome en Safari, op twee verschillende tenants.”
Techniek op 87%, uit 4 opties
87% Techniek

Techniek wint met 87%, maar Account houdt 13% vast — en dat is precies de juiste onenigheid, want een SSO-storing zit echt op de grens tussen die twee. Een kaal label had dat verborgen. Als verkeerd routeren geld kost, is 13% het getal om een drempel op te zetten.

Naast elkaar

Wat je stuurt
Jev

Eén state plus een kaart van getypeerde vragen.

LLM

Een prompt, die het schema en de regels meestal als proza meedraagt.

Wat terugkomt
Jev

Eén getypeerd antwoord per vraag, met een kans voor elke optie.

LLM

Tekst. JSON als je netjes vroeg en de modus wordt ondersteund.

Je volgende regel code
Jev

Een switch op een waarde die alleen een van de jouwe kan zijn.

LLM

Een parse, dan een validatie, dan een tak voor als een van beide faalde.

Hoe het misgaat
Jev

Het kan zich vergissen over je tekst. Het kan geen vorm teruggeven die je niet hebt bepaald.

LLM

Het kan zich ook vergissen in de vorm — een ontbrekend veld, een label dat je nooit noemde, proza om de JSON heen.

Tien dingen vragen
Jev

Tien vragen in één verzoek, parallel tegen de state afgewogen.

LLM

Eén overvolle prompt, of tien aanroepen.

Onzekerheid
Jev

Een verdeling en een vertrouwenswaarde, bij elke Choice en elke Score.

LLM

Wat de tekst zelf over haar zekerheid beweert.

De cijfers

TypeSafe publiceert deze; het zijn cijfers van de leverancier, geen metingen van ons.

70–500 ms

reactie van begin tot eind, tegenover 3–329 s voor topmodellen

40–200×

sneller bij vragen met een Systeem Een-vorm

$0,042

per miljoen invoertokens, uitvoer gratis

Wat wij wel kunnen meten: over 14 runs die via deze site zijn gedaan, is de mediane heen-en-terugtijd 329 ms — en de meeste van die verzoeken droegen negen vragen, niet één.

Wanneer de LLM het juiste gereedschap is

Meestal, als wat je nodig hebt taal is. Jev heeft geen mening die het kan uitleggen en niets te zeggen.

  • Je hebt proza nodig — een antwoord, een samenvatting, een commit-bericht, een uitleg van de beslissing in plaats van de beslissing.
  • Je hebt code nodig, of een plan, of iets open waarbij de verzameling antwoorden voor de aanroep niet vaststaat.
  • De verzameling mogelijke antwoorden is echt onbegrensd. Een willekeurige naam eruit halen is geen Choice over 255 opties.
  • Je hebt een redeneerketen nodig die je kunt inspecteren. Jev geeft een oordeel terug, niet de stappen erachter.
  • Het volume is klein en de vorm is los. Een retry-lus die twee keer per dag draait is het niet waard om weg te ontwerpen.

De twee vullen elkaar beter aan dan dat ze concurreren. TypeSafe kadert het zelf als Systeem Een voor het snelle gestructureerde oordeel en een gewoon model als Systeem Twee daarachter — zeef de invoer met een Noul, routeer met een Choice en geef wat overblijft door aan het model dat echt kan schrijven.

Verder lezen

Doe de vergelijking zelf

Plak een ticket, een concept, een prompt — wat je anders in een parse-lus zou hebben verpakt — en zie negen getypeerde antwoorden terugkomen uit één verzoek.

Speeltuin openen