LightRAG/docs/WhatIsRAGAS-zh.md
Claude 9b4831d84e
Add comprehensive RAGAS evaluation framework guide
This guide provides a complete introduction to RAGAS (Retrieval-Augmented Generation Assessment):

**Core Concepts:**
- What is RAGAS and why it's needed for RAG system evaluation
- Automated, quantifiable, and trackable quality assessment

**Four Key Metrics Explained:**
1. Context Precision (0.7-1.0): How relevant are retrieved documents?
2. Context Recall (0.7-1.0): Are all key facts retrieved?
3. Faithfulness (0.7-1.0): Is the answer grounded in context (no hallucination)?
4. Answer Relevancy (0.7-1.0): Does the answer address the question?

**How It Works:**
- Uses evaluation LLM to judge answer quality
- Workflow: test dataset → run RAG → RAGAS scores → optimization insights
- Integrated with LightRAG's existing evaluation module

**Practical Usage:**
- Quick start guide for LightRAG users
- Real output examples with interpretation
- Cost analysis (~$1-2 per 100 questions with GPT-4o-mini)
- Optimization strategies based on low-scoring metrics

**Limitations & Best Practices:**
- Depends on evaluation LLM quality
- Requires high-quality ground truth answers
- Recommended hybrid approach: RAGAS (scale) + human review (depth)
- Decision matrix for when to use RAGAS vs alternatives

**Use Cases:**
 Comparing different configurations/models
 A/B testing new features
 Continuous performance monitoring
 Single component evaluation (use Precision/Recall instead)

Helps users understand and effectively use RAGAS for RAG system quality assurance.
2025-11-19 12:52:22 +00:00

810 lines
24 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# RAGAS 评估框架详解
## 什么是 RAGAS
**RAGAS**Retrieval-Augmented Generation Assessment是一个专门用于评估 **RAG 系统质量**的开源框架。
### 核心概念
```
传统软件测试:
输入 → 程序 → 输出
✅ 确定性:相同输入 → 相同输出
✅ 容易测试:断言输出 == 期望值
RAG 系统测试:
问题 → [检索 + LLM生成] → 答案
❌ 非确定性:相同问题 → 不同答案
❌ 难以测试:答案正确性难以量化
RAGAS 的作用:
将"答案质量"量化为 0-1 分数
可以自动化、可比较、可追踪
```
### 为什么需要 RAGAS
**问题场景**:你改进了 RAG 系统(如:换了 embedding 模型、调整了 chunk 大小、优化了提示词),如何知道是变好了还是变差了?
**传统方法**
- 👎 人工阅读:耗时、主观、不可扩展
- 👎 用户反馈:滞后、不全面
**RAGAS 方法**
- ✅ 自动评估:几分钟评估 100+ 问题
- ✅ 客观量化0.85 vs 0.78(明确好坏)
- ✅ 可追踪:每次改动都可对比
---
## RAGAS 的四大核心指标
RAGAS 从四个维度评估 RAG 系统:
```
RAG 系统
┌──────────────┼──────────────┐
▼ ▼ ▼
【检索阶段】 【生成阶段】 【整体质量】
│ │ │
┌───┴───┐ ┌───┴───┐ ┌───┴───┐
│Context│ │Context│ │Answer │
│Recall │ │Precis.│ │Relev. │
└───────┘ └───────┘ └───────┘
┌───────┴────────┐
│ Faithfulness │
└────────────────┘
```
### 1. Context Precision上下文准确性
**测量**:检索的上下文中,有多少是**真正相关**的?
**问题**:检索了 10 个文档,但只有 3 个真正相关,其他 7 个是噪音
**计算逻辑**
```python
# 伪代码
相关文档排名靠前 高分
无关文档混在其中 低分
# 例子
检索结果[相关, 相关, 无关, 相关, 无关, ...]
Context Precision 0.75 # 前面的相关文档多
```
**实际评估方式**
RAGAS 使用 LLM 判断每个检索片段是否与问题相关:
```
LLM Prompt:
---
Question: "What is the capital of France?"
Retrieved Context 1: "Paris is the capital and largest city of France..."
Retrieved Context 2: "The Eiffel Tower was built in 1889..."
Is Context 1 relevant to answering the question? → Yes
Is Context 2 relevant to answering the question? → No
```
**分数解读**
- **0.9-1.0**:检索非常精准,几乎没有噪音
- **0.7-0.9**:大部分相关,少量噪音
- **0.5-0.7**:相关和无关混杂
- **< 0.5**检索质量差需要优化
**优化方向**
- 提升 embedding 模型质量
- 调整 top_k 参数减少检索数量
- 改进 reranking 策略
---
### 2. Context Recall上下文召回
**测量**黄金标准答案中的信息有多少出现在检索的上下文中
**问题**检索遗漏了关键信息导致答案不完整
**计算逻辑**
```python
# 黄金标准答案包含 5 个事实
ground_truth = [
"巴黎是法国首都",
"位于塞纳河畔",
"人口约 220 万",
"是欧洲最大城市之一",
"有埃菲尔铁塔等著名地标"
]
# 检索的上下文包含其中 4 个
retrieved_contexts_contain = [
"巴黎是法国首都", # ✓
"位于塞纳河畔", # ✓
"人口约 220 万", # ✓
# 缺少"欧洲最大城市"
"有埃菲尔铁塔" # ✓
]
Context Recall = 4 / 5 = 0.80
```
**实际评估方式**
RAGAS 将黄金答案拆分为多个"句子/陈述"然后用 LLM 判断每个陈述是否能从检索的上下文中推导出来
```
LLM Prompt:
---
Statement from ground truth: "Paris is the capital of France"
Retrieved Contexts: [context1, context2, ...]
Can this statement be inferred from the contexts? → Yes/No
```
**分数解读**
- **0.9-1.0**检索到所有关键信息
- **0.7-0.9**漏掉少量次要信息
- **0.5-0.7**漏掉一些关键信息
- **< 0.5**检索不足严重遗漏
**优化方向**
- 增加 top_k检索更多文档
- 改进 chunking 策略避免关键信息被切分
- 优化查询改写query rewriting
---
### 3. Faithfulness忠实度
**测量**生成的答案是否**基于检索到的上下文**还是 LLM "幻觉"
**问题**LLM 生成了听起来合理但实际错误的信息
**计算逻辑**
```python
# 将答案拆分为多个陈述
answer = "巴黎是法国首都,位于塞纳河畔,人口约 500 万。"
statements = [
"巴黎是法国首都", # ✓ 上下文支持
"位于塞纳河畔", # ✓ 上下文支持
"人口约 500 万" # ✗ 上下文说是 220 万(幻觉!)
]
Faithfulness = 2 / 3 = 0.67 # 有幻觉,分数低
```
**实际评估方式**
```
LLM Prompt:
---
Context: "Paris is the capital of France, located on the Seine River,
with a population of about 2.2 million."
Answer Statement: "Paris has a population of about 5 million."
Can this statement be verified from the context? → No (Hallucination)
```
**分数解读**
- **0.9-1.0**答案完全基于事实无幻觉
- **0.7-0.9**少量不可验证的陈述
- **0.5-0.7**有明显幻觉
- **< 0.5**严重幻觉不可信
**优化方向**
- 调整 LLM prompt强调"仅基于上下文回答"
- 使用更可靠的 LLM 模型
- 减少生成的 temperature降低随机性
---
### 4. Answer Relevancy答案相关性
**测量**答案是否真正回答了用户的问题
**问题**答案虽然基于事实但答非所问
**计算逻辑**
```python
Question: "What is the capital of France?"
Answer A: "Paris is the capital of France."
Answer Relevancy = 1.0 # 完美回答
Answer B: "France is a country in Europe. It has many beautiful cities
including Paris, Lyon, Marseille..."
Answer Relevancy = 0.65 # 包含答案但啰嗦
Answer C: "France has a population of 67 million people."
Answer Relevancy = 0.2 # 完全跑题
```
**实际评估方式**
RAGAS 使用"反向问题生成"
```
Step 1: 根据答案生成问题
Answer: "Paris is the capital of France"
Generated Question: "What is the capital of France?"
Step 2: 计算原问题和生成问题的相似度
Original Question: "What is the capital of France?"
Generated Question: "What is the capital of France?"
Similarity: 1.0 → High Relevancy
如果答案答非所问:
Answer: "France has 67 million people"
Generated Question: "What is the population of France?"
Similarity to Original: 0.3 → Low Relevancy
```
**分数解读**
- **0.9-1.0**直接回答问题无冗余
- **0.7-0.9**回答了问题但有冗余信息
- **0.5-0.7**部分回答或答非所问
- **< 0.5**完全不相关
**优化方向**
- 改进 prompt要求简洁直接的答案
- 调整生成长度限制
- 使用更好的指令跟随模型
---
## RAGAS 如何工作?
### 工作流程
```
┌─────────────────────────────────────────────────────────────┐
│ 1. 准备测试数据集 │
│ - 问题列表 │
│ - 黄金标准答案ground truth
└────────────────┬────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 2. 运行 RAG 系统 │
│ Question → RAG System → {answer, contexts} │
└────────────────┬────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 3. RAGAS 自动评估 │
│ 使用评估 LLM如 GPT-4o-mini分析
│ - 答案是否忠实于上下文? │
│ - 答案是否相关? │
│ - 检索是否完整? │
│ - 检索是否精准? │
└────────────────┬────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 4. 输出分数报告 │
│ Faithfulness: 0.87 │
│ Answer Relevancy: 0.91 │
│ Context Recall: 0.82 │
│ Context Precision: 0.75 │
│ Overall RAGAS: 0.84 │
└─────────────────────────────────────────────────────────────┘
```
### 数据格式
RAGAS 需要的输入数据
```python
from datasets import Dataset
# 测试数据集格式
test_dataset = Dataset.from_dict({
"question": [
"What is the capital of France?",
"Who founded Apple Inc.?",
],
"answer": [
"Paris is the capital of France.", # RAG 系统生成的答案
"Steve Jobs and Steve Wozniak founded Apple Inc.",
],
"contexts": [
[ # 检索到的上下文(列表)
"Paris is the capital and largest city of France...",
"The city is located on the Seine River...",
],
[
"Apple Inc. was founded by Steve Jobs, Steve Wozniak...",
],
],
"ground_truth": [
"Paris", # 黄金标准答案
"Steve Jobs and Steve Wozniak",
],
})
```
### 评估 LLM 的作用
**关键点**RAGAS 使用**另一个 LLM**评估 LLM来评估你的 RAG 系统
```
你的 RAG 系统:
使用 LLM A如 Qwen-7B生成答案
RAGAS 评估:
使用 LLM B如 GPT-4o-mini评估答案质量
```
**为什么这样设计?**
- LLM 擅长理解语义和推理
- 可以判断"答案是否基于上下文"、"是否相关"等复杂问题
- 比简单的字符串匹配更智能
**成本**
- 评估一个问题通常需要 4-8 LLM 调用每个指标 1-2
- 推荐使用便宜的模型如 GPT-4o-mini$0.15/1M tokens
- 评估 100 个问题的成本约 $0.50-1.00
---
## LightRAG 中的 RAGAS 使用
### 内置评估工具
LightRAG 已经集成了 RAGAS`lightrag/evaluation/eval_rag_quality.py`
### 快速开始
#### 步骤 1: 安装依赖
```bash
pip install ragas datasets langchain-openai
```
#### 步骤 2: 准备测试数据集
```bash
# 创建测试数据集
cat > lightrag/evaluation/my_test.json << 'EOF'
{
"test_cases": [
{
"question": "LightRAG 支持哪些向量数据库?",
"ground_truth": "LightRAG 支持多种向量数据库,包括 Milvus、Qdrant、ChromaDB、Neo4j 等。",
"project": "lightrag_docs"
},
{
"question": "如何提高 LightRAG 的索引速度?",
"ground_truth": "可以通过增加 max_async 参数、使用更快的 LLM、禁用 gleaning 等方式提高索引速度。",
"project": "lightrag_docs"
}
]
}
EOF
```
#### 步骤 3: 配置评估 LLM
```bash
# 创建 .env 文件
cat > .env << 'EOF'
# 评估使用的 LLM推荐使用便宜的模型
EVAL_LLM_MODEL=gpt-4o-mini
EVAL_LLM_BINDING_API_KEY=sk-your-api-key-here
# 评估使用的 Embedding 模型
EVAL_EMBEDDING_MODEL=text-embedding-3-small
# 如果使用自定义端点(如 vLLM、Ollama
# EVAL_LLM_BINDING_HOST=http://localhost:8000/v1
# 并发数(同时评估多少个问题)
EVAL_MAX_CONCURRENT=2
EOF
```
#### 步骤 4: 运行 LightRAG 服务器
```bash
# 启动 LightRAG确保已经索引了相关文档
python -m lightrag.api.lightrag_server
```
#### 步骤 5: 运行评估
```bash
# 评估默认数据集
python lightrag/evaluation/eval_rag_quality.py
# 评估自定义数据集
python lightrag/evaluation/eval_rag_quality.py \
--dataset lightrag/evaluation/my_test.json \
--ragendpoint http://localhost:9621
```
### 输出示例
```
======================================================================
🔍 RAGAS Evaluation - Using Real LightRAG API
======================================================================
Evaluation Models:
• LLM Model: gpt-4o-mini
• Embedding Model: text-embedding-3-small
• LLM Endpoint: OpenAI Official API
Test Configuration:
• Total Test Cases: 2
• Test Dataset: my_test.json
• LightRAG API: http://localhost:9621
• Results Directory: results
======================================================================
🚀 Starting RAGAS Evaluation of LightRAG System
🔧 RAGAS Evaluation (Stage 2): 2 concurrent
======================================================================
Eval-01: 100%|████████████████████████| 4/4 [00:12<00:00]
Eval-02: 100%|████████████████████████| 4/4 [00:11<00:00]
======================================================================
📊 EVALUATION RESULTS SUMMARY
======================================================================
# | Question | Faith | AnswRel | CtxRec | CtxPrec | RAGAS | Status
--------------------------------------------------------------------------------------------------------------------------
1 | LightRAG 支持哪些向量数据库? | 0.9200 | 0.9500 | 0.8800 | 0.8200 | 0.8925 | ✓
2 | 如何提高 LightRAG 的索引速度? | 0.8800 | 0.9100 | 0.8500 | 0.7800 | 0.8550 | ✓
======================================================================
======================================================================
📊 EVALUATION COMPLETE
======================================================================
Total Tests: 2
Successful: 2
Failed: 0
Success Rate: 100.00%
Elapsed Time: 25.43 seconds
Avg Time/Test: 12.72 seconds
======================================================================
📈 BENCHMARK RESULTS (Average)
======================================================================
Average Faithfulness: 0.9000
Average Answer Relevance: 0.9300
Average Context Recall: 0.8650
Average Context Precision: 0.8000
Average RAGAS Score: 0.8738
----------------------------------------------------------------------
Min RAGAS Score: 0.8550
Max RAGAS Score: 0.8925
======================================================================
📁 GENERATED FILES
======================================================================
Results Dir: /path/to/lightrag/evaluation/results
• CSV: results_20250119_143022.csv
• JSON: results_20250119_143022.json
======================================================================
```
### 结果解读
#### 问题 1 分析
```
Question: "LightRAG 支持哪些向量数据库?"
Faithfulness: 0.92 ✅ 答案基本基于事实
Answer Relevancy: 0.95 ✅ 直接回答了问题
Context Recall: 0.88 👍 检索到大部分相关信息
Context Precision: 0.82 👍 检索较精准但有少量噪音
RAGAS Score: 0.8925 ✅ 整体质量优秀
```
**这意味着什么?**
- RAG 系统正确回答了问题
- 答案基于检索到的文档没有幻觉
- Context Precision 0.82 表示检索了一些不太相关的内容
- 💡 优化建议可以调整 top_k 或使用 reranking
#### 问题 2 分析
```
Question: "如何提高 LightRAG 的索引速度?"
Faithfulness: 0.88 👍 答案较为忠实
Answer Relevancy: 0.91 ✅ 回答了问题
Context Recall: 0.85 👍 检索到大部分信息
Context Precision: 0.78 ⚠️ 检索有较多噪音
RAGAS Score: 0.8550 👍 质量良好
```
**这意味着什么?**
- 基本回答正确
- Faithfulness 0.88 表示可能有轻微幻觉或不可验证的陈述
- Context Precision 0.78 表示检索了不少无关内容
- 💡 优化建议
- 改进 chunking确保相关信息在同一 chunk
- 调整 embedding 模型
- 添加元数据过滤
---
## RAGAS 的限制和注意事项
### 1. 依赖评估 LLM 的质量
**问题**如果评估 LLM 本身有偏见或错误怎么办
```python
# 示例:评估 LLM 可能犯错
Question: "某专业领域的深度问题"
Answer: "(正确但技术性强的答案)"
评估 LLMGPT-4o-mini可能
- 误判为不相关因为不理解专业术语
- 误判为幻觉因为超出其知识范围
```
**解决方案**
- 使用更强的评估模型 GPT-4o 而非 GPT-4o-mini
- 在特定领域使用领域专家人工抽查
- 对关键指标进行人工校准
### 2. Ground Truth 的质量
**RAGAS 严重依赖黄金标准答案的质量**
```python
# 糟糕的 Ground Truth
{
"question": "What is LightRAG?",
"ground_truth": "It's good" # 太简单,无法评估 Recall
}
# 好的 Ground Truth
{
"question": "What is LightRAG?",
"ground_truth": "LightRAG is a retrieval-augmented generation framework
that combines knowledge graphs with vector search to
improve answer quality and relevance."
}
```
**建议**
- Ground Truth 应该详细准确
- 包含所有关键信息点
- 由领域专家撰写或审核
### 3. 成本考虑
**每个问题的评估成本**
```
单个问题评估:
- Faithfulness: 2-3 次 LLM 调用
- Answer Relevancy: 1-2 次 LLM 调用
- Context Recall: 2-4 次 LLM 调用
- Context Precision: 2-4 次 LLM 调用
总计: 7-13 次 LLM 调用
使用 GPT-4o-mini ($0.15/1M input, $0.60/1M output):
- 每个问题约 $0.01-0.02
- 100 个问题约 $1-2
- 1000 个问题约 $10-20
```
**省钱建议**
- 使用便宜的评估模型GPT-4o-mini
- 使用自托管模型 Qwen2.5-7B
- 减少测试集大小50-100 个代表性问题足够
### 4. 非确定性
**同一个问题多次评估可能得到不同分数**
```python
# 第一次运行
RAGAS Score: 0.8523
# 第二次运行(完全相同的输入)
RAGAS Score: 0.8619
# 差异原因:评估 LLM 的非确定性
```
**解决方案**
- 关注趋势而非绝对值0.85 vs 0.75 是有意义的差异
- 使用足够大的测试集减少随机波动
- 降低评估 LLM temperature
---
## 实战建议
### 1. 建立基线
```bash
# 在做任何优化之前,先建立基线
python lightrag/evaluation/eval_rag_quality.py > baseline_results.txt
# 记录基线分数
Baseline RAGAS Score: 0.8234
- Faithfulness: 0.8523
- Answer Relevancy: 0.8756
- Context Recall: 0.7945
- Context Precision: 0.7712
```
### 2. 每次改动后重新评估
```bash
# 改动 1: 换了 embedding 模型
# 重新评估
python lightrag/evaluation/eval_rag_quality.py > after_embedding_change.txt
# 对比
RAGAS Score: 0.8234 → 0.8456 (+2.7%) ✅ 改进
- Context Recall: 0.7945 → 0.8234 (+3.6%) # 主要改进点
# 改动 2: 调整了 chunk size
RAGAS Score: 0.8456 → 0.8123 (-3.9%) ❌ 变差
# 回滚改动
```
### 3. 分析单个失败案例
```python
# 查看详细的 JSON 结果
import json
with open('lightrag/evaluation/results/results_20250119.json') as f:
results = json.load(f)
# 找出分数最低的问题
lowest_score = min(results['results'], key=lambda x: x['ragas_score'])
print(f"问题: {lowest_score['question']}")
print(f"RAGAS: {lowest_score['ragas_score']}")
print(f"答案: {lowest_score['answer']}")
print(f"指标: {lowest_score['metrics']}")
# 输出示例:
# 问题: "如何配置自定义 LLM"
# RAGAS: 0.6234
# 答案: "LightRAG supports custom LLMs..."
# 指标: {
# 'faithfulness': 0.5234, # ← 低!可能有幻觉
# 'answer_relevancy': 0.8234,
# 'context_recall': 0.5123, # ← 低!检索不足
# 'context_precision': 0.6456
# }
#
# 分析: 检索没找到关键信息LLM 开始"猜测"答案
# 解决: 确保相关文档被索引,改进检索策略
```
### 4. 针对性优化
根据指标找出优化方向
| 指标低 | 可能原因 | 优化方向 |
|--------|---------|---------|
| **Context Precision 低** | 检索了太多无关内容 | 减少 top_k<br>• 添加 reranking<br>• 改进 embedding 模型 |
| **Context Recall 低** | 检索遗漏关键信息 | • 增加 top_k<br>• 优化 chunking 策略<br>• 改进查询改写 |
| **Faithfulness 低** | LLM 产生幻觉 | • 改进 prompt强调基于事实<br>• 降低 temperature<br>• 使用更可靠的 LLM |
| **Answer Relevancy 低** | 答案答非所问或冗余 | • 改进 prompt要求简洁<br>• 限制生成长度<br>• 使用指令跟随能力更强的 LLM |
---
## 与传统评估方法对比
### 传统方法:人工评估
```
优点:
✅ 最准确(人类判断)
✅ 可以发现意外问题
缺点:
❌ 耗时(每个问题 2-5 分钟)
❌ 成本高(需要专家时间)
❌ 不可扩展(难以评估 100+ 问题)
❌ 主观(不同评估者结果不一致)
```
### RAGAS 方法
```
优点:
✅ 快速(几分钟评估 100 个问题)
✅ 成本低($1-2 per 100 questions
✅ 可扩展(轻松评估 1000+ 问题)
✅ 客观(分数可重复、可比较)
✅ 自动化CI/CD 集成)
缺点:
❌ 依赖评估 LLM可能有误判
❌ 需要高质量 Ground Truth
❌ 无法发现所有类型的问题
```
### 推荐做法:混合使用
```
1. 使用 RAGAS 进行大规模自动评估100+ 问题)
→ 快速发现整体趋势和明显问题
2. 对低分案例进行人工审查10-20 个)
→ 深入理解问题根源
3. 定期进行人工抽查(每周/每月)
→ 校准 RAGAS 评估,发现边缘案例
4. 收集真实用户反馈
→ 发现 RAGAS 无法覆盖的问题
```
---
## 总结
### RAGAS 核心价值
1. **量化 RAG 质量**:将"答案好不好"从主观判断变为客观分数
2. **快速迭代**:每次改动都能立即看到影响
3. **多维度评估**:从检索、生成、整体三个角度全面评估
4. **自动化**:可集成到 CI/CD 流程
### 使用场景
**适合使用 RAGAS 的场景**
- 评估 RAG 系统的整体质量
- 对比不同配置/模型的效果
- 持续监控系统性能
- A/B 测试新特性
**不适合使用 RAGAS 的场景**
- 评估单个组件(如只评估实体提取)→ 用专门的 Precision/Recall
- 极高准确性要求的领域(如医疗)→ 必须人工审核
- 没有明确答案的开放性问题 → 难以创建 Ground Truth
### 下一步
现在你了解了 RAGAS可以
1. **运行第一次评估**
```bash
python lightrag/evaluation/eval_rag_quality.py
```
2. **创建自己的测试集**
- 收集 20-50 个真实用户问题
- 为每个问题编写高质量的 Ground Truth
3. **建立评估流程**
- 每次重大改动前后都运行评估
- 追踪 RAGAS 分数变化
- 结合人工审查
4. **持续优化**
- 针对低分指标优化
- 定期更新测试集
- 收集新的边缘案例
---
## 参考资源
- **RAGAS 官方文档**: https://docs.ragas.io/
- **RAGAS GitHub**: https://github.com/explodinggradients/ragas
- **论文**: "RAGAS: Automated Evaluation of Retrieval Augmented Generation"
- **LightRAG 评估代码**: `lightrag/evaluation/eval_rag_quality.py`
---
需要我帮你:
- 创建第一个测试数据集?
- 运行实际评估?
- 分析评估结果?