Valutare un modello linguistico usando un altro modello linguistico (LLM-as-a-judge) e una pratica comune ma fragile: il giudice soffre di allucinazioni, instabilita di scoring e pregiudizio verso risposte verbose.
Nei contesti di produzione e Continuous Integration, gli eval deterministici offrono affidabilita superiore:
- Asserzioni sintattiche: validazione di schemi JSON rigidi tramite Pydantic, Zod o TypeScript per verificare che le chiavi e i tipi siano corretti
- Regex e inclusioni esatte: controllo della presenza di token obbligatori o dell'assenza di stringhe vietate
- Esecuzione e test unitari: far eseguire il codice generato in una sandbox isolata e verificare il codice di uscita (exit code 0) e il superamento dei test
- Break-test: verificare che modifiche o input errati provochino il fallimento previsto del test, dimostrando che il test misura davvero una proprieta del sistema.