Inspect AI - Cheatsheet del Framework di Valutazione LLM
Inspect è un framework open-source per le valutazioni dei modelli di linguaggio di grandi dimensioni, creato dall”UK AI Safety Institute. Fornisce alle valutazioni una struttura chiara — un dataset di campioni, una pipeline solver che produce risposte e uno scorer che le valuta — più un visualizzatore di prima classe per ispezionare esattamente cosa il modello ha visto e fatto su ogni campione. È progettato per valutazioni rigorose e riproducibili, inclusi compiti agentici e l”uso di strumenti, ed è ampiamente utilizzato per test di sicurezza e capacità.
Installation
| Method | Command |
|---|
| pip | pip install inspect-ai |
| uv | uv add inspect-ai |
| Model key | export OPENAI_API_KEY=... / ANTHROPIC_API_KEY=... |
| VS Code | Install the Inspect extension for the viewer |
| Verify | inspect --version |
The Three Building Blocks
| Component | Role |
|---|
| Dataset | Campioni con input e target |
| Solver | Step che convertono l”input in output del modello |
| Scorer | Valuta l”output rispetto al target |
A Minimal Eval
from inspect_ai import Task, task
from inspect_ai.dataset import example_dataset
from inspect_ai.scorer import model_graded_fact
from inspect_ai.solver import generate, system_message
@task
def security_qa():
return Task(
dataset=example_dataset("theory_of_mind"),
solver=[
system_message("You are a concise security expert."),
generate(),
],
scorer=model_graded_fact(),
)
inspect eval security_qa.py --model openai/gpt-4o
Running Evals
| Command | Description |
|---|
inspect eval task.py --model openai/gpt-4o | Esegui una valutazione |
inspect eval task.py --limit 20 | Solo i primi 20 campioni |
inspect eval task.py --model-base-url URL | Endpoint personalizzato/locale |
inspect eval task.py -T param=value | Passa parametri del task |
inspect eval-retry <log> | Riprova i campioni falliti |
inspect view | Apri il visualizzatore dei log |
Solvers
| Solver | Does |
|---|
generate() | Chiama il modello |
system_message(...) | Prependi un prompt di sistema |
chain_of_thought() | Aggiungi prompting CoT |
self_critique() | Il modello rivede la propria risposta |
use_tools([...]) | Abilita la chiamata di strumenti |
basic_agent() | Un ciclo agente di stile ReAct |
Scorers
| Scorer | Grades by |
|---|
match() | Exact/substring match |
includes() | Il target appare nell”output |
pattern(regex) | Estrazione regex |
model_graded_qa() | Giudice LLM rispetto a una rubrica |
model_graded_fact() | Giudice LLM per equivalenza fattuale |
choice() | Risposta a scelta multipla |
from inspect_ai.tool import bash, python
from inspect_ai.solver import basic_agent
solver = basic_agent(tools=[bash(), python()], max_attempts=3)
| Capability | Note |
|---|
| Tool use | Strumenti integrati bash, python, web |
| Sandboxing | Esegui strumenti in Docker per isolamento |
| Multi-turn | Cicli agente con limiti di tentativo |
| Custom tools | Decora funzioni Python come strumenti |
The Viewer
| Shows | Why it matters |
|---|
| Every sample | Input, target, output, score |
| Full transcript | Ogni messaggio, chiamata di strumento e risultato |
| Scoring rationale | Perché il giudice ha valutato in questo modo |
| Metrics | Accuratezza e metriche personalizzate |
Essere in grado di leggere la trascrizione dei fallimenti è ciò che trasforma un punteggio in un risultato attuabile.
Inspect vs Other Eval Frameworks
| Aspect | Inspect | DeepEval | Ragas |
|---|
| Origin | UK AI Safety Institute | Confident AI | Exploding Gradients |
| Focus | Valutazioni generali + agentiche | Valutazioni di app in stile unit-test | Metriche specifiche per RAG |
| Viewer | Ricco, di prima classe | Report/dashboard | Punteggi |
| Best for | Valutazioni rigorose di capacità/sicurezza | Gating di metriche note | Punteggio di pipeline RAG |
Integra DeepEval per i test in stile CI e Ragas per metriche specifiche di RAG.
Resources