Evaluate ContextPilot checkpoints on InfBench, NovelQA, LongMemEval, and BrowseComp+.
bash infer/scripts/setup_environment.sh
source infer/.venv/bin/activateThe setup script creates infer/.venv, installs its Python dependencies, and
downloads Elasticsearch.
InfBench's longbook_choice_eng split is downloaded from Hugging Face
automatically.
NovelQA answer annotations cannot be redistributed. Request full access from the NovelQA dataset page, then set the local data paths:
export NOVELQA_DATA=/path/to/CopyrightProtected.jsonl
export NOVELQA_CONTEXT_ROOT=/path/to/NovelQA/Books/CopyrightProtectedLongMemEval is included with the repository. BrowseComp+ includes the original obfuscated parquet data; decrypt it locally before evaluation:
export LONGMEMEVAL_DATA="$PWD/infer/data/LongMemEval/longmemeval_s_cleaned.json"
python infer/scripts/prepare_browsecomp_plus.py \
infer/data/BrowseCompPlus/data \
infer/data/BrowseCompPlus/decrypted.jsonl
export BROWSECOMP_PLUS_DATA="$PWD/infer/data/BrowseCompPlus/decrypted.jsonl"LongMemEval and BrowseComp+ use an LLM judge. Store its OpenAI-compatible endpoint configuration in a JSON file and set:
export JUDGE_OPENAI_FILE=/path/to/judge_endpoint.jsonbash infer/scripts/run_full_pipeline.sh /path/to/checkpoint RUN_IDThis starts Elasticsearch and vLLM, evaluates all four benchmarks, scores the outputs, and shuts down the vLLM server.
bash infer/scripts/eval_infbench.sh /path/to/checkpoint RUN_ID
bash infer/scripts/eval_novelqa.sh /path/to/checkpoint RUN_ID
bash infer/scripts/eval_longmemeval.sh /path/to/checkpoint RUN_ID
bash infer/scripts/eval_browsecomp_plus.sh /path/to/checkpoint RUN_IDStart Elasticsearch and vLLM:
bash infer/scripts/start_elasticsearch.sh
bash infer/scripts/serve_vllm.sh /path/to/checkpointThen run a task in another terminal:
export TOKENIZER_PATH=/path/to/checkpoint
export RUN_ID=my-run
bash infer/scripts/eval_task.sh infbenchValid task names are infbench, novelqa, longmemeval, and bc_plus.
Predictions, trajectories, and scores are saved under:
infer/results/<task>/<RUN_ID>/<timestamp>/