Skip to content

第六章 测试、评估与可观测性

如何测试一个输出不确定的系统?传统软件测试建立在"相同输入产生相同输出"的假设之上。当这个假设不再成立,测试的含义就得变。

前面五章讨论了如何设计和构建 LLM 应用——认识论、决策框架、开发过程、声明式约束、架构与编排。本章回答一个绕不开的问题:怎么知道系统在正常工作?

文章

  • 不确定性系统的测试哲学 -- 结构正确性与语义正确性是两个独立的层面。结构测试已被第四章的类型系统在解析阶段覆盖;测试的真正战场是语义验证和属性测试——特别是那些类型系统无法表达的输入-输出关系、扰动不变性和跨调用一致性。
  • 实验管理与统计度量 -- Prompt 具有代码与配置的双重身份。它需要版本控制,更需要实验管理:控制变量、效果溯源、统计显著性检验。如何定义可量化的质量维度,如何建立具有统计属性的评估基线。
  • 从评估到可观测性 -- 测试与评估的边界在 LLM 应用中消失。评估指标就是测试断言,持续评估就是在线测试套件。从离线评估到在线监控形成一条连贯的链条,可观测性是评估在运行时的自然延伸——发现"成功的失败",关联 prompt 版本与输出质量,监控成本。
  • 降级设计与数据飞轮 -- 降级是正常运行的一部分。五级降级层级设计、触发条件的量化、透明度原则。以及如何通过用户反馈、输出日志和人工标注构建正反馈闭环,将降级数据转化为系统改进的燃料。

阅读顺序

四篇文章从哲学到实践:测试哲学(结构测试已被类型系统覆盖,真正的战场是语义验证)、实验管理(prompt 迭代应该是可量化的实验)、从评估到可观测性(上线前的质量门禁和上线后的质量监控是同一条线的两端)、降级设计与数据飞轮(最后防线和持续改进的闭环)。