Jouw mentale model voor AI-testen

Wat blijft, wat verdwijnt: het vertalen van je kennis van webtesten naar de nieuwe wereld van LLM's.

Voorbeeldtoepassing

ThemeBuilder is de voorbeeldapplicatie die we in deze serie gebruiken. ThemeBuilder genereert een JSON-object met een door LLM bedacht motto en een kleurenpalet.

  • Het motto en kleurenpalet moeten aansluiten bij de merknaam, beschrijving, doelgroep en toon van de input.
  • Het motto mag niet negatief zijn en moet kort zijn (minder dan 6 woorden).
  • Het contrast van het kleurenpalet moet toegankelijk zijn, zoals gedefinieerd in de minimale WCAG-richtlijnen, met een contrastverhouding van 4,5:1 .
Invoer- en uitvoergegevens van ThemeBuilder.
In ThemeBuilder voert een gebruiker een bedrijfsnaam en -omschrijving, een doelgroep en een gewenste toon en sfeer in. De frontend stuurt deze gegevens naar uw server. Uw server gebruikt vervolgens een LLM (Letter-Level Model) om een ​​motto en een kleurenpalet te genereren die aansluiten bij het merk.

Objectieve en subjectieve evaluaties

Hoe test je of ThemeBuilder naar behoren werkt?

Regelgebaseerde evaluaties (soms ook wel exacte evaluaties genoemd) zijn objectieve tests met een binair antwoord: juist of onjuist. Deze zijn het meest geschikt voor vragen over gegevensformaat, contrastverhouding of andere zaken met een eenduidig ​​antwoord. Je kunt deze tests implementeren met reguliere, programmatische code.

Sommige controles zijn objectief, met een binair antwoord van juist of onjuist. Deze zijn het meest geschikt voor vragen over gegevensformaat, contrastverhouding of andere zaken met een definitief antwoord. Je kunt deze tests implementeren met reguliere, programmatische code. Dit worden regelgebaseerde evaluaties of exacte evaluaties genoemd.

Bijvoorbeeld:

// Example rule-based eval: data format
function evaluateFormat(appOutput) {
  // Check if JSON is valid, colors are hex, no empty strings, motto is 6 words or fewer
  // Use deterministic tools like zod for schema validation
  return "PASS"; // or "FAIL"
}

Andere controles zijn subjectief, zoals de afstemming van het motto en het kleurenpalet op het merk en de doelgroep. Hoewel het detecteren van toxiciteit een classificatietaak is, is het ook subjectief omdat er een oordeel bij komt kijken.

Hoewel subjectieve tests ook classificatie omvatten, kan de marge tussen wat correct en incorrect is sterk variëren. Denk bijvoorbeeld aan de beoordeling van de afstemming tussen merk en doelgroep voor het motto en het kleurenpalet. Ook het detecteren van toxiciteit is subjectief.

Hoewel het beoordelen van subjectieve kwaliteiten misschien iets lijkt dat alleen een menselijke expert kan doen, kunt u deze tests op grote schaal automatiseren met de LLM-als-rechter -techniek.

[LLM-juryleden] zijn snel, gebruiksvriendelijk en relatief goedkoop [...] Het is uitgegroeid tot een van de meest, zo niet dé meest gebruikte methoden voor het evalueren van AI-modellen in productie.

—AI-ingenieur, Chip Huyen

Bijvoorbeeld:

// Example LLM-as-a-judge eval for a subjective quality like brand fit
async function evalBrandFit(userInput, appOutput) {
  const brandPrompt = `You are an expert brand strategist. Evaluate the
  following generated motto for the company whose target audience is
  ${userInput.audience}, and who describes itself as
  ${userInput.companyDescription}: ${appOutput.motto}`
  // Call the LLM judge
  const evalResult = evalWithLLM(brandPrompt);
  // Return the consolidated results
  return {
    mottoBrandFit: evalResult,
  };
}

// Helper that communicates with the LLM API
async function evalWithLLM(prompt) {
  // ... Call LLM with the prompt ...
  // ... Parse the resulting judgement ("PASS" or "FAIL") + rationale
  return {
    status: "PASS",
    rationale: "This motto perfectly captures the brand and tone, because..."
  };
}

Het model imiteert menselijk oordeel, dus je moet de beoordelaar precies kunnen vertellen waar je naar op zoek bent. Dat kun je doen door de beoordelaar een beoordelingsschema te geven.

Een beoordelingsschema is een gestructureerde reeks criteria of scoringsrichtlijnen die een beoordelaar (mens of AI) gebruikt om een ​​resultaat te evalueren. Het biedt een consistent kader voor het beoordelen van subjectieve kwaliteiten bij elke evaluatie.

Andere soorten evaluaties

U kunt eventueel gebruikmaken van referentiegebaseerde of paarsgewijze evaluaties.

Referentiegebaseerd

Deze meten de gelijkenis met een correct antwoord. Gebruik ze voor taken zoals vertalen of technische feiten, waarbij een bekend correct antwoord bestaat.

Paarsgewijs

Een jury kan twee verschillende versies een PASS geven, zelfs als de ene beter is dan de andere. Paarsgewijze evaluatie lost dit op door de jury twee resultaten (A en B) te geven voor dezelfde invoer en de jury te instrueren een winnaar te kiezen.

Stel je bijvoorbeeld voor dat je een motto voor een gezellig café aan het beoordelen bent:

Input: "Friendly cafe"

Pointwise evaluation:
Output A: "Come get coffee." // PASS
Output B: "Your morning smile in a cup." // PASS
2 PASS. Unconclusive!

Pairwise evaluation:
Output B wins. It captures the "friendly" tone more effectively than the generic Output A.

Gebruik paarsgewijze evaluatie om te selecteren welke versie van uw model u gaat implementeren, of om twee verschillende prompts te vergelijken.

Standaard webtesten versus AI-evaluaties

Webtesten omvatten regressietesten. Met AI moet je daar optimalisatie en modelvalidatie aan toevoegen.

We gaan ervan uit dat u, als lezer van deze cursus, al weet hoe u een website en webapplicatie moet testen. Bij het toevoegen van AI moet u uw bestaande denkwijze aanpassen. Gebruik AI-evaluatie om de volgende acties uit te voeren:

  • Voer regressietests uit : Is de applicatie vastgelopen toen u uw prompt of model wijzigde? Krijgt u kapotte kleurenpaletten of schadelijke slogans te zien? In tegenstelling tot een webapplicatie, waar een storing een probleem met de softwarefunctionaliteit is, controleert u hier of de output van LLM van hoge kwaliteit en veilig is. Dit is subjectief van aard.
  • Optimaliseer je applicatie : Wordt je applicatie beter? Verbeter je de statistieken die je wilt, bijvoorbeeld door meer slogans te verzamelen die bij je merk passen zonder dat de toxiciteit toeneemt?
  • Kies het juiste model : Is er een beter model voor jouw specifieke toepassing? Vóór AI koos je je webstack eenmalig. Met AI is het belangrijk om modellen regelmatig te benchmarken en mogelijkheden te identificeren om over te stappen naar een beter (en mogelijk goedkoper) model.

Leg je tests in lagen neer.

Er zijn vier testlagen: unit tests, uitgebreide unit tests, regressie- en integratietests en testen door mensen.

Een gezonde codebase moet meerdere testlagen hebben: unit tests, regressie- en integratietests en end-to-end tests. Ook je evaluaties moeten gelaagd zijn.

  • Gebruik op regels gebaseerde evaluaties in combinatie met LLM-evaluaties om tests voor uw AI-toepassing volledig te automatiseren. Zo kunt u problemen opsporen tijdens de dagelijkse ontwikkeling en CI/CD, en testen of uw releasekandidaten aan uw kwaliteitseisen voldoen.
  • Voer integratie- en regressietests uit om de kwaliteit op grote schaal te controleren.
  • Voer handmatige menselijke evaluaties uit als acceptatietest.

Naast de evaluaties die je tijdens het bouwen uitvoert, kun je het productieverkeer monitoren met behulp van runtime-evaluaties. Deze kunnen je helpen om kwaliteits- of veiligheidsproblemen met daadwerkelijke invoer te signaleren.

Blijf je evaluaties verder ontwikkelen.

Evaluaties moeten meegroeien met uw applicatie. Naarmate uw modellen slimmer worden, moet u uw oude evaluaties bijwerken.

Voeg regelmatig lastige voorbeelden toe aan je testdatasets, zoals nieuwe randgevallen of verrassende gebruikersinvoer die je in de productieomgeving tegenkomt.

Wat meten uw evaluaties?

Voordat je evaluaties ontwerpt, moet je begrijpen hoe je een output evalueert. Er zijn een paar termen die je moet kennen.

Criteria zijn de regels, de dimensies die getoetst moeten worden. Bijvoorbeeld: merkconsistentie, toxiciteit en toegankelijkheid.

Elk evaluatiecriterium wordt gemeten met een metriek. Een metriek is een enkele, concrete score die de modeluitvoer meet ten opzichte van het criterium. Deze score kan binair zijn of een waarde binnen een bereik die aangeeft hoe ver of hoe dichtbij de uitvoer ligt bij de verwachting van de evaluator.

Het is mogelijk om hetzelfde criterium met verschillende soorten meetmethoden te meten. Bijvoorbeeld voor merkafstemming:

  • "Past dit motto bij het merk?" De beoordeling is PASS of FAIL .
  • "Op een schaal van 1 tot 5, hoe goed sluit het motto aan bij het merk?" De maatstaf is een geheel getal tussen één en vijf.

Een evaluator is de code of het model dat het criterium beoordeelt. Evaluatoren bepalen de meetwaarden.