A comprehensive evaluation framework for Large Language Models (LLMs), providing extensive assessments across three key dimensions: general capabilities, safety, and robustness. The framework includes diverse benchmarks and supports both API-based and local models with distributed evaluation capabilities.
5
stars
96
commits
Python
primary language
Jun 27, 2025
updated
A comprehensive evaluation framework for Large Language Models (LLMs), providing extensive assessments across three key dimensions: general capabilities, safety, and robustness. The framework includes 14 diverse benchmarks and supports both API-based and local models with distributed evaluation capabilities.
Key Features:
Supported Evaluations:
General Capabilities
Safety Testing
Robustness
Benchmark Locations:
human-eval;math, gsm8k, aime;mmlu, gpqa, drop,alpaca_eval;xstest, strongreject, wildchat;advglue, advinstruction, decodingtrust_ood(style);source /data/zhangyichi/fangzhengwei/o1/o1_evals/env.sh
model_name=meta-llama/Llama-3.1-8B-Instruct
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
# robustness
accelerate launch --num_processes 8 -m evals.custom_benchmark.robustness_benchmark.advglue --model_name $model_name --result_dir results
accelerate launch --num_processes 8 -m evals.custom_benchmark.robustness_benchmark.advinstruction --model_name $model_name --result_dir results
accelerate launch --num_processes 8 -m evals.custom_benchmark.robustness_benchmark.decodingtrust_ood --model_name $model_name --result_dir results
# safety
accelerate launch --num_processes 8 -m evals.custom_benchmark.safety_benchmark.strongreject --model_name $model_name --result_dir results
accelerate launch --num_processes 8 -m evals.custom_benchmark.safety_benchmark.xstest --model_name $model_name --result_dir results
accelerate launch --num_processes 8 -m evals.custom_benchmark.safety_benchmark.wildchat --model_name $model_name --result_dir results
# general - alpaca
accelerate launch --num_processes 8 -m evals.alpaca_eval.src.alpaca_eval.demo_ddp --model_name $model_name --result_dir results
# general - simple_evals
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name mmlu
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name math
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name gpqa
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name drop
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name humaneval
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name gsm8k
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name aime
For API-based models (e.g., OpenAI API), we recommend using single process with multi-threading to avoid duplicate requests and unnecessary costs.
strongreject.run(
generate_kwargs={
"jailbreaks": ["none", "pair", "pap_misrepresentation"],
"num_proc": 20, # Number of threads
},
batched=False, # Disable batching for API calls
)
CUDA_VISIBLE_DEVICES=0 accelerate launch --num_processes 1 -m evals.custom_benchmark.safety_benchmark.strongreject
For local models, we use DistributedDataParallel (DDP) to maximize parallel efficiency across multiple GPUs.
batched=True enables LocalDDPModel mode:
batch_generatestrongreject.run(
generate_kwargs={
"jailbreaks": ["pair"],
"max_batch_size": 32, # Batch size for each GPU
},
batched=True # Enable batched processing
)
# Using 8 GPUs
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 accelerate launch --num_processes 8 -m evals.custom_benchmark.safety_benchmark.strongreject
put your API settings into ./env.sh
export OPENAI_API_KEY=[YOUR OPENAI_API_KEY]
export OPENAI_BASE_URL=[YOUR OPENAI_BASE_URL]
export HF_TOKEN=[YOUR HUGGINGFACE_LOGIN_TOKEN]
pip install openai
pip install anthropic
pip install blobfile
pip install google-api-python-client
# latest version of sk-learn is required
pip install [-U] scikit-learn
pip install accelerate
96 commits
Python
90.3%
Jupyter Notebook
9.0%
A comprehensive evaluation framework for Large Language Models (LLMs), providing extensive assessments across three key dimensions: general capabilities, safety, and robustness. The framework includes diverse benchmarks and supports both API-based and local models with distributed evaluation capabilities.
5
stars
96
commits
Python
primary language
Jun 27, 2025
updated
A comprehensive evaluation framework for Large Language Models (LLMs), providing extensive assessments across three key dimensions: general capabilities, safety, and robustness. The framework includes 14 diverse benchmarks and supports both API-based and local models with distributed evaluation capabilities.
Key Features:
Supported Evaluations:
General Capabilities
Safety Testing
Robustness
Benchmark Locations:
human-eval;math, gsm8k, aime;mmlu, gpqa, drop,alpaca_eval;xstest, strongreject, wildchat;advglue, advinstruction, decodingtrust_ood(style);source /data/zhangyichi/fangzhengwei/o1/o1_evals/env.sh
model_name=meta-llama/Llama-3.1-8B-Instruct
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
# robustness
accelerate launch --num_processes 8 -m evals.custom_benchmark.robustness_benchmark.advglue --model_name $model_name --result_dir results
accelerate launch --num_processes 8 -m evals.custom_benchmark.robustness_benchmark.advinstruction --model_name $model_name --result_dir results
accelerate launch --num_processes 8 -m evals.custom_benchmark.robustness_benchmark.decodingtrust_ood --model_name $model_name --result_dir results
# safety
accelerate launch --num_processes 8 -m evals.custom_benchmark.safety_benchmark.strongreject --model_name $model_name --result_dir results
accelerate launch --num_processes 8 -m evals.custom_benchmark.safety_benchmark.xstest --model_name $model_name --result_dir results
accelerate launch --num_processes 8 -m evals.custom_benchmark.safety_benchmark.wildchat --model_name $model_name --result_dir results
# general - alpaca
accelerate launch --num_processes 8 -m evals.alpaca_eval.src.alpaca_eval.demo_ddp --model_name $model_name --result_dir results
# general - simple_evals
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name mmlu
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name math
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name gpqa
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name drop
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name humaneval
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name gsm8k
accelerate launch --num_processes 8 -m evals.simple_evals.demo_ddp --model_name $model_name --result_dir results --eval_name aime
For API-based models (e.g., OpenAI API), we recommend using single process with multi-threading to avoid duplicate requests and unnecessary costs.
strongreject.run(
generate_kwargs={
"jailbreaks": ["none", "pair", "pap_misrepresentation"],
"num_proc": 20, # Number of threads
},
batched=False, # Disable batching for API calls
)
CUDA_VISIBLE_DEVICES=0 accelerate launch --num_processes 1 -m evals.custom_benchmark.safety_benchmark.strongreject
For local models, we use DistributedDataParallel (DDP) to maximize parallel efficiency across multiple GPUs.
batched=True enables LocalDDPModel mode:
batch_generatestrongreject.run(
generate_kwargs={
"jailbreaks": ["pair"],
"max_batch_size": 32, # Batch size for each GPU
},
batched=True # Enable batched processing
)
# Using 8 GPUs
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 accelerate launch --num_processes 8 -m evals.custom_benchmark.safety_benchmark.strongreject
put your API settings into ./env.sh
export OPENAI_API_KEY=[YOUR OPENAI_API_KEY]
export OPENAI_BASE_URL=[YOUR OPENAI_BASE_URL]
export HF_TOKEN=[YOUR HUGGINGFACE_LOGIN_TOKEN]
pip install openai
pip install anthropic
pip install blobfile
pip install google-api-python-client
# latest version of sk-learn is required
pip install [-U] scikit-learn
pip install accelerate
96 commits
Python
90.3%
Jupyter Notebook
9.0%