AlphaGo 架构技能
决策点
何时使用单个评估器 vs. 级联评估器
问题特征:
├── 搜索空间可处理 (b^d < 10^9)
│ └── 使用单个最佳评估器 → 标准优化
└── 搜索空间不可处理 (b^d > 10^12)
├── 有统一的评估预算
│ └── 使用级联近似:
│ 1. 快速剪枝(策略网络)→ 收窄波束
│ 2. 中等评估(价值网络)→ 估计质量
│ 3. 廉价探索(模拟)→ 广度覆盖
└── 非统一评估预算
└── 自适应分配:
├── 关键位置 → 昂贵评估
└── 常规位置 → 廉价启发式
准确度与延迟需求决策树
系统要求:
├── 延迟关键型(<1ms 响应)
│ ├── 准确度容忍度高(>10% 错误可接受)
│ │ └── 仅快速模拟(2µs/评估)
│ └── 准确度容忍度低(<5% 错误)
│ └── 缓存的策略网络 + 启发式回退
├── 延迟中等(1-100ms 响应)
│ ├── 需要高准确度
│ │ └── 价值网络(3ms)+ 策略网络引导
│ └── 平衡准确度/速度
│ └── 混合评估:λ=0.5 价值 + 模拟
└── 延迟容忍型(>100ms)
└── 完整级联:策略 → 价值 → 模拟,配合 MCTS
错误模式多样性评估
选择多个评估器时:
├── 所有评估器具有相似的失败模式
│ └── 使用单个最佳评估器(无多样性收益)
├── 评估器有互补错误
│ ├── 快速/噪声 + 慢速/准确配对
│ │ └── 混合 λ=0.3-0.7(偏向准确)
│ ├── 保守 + 探索配对
│ │ └── 混合 λ=0.5(等权重)
│ └── 学习 + 手工配对
│ └── 基于置信度分数的动态混合
└── 未知错误相关性
└── 实证测试:在保留集上衡量性能
失败模式
架构膨胀(检测:>5 个近似层)
症状:添加更多近似层但收益递减 根本原因:每层增加开销而无成比例准确度提升 修复:分析计算成本与准确度提升;移除投资回报率低的层 检测规则:如果增加第 N 层准确度提升 <5% 但延迟增加 >20%,则出现架构膨胀
同步耦合(检测:快速组件空闲等待)
症状:CPU 利用率下降,同时等待 GPU 评估 根本原因:快速搜索与慢速神经网络评估之间的紧耦合 修复:实现带陈旧值容忍的异步队列 检测规则:如果快速组件(搜索、模拟)空闲时间 >50%,则出现同步耦合
代理指标固化(检测:指标改善但性能下降)
症状:走子预测准确度提高但胜率下降 根本原因:优化模拟人类行为而非客观成功 修复:从监督学习切换到带真实目标的强化学习 检测规则:如果代理指标和结果指标连续 10 次评估趋势相反,则出现代理指标固化
单一评估器谬误(检测:拒绝“更差”的单个组件)
症状:因为价值网络具有更高的个体准确度而丢弃模拟 根本原因:假设最佳个体组件构成最佳系统组件 修复:经验性地测试混合性能;多样性通常胜过个体质量 检测规则:如果依据个体性能选择组件而不测试组合,则出现单一评估器谬误
统一预算分配(检测:对所有决策使用相同计算量)
症状:在明显走子和关键位置上花费相同的评估时间 根本原因:未将计算预算适应于决策重要性 修复:基于位置不确定性和结果敏感性实现自适应分配 检测规则:如果各位置的评估时间方差小于平均值的 20%,则出现统一分配
实战示例
为代码审查实现级联近似
场景:设计 AI 系统审查有 50-500 行变更的拉取请求,需要 <10s 响应时间,必须捕获 95% 的错误。
第一步:分析计算约束
- 静态分析:每个文件 10ms
- ML 错误检测器:每个文件 2s
- 深度语义分析:每个文件 30s
- 可用预算:总计 10s
第二步:应用级联决策树 根据“搜索空间不可处理”路径,因为穷举分析超出预算:
- 快速剪枝层(静态分析):排除没有复杂性变更的文件
- 中等评估层(ML 检测器):对剩余文件评分,评估错误可能性
- 昂贵分析层(语义):仅对最高分文件进行深度分析
第三步:预算分配策略
- 保留 2s 用于对所有剩余文件进行 ML 评估
- 基于 ML 评分分配剩余 8s 给语义分析
- 评分 >0.8 的文件:每个 4s(最多 2 个文件)
- 评分 0.5-0.8 的文件:每个 2s
- 评分 <0.5 的文件:仅使用 ML 结果
第四步:混合评估实现 不使用“最佳”评估器(语义分析),而是混合 ML 和语义分数:
- ML 检测器:快速,擅长模式匹配,但遗漏新型错误
- 语义分析:慢速,捕获复杂逻辑错误,误报率高
- 混合 λ=0.6:
最终分数 = 0.6 * 语义 + 0.4 * ml
新手方法:对所有内容运行语义分析 → 前几个文件后超时 专家洞察:级联允许将昂贵计算仅用于最重要的地方,同时确保每个文件获得某种评估
质量门
[ ] N 个评估器已测试:实现并基准测试了至少 3 个具有不同速度/准确度配置的评估器 [ ] 错误相关性已测量:计算成对相关矩阵,显示评估器在测试集上的相关性 <0.7 [ ] 混合与单个已评估:实证比较显示混合性能优于最佳个体组件 >5% [ ] 延迟要求已满足:完整级联下,第 95 百分位响应时间低于指定阈值 [ ] 准确度要求已满足:保留集上的错误率满足指定阈值(例如,<5% 假阴性率) [ ] 预算分配已分析:计算成本分解显示预算根据决策重要性进行分配 [ ] 失败模式已测试:在对抗条件下(分布偏移、资源约束、边缘情况)测试系统 [ ] 异步协调已验证:即使慢速组件饱和,快速组件的利用率仍保持 >80% [ ] 可扩展性已验证:负载增加到标称容量的 10 倍时,性能优雅降级 [ ] 监控已配置:指标跟踪代理与结果的校准、组件利用率和级联有效性
非适用边界
不要将此技能用于:
- 具有可处理搜索空间的简单优化问题 → 改用标准优化
- 单模型训练或调优 → 改用深度学习训练
- 需要 <1ms 延迟的实时系统 → 改用低延迟系统
- 一个评估器明显优于其他且其他评估器无价值的问题 → 改用单模型部署
- 没有搜索树结构的顺序决策过程 → 改用强化学习基础
当需要以下技能时,委托给其他技能:
- 需要实现特定神经网络架构 → 深度学习架构
- 设计分布式系统基础设施 → 分布式系统设计
- 优化单个组件性能 → 性能优化
- 处理训练数据收集和标注 → 数据工程
- 实现特定搜索算法 → 搜索算法
此技能重点针对:在计算约束下协调多个不完美评估器的架构模式,而非单个组件的实现细节。