Our study found that two models from the same family can react very differently to the same
compression. Qwen2.5 lost 0.4 points of accuracy at L1. Qwen3.5, from the same family, lost 10.7 on
the same questions. So there is no level we can tell you to use. Run the CAVEWOMAN framework on your own
model and your own task to find yours.
The test below uses the same prompts and the same scoring we used.
A few dollars and some questions are enough.
Using a coding agent? Hand it
RUN_WITH_AGENT.md.
It has the full steps, the questions it should ask you first, and how to read the result.
Otherwise the commands are below.
Setup.
pip install -r requirements.txt
python -m spacy download en_core_web_sm # only needed for input compression
cp .env.example .env # add OPENAI_API_KEY / ANTHROPIC_API_KEY
Step 1. Generate. All five levels, output-compressed.
python experiments/run_experiment_api.py \
--model gpt-4o --dataset gsm8k \
--condition output --level all \
--output_dir ./results/gpt4o_output/gsm8k
Add --end_idx 300 to cap the item count while you are trying it out, and
--dry_run to check the wiring without spending anything.
Step 2. Score accuracy and cost.
python evaluation/evaluate_results.py --results_dir ./results/gpt4o_output/gsm8k
Step 3. Score whether the answer changed. This is the measure accuracy misses.
It needs the L0 run from step 1 in the same directory.
python evaluation/add_entailment_scores.py \
--results_dir ./results/gpt4o_output/gsm8k \
--model_name gpt4o --dataset gsm8k --condition output
Step 4. Read it.
python analysis/descriptive_stats.py --results-root ./results
You get, per level: accuracy, dollars per question, and the share of answers that changed.
Pick the level where the saving is worth what you give up.
Measured on single-turn tasks with a short extractable answer. Long-form behaves differently.
Cost assumes you call the API directly and are billed per token.