# LLMEval **Repository Path**: Elams/LLMEval ## Basic Information - **Project Name**: LLMEval - **Description**: LLMEval 是一个用于评测大型语言模型(LLM)在各种任务上性能的系统。GitHub 镜像仓库: https://github.com/jianzhnie/LLMEval - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-08-15 - **Last Updated**: 2026-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LLM 推理模型评测系统
[English](README.md) | [简体中文](README_zh.md)
## 概述 LLMEval 是一个用于评测大型语言模型(LLM)数学推理能力的综合评估系统。支持在线(API 模式)和离线(本地推理)两种模式,内置答案提取和正确性验证功能。 ### 主要特性 - **多推理后端**:支持 vLLM(GPU/NPU)和 SGLang(数据并行) - **灵活评测模式**:在线服务器模式和离线本地推理 - **丰富基准测试**:AIME 2024/2025、MATH-500、GSM8K 等 - **断点续评**:自动恢复中断的评测任务 - **答案验证**:内置答案提取和正确性验证 ## 评测结果 我们成功在 AIME 2024 和 AIME 2025 基准测试上复现了多个开源模型的结果。 对于 AIME24 这类仅包含 30 道题的基准测试,多次采样至关重要,因为随机采样会引入较大方差。以下结果均采用每题 64 次采样取平均值,以确保评估稳定性。 ### DeepSeek-R1-Distill-Qwen-32B | 数据集 | LLMEval | 官方报告 | |:-------:|:-------:|:-------:| | AIME24 | 70.625 | 72.6 | | AIME25 | 55.052 | 59.0 | | MATH-500| 93.2 | 94.3 | ### DeepSeek-R1-Distill-Qwen-7B | 数据集 | LLMEval | 官方报告 | |:-------:|:-------:|:-------:| | AIME24 | 51.77 | 55.5 | | AIME25 | 36.77 | 39.2 | ### DeepSeek-R1-Distill-Qwen-1.5B | 数据集 | LLMEval | 官方报告 | |:-------:|:-------:|:-------:| | AIME24 | 27.92 | 28.9 | | AIME25 | 23.44 | 21.4 | ### QwQ-32B | 数据集 | LLMEval | 官方报告 | |:-------:|:-------:|:-------:| | AIME24 | 78.65 | 79.5 | | AIME25 | 67.22 | 69.5 | ### Skywork-OR1-32B | 数据集 | LLMEval | 官方报告 | |:-------:|:-------:|:-------:| | AIME24 | 81.25 | 82.2 | | AIME25 | 72.66 | 73.3 | ### OpenThinker3-7B | 数据集 | LLMEval | 官方报告 | |:-------:|:-------:|:-------:| | AIME24 | 70.41 | 69.0 | | AIME25 | 59.16 | 53.3 | ## 安装 ### 环境要求 | 软件 | 版本 | |---------|----------| | Python | >= 3.10 | | torch | >= 2.0 | 华为昇腾 NPU 用户额外需要: - CANN == 8.1.RC1 - torch_npu == 2.5.1 ### 从源码安装 ```bash git clone https://github.com/jianzhnie/LLMEval.git # 或使用 gitee 镜像:git clone https://gitee.com/jianzhnie/LLMEval.git cd LLMEval pip install -e . ``` ### 安装 vLLM(可选) GPU 用户: ```bash pip install vllm>=0.7.0 ``` 华为昇腾 NPU 用户: ```bash # 安装 vllm git clone -b v0.7.3 --depth 1 https://github.com/vllm-project/vllm.git cd vllm pip install -r requirements-build.txt VLLM_TARGET_DEVICE=empty pip install -e . # 安装 vllm-ascend git clone -b v0.7.3.post1 --depth 1 https://github.com/vllm-project/vllm-ascend.git cd vllm-ascend export COMPILE_CUSTOM_KERNELS=1 python setup.py install ``` ## 快速开始 ### 1. 启动推理服务器(在线模式) 使用 vLLM: ```bash python -m vllm.entrypoints.openai.api_server \ --model Qwen/QwQ-32B \ --served-model-name QwQ-32B \ --tensor-parallel-size 8 \ --gpu-memory-utilization 0.9 \ --max-model-len 32768 \ --port 8090 ``` 使用 SGLang(支持数据并行): ```bash python -m sglang_router.launch_server \ --model-path Qwen/QwQ-32B \ --dp-size 4 \ --port 30000 ``` ### 2. 运行推理 在线模式: ```bash python ./llmeval/vllm/online_server.py \ --input_file "./data/aime24.jsonl" \ --output_file "./output/aime24.jsonl" \ --base_url "http://127.0.0.1:8090/v1" \ --model_name "QwQ-32B" \ --n_samples 64 \ --max_workers 8 ``` 离线模式(无需启动服务器): ```bash python llmeval/vllm/offline_infer.py \ --input_file "./data/aime24.jsonl" \ --output_file "./output/aime24.jsonl" \ --model_name_or_path "Qwen/QwQ-32B" \ --tensor_parallel_size 8 \ --n_samples 64 ``` ### 3. 评分 ```bash python ./llmeval/tasks/math_eval/eval.py \ --input_path "./output/aime24.jsonl" \ --cache_path "./output/aime24_scores.jsonl" \ --task_name "math_opensource/aime24" \ --max_workers 16 ``` ## 详细使用说明 ### 推理参数 在线和离线模式通用参数: | 参数 | 默认值 | 说明 | |----------------|---------|------------------------| | `--n_samples` | 1 | 每道题采样次数 | | `--temperature` | 0.6 | 采样温度 | | `--top_p` | 0.95 | 核采样参数 | | `--top_k` | 40 | Top-k 采样参数 | | `--max_tokens` | 32768 | 最大生成 token 数 | 在线模式特有参数: | 参数 | 默认值 | 说明 | |----------------|---------|------------------------| | `--base_url` | 必填 | API 服务器地址 | | `--model_name` | 必填 | API 使用的模型名称 | | `--max_workers` | 128 | 并发请求线程数 | 离线模式特有参数: | 参数 | 默认值 | 说明 | |--------------------------|--------|--------------------------| | `--model_name_or_path` | 必填 | 本地模型路径或 HuggingFace ID | | `--tensor_parallel_size` | 1 | 张量并行 GPU 数量 | | `--gpu_memory_utilization`| 0.9 | GPU 显存使用比例 | | `--batch_size` | 128 | 推理批次大小 | ### 支持的评测任务 - `math_opensource/aime24` - `math_opensource/aime25` - `math_opensource/math500` - `math_opensource/hmmt25` - `math_opensource/gsm8k` ### 断点续评 如果推理过程中断,直接重新运行相同命令即可。脚本会自动: 1. 读取已有输出文件 2. 统计每道题已完成采样数 3. 从断点继续评测 ### 上下文长度扩展(YaRN) 处理超过 32K token 的长文本时,使用 RoPE 缩放技术: **vLLM:** ```bash python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen3-8B \ --rope-scaling '{"rope_type":"yarn","factor":4.0}' \ --max-model-len 131072 ``` **SGLang:** ```bash python -m sglang.launch_server \ --model-path Qwen/Qwen3-8B \ --json-model-override-args '{"rope_scaling":{"rope_type":"yarn","factor":4.0}}' \ --context-length 131072 ``` ## 项目结构 ``` LLMEval/ ├── llmeval/ │ ├── vllm/ # 推理引擎 │ │ ├── online_server.py │ │ ├── offline_infer.py │ │ └── verifier_offline_infer.py │ ├── tasks/ # 评测任务 │ │ └── math_eval/ │ │ ├── eval.py │ │ ├── math_score.py │ │ └── utils_parser.py │ └── utils/ # 工具函数 │ ├── config.py │ ├── logger.py │ ├── template.py │ └── verifier_template.py ├── scripts/ # 脚本示例 └── data/ # 评测数据集 ``` ## 许可证 本项目采用 MIT 许可证。