Inspect AI - Estrutura de Avaliação de LLM
Inspect é uma estrutura open-source para avaliações de modelos de linguagem grande, criada pelo UK AI Safety Institute. Ela dá às evals uma estrutura clara — um dataset de amostras, um solver pipeline que produz respostas, e um scorer que as avalia — mais um visualizador de primeira classe para inspecionar exatamente o que o modelo viu e fez em cada amostra. É projetado para avaliação rigorosa e reproduzível, incluindo tarefas agentic e uso de ferramentas, e é amplamente usado para testes de segurança e capacidade.
Instalação
| Método | Comando |
|---|
| pip | pip install inspect-ai |
| uv | uv add inspect-ai |
| Chave de modelo | export OPENAI_API_KEY=... / ANTHROPIC_API_KEY=... |
| VS Code | Instale a extensão Inspect para o visualizador |
| Verificar | inspect --version |
Os Três Blocos Construtivos
| Componente | Papel |
|---|
| Dataset | Amostras com input e target |
| Solver | Passos que transformam entrada em saída de modelo |
| Scorer | Avalia saída contra o alvo |
Uma 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
Executando Evals
| Comando | Descrição |
|---|
inspect eval task.py --model openai/gpt-4o | Executar uma eval |
inspect eval task.py --limit 20 | Apenas as primeiras 20 amostras |
inspect eval task.py --model-base-url URL | Endpoint customizado/local |
inspect eval task.py -T param=value | Passar parâmetros de task |
inspect eval-retry <log> | Retry de amostras falhadas |
inspect view | Abrir o visualizador de log |
Solvers
| Solver | Faz |
|---|
generate() | Chamar o modelo |
system_message(...) | Prepender um prompt do sistema |
chain_of_thought() | Adicionar prompting de CoT |
self_critique() | Modelo revisa sua própria resposta |
use_tools([...]) | Habilitar chamada de ferramenta |
basic_agent() | Um loop de agente estilo ReAct |
Scorers
| Scorer | Avalia por |
|---|
match() | Correspondência exata/substring |
includes() | Alvo aparece na saída |
pattern(regex) | Extração regex |
model_graded_qa() | Juiz LLM contra um rubric |
model_graded_fact() | Juiz LLM para equivalência factual |
choice() | Resposta de múltipla escolha |
Evals Agentic e Ferramentas
from inspect_ai.tool import bash, python
from inspect_ai.solver import basic_agent
solver = basic_agent(tools=[bash(), python()], max_attempts=3)
| Capacidade | Nota |
|---|
| Uso de ferramentas | Ferramentas integradas bash, python, web |
| Sandboxing | Executar ferramentas em Docker para isolamento |
| Multi-turno | Loops de agente com limites de tentativa |
| Ferramentas customizadas | Decor funções Python como ferramentas |
O Visualizador
| Mostra | Por que é importante |
|---|
| Cada amostra | Entrada, alvo, saída, pontuação |
| Transcrição completa | Cada mensagem, chamada de ferramenta, e resultado |
| Rationale de pontuação | Por que o juiz avaliou assim |
| Métrica | Acurácia e métricas customizadas |
Ser capaz de ler a transcrição de falhas é o que transforma uma pontuação em um achado acionável.
Inspect vs Outros Frameworks de Eval
| Aspecto | Inspect | DeepEval | Ragas |
|---|
| Origem | UK AI Safety Institute | Confident AI | Exploding Gradients |
| Foco | Evals gerais + agentic | Evals de app estilo unit-test | Métricas específicas de RAG |
| Visualizador | Rico, de primeira classe | Relatórios/dashboard | Pontuações |
| Melhor para | Evals rigorosas de capacidade/segurança | Portão de teste de CI | Pontuação de pipeline RAG |
Complementa DeepEval para testes de estilo CI e Ragas para métricas específicas de RAG.
Recursos