This directory contains scripts for evaluating Large Language Model (LLM) outputs. The evaluation is divided into three main tasks:
- Main Evaluation: Running a model on the benchmark to generate answers.
- Checkpoint Ability Tagging: Running various model checkpoints on a dataset to generate answers and tag their capabilities.
- Chain-of-Thought (CoT) Evaluation: Using a powerful "judge" LLM to perform a fine-grained evaluation of a model's reasoning steps.
This is the primary process for generating model answers for the benchmark questions.
eval.sh: The main shell script to configure and run the evaluation.eval.py: The Python script that handles the logic of interacting with the models.prompt_en.txt: The English prompt template used to query the models.
The eval.sh script reads a model configuration and executes eval.py to generate answers for a given question set. It is designed for a single, comprehensive evaluation run.
- Configure
eval.sh:- Set the
INPUT_FILEvariable to the path of your questions file. - Set the
MODELvariable to the checkpoint you want to test. - Configure other parameters like temperature as needed.
- Set the
- Run the script:
bash eval.sh
- Check the results: The output file will be saved in the
../data/directory.
This process is designed to assess and label the abilities of different model checkpoints. It runs a set of questions through each specified model and generates corresponding answers.
eval_ckpt.sh: The main shell script to configure and run the evaluation.eval_ckpt.py: The Python script that handles the logic of interacting with the models.prompt_en_ckpt.txt: The English prompt template used to query the models.
The eval_ckpt.sh script reads a list of model configurations. For each model, it executes eval_ckpt.py to generate answers for a given question set (.parquet file). The output is tagged based on the model's performance and the abilities being tested.
- Configure
eval_ckpt.sh:- Set the
INPUT_FILEvariable to the path of your questions file. - Modify the
MODELSarray to include the checkpoints you want to test, along with their parameters (temperature, pass@k, etc.).
- Set the
- Run the script:
bash eval_ckpt.sh
- Check the results: The output files will be saved in the
../data/directory. Each filename will contain details about the model, temperature, and other parameters used for the run.
This process uses a strong LLM as a "judge" to evaluate the quality of another model's generated answers, with a specific focus on the correctness of its Chain-of-Thought reasoning.
eval_cot.sh: The main shell script to configure and run the CoT evaluation.eval_cot.py: The Python script that sends requests to the judge model.prompt_en_cot.txt: The English prompt template that instructs the judge model on how to perform the evaluation.
The eval_cot.sh script automatically discovers model answer files (.jsonl) in the project's root directory. For each file, it invokes eval_cot.py, which calls the specified judge model (e.g., Gemini 2.5 Pro). The judge model analyzes the reasoning steps in the answer file and provides a score or evaluation.
- Place answer files: Ensure the
.jsonlanswer files you want to evaluate are present in the project's root directory. - Configure
eval_cot.sh:- Set the
EVALUATOR_MODELto the powerful LLM you want to use as the judge. - Set
QUESTIONS_FILEto the original question data file. - Set
ANSWERS_PREFIXto match the prefix of your answer files.
- Set the
- Run the script:
bash eval_cot.sh
- Check the results: The evaluation results will be saved in the
../data/directory. The script appends_EVAL_BY_<JudgeModelName>to the original answer filename.