|
|
# AIME数据生成与评估完整运行指南
|
|
|
|
|
|
本文档提供完整的运行步骤,从数据生成到评估报告生成。
|
|
|
|
|
|
## 前置准备
|
|
|
|
|
|
### 1. 环境配置
|
|
|
|
|
|
确保已安装所有依赖:
|
|
|
|
|
|
```bash
|
|
|
# 安装评估系统依赖
|
|
|
pip install hello-agents[evaluation]
|
|
|
|
|
|
# 或手动安装
|
|
|
pip install datasets huggingface_hub pandas tqdm gradio
|
|
|
```
|
|
|
|
|
|
### 2. 环境变量配置
|
|
|
|
|
|
在 `.env` 文件中配置:
|
|
|
|
|
|
```bash
|
|
|
# LLM API密钥(二选一)
|
|
|
DASHSCOPE_API_KEY=your_dashscope_key # 阿里云DashScope
|
|
|
OPENAI_API_KEY=your_openai_key # OpenAI
|
|
|
|
|
|
# HuggingFace Token(用于下载数据集)
|
|
|
HF_TOKEN=your_hf_token
|
|
|
```
|
|
|
|
|
|
## 完整运行步骤
|
|
|
|
|
|
### 步骤1:运行完整评估流程
|
|
|
|
|
|
这是**一键运行**的方式,会自动完成生成、评估、报告生成:
|
|
|
|
|
|
```bash
|
|
|
cd docs/chapter12/HelloAgents
|
|
|
python data_generation/run_complete_evaluation.py 30 3.0
|
|
|
```
|
|
|
|
|
|
**参数说明**:
|
|
|
- `30` - 生成30道题目
|
|
|
- `3.0` - 每次生成间隔3秒(推荐2-3秒)
|
|
|
|
|
|
**说明**:
|
|
|
- 使用AIME 2025年真题作为评估参考
|
|
|
- 数据集来源:math-ai/aime25(JSONL格式)
|
|
|
|
|
|
**预计耗时**:
|
|
|
- 生成30道题:约15-30分钟(取决于API速度)
|
|
|
- LLM Judge评估:约10-15分钟
|
|
|
- Win Rate评估:约5-10分钟
|
|
|
- **总计**:约30-55分钟
|
|
|
|
|
|
**输出文件**:
|
|
|
```
|
|
|
data_generation/
|
|
|
├── generated_data/
|
|
|
│ └── aime_generated_YYYYMMDD_HHMMSS.json # 生成的题目
|
|
|
└── evaluation_results/
|
|
|
└── YYYYMMDD_HHMMSS/
|
|
|
├── llm_judge/
|
|
|
│ ├── llm_judge_result_YYYYMMDD_HHMMSS.jsonl
|
|
|
│ └── llm_judge_report_YYYYMMDD_HHMMSS.md
|
|
|
├── win_rate/
|
|
|
│ ├── win_rate_result_YYYYMMDD_HHMMSS.jsonl
|
|
|
│ └── win_rate_report_YYYYMMDD_HHMMSS.md
|
|
|
└── comprehensive_report.md # 综合报告
|
|
|
```
|
|
|
|
|
|
### 步骤2:查看评估报告
|
|
|
|
|
|
#### 2.1 查看综合报告
|
|
|
|
|
|
```bash
|
|
|
# 找到最新的评估结果目录
|
|
|
cd data_generation/evaluation_results
|
|
|
ls -lt # 查看最新的目录
|
|
|
|
|
|
# 查看综合报告
|
|
|
cat YYYYMMDD_HHMMSS/comprehensive_report.md
|
|
|
```
|
|
|
|
|
|
**综合报告包含**:
|
|
|
- 基本信息(生成时间、题目数量等)
|
|
|
- 数据生成统计(主题分布、答案分析)
|
|
|
- LLM Judge评估结果(总体评分、各维度评分)
|
|
|
- Win Rate评估结果(胜率统计、对比分析)
|
|
|
- 综合结论和改进建议
|
|
|
|
|
|
#### 2.2 查看详细报告
|
|
|
|
|
|
**LLM Judge详细报告**:
|
|
|
```bash
|
|
|
cat YYYYMMDD_HHMMSS/llm_judge/llm_judge_report_YYYYMMDD_HHMMSS.md
|
|
|
```
|
|
|
|
|
|
**Win Rate详细报告**:
|
|
|
```bash
|
|
|
cat YYYYMMDD_HHMMSS/win_rate/win_rate_report_YYYYMMDD_HHMMSS.md
|
|
|
```
|
|
|
|
|
|
### 步骤3:人工验证(可选)
|
|
|
|
|
|
如果需要进行人工验证,运行:
|
|
|
|
|
|
```bash
|
|
|
python data_generation/human_verification_ui.py data_generation/generated_data/aime_generated_YYYYMMDD_HHMMSS.json
|
|
|
```
|
|
|
|
|
|
**操作步骤**:
|
|
|
1. 浏览器自动打开 `http://127.0.0.1:7860`
|
|
|
2. 阅读题目、答案、解答
|
|
|
3. 从4个维度评分(1-5分)
|
|
|
4. 选择验证状态(approved/rejected/needs_revision)
|
|
|
5. 添加评论(可选)
|
|
|
6. 点击"提交验证"
|
|
|
7. 查看下一题
|
|
|
|
|
|
**验证结果保存**:
|
|
|
```
|
|
|
data_generation/generated_data/aime_generated_YYYYMMDD_HHMMSS_verifications.json
|
|
|
```
|
|
|
|
|
|
## 分步运行(高级)
|
|
|
|
|
|
如果需要分步运行,可以按以下步骤:
|
|
|
|
|
|
### 步骤1:仅生成数据
|
|
|
|
|
|
```python
|
|
|
from data_generation.aime_generator import AIMEGenerator
|
|
|
|
|
|
generator = AIMEGenerator(delay_seconds=3.0)
|
|
|
generated_data_path = generator.generate_and_save(num_problems=30)
|
|
|
print(f"生成数据保存在: {generated_data_path}")
|
|
|
```
|
|
|
|
|
|
### 步骤2:仅运行LLM Judge评估
|
|
|
|
|
|
```python
|
|
|
from hello_agents import HelloAgentsLLM
|
|
|
from hello_agents.tools import LLMJudgeTool
|
|
|
|
|
|
llm = HelloAgentsLLM()
|
|
|
llm_judge_tool = LLMJudgeTool(llm=llm)
|
|
|
|
|
|
result = llm_judge_tool.run({
|
|
|
"generated_data_path": "data_generation/generated_data/aime_generated_XXXXXX.json",
|
|
|
"reference_year": 2025,
|
|
|
"max_samples": 30,
|
|
|
"output_dir": "data_generation/evaluation_results/llm_judge"
|
|
|
})
|
|
|
```
|
|
|
|
|
|
### 步骤3:仅运行Win Rate评估
|
|
|
|
|
|
```python
|
|
|
from hello_agents import HelloAgentsLLM
|
|
|
from hello_agents.tools import WinRateTool
|
|
|
|
|
|
llm = HelloAgentsLLM()
|
|
|
win_rate_tool = WinRateTool(llm=llm)
|
|
|
|
|
|
result = win_rate_tool.run({
|
|
|
"generated_data_path": "data_generation/generated_data/aime_generated_XXXXXX.json",
|
|
|
"reference_year": 2025,
|
|
|
"num_comparisons": 20,
|
|
|
"output_dir": "data_generation/evaluation_results/win_rate"
|
|
|
})
|
|
|
```
|
|
|
|
|
|
## 常见问题
|
|
|
|
|
|
### 1. API速率限制
|
|
|
|
|
|
**问题**:
|
|
|
```
|
|
|
INFO:openai._base_client:Retrying request to /chat/completions in 0.451826 seconds
|
|
|
```
|
|
|
|
|
|
**解决**:
|
|
|
- 增加延迟时间:`python data_generation/run_complete_evaluation.py 30 5.0`
|
|
|
- 使用检查点恢复:中断后重新运行相同命令会自动恢复
|
|
|
|
|
|
### 2. HuggingFace下载慢
|
|
|
|
|
|
**问题**:下载AIME数据集很慢
|
|
|
|
|
|
**解决**:
|
|
|
```bash
|
|
|
# 使用镜像源
|
|
|
export HF_ENDPOINT=https://hf-mirror.com
|
|
|
|
|
|
# 或手动下载后使用本地路径
|
|
|
```
|
|
|
|
|
|
### 3. 生成题目重复
|
|
|
|
|
|
**问题**:生成的题目有重复
|
|
|
|
|
|
**解决**:
|
|
|
- 已使用900+道真题作为参考样例
|
|
|
- 每次生成都随机选择不同的参考
|
|
|
- 提示词强调"生成完全不同的题目"
|
|
|
|
|
|
### 4. 评估失败
|
|
|
|
|
|
**问题**:LLM Judge或Win Rate评估失败
|
|
|
|
|
|
**解决**:
|
|
|
- 检查API密钥是否正确
|
|
|
- 检查生成的数据文件是否存在
|
|
|
- 检查数据文件格式是否正确
|
|
|
|
|
|
## 质量标准
|
|
|
|
|
|
### 优秀标准
|
|
|
- LLM Judge平均分 ≥ 4.5/5.0
|
|
|
- Win Rate ≥ 48%(接近50%)
|
|
|
- 通过率 ≥ 90%
|
|
|
- 人工验证通过率 ≥ 95%
|
|
|
|
|
|
### 良好标准
|
|
|
- LLM Judge平均分 ≥ 4.0/5.0
|
|
|
- Win Rate ≥ 45%
|
|
|
- 通过率 ≥ 80%
|
|
|
- 人工验证通过率 ≥ 90%
|
|
|
|
|
|
### 需要改进
|
|
|
- LLM Judge平均分 < 4.0/5.0
|
|
|
- Win Rate < 45%
|
|
|
- 通过率 < 80%
|
|
|
- 人工验证通过率 < 90%
|
|
|
|
|
|
## 下一步
|
|
|
|
|
|
根据评估结果:
|
|
|
|
|
|
1. **如果质量优秀**:
|
|
|
- 可以使用生成的数据
|
|
|
- 考虑生成更多数据
|
|
|
- 保留评估报告作为质量证明
|
|
|
|
|
|
2. **如果质量良好**:
|
|
|
- 进行人工验证
|
|
|
- 筛选高质量数据
|
|
|
- 调整生成提示词
|
|
|
|
|
|
3. **如果需要改进**:
|
|
|
- 分析低分题目的共同问题
|
|
|
- 调整生成提示词
|
|
|
- 重新生成并评估
|
|
|
|
|
|
## 示例输出
|
|
|
|
|
|
### 综合报告示例
|
|
|
|
|
|
```markdown
|
|
|
# AIME数据生成与评估综合报告
|
|
|
|
|
|
## 1. 基本信息
|
|
|
|
|
|
- **生成时间**: 2025-01-10 12:00:00
|
|
|
- **生成题目数量**: 30
|
|
|
- **参考AIME年份**: 2025
|
|
|
|
|
|
## 2. 数据生成统计
|
|
|
|
|
|
### 主题分布
|
|
|
|
|
|
| 主题 | 数量 | 占比 |
|
|
|
|------|------|------|
|
|
|
| 代数 | 10 | 33.3% |
|
|
|
| 几何 | 8 | 26.7% |
|
|
|
| 数论 | 7 | 23.3% |
|
|
|
| 组合 | 3 | 10.0% |
|
|
|
| 概率 | 2 | 6.7% |
|
|
|
|
|
|
## 3. LLM Judge评估结果
|
|
|
|
|
|
- **平均总分**: 4.2/5.0
|
|
|
- **通过率**: 85.0%
|
|
|
- **优秀率**: 40.0%
|
|
|
|
|
|
## 4. Win Rate评估结果
|
|
|
|
|
|
- **Win Rate**: 45.0%
|
|
|
- **评级**: 良好
|
|
|
|
|
|
## 5. 综合结论
|
|
|
|
|
|
✅ 生成数据质量**良好**,接近AIME真题水平。
|
|
|
```
|
|
|
|
|
|
## 总结
|
|
|
|
|
|
完整流程:
|
|
|
1. 运行 `python data_generation/run_complete_evaluation.py 30 3.0`
|
|
|
2. 等待30-55分钟
|
|
|
3. 查看综合报告 `data_generation/evaluation_results/XXXXXX/comprehensive_report.md`
|
|
|
4. (可选)运行人工验证
|
|
|
5. 根据评估结果决定下一步
|
|
|
|
|
|
**说明**:
|
|
|
- 所有评估都使用AIME 2025年真题作为参考
|
|
|
- 数据集来源:math-ai/aime25(JSONL格式)
|
|
|
|
|
|
祝你使用愉快!
|
|
|
|