评测与可观测性
一个在公开榜单上排名靠前的模型,落到自己的产品里仍然可能表现糟糕。基准测试衡量的是固定数据集上的通用能力,而实际应用跑的是一条特定的提示词,叠加自有的检索上下文,运行在一个智能体循环里,面对的是逐周漂移的真实用户输入。弥合这个差距的学科有两半,到 2026 年年中,它们已基本融合为同一个工具品类。实践问题在于,如何选择并接好这套工具,同时不把公开基准上的质量误认为产品里的行为。
在技术栈中,这一层承接第七部分定义的测量理论。第 47 章 抽象地衡量模型,第 48 章 判断一个差距是否站得住,第 49 章 定义人的标签,第 50 章 讲模型评判者,第 51 章 讲有据性,第 52 章 讲多步轨迹,第 53 章 则把这一切变成发布闸门。这里衡量的是正在运行的系统。它消费服务层(第 82 章)和模型网关(gateway)(第 88 章),并产出反馈信号回流给智能体(第 85 章)与微调(第 84 章):评测数据集会变成偏好数据,而智能体轨迹正是故障真正浮出水面的地方。
这是一份带日期的快照(2026 年 6 月)。在这个品类里,价格、版本号、收购与「最适合」的论断变动很快,而 2026 年又是整合密集的一年。请把下文每一个具体金额与排名都视为带出处的指示性参考,而非永恒事实,在长期投入前重新核实当前数值与路线图。优先抓住耐久的部分:品类、权衡,以及接线方式。
循环的两半
**评测(Evaluation)**问的是「输出好不好?」,对照自己定义的标准。它既离线运行(在精挑细选的数据集上、在 CI 里、上线之前),也在线运行(从生产流量中采样、持续打分)。工作的基本单位是一个分数。分数有三类,通常混着用:
- 确定性断言:正则、JSON-schema 校验、精确匹配、延迟或成本预算。便宜、快,是第一层检查。
- 基于参考的指标:BLEU、ROUGE,以及它们在检索领域的近亲,如上下文精确率、上下文召回率、忠实度。
- LLM 作为裁判:用第二个模型按评分细则给第一个模型打分。这是大规模为开放式质量打分的可扩展办法,第 50 章 的主体内容讲的正是如何做这件事而不至于自欺。
可观测性(observability)问的是「到底发生了什么?」它捕获一条轨迹(trace):一个请求在系统中流动时的完整树形结构,每一次 LLM 调用、检索、工具调用、嵌套的智能体步骤,每个 span 上都挂着输入、输出、计时、token 计数与成本。没有它,就只能靠读扁平日志来调试一个非确定性的分布式系统。
这两半之所以相连,是因为评测的对象,正是所观测到的那条轨迹。一条生产轨迹会变成一个测试用例。一个裁判在采样的 span 上运行,产出在线分数。仪表盘里抓到的一次回归,会变成离线套件里的一个固定用例。这个循环先观测、再打分、再筛选、再重测,正是「持续评测一个 LLM 应用」的实践内核,本章后续围绕它展开(图 87.2)。
2026 年的洗牌
2026 年年初的两起收购重塑了格局,也指明了大方向:独立的评测/可观测性工具,正在变成更大的数据或模型平台里的一个功能。
- OpenAI 收购了 Promptfoo(2026 年 3 月 9 日宣布),并弃用自家托管的 Evals 产品(2026 年 10 月 31 日转为只读,11 月 30 日关停),引导用户转向 Promptfoo 与 Datasets。开源的
openai/evals仓库保留,托管仪表盘则不再保留。 - ClickHouse 收购了 Langfuse(2026 年 1 月 16 日,与 ClickHouse 4 亿美元 D 轮同步)。Langfuse 表示其开源与自托管承诺继续有效。
看谁归谁所有,并不是重点。这种动荡是真实的,所以要偏好那些数据与埋点都能带走的工具。下文 OpenTelemetry 就是这样的选择。
主要玩家
下表所有许可证、定价与收购方面的论断都截至 2026 年年中,出处见延伸阅读。定价是撰写时已公布的清单形态,变动频繁,所以请把确切金额视为指示性参考。裁判准确度与「最适合」的论断取决于具体工作负载,本处未做独立基准测试。
评测框架与套件
| 名称 | 是什么 | 许可 / 模式 | 最适合 |
|---|---|---|---|
| lm-evaluation-harness(EleutherAI) | 常见学术套件:60+ 标准基准、数百个子任务、可复现配置,许多榜单的后端 | 开源(MIT) | 可复现地基准测试一个模型的原始能力 |
| Inspect(UK AISI) | 面向模型与智能体评测的框架:工具调用、多轮、模型评分;inspect_evals 内置 200+ 现成评测 |
开源(MIT) | 安全与智能体评测、沙箱化工具调用任务 |
| Promptfoo | CLI + 配置驱动的评测与红队:断言、LLM 作为裁判、模型对比、RAG/智能体测试、50+ 漏洞类别 | 开源(MIT)+ 付费企业版;被 OpenAI 收购(2026 年 3 月) | 无需 notebook 就能塞进 CI 的应用级评测与安全红队 |
| DeepEval(Confident AI) | pytest 原生的评测框架:50+ 指标(LLM 作为裁判、RAG、智能体、安全)、G-Eval(按评分细则驱动的打分)、DAG 指标(把检查组织成一张依赖图) | 开源 + Confident AI 云 | 想要单元测试式 LLM 输出回归的团队 |
| RAGAS | 无参考的 RAG 指标:忠实度、答案相关性、上下文精确率/召回率 | 开源 | 快速为 RAG 流水线打分,常通过其他框架使用 |
| MLflow 3 Evaluate | MLflow 平台内的生成式评测 + 追踪 | 开源 | 已统一到 MLflow / Databricks 的 MLOps 团队 |
追踪与可观测性平台
| 名称 | 是什么 | 许可 / 模式 | 最适合 |
|---|---|---|---|
| Langfuse | 开源 LLM 工程平台:追踪、提示词管理、评测、数据集 | MIT,可自托管;云端 Hobby 免费 / Core $29 / Pro $199 / 企业版 $2,499 每月,按 unit 计费 | 想要完全可自托管的开源可观测性 + 评测栈的团队 |
| Opik(Comet) | 开源追踪 + 评测平台:调用链、LLM 裁判指标、数据集、看板 | Apache-2.0,可自托管;Comet 云 | Langfuse 与 Phoenix 之外另一个独立、可自托管的开源选项 |
| LangSmith(LangChain) | 与框架无关的可观测性 + 评测 + 提示词平台;智能体运维 | 专有 SaaS;Developer 免费 / Plus $39/席位/月 / 企业版定制 | 处于 LangChain/LangGraph 生态内外、想要打磨完善的托管平台的团队 |
| Arize Phoenix | 构建在 OpenTelemetry 之上的开源可观测性 + 评测,经由 OpenInference 埋点 | 开源(ELv2 类);Arize AX 为商业云 | 想要 OTel 原生、厂商中立、本地零账号即可运行的追踪的团队 |
| Braintrust | 评测优先的商业平台:实验、打分、追踪、提示词 playground | 专有 SaaS;Starter 免费 / Pro $249/月 / 企业版定制 | 想要评测、追踪与提示词 playground 紧密整合的产品团队 |
| W&B Weave(Weights & Biases) | W&B 生态内的 LLM 追踪、评测、提示词/版本跟踪 | 专有 SaaS | 已在用 W&B 做实验跟踪的团队 |
| Confident AI | DeepEval 背后的云平台:数据集、追踪、监控 | 专有 SaaS | 想要托管协作层的 DeepEval 用户 |
底层基座
| 名称 | 是什么 | 许可 / 模式 | 最适合 |
|---|---|---|---|
| OpenTelemetry GenAI 语义约定 | 面向 LLM/智能体 span 与指标的厂商中立规范(gen_ai.* 属性),隶属 CNCF OTel |
开放标准(Apache 2.0) | 不必重新埋点就能切换后端的线缆格式 |
| OpenInference(Arize) | OTel 对齐的约定 + 跨提供商、智能体框架、RAG 库的即插即用自动埋点 | 开源 | 在规范稳定之前,今天就能用的实用自动埋点 |
截至 2026 年年中,OTel GenAI 规范在很大程度上仍是实验性的(「Development」稳定级别),不过核心属性(gen_ai.system、gen_ai.request.model、token 计数)正在趋稳。可以用 OTEL_SEMCONV_STABILITY_OPT_IN 选用最新版本。OpenInference 跑在规范之前,并能向任意 OTel 后端(Datadog、Grafana、Jaeger)输出,这正是它当下成为实用之选的原因。
如何选择
第一刀切在能力评测与应用评测之间,因为它们是由不同工具完成的不同任务。
服务层决定了评测套件的形态。因为评测与裁判都指向模型网关(第 88 章)而非直连提供商,两个模型之间的 A/B 就成了一条路由规则而非一次代码改动,裁判凭据也成了自带预算的受限虚拟密钥而非裸的提供商密钥。在 第 82 章 选定的网关,正是让持续在线评测运维起来很便宜的原因。
当衡量的是一个模型时,选能力套件:对比检查点、验证微调(第 84 章),或复现一个榜单数字。任务偏智能体、用工具、带安全色彩时用 Inspect,经典学术基准用 lm-evaluation-harness。
当衡量的是自己的系统时,选应用评测工具:这条提示词、这条 RAG 流水线、这个智能体,对照对产品要紧的标准。在应用评测内部,有四条轴决定选型:
| 轴 | 选这个 | 何时 |
|---|---|---|
| CI 原生 vs 平台原生 | Promptfoo(配置/CLI)或 DeepEval(pytest) | 评测必须住在仓库里、零外部账号就能为合并把关 |
| Braintrust 或 LangSmith | 想要托管 UI 让非工程师可视化地筛选数据集、对比运行 | |
| 自托管 vs 托管 | Langfuse 或 Phoenix | 数据驻留、成本管控或厂商中立要紧,且有能力运维基础设施 |
| LangSmith、Braintrust、Confident AI | 宁愿不自己运维,愿为打磨付费 | |
| OTel 原生 vs 专有 SDK | Phoenix / OpenInference | 想要一套能瞄准多后端、避免锁定的埋点 |
| LangSmith、Braintrust | 开箱更顺滑,代价是把代码耦合到单一厂商 | |
| 红队是否在范围内? | Promptfoo | 需要最深的内置对抗扫描(OWASP LLM Top 10、越狱、PII、提示注入) |
LLM 作为裁判:成本对信任
裁判大约比人工评审便宜 500 到 5000 倍,且能逼近人与人之间的一致度,但只有在校准过之后。一个没校准过的裁判,会信心十足地打分,也同样信心十足地出错,外部却很难看出来。截至 2026 年年中,第 50 章 深入展开的共识做法是:
- **对照人工标注样本验证。**报告 Cohen's kappa(即对偶然一致做过校正后的一致度),先达到 左右,再信任裁判去为任何东西把关。
- **控制位置偏差。**同时对 A/B 与 B/A 两种顺序打分,只统计一致的胜出。
- **控制冗长偏差与自偏好偏差。**永远不要把同一个模型家族同时用作生成者和裁判。
- 使用显式的、按标准分离的评分细则(G-Eval 风格)。把硬规则拆成一个检查的 DAG,而非一条含糊的提示词。
改变人类标注里「好」的基率,看着原始一致度居高不下、而 Cohen's kappa 却塌掉,这正是为什么「裁判 90% 的时候都同意」几乎什么也证明不了。
import numpy as np
# 一个几乎总是说「好」的偷懒裁判,对照人工标注来评分。
# 原始一致度看着很漂亮,但 Cohen's kappa 校正了偶然因素后就塌掉了。
def kappa(m):
m = np.array(m, float); n = m.sum()
po = np.trace(m) / n # 原始一致度
pe = (m.sum(0) * m.sum(1)).sum() / n**2 # 偶然预期下的一致度
return po, (po - pe) / (1 - pe)
n = 1000
for good_rate in [0.70, 0.80, 0.90, 0.95]:
good = int(n * good_rate); bad = n - good
caught = int(bad * 0.20) # 裁判只标出 20% 的坏答案
miss = int(good * 0.02) # 并错误地标出 2% 的好答案
cm = [[caught, miss], [bad - caught, good - miss]]
po, k = kappa(cm)
verdict = "trust" if k >= 0.8 else "do NOT trust"
print(f"human good={good_rate:.0%} agreement={po:.2f} kappa={k:.2f} -> {verdict}")
一个合理的默认选择
对一个典型团队,正在交付一两个 LLM 功能、想要一个持续评测循环而又无需组建平台团队,这套默认栈开源优先、可自托管、OTel 原生、由 CI 把关,且日后升级到托管平台有一条干净的路径。
| 任务 | 默认之选 | 托管替代 |
|---|---|---|
| 可观测性 / 追踪 | Langfuse(自托管或免费/Core 云) | LangSmith(Plus)或 Braintrust |
| CI 中的应用评测 | Promptfoo(断言、对比、红队)+ DeepEval(pytest 指标) | Braintrust / LangSmith 评测模块 |
| 模型 / 能力评测 | Inspect(智能体、安全)或 lm-evaluation-harness(学术) | 托管榜单 |
| 埋点 | OpenTelemetry GenAI 经 OpenInference 自动埋点 | 专有 SDK |
选择这套默认时有两点提醒。其一是动荡:Promptfoo 现归 OpenAI,Langfuse 现归 ClickHouse,长期投入前请重新确认路线图与许可证。其二是别加用不上的厂商。已统一到 Databricks 的团队应优先 MLflow 3 Evaluate,在 Weights & Biases 上的团队应优先 Weave,而不是再栓上一个新平台。
接线
循环经由模型网关(第 88 章)闭合:被测应用、评测与裁判都调用网关,绝不直连提供商。
一份最小的 Promptfoo 配置如下,指向网关,并在 LLM 裁判前面放了一个确定性守卫。把它存为 promptfooconfig.yaml,运行 npx promptfoo@latest eval。
# promptfooconfig.yaml
providers:
- id: openai:chat:gpt-5 # resolved by the gateway, not OpenAI directly
config:
apiBaseUrl: https://gateway.internal/v1
apiKey: ${GATEWAY_VKEY} # scoped virtual key, budget-capped
prompts:
- "Answer using only the context:\n{{context}}\n\nQ: {{question}}"
tests:
- vars: { question: "...", context: "..." }
assert:
- type: is-json # deterministic guard, runs first and free
- type: llm-rubric # LLM-as-judge, calibrated rubric
value: "Answer is faithful to the context and cites it."
provider: openai:chat:gpt-5-mini # judge via gateway, different family
要为合并把关,在 CI 里跑这一条命令,遇到回归就让任务失败:
# CI step: fail the build if any eval assertion regresses
npx promptfoo@latest eval -c promptfooconfig.yaml --no-cache --output results.json
# exit code is non-zero when assertions fail, which fails the pipeline
整个系统的心跳是提升步骤。一条来自 Langfuse 或 Phoenix、未通过在线裁判的生产轨迹,会被提升进上面的 tests: 集合,于是离线套件针对的是生产里真正看到的故障,而非设计时凭空想象的故障。没有这个提升步骤,手里就是两件互不相干的工具;有了它,才成为一个循环。
生产评测循环
这套循环只有在同时改变三条运维轴时才真正划算。可观测性把非确定性行为变成可调试的东西,从而提升能力;评测把「感觉更好」变成一道发布闸门。网关让在线裁判便宜到可以持续运行,而确定性断言在裁判调用发生之前就拦下成本低、也更该提前发现的故障。信任则落在校准与可携带性上:一个 LLM 裁判可信到何种程度,取决于它对照人类的校准,而 OTel 基座的作用,正是让轨迹与分数能从任何变更条款的厂商那里带走。只有这三者都成立,这套循环才值得搭建;而在 2026 年年中,工具终于成熟到让它们能够成立。
不稳定的选择,是判断应自动化到什么程度。LLM 裁判让持续评测变得可行,也会带入模型偏差、漂移、提示敏感性和供应商依赖。人工审查仍然需要用来校准,却太慢、太贵,不可能压在每个请求上。实践答案应当分层:先用确定性检查,再用经过校准的模型裁判,再抽样人工复核,并在发布闸门里记录到底是哪一层支撑了这个决定。
延伸阅读
- EleutherAI, “lm-evaluation-harness,” n.d.. github.comLM Evaluation Harness 是 EleutherAI 开源的标准化少样本评测框架,支持对大语言模型进行跨多基准测试的统一评测。
- UK AI Safety Institute, “Inspect AI,” n.d.. inspect.aisi.org.ukInspect 是 AISI 发布的开源框架,用于设计和运行大语言模型(LLM)评测任务。
- UK AI Safety Institute, “Inspect evals suite,” n.d.. ukgovernmentbeis.github.ioInspect Evals 是面向 Inspect AI 框架的社区贡献大语言模型评测任务注册表,收录 140 项评测,由 UK AISI、Arcadia Impact 与 Vector Institute 联合维护。
- Promptfoo, “Promptfoo documentation,” n.d.. promptfoo.devPromptfoo 是一个开源 CLI 与库,通过自动化测试用例、基准评测和漏洞扫描对大语言模型应用进行评估与红队测试,支持 50 余个模型提供商。
- Promptfoo, “Promptfoo red-teaming,” n.d.. promptfoo.devPromptfoo 是一个开源 LLM 红队工具,通过系统性生成对抗输入,在部署前检测策略违规、提示注入、越狱及信息泄露等漏洞。
- Promptfoo, “Promptfoo blog: OpenAI acquisition” (OpenAI 收购(2026 年 3 月 9 日)), 2026. promptfoo.devPromptfoo(开源大语言模型评测与红队工具)宣布被 OpenAI 收购,开源项目将继续维护。
- OpenAI, “OpenAI Evals OSS repo,” n.d.. github.comOpenAI Evals 是一个用于评测大语言模型(LLM)及其系统的开源框架,并提供基准测试的开放注册表。
- OpenAI, “Hosted Evals deprecation timeline,” n.d.. developers.openai.comOpenAI API 废弃声明页面列出了计划下线的模型(如 gpt-5-2025-08-07、o3-2025-04-16)的推荐替代版本,以及 Evals 平台的关停时间表。
- Confident AI, “DeepEval,” n.d.. deepeval.comDeepEval 是一个开源的大语言模型(LLM)评测框架,支持对 LLM 输出进行单元测试、端到端评测、合成数据集生成,以及通过 Python 集成到 CI/CD 流程中。
- Confident AI, “Confident AI,” n.d.. confident-ai.comConfident AI 是基于开源 DeepEval 框架构建的云平台,提供大语言模型(LLM)评测、可观测性与 AI 质量治理功能。
- Confident AI, “RAGAS” (经 DeepEval), n.d.. deepeval.comDeepEval 的 RAGAS 指标对四项子指标(答案相关性、忠实度、上下文精确率、上下文召回率)取平均值,对检索增强生成(RAG)流水线的生成器和检索器进行整体评分。
- MLflow, “MLflow GenAI eval,” n.d.. mlflow.orgMLflow 经典机器学习评测文档介绍 mlflow.models.evaluate() API,提供分类和回归模型的自动化指标、可视化及自定义评分器。
- Langfuse, “Langfuse,” n.d.. langfuse.comLangfuse 是面向大语言模型应用的开源可观测性与追踪平台,提供追踪捕获、延迟监控、成本跟踪与问题调试功能。
- Langfuse, “Langfuse pricing,” n.d.. langfuse.comLangfuse 定价页面介绍其开源大语言模型可观测性平台(涵盖追踪、提示词管理、评估与指标)的分级套餐(Hobby、Core、Pro、Enterprise)。
- ClickHouse, “ClickHouse acquires Langfuse” (ClickHouse 收购(2026 年 1 月 16 日)), 2026. clickhouse.comClickHouse 收购了开源大语言模型可观测性平台 Langfuse,将其 LLM 可观测性、评测与提示词管理能力与 ClickHouse 的分析数据库结合,以支持生产级 AI 质量监控。
- Comet, “Opik” (Apache-2.0 的追踪 + 评测平台;可自托管), n.d.. github.com
- LangChain, “LangSmith,” n.d.. langchain.comLangSmith 是一个面向 LLM 应用与智能体的商业可观测性平台,提供追踪、实时监控、故障调试以及成本和延迟跟踪。
- LangChain, “LangChain pricing,” n.d.. langchain.comLangSmith 定价页面列出了 LangChain 大语言模型可观测性与评测平台的订阅套餐,涵盖从个人开发者到企业用户的各级方案。
- Arize, “Arize Phoenix,” n.d.. arize.comArize Phoenix 是基于 OpenTelemetry 构建的开源 AI 可观测性与评测平台,为大语言模型(LLM)应用提供链路追踪、基于 LLM 的评测、提示词管理和实验跟踪功能。
- Braintrust, “Braintrust,” n.d.. braintrust.devBraintrust 是一个 AI 可观测性平台,用于追踪生产环境中的大语言模型(LLM)应用、运行评测(evals)并在问题触达用户前捕获回归。
- Braintrust, “Braintrust pricing,” n.d.. braintrust.dev
- Weights & Biases, “W&B Weave,” n.d.. wandb.aiW&B Weave 是面向生产智能体的可观测性平台,将多轮、多智能体系统的行为组织为会话与轮次追踪,并提供评测与监控工具以提升可靠性。
- OpenTelemetry, “OpenTelemetry GenAI semantic conventions,” n.d.. github.comOpenTelemetry 官方生成式 AI 语义约定,定义了用于追踪大语言模型调用的标准化 span 属性,涵盖模型名称、词元用量及请求元数据。
- OpenTelemetry, “GenAI observability overview,” 2026. opentelemetry.ioOpenTelemetry 生成式 AI 语义约定规范了 LLM 操作的记录方式,涵盖模型名称、词元计数、提示词、补全内容及工具调用。
- Confident AI, “LLM-as-a-judge” (LLM 作为裁判的实践(2026)), 2026. deepeval.comDeepEval 2026 指南介绍了模型作为评判者(LLM-as-a-Judge)的评测技术,包括 G-Eval、DAG 指标和 QAG 风格指标,用于对大语言模型输出进行评分、分类或成对比较。
- Confident AI, “Why LLM-as-a-judge is the best LLM evaluation method,” 2026. confident-ai.comConfident AI 的模型作为评判者(model-as-judge)指南,介绍单输出与成对比较评分、G-Eval、基于 DAG 的评测框架及提示技巧,用于可扩展的大语言模型(LLM)评测。
评论
登录后评论