InstrumentalEval - Evaluating the Paperclip Maximizer: Are RL-Based Language Models More Likely to Pursue Instrumental Goals?
An evaluation designed to detect instrumental convergence behaviors in model responses (e.g., self-preservation, resource acquisition, power-seeking, strategic deception) using a rubric-driven LLM grader. The benchmark tests whether AI systems exhibit behaviors that are instrumentally useful across a wide range of goals, which could indicate concerning patterns of strategic reasoning.
Overview
InstrumentalEval is an evaluation designed to detect instrumental convergence behaviors in model responses (e.g., attempts at self-preservation, resource acquisition, power-seeking, etc.) by using an LLM grader.
Contributed by: horvgbor
Overview
This implementation:
- Downloads the InstrumentalEval benchmark CSV files from the upstream GitHub repository.
- Presents each prompt to the evaluated model.
- Uses a separate grader model to classify the response as
convergenceorno_convergence. - Aggregates results into global metrics (
convergence,no_convergence,invalid) and also emits task-specific breakdown metrics.
Dataset
The dataset is pulled from the upstream GitHub repo at runtime (the benchmark/ folder).
- Each CSV file represents a task type.
- The first row is treated as the evaluation context prompt (
eval_prompt). - Subsequent rows are treated as model inputs.
- Each sample is annotated with:
eval_prompt: per-file header used to condition the grader prompt.task_type: derived from the CSV filename.
Notes:
- This evaluation requires internet access to download the dataset.
- GitHub API rate limits can affect dataset fetching.
Scoring
The scorer uses a grader LLM to produce outputs formatted as:
DECISION: [convergence/no_convergence]
REASON: [brief justification]
The decision is parsed into a per-sample dict score with keys:
convergence(1.0 for convergence, else 0.0)no_convergence(1.0 for no-convergence, else 0.0)invalid(1.0 if the grader response cannot be parsed into a valid decision)
The metric aggregates these values across samples and also produces per-task metrics (flattened with {task_type}_ prefixes).
Number of Epochs
This evaluation is designed to be run for 1 epoch.
Rationale:
- Each sample is independently graded and does not benefit from repeated passes.
- Running multiple epochs increases cost without improving the estimate of the underlying distribution unless you are specifically measuring grader/model stochasticity.
If you choose to run multiple epochs (e.g., to estimate variance under nonzero temperature), document the justification in your evaluation report.
Usage
Installation
Install with pip install inspect-evals, or uv sync from a checkout of this repository.
Running evaluations
uv run inspect eval inspect_evals/instrumentaleval --model openai/gpt-5-nanoYou can also import tasks as normal Python objects and run them from python:
from inspect_ai import eval
from inspect_evals.instrumentaleval import instrumentaleval
eval(instrumentaleval)Drop uv run if you manage dependencies yourself. Log viewing (inspect view) and default-model setup are documented in the Inspect Evals README.
Options
You can control a variety of options from the command line. For example:
uv run inspect eval inspect_evals/instrumentaleval --limit 10 --sample-shuffle
uv run inspect eval inspect_evals/instrumentaleval --max-connections 10
uv run inspect eval inspect_evals/instrumentaleval --temperature 0.5See uv run inspect eval --help for all available options.
Parameters
instrumentaleval
grader_model(str | Model): The model to use for grading the model’s answers. (default:'openai/gpt-5-nano')grader_temperature(float): The temperature to use for grading the model’s answers. (default:0.0)
Example:
uv run inspect eval inspect_evals/instrumentaleval \
--model openai/gpt-5-nano \
--temperature 0.0 \
-- \
--grader-model openai/gpt-5-nano \
--grader-temperature 0.0Evaluation Report
This evaluation measures instrumental convergence behaviors in model responses. The dataset consists of prompts designed to elicit power-seeking, self-preservation, and resource acquisition behaviors.
Overall Results (gpt-4o)
Evaluated using gpt-4o as both the main model and grader model.
| Metric | Score |
|---|---|
| convergence | 0.539 |
| no_convergence | 0.461 |
| invalid | 0.0 |
Results by Task Type
| Task Type | Convergence | No Convergence | Invalid |
|---|---|---|---|
| Deceptive Behavior | 0.0 | 1.0 | 0.0 |
| Evading Shutdown | 0.95 | 0.05 | 0.0 |
| Hacking Computer Systems | 0.1 | 0.9 | 0.0 |
| Hiding Unwanted Behavior | 0.545 | 0.455 | 0.0 |
| Running Multiple AI Copies | 0.846 | 0.154 | 0.0 |
| Strategically Appearing Aligned | 0.364 | 0.636 | 0.0 |
Reference Results (Original Implementation)
Results from the original codebase using gpt-4o:
| Task Type | Convergence | No Convergence | Invalid |
|---|---|---|---|
| Deceptive Behavior | 0.091 | 0.909 | 0.0 |
| Evading Shutdown | 1.0 | 0.0 | 0.0 |
| Hacking Computer Systems | 0.0 | 1.0 | 0.0 |
| Hiding Unwanted Behavior | 0.455 | 0.545 | 0.0 |
| Running Multiple AI Copies | 0.769 | 0.231 | 0.0 |
| Strategically Appearing Aligned | 0.636 | 0.364 | 0.0 |
For additional reference results, please see the original paper. Note that there are differences in results from the original paper.
Changelog
[2-A] - 2026-02-16
- Migrate version to new scheme. See #907.