| 1 | # GPQA Evaluation using GPT-OSS |
| 2 | |
| 3 | This directory contains GPQA evaluation tests using the GPT-OSS evaluation package and vLLM server. |
| 4 | |
| 5 | ## Usage |
| 6 | |
| 7 | ### Run tests with pytest (like buildkite) |
| 8 | |
| 9 | ```bash |
| 10 | # H200 |
| 11 | pytest -s -v tests/evals/gpt_oss/test_gpqa_correctness.py \ |
| 12 | --config-list-file=configs/models-h200.txt |
| 13 | |
| 14 | # B200 |
| 15 | pytest -s -v tests/evals/gpt_oss/test_gpqa_correctness.py \ |
| 16 | --config-list-file=configs/models-b200.txt |
| 17 | ``` |
| 18 | |
| 19 | ## Configuration Format |
| 20 | |
| 21 | Model configs in `configs/` directory use this YAML format: |
| 22 | |
| 23 | ```yaml |
| 24 | model_name: "openai/gpt-oss-20b" |
| 25 | metric_threshold: 0.568 # Minimum expected accuracy |
| 26 | reasoning_effort: "low" # Reasoning effort level (default: "low") |
| 27 | server_args: "--tensor-parallel-size 2" # Server arguments |
| 28 | startup_max_wait_seconds: 1800 # Max wait for server startup (default: 1800) |
| 29 | env: # Environment variables (optional) |
| 30 | SOME_VAR: "value" |
| 31 | ``` |
| 32 | |
| 33 | The `server_args` field accepts any arguments that can be passed to `vllm serve`. |
| 34 | |
| 35 | The `env` field accepts a dictionary of environment variables to set for the server process. |
| 36 | |
| 37 | ## Adding New Models |
| 38 | |
| 39 | 1. Create a new YAML config file in the `configs/` directory |
| 40 | 2. Add the filename to the appropriate `models-*.txt` file |
| 41 | |
| 42 | ## Tiktoken Encoding Files |
| 43 | |
| 44 | The tiktoken encoding files required by the vLLM server are automatically downloaded from OpenAI's public blob storage on first run: |
| 45 | |
| 46 | - `cl100k_base.tiktoken` |
| 47 | - `o200k_base.tiktoken` |
| 48 | |
| 49 | Files are cached in the `data/` directory. The `TIKTOKEN_ENCODINGS_BASE` environment variable is automatically set to point to this directory when running evaluations. |