Inspect AI - LLM Evaluation Framework Cheatsheet
Inspect ist ein Open-Source-Framework für Large Language Model Evaluations, erstellt vom UK AI Safety Institute. Es gibt Evals eine klare Struktur — einen Datensatz von Samples, einen Solver-Pipeline, der Antworten erzeugt, und einen Scorer, der sie bewertet — plus einen erstklassigen Viewer, um genau zu sehen, was das Modell auf jeder Sample gesehen und getan hat. Es ist für strenge, reproduzierbare Evaluation konzipiert, einschließlich Agentic-Aufgaben und Tool-Use, und wird häufig für Sicherheits- und Fähigkeitsprüfungen verwendet.
Installation
| Methode | Befehl |
|---|
| pip | pip install inspect-ai |
| uv | uv add inspect-ai |
| Model-Schlüssel | export OPENAI_API_KEY=... / ANTHROPIC_API_KEY=... |
| VS Code | Installiere die Inspect-Erweiterung für den Viewer |
| Verifikation | inspect --version |
Die drei Bausteine
| Komponente | Rolle |
|---|
| Dataset | Samples mit input und target |
| Solver | Schritte, die Input in Modell-Output verwandeln |
| Scorer | Bewertet Output gegen das Target |
Ein minimales 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
Evals ausführen
| Befehl | Beschreibung |
|---|
inspect eval task.py --model openai/gpt-4o | Führe ein Eval aus |
inspect eval task.py --limit 20 | Nur die ersten 20 Samples |
inspect eval task.py --model-base-url URL | Benutzerdefinierter/lokaler Endpunkt |
inspect eval task.py -T param=value | Übergebe Task-Parameter |
inspect eval-retry <log> | Wiederhole fehlgeschlagene Samples |
inspect view | Öffne den Log Viewer |
Solver
| Solver | Tut |
|---|
generate() | Rufe das Modell auf |
system_message(...) | Prepend einen System Prompt |
chain_of_thought() | Füge CoT Prompting hinzu |
self_critique() | Modell überprüft seine eigene Antwort |
use_tools([...]) | Aktiviere Tool Calling |
basic_agent() | Ein ReAct-Style Agent Loop |
Scorer
| Scorer | Bewertet nach |
|---|
match() | Exakt/Substring-Match |
includes() | Target erscheint in Output |
pattern(regex) | Regex-Extraktion |
model_graded_qa() | LLM-Judge gegen ein Rubric |
model_graded_fact() | LLM-Judge für faktische Äquivalenz |
choice() | Multiple-Choice-Antwort |
from inspect_ai.tool import bash, python
from inspect_ai.solver import basic_agent
solver = basic_agent(tools=[bash(), python()], max_attempts=3)
| Fähigkeit | Notiz |
|---|
| Tool Use | Built-in bash, python, Web Tools |
| Sandboxing | Führe Tools in Docker aus für Isolation |
| Multi-Turn | Agent Loops mit Attempt Limits |
| Custom Tools | Dekoriere Python-Funktionen als Tools |
Der Viewer
| Zeigt | Warum es wichtig ist |
|---|
| Jede Sample | Input, Target, Output, Score |
| Full Transcript | Jede Nachricht, Tool Call und Result |
| Scoring Rationale | Warum der Judge so bewertet hat |
| Metrics | Accuracy und Custom Metrics |
In der Lage zu sein, das Transcript von Fehlern zu lesen, ist das, was einen Score in ein actionable Finding verwandelt.
Inspect vs Andere Eval Frameworks
| Aspekt | Inspect | DeepEval | Ragas |
|---|
| Ursprung | UK AI Safety Institute | Confident AI | Exploding Gradients |
| Fokus | Allgemeine + Agentic Evals | Unit-Test-Style App Evals | RAG-Spezifische Metriken |
| Viewer | Rich, erstklassig | Reports/Dashboard | Scores |
| Am besten für | Strenge Capability/Safety Evals | CI Test Gating | RAG Pipeline Scoring |
Ergänzt DeepEval für CI-Style-Testing und Ragas für RAG-Spezifische-Metriken.
Ressourcen