You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

280 lines
6.3 KiB
Markdown

6 months ago
# 第十二章示例代码
本目录包含第十二章《智能体性能评估》的所有示例代码,按照文档顺序编号,方便学习者跟随文档学习。
## 📁 文件列表
| 文件名 | 对应章节 | 说明 |
|--------|---------|------|
| `01_basic_agent_example.py` | 12.1.1 | 基础智能体示例,说明为何需要评估 |
| `02_bfcl_quick_start.py` | 12.2.5 | BFCL快速开始一键评估 |
| `03_bfcl_custom_evaluation.py` | 12.2.5 | BFCL自定义评估底层组件 |
| `04_run_bfcl_evaluation.py` | 12.2.9 | BFCL评估最佳实践 |
| `05_gaia_quick_start.py` | 12.3.5 | GAIA快速开始一键评估 |
| `06_gaia_best_practices.py` | 12.3.9 | GAIA评估最佳实践 |
| `07_data_generation_complete_flow.py` | 12.4.6 | 数据生成完整评估流程 |
| `08_data_generation_llm_judge.py` | 12.4.3 | LLM Judge评估 |
| `09_data_generation_win_rate.py` | 12.4.4 | Win Rate评估 |
## 🚀 快速开始
### 环境准备
1. **安装HelloAgents框架**
```bash
pip install hello-agents[evaluation]==0.2.3
```
2. **设置环境变量**
```bash
# OpenAI API Key用于GPT-4o
export OPENAI_API_KEY="your_openai_api_key"
# HuggingFace Token用于GAIA数据集
export HF_TOKEN="your_huggingface_token"
```
3. **下载BFCL数据集**(可选,首次运行会自动下载):
```bash
cd ../HelloAgents
git clone https://github.com/ShishirPatil/gorilla.git temp_gorilla
```
### 运行示例
#### 1. 基础智能体示例
```bash
python 01_basic_agent_example.py
```
这个示例展示了一个基本的ReAct智能体说明为何需要评估系统。
#### 2. BFCL快速开始
```bash
python 02_bfcl_quick_start.py
```
这是最简单的BFCL评估方式一行代码完成评估。
**预期输出**
```
准确率: 100.00%
正确数: 5/5
```
#### 3. BFCL自定义评估
```bash
python 03_bfcl_custom_evaluation.py
```
展示如何使用底层组件进行自定义评估流程。
#### 4. BFCL最佳实践
```bash
python 04_run_bfcl_evaluation.py
```
展示BFCL评估的最佳实践包括
- 渐进式评估
- 多类别评估
- 对比评估
- 错误分析
#### 5. GAIA快速开始
**重要提示**GAIA是受限数据集需要先申请访问权限。
1. 访问 https://huggingface.co/datasets/gaia-benchmark/GAIA
2. 点击"Request Access"申请访问权限
3. 等待审核通过通常1-2天
4. 设置HF_TOKEN环境变量
```bash
python 05_gaia_quick_start.py
```
**预期输出**
```
精确匹配率: 100.00%
部分匹配率: 100.00%
正确数: 2/2
```
#### 6. GAIA最佳实践
```bash
python 06_gaia_best_practices.py
```
展示GAIA评估的最佳实践包括
- 分级评估
- 小样本快速测试
- 结果解读
#### 7. 数据生成完整评估流程
```bash
python 07_data_generation_complete_flow.py 30 3.0
```
参数说明:
- `30`生成30道题目
- `3.0`每道题目之间延迟3秒
这个示例展示了数据生成的完整评估流程:
1. 生成AIME题目
2. LLM Judge评估
3. Win Rate评估
4. 人工验证
**预期输出**
```
生成数量: 30道题目
LLM Judge平均分: 3.5/5.0
Win Rate: 45.0%
建议: 生成质量接近AIME真题水平
```
#### 8. LLM Judge评估
```bash
python 08_data_generation_llm_judge.py
```
展示如何使用LLM Judge评估生成的AIME题目质量。
**预期输出**
```
平均分:
正确性: 5.00/5
清晰度: 4.50/5
难度匹配: 4.00/5
完整性: 5.00/5
总体平均: 4.62/5
质量评估:
✅ 优秀 - 题目质量很高,可以直接使用
```
#### 9. Win Rate评估
```bash
python 09_data_generation_win_rate.py
```
展示如何使用Win Rate评估生成的AIME题目质量。
**预期输出**
```
Win Rate: 45.00%
Tie Rate: 10.00%
Loss Rate: 45.00%
质量评估:
✅ 优秀 - 生成质量接近AIME真题水平
```
## 📊 学习路径
### 初学者路径
1. **了解评估的必要性**
- 运行 `01_basic_agent_example.py`
2. **学习BFCL评估**
- 运行 `02_bfcl_quick_start.py`(快速开始)
- 运行 `04_run_bfcl_evaluation.py`(最佳实践)
3. **学习GAIA评估**
- 运行 `05_gaia_quick_start.py`(快速开始)
- 运行 `06_gaia_best_practices.py`(最佳实践)
### 进阶路径
1. **自定义评估流程**
- 运行 `03_bfcl_custom_evaluation.py`
2. **数据生成评估**
- 运行 `08_data_generation_llm_judge.py`LLM Judge
- 运行 `09_data_generation_win_rate.py`Win Rate
- 运行 `07_data_generation_complete_flow.py`(完整流程)
## 💡 常见问题
### Q1: 运行示例时提示找不到模块?
A: 请确保已安装HelloAgents框架
```bash
cd ../HelloAgents
pip install -e .
```
### Q2: BFCL评估提示找不到数据集
A: 首次运行会自动下载数据集,请确保网络连接正常。如果下载失败,可以手动下载:
```bash
cd ../HelloAgents
git clone https://github.com/ShishirPatil/gorilla.git temp_gorilla
```
### Q3: GAIA评估提示没有访问权限
A: GAIA是受限数据集需要先申请访问权限
1. 访问 https://huggingface.co/datasets/gaia-benchmark/GAIA
2. 点击"Request Access"
3. 等待审核通过
4. 设置HF_TOKEN环境变量
### Q4: 评估速度太慢?
A: 可以减少样本数量:
```python
# BFCL评估
results = bfcl_tool.run(agent, category="simple_python", max_samples=5)
# GAIA评估
results = gaia_tool.run(agent, level=1, max_samples=2)
# 数据生成评估
python 07_data_generation_complete_flow.py 10 3.0 # 只生成10道题目
```
### Q5: 如何估算评估成本?
A: 评估成本主要来自LLM API调用
**BFCL评估**
- 每个样本约1次API调用
- 成本约0.01-0.02元/样本
- 完整评估400样本约4-8元
**GAIA评估**
- 每个样本约1-5次API调用取决于任务复杂度
- 成本约0.05-0.20元/样本
- 完整评估466样本约23-93元
**数据生成评估**
- 生成约0.05元/题
- LLM Judge约0.02元/题
- Win Rate约0.02元/对比
- 生成30道题目约2-3元
## 📚 相关资源
- **HelloAgents框架**https://github.com/jjyaoao/HelloAgents
- **BFCL官方仓库**https://github.com/ShishirPatil/gorilla
- **GAIA官方仓库**https://huggingface.co/datasets/gaia-benchmark/GAIA
## 🤝 贡献
如果你发现示例代码有问题或有改进建议欢迎提交Issue或Pull Request。
## 📄 许可证
本示例代码遵循与HelloAgents框架相同的许可证。