The evaluation process follows a four-step pipeline: setting up API endpoints, generating model answers, generating judgments, and showing results.
1. Set up API Endpoints
Configure your model's API endpoint in config/api_config.yaml. Supported types include OpenAI-compatible servers, Anthropic, Vertex AI, and Amazon Bedrock. You can host models using vLLM or SGLang to provide an OpenAI-compatible interface.
2. Generate Model Answers
- Add your model name to the
model_list in config/gen_answer_config.yaml. - Run the generation script:
python gen_answer.py
Note: Caching is enabled; it will skip prompts that already have existing answers/judgments (except when using the built-in SGLang server).
3. Generate Judgments
- Add your model name to the
model_list in config/arena-hard-v2.0.yaml. - Configure the judge model in
config/arena-hard-v2.0.yaml. GPT-4.1 is recommended for stability. To use Gemini-2.5, comment out the GPT-4.1 block and uncomment the Gemini-2.5 block. - Run the judgment script:
python gen_judgment.py
4. Show Results
Use show_result.py to output win rates. Use --judge-names to specify judges and --category for specific subsets.
Example: Arena-Hard-v2.0-Preview (Hard Prompt, Style Control, GPT-4.1 as Judge)
python show_result.py --judge-names gpt-4.1 --control-features markdown length
Example: Arena-Hard-v2.0-Preview (Creative Writing, Ensemble GPT-4.1 and Gemini 2.5)
python show_result.py --judge-names gpt-4.1 gemini-2.5 --category creative_writing
# See content for multiple commands