Inspect AI - Marco de Evaluación LLM Hoja de Trucos
Inspect es un marco de código abierto para evaluaciones de modelos de lenguaje grande, creado por el Instituto de Seguridad de IA del Reino Unido. Le da a las evals una estructura clara — un conjunto de datos de muestras, un pipeline solver que produce respuestas, y un puntuador que las califica — más un visor de primera clase para inspeccionar exactamente qué vio y qué hizo el modelo en cada muestra. Está diseñado para evaluación rigurosa y reproducible, incluyendo tareas agenticas y uso de herramientas, y es ampliamente utilizado para pruebas de seguridad y capacidad.
Instalación
| Método | Comando |
|---|
| pip | pip install inspect-ai |
| uv | uv add inspect-ai |
| Clave de modelo | export OPENAI_API_KEY=... / ANTHROPIC_API_KEY=... |
| VS Code | Instala la extensión Inspect para el visor |
| Verificar | inspect --version |
Los Tres Bloques de Construcción
| Componente | Rol |
|---|
| Conjunto de datos | Muestras con input y target |
| Solver | Pasos que convierten entrada en salida de modelo |
| Puntuador | Califica salida contra el target |
Una Eval Mínima
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
Ejecutar Evals
| Comando | Descripción |
|---|
inspect eval task.py --model openai/gpt-4o | Ejecutar una eval |
inspect eval task.py --limit 20 | Solo las primeras 20 muestras |
inspect eval task.py --model-base-url URL | Endpoint personalizado/local |
inspect eval task.py -T param=value | Pasar parámetros de tarea |
inspect eval-retry <log> | Reintentar muestras fallidas |
inspect view | Abrir el visor de logs |
Solvers
| Solver | Hace |
|---|
generate() | Llamar al modelo |
system_message(...) | Prepend un prompt del sistema |
chain_of_thought() | Agregar prompting CoT |
self_critique() | El modelo revisa su propia respuesta |
use_tools([...]) | Habilitar llamadas a herramientas |
basic_agent() | Un bucle de agente estilo ReAct |
Puntuadores
| Puntuador | Califica por |
|---|
match() | Coincidencia exacta/substring |
includes() | Target aparece en salida |
pattern(regex) | Extracción de regex |
model_graded_qa() | Juez LLM contra una rúbrica |
model_graded_fact() | Juez LLM por equivalencia factual |
choice() | Respuesta de opción múltiple |
Evals Agenticas y Herramientas
from inspect_ai.tool import bash, python
from inspect_ai.solver import basic_agent
solver = basic_agent(tools=[bash(), python()], max_attempts=3)
| Capacidad | Nota |
|---|
| Uso de herramientas | Herramientas bash, python y web integradas |
| Sandboxing | Ejecutar herramientas en Docker para aislamiento |
| Multi-turno | Bucles de agente con límites de intentos |
| Herramientas personalizadas | Decorar funciones Python como herramientas |
El Visor
| Muestra | Por qué importa |
|---|
| Cada muestra | Input, target, salida, puntuación |
| Transcripción completa | Cada mensaje, llamada a herramienta y resultado |
| Racionalidad de puntuación | Por qué el juez calificó así |
| Métricas | Precisión y métricas personalizadas |
Poder leer la transcripción de los fallos es lo que convierte un puntuaje en un hallazgo accionable.
Inspect vs Otros Marcos de Eval
| Aspecto | Inspect | DeepEval | Ragas |
|---|
| Origen | Instituto de Seguridad de IA del Reino Unido | Confident AI | Exploding Gradients |
| Enfoque | Evals generales + agenticas | Estilo pruebas unitarias app evals | Métricas específicas para RAG |
| Visor | Rico, de primera clase | Reportes/dashboard | Puntuaciones |
| Mejor para | Evals de capacidad/seguridad rigorosas | Gating de métricas conocidas | Puntuación de pipeline RAG |
Complementa DeepEval para pruebas de estilo CI y Ragas para métricas específicas de RAG.
Recursos