cai/benchmarks
Mery-Sanz 3ee4833dd6 submodule seceval 2025-05-12 07:58:30 +02:00
..
cti_bench@c527ae73e3 cti_bench 2025-05-09 15:01:28 +02:00
cybermetric Retry openai 9 2025-05-08 19:42:00 +02:00
seceval@7aef3176a1 submodule seceval 2025-05-12 07:58:30 +02:00
utils add datasets 2025-05-12 07:57:01 +02:00
README.md readme 2025-05-09 15:42:26 +02:00
eval.py run tests before mr 2025-05-09 16:48:52 +02:00

README.md

AI Model Evaluation Benchmarks

This chapter is a curated collection of benchmark datasets and evaluation tools designed to assess the capabilities of custom AI models, particularly in domains related to cybersecurity.

The collection is intended to support researchers and developers who are evaluating their own models using reliable, task-specific benchmarks.

Currently, this are the benchmarks included:

Benchmark Description
SecEval Benchmark designed to evaluate large language models (LLMs) on security-related tasks. It includes various real-world scenarios such as phishing email analysis, vulnerability classification, and response generation.
CyberMetric Benchmark framework that focuses on measuring the performance of AI systems in cybersecurity-specific question answering, knowledge extraction, and contextual understanding. It emphasizes both domain knowledge and reasoning ability.
CTIBench Benchmark focused on evaluating LLM models' capabilities in understanding and processing Cyber Threat Intelligence (CTI) information.

The goal is to consolidate diverse evaluation tasks under a single framework to support rigorous, standardized testing.

📊 General Summary Table

Model SecEval CyberMetric Total Value
model_name XX.X% XX.X% XX.X%

▶️ Usage

git submodule update --init --recursive  # init submodules
pip install cvss
python benchmarks/eval.py --model MODEL_NAME --dataset_file INPUT_FILE --eval EVAL_TYPE --backend BACKEND
Arguments:
    -m, --model         # Specify the model to evaluate (e.g., "gpt-4", "ollama/qwen2.5:14b")
    -d, --dataset_file  # IMPORTANT! By default: small test data of 2 samples 
    -B, --backend       # Backend to use: "openai", "openrouter", "ollama" (required)
    -e, --eval          # Specify the evaluation benchmark

Output:
   outputs/
   └── benchmark_name/
       └── model_date_random-num/
           ├── answers.json       # the whole test with LLM answers
           └── information.txt    # report of that precise run (e.g. model_name, benchmark_name, metrics, date)

🔍 Examples

How to run different CTI Bench tests with the "llama/qwen2.5:14b" model using Ollama as the backend

python benchmarks/eval.py --model ollama/qwen2.5:14b --dataset_file benchmarks/cybermetric/CyberMetric-2-v1.json --eval cybermetric --backend ollama
python benchmarks/eval.py --model ollama/qwen2.5:14b --dataset_file benchmarks/seceval/eval/datasets/questions-2.json --eval seceval --backend ollama

How to run different CTI Bench tests with the "qwen/qwen3-32b:free" model using Openrouter as the backend

python benchmarks/eval.py --model qwen/qwen3-32b:free  --dataset_file benchmarks/cti_bench/data/cti-mcq1.tsv --eval cti_bench --backend openrouter
python benchmarks/eval.py --model qwen/qwen3-32b:free  --dataset_file benchmarks/cti_bench/data/cti-ate2.tsv --eval cti_bench --backend openrouter