Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

附录 C:FAQ 与最佳实践

本章整理 AI Harness 工程中的常见问题和最佳实践。

FAQ:常见问题

1. 评估体系设计

Q: Golden Set 需要多少案例?

A: 根据场景复杂度确定:

  • 简单场景(如分类):50-100个
  • 中等场景(如QA、客服):100-300个
  • 复杂场景(如Agent、多轮对话):300-500个

Tip

关键不是数量,而是代表性。每个重要场景至少3-5个案例覆盖。

Q: 自动评估和人工评估的比例?

A: 建议配置:

评估类型比例说明
自动评估100%每次全量自动评估
人工抽查5-10%随机抽样 + 低分案例全审
专家评审关键变更模型/Prompt重大变更时

Q: 评估多久运行一次?

A: 根据变更频率:

场景评估频率
开发迭代每次代码/Prompt变更
CI/CD集成每次提交触发
定期评估每周/每两周
生产监控每日 + 实时采样

2. 测试方法论

Q: Prompt 测试和传统测试有什么区别?

A: 核心区别:

维度传统测试Prompt测试
验证方式断言 Pass/Fail评分 + 阈值判断
结果确定性确定概率性(需多次验证)
版本管理代码版本Prompt版本 + 评估基线
回归方式相同断言得分对比

Q: 如何处理模型输出的不确定性?

A: 采用以下策略:

  1. 控制温度:评估时使用 temperature=0.0
  2. 多次执行:关键场景执行3-5次取平均
  3. 方差监控:稳定性测试检查输出方差
  4. 阈值而非断言:使用得分阈值而非精确匹配

Q: 边界测试案例如何设计?

A: 分类设计:

边界类型示例
输入边界空输入、超长输入、格式异常
语言边界多语言混合、方言、专业术语
情绪边界极端情绪、投诉、攻击性语言
知识边界超出训练数据范围、时效性问题
系统边界并发压力、资源限制、网络异常

3. 架构实现

Q: 如何控制评估成本?

A: 成本优化策略:

策略方法效果
缓存缓存模型响应和评估结果减少30-50%调用
批量执行并行批量处理减少时间成本
分层评估快速评估初筛 + 深度评估精选减少70%深度评估
采样监控生产环境5%采样控制在线成本
# 成本估算公式
Cost = (N_cases × Avg_tokens × Price_per_token) + (N_eval_calls × Eval_cost)

# 优化示例
# 100案例 × 1000tokens × $0.03/1K = $3
# G-Eval评估 × 100 × $0.01 = $1
# 总成本 ≈ $4/评估

Q: 评估结果如何存储和追溯?

A: 推荐方案:

# 存储架构
结果存储:
  - 文件存储(JSON/YAML): 完整结果归档
  - 时序数据库(Prometheus): 指标历史
  - 关系数据库(PostgreSQL): 结构化分析
  
追溯能力:
  - eval_id: 评估唯一标识
  - timestamp: 时间戳
  - config_snapshot: 配置快照
  - dataset_version: 数据集版本
  - model_version: 模型版本

4. 监控告警

Q: 如何避免告警风暴?

A: 告警收敛策略:

策略说明
冷却期同类告警5分钟内只发一次
分级P0立即、P1当日、P2周内
聚合相关告警合并为一条
抑制低优先级在高优先级期间抑制

Q: 监控指标如何选择?

A: 三层指标体系:

业务层(用户视角)
├── 用户满意度
├── 任务完成率
└── 用户投诉率

技术层(系统质量)
├── 自动评估得分
├── 内容安全率
└── 引用准确性

基础层(系统健康)
├── 响应时间 P95
├── 错误率
└── Token消耗

5. 实战问题

Q: 发现质量下降怎么办?

A: 诊断流程:

graph TB
    A[质量下降告警] --> B{范围?}
    
    B -->|全部场景| C[检查模型/Prompt变更]
    B -->|部分场景| D[分析失败模式]
    
    C --> C1[对比变更前后]
    C --> C2[检查API稳定性]
    
    D --> D1[案例分类分析]
    D --> D2[定位具体问题]
    
    C1 --> E[决策: 回滚/修复]
    D2 --> E

Q: 如何验证优化效果?

A: A/B测试流程:

  1. 设置实验:新旧版本分流(50/50或逐步)
  2. 收集数据:评估得分 + 用户反馈
  3. 统计检验:确保显著性(p < 0.05)
  4. 决策:效果显著则采用新版本

最佳实践

1. 评估体系

实践说明
版本锁定Golden Set 和评估配置必须版本锁定
基线建立首次评估作为基线,后续对比
多维评估至少3个维度:准确性、相关性、安全性
定期更新每季度更新 Golden Set,添加新案例

2. 测试流程

实践说明
开发同步Prompt修改同步添加测试案例
变更触发模型/Prompt变更触发完整评估
失败分析每次失败必须记录原因和改进
回归对比版本对比而非单点判断

3. 监控告警

实践说明
指标分层业务→技术→基础三层覆盖
告警分级P0/P1/P2/P3分级响应
上下文完整告警附带诊断信息
自动响应P0级别自动触发降级

4. 团队协作

实践说明
明确分工评估工程师、测试工程师、数据标注分工明确
评审机制重大变更需评审委员会确认
文档齐全每个组件有设计文档和使用指南
知识共享定期分享评估发现和优化经验

5. 成本控制

实践说明
缓存优先相同请求缓存结果
采样监控生产环境采样而非全量
分层评估快速初筛 + 深度精选
批量执行并行处理提高效率

Checklist 清单

新项目启动 Checklist

✅ 定义评估场景和指标体系
✅ 构建初始 Golden Set(100+案例)
✅ 选择评估框架和工具
✅ 设计评估架构
✅ 设置基线和阈值
✅ 集成 CI/CD 流程
✅ 配置监控系统
✅ 建立团队分工

评估执行 Checklist

✅ 确认数据集版本一致
✅ 确认模型配置一致
✅ 记录评估配置快照
✅ 执行全量评估
✅ 分析结果和失败案例
✅ 与基线对比
✅ 生成报告和建议
✅ 决策是否可发布

发布前 Checklist

✅ 评估得分超过阈值
✅ 无 P0/P1 级别问题
✅ 人工抽查通过
✅ 监控告警配置就绪
✅ 回滚方案准备
✅ 发布计划确认

监控日常 Checklist

✅ 检查告警状态
✅ 查看质量趋势
✅ 分析失败案例
✅ 用户反馈跟踪
✅ 优化建议生成
✅ A/B测试验证

排错指南

常见错误和解决方案

错误原因解决方案
评估得分波动大模型不确定性增加执行次数取平均,检查temperature
高分但用户不满指标设计偏差添加用户满意度指标,调整权重
成本超预算全量评估太频繁采用采样策略,启用缓存
告警风暴告警未收敛配置冷却期和聚合规则
回归检测失效基线未锁定锁定基线版本,配置版本对比
安全问题漏检测试集不全面扩展 Adversarial Set,添加攻击案例

参考资料

推荐阅读

资料主题链接
G-Eval论文LLM评估方法arxiv.org/abs/2303.16634
Ragas文档RAG评估docs.ragas.io
LangSmith教程LLM可观测性langchain.com/langsmith
Promptfoo指南Prompt测试promptfoo.dev

社区资源

资源说明
LangChain DiscordLLM应用开发社区
AI Engineering DiscordAI工程实践交流
HuggingFace社区模型和评估讨论

持续学习

AI领域快速演进,建议:

  1. 关注评估方法新进展
  2. 参考行业最佳实践
  3. 实践中持续迭代优化