置信度
概览
confidence 按顺序尝试候选模型,当响应置信度达到配置阈值时停止。它可以先用较小或更便宜的模型,仅在结果不确定时再升级。
主要优势
- 支持由小到大升级,而不是固定胜者。
- 停止条件显式且可配置。
- 多种置信度评估方法 :
avg_logprob、margin、hybrid、self_verify、automix_entailment。 - 仅在需要时,用额外延迟换取更高置信度。
算法原理
置信度算法用 token 级 logprob 或外部验证来评估模型响应:
- 排序候选:应用
escalation_order(size、small_to_large、declared、cost或automix)。 - 生成:按该顺序调用当前模型。
- 评估置信度:
avg_logprob:所有输出 token 的平均对数概率。越高(越接近 0)表示越自信。margin:每个 token 的 top-1 与 top-2 logprob 平均间隔。越高表示越自信。hybrid:两种方法的加权组合。self_verify:提示同一模型为自己的答案打分(返回 JSON{confidence, reason})。automix_entailment:按 arXiv:2310.12963 §3.2,将验证委托给外部 few-shot 蕴含服务器。置信度为verified_samples / total_samples。
- 决策:
- 置信度 >= 阈值 → 返回响应。
- 置信度 < 阈值 → 升级到下一个模型。
- 出错 → 跳过或失败(可配置)。
执行流程
解决什么问题?
部分路由应先试更便宜的候选,仅当当前答案置信度不够时再付升级成本。confidence 把这种“低置信度才升级”的串行策略写进路由器配置,而不是埋在应用代码里。
何时使用
- 路由需要在多个候选模型间逐级升级。
- 应由置信度决定是否继续到下一个模型。
- 路由应在某次响应足够好时立即停止。
- 希望先试更便宜的模型以降低成本。
已知限制
- 每次升级都会增加延迟(串行模型调用)。
- 置信度阈值可能需要按路由类型调优。
- 基于 logprob 的置信度不一定总与事实正确性相关。
hybrid方法需要调优hybrid_weights才能达到最佳效果。automix_entailment需要单独运行验证服务器(见automix_verifier.py),并且每次模型调用都会多一次 HTTP 往返。