Skip to content

Latest commit

 

History

History
302 lines (231 loc) · 8.76 KB

File metadata and controls

302 lines (231 loc) · 8.76 KB

使用Llama3.1-8B模型的智能路由系统使用指南

🚀 快速开始(Llama3.1-8B版本)

环境确认

# 确保已激活正确的conda环境
conda activate reasoner

# 进入项目目录
cd /home/czy/CISC_PRO

# 验证Llama模型是否正常工作
python test_llama_model.py

一键执行完整流程(推荐)

# 使用Llama3.1-8B执行完整的路由系统构建
python run_complete_pipeline.py --model llama3.1-8b --samples 200 --eval-samples 50

# 快速测试版本(用于验证系统功能)
python run_complete_pipeline.py --model llama3.1-8b --samples 20 --eval-samples 10

# 高精度版本(更多样本,更准确的结果)
python run_complete_pipeline.py --model llama3.1-8b --samples 500 --eval-samples 100

分步执行(适合调试)

步骤1: 角色性能画像

# 让8个数学专家角色解答200道GSM8K题目
python role_profiles.py --model llama3.1-8b --samples 200

预期输出:

🚀 开始角色性能画像...
使用模型: llama3.1-8b
样本数量: 200

正在评估角色 1/8: step_by_step_teacher
角色描述: 循序渐进的数学老师 - 注重逐步分解和详细解释
  进度: 10/200
  进度: 20/200
  ...
  step_by_step_teacher 准确率: 0.7650 (153/200)

正在评估角色 2/8: logical_decomposer
...

✅ 角色性能画像完成!
最佳角色: practical_calculator (准确率: 0.7850)

步骤2: 问题分类

# 使用Llama3.1-8B对200道题目进行智能分类
python question_classifier.py --model llama3.1-8b --samples 200

预期输出:

🚀 开始问题分类...
使用模型: llama3.1-8b
样本数量: 200

进度: 10/200
进度: 20/200
...

问题类别分布:
word_problems_money: 52 题 (26.0%)
arithmetic_operations: 38 题 (19.0%)
multi_step_reasoning: 35 题 (17.5%)
...

✅ 问题分类完成!
共分类 200 个问题到 9 个类别

步骤3: 性能分析和路由指南生成

# 分析角色在不同类型问题上的表现,生成路由指南
python performance_analyzer.py \
  --profile-file role_profiling_results/role_profile_detailed_20240907_143022.csv \
  --classification-file question_classification_results/question_categories_20240907_144513.csv

预期输出:

🚀 开始完整性能分析...
加载角色画像数据: role_profiling_results/role_profile_detailed_20240907_143022.csv
加载了 1600 条画像记录,包含 8 个角色

加载问题分类数据: question_classification_results/question_categories_20240907_144513.csv
加载了 200 条分类记录,包含 9 个类别

📊 分析摘要:
总角色数: 8
总类别数: 9
分析的角色-类别组合: 72

🏆 各类别最佳角色:
  word_problems_money: practical_calculator (82.3%)
  algebraic_thinking: equation_builder (78.9%)
  multi_step_reasoning: step_by_step_teacher (76.4%)
  ...

✅ 完整性能分析完成!
🎉 路由指南已生成! 查看文件: analysis_results/routing_guide_20240907_145601.md

步骤4: 智能路由器评估

# 测试智能路由系统的实际性能
python intelligent_router.py \
  --model llama3.1-8b \
  --routing-guide analysis_results/routing_guide_20240907_145601.json \
  --samples 50

预期输出:

🚀 开始评估智能路由系统...
进度: 10/50
进度: 20/50
...

路由系统总体准确率: 0.7800 (39/50)

✅ 智能路由系统评估完成!

📊 Llama3.1-8B预期性能

基于Llama3.1-8B的更强能力,您可以期待以下性能提升:

与其他模型的对比

指标 Qwen2.5-3B Gemma-2-2B Llama3.1-8B
参数量 3B 2B 8B
预期GSM8K准确率 50-60% 40-50% 70-80%
推理质量 中等 较低
路由决策准确性 中等 较低
解题详细程度 中等 简单 详细

专家角色表现预期

使用Llama3.1-8B,各个专家角色预期表现:

专家角色 预期整体准确率 最擅长类别 该类别预期准确率
practical_calculator 75-80% 金钱问题 85-90%
equation_builder 72-78% 代数思维 80-85%
step_by_step_teacher 74-79% 多步推理 78-83%
logical_decomposer 71-76% 复杂推理 75-80%

路由系统整体性能预期

  • 整体准确率: 75-82%(比单一最佳角色提升8-12%)
  • 路由准确性: 85-90%(正确选择最适合的专家)
  • 解题质量: 更详细的步骤,更清晰的逻辑

🎯 使用示例

示例1: 解决金钱相关问题

from intelligent_router import IntelligentRouter

# 初始化路由器(使用Llama3.1-8B)
router = IntelligentRouter(
    model_name="llama3.1-8b",
    routing_guide_file="analysis_results/routing_guide_latest.json"
)

# 金钱类问题
question = "Tom买了3本书,每本15美元。他付了50美元,应该找回多少钱?"

print("🔍 问题:", question)
selected_role, category, confidence, reasoning = router.route_question(question)
print(f"📍 预测类别: {category}")  # 预期: word_problems_money
print(f"🎭 选择专家: {selected_role}")  # 预期: practical_calculator
print(f"💪 信心度: {confidence}")  # 预期: high

final_answer, extracted_answer = router.solve_with_role(question, selected_role)
print(f"🎯 最终答案: {extracted_answer}")  # 预期: 5

预期输出:

🔍 问题: Tom买了3本书,每本15美元。他付了50美元,应该找回多少钱?
📍 预测类别: word_problems_money
🎭 选择专家: practical_calculator
💪 信心度: high
🎯 最终答案: 5

示例2: 解决代数问题

# 代数类问题
question = "一个数的两倍加上5等于17,这个数是多少?"

selected_role, category, confidence, reasoning = router.route_question(question)
print(f"📍 预测类别: {category}")  # 预期: algebraic_thinking
print(f"🎭 选择专家: {selected_role}")  # 预期: equation_builder

final_answer, extracted_answer = router.solve_with_role(question, selected_role)
print(f"🎯 最终答案: {extracted_answer}")  # 预期: 6

⚡ 性能优化建议

针对Llama3.1-8B的优化

  1. GPU内存优化
# 如果遇到内存不足,可以设置较小的批处理大小
export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512

# 或者使用CPU卸载
python run_complete_pipeline.py --model llama3.1-8b --samples 100
  1. 推理速度优化
# 使用较少的样本进行快速测试
python run_complete_pipeline.py --model llama3.1-8b --samples 50 --eval-samples 20

# 跳过已完成的步骤
python run_complete_pipeline.py --model llama3.1-8b --skip-profile --skip-classification
  1. 质量提升
# 使用更多样本获得更准确的画像
python run_complete_pipeline.py --model llama3.1-8b --samples 500 --eval-samples 100

🔧 故障排除

Llama模型特定问题

  1. 模型加载缓慢
# 这是正常现象,Llama3.1-8B是较大的模型
# 首次加载可能需要1-2分钟
  1. GPU内存不足
# 检查GPU使用情况
nvidia-smi

# 如果内存不足,考虑使用较小样本
python run_complete_pipeline.py --model llama3.1-8b --samples 100
  1. 推理速度较慢
# 这是正常的,Llama3.1-8B比小模型慢,但质量更高
# 可以先用小样本测试,确认系统工作后再用大样本

📈 结果文件位置

执行完成后,您将在以下目录找到结果:

CISC_PRO/
├── role_profiling_results/
│   ├── role_profile_detailed_TIMESTAMP.csv      # 详细画像数据
│   └── role_accuracy_summary_TIMESTAMP.csv      # 角色准确率排名
├── question_classification_results/
│   ├── question_categories_TIMESTAMP.csv        # 问题分类结果
│   └── classification_summary_TIMESTAMP.json    # 分类统计
├── analysis_results/
│   ├── routing_guide_TIMESTAMP.md              # 人类可读的路由指南
│   ├── routing_guide_TIMESTAMP.json            # 程序用路由数据
│   └── role_category_performance_TIMESTAMP.csv  # 性能矩阵
└── intelligent_routing_results/
    ├── routing_evaluation_TIMESTAMP.json       # 路由评估详情
    └── routing_evaluation_report_TIMESTAMP.md  # 评估报告

🎉 预期成果

使用Llama3.1-8B模型,您将获得:

  1. 高质量的专家角色画像 - 8个角色在200个问题上的详细表现分析
  2. 精准的问题分类 - 12个类别的智能分类系统
  3. 数据驱动的路由指南 - 基于实际性能的专家推荐策略
  4. 智能路由系统 - 自动选择最适合的专家解决新问题
  5. 性能提升验证 - 相比单一角色8-12%的准确率提升

现在您可以开始使用Llama3.1-8B进行智能路由系统的构建和评估了!