02-LLM与结构化输出评测
核对日期:2026-05-13。
不稳定项:模型结构化输出能力、JSON schema 支持、function calling、grader API 和评测工具持续变化;生产评测前必须核对目标模型与 SDK 当前能力。
1. 学习目标
本专题关注单个 LLM 调用和结构化输出任务如何评测。它是 RAG 和 Agent 评测的基础。
学完后你应该能做到:
- 为分类、抽取、摘要、改写和结构化输出设计评测。
- 使用规则评分、程序评分和人工评分组合验证 LLM 输出。
- 评估 schema 通过率、字段完整率、事实性、拒答和安全。
- 设计 LLM-as-judge 校准流程。
- 识别格式正确但语义错误的问题。
2. LLM 输出评测维度
| 维度 | 说明 |
|---|---|
| 格式 | 是否符合 JSON/schema/markdown 要求 |
| 完整性 | 必填字段是否齐全 |
| 正确性 | 结论是否正确 |
| 指令遵循 | 是否遵守约束和角色 |
| 事实性 | 是否编造事实 |
| 拒答 | 无法回答时是否拒答 |
| 安全 | 是否泄漏、越权或执行危险指令 |
| 成本延迟 | token 和响应时间是否可接受 |
结构化输出不是只要 JSON 能 parse 就算成功。
3. 分类任务
分类适合规则和人工校准。
样例字段:
{
"id": "cls-001",
"input": "我想取消订单并退款",
"expected_label": "refund_request",
"allowed_labels": ["refund_request", "shipping_issue", "complaint"],
"risk_level": "medium"
}
指标:
- accuracy。
- precision/recall。
- confusion matrix。
- 高风险类别漏判率。
不要只看总体准确率。高风险类别漏判可能一票否决。
4. 抽取任务
抽取任务常见指标:
- 字段完整率。
- 字段准确率。
- schema 通过率。
- 多值字段 recall。
- 无信息字段是否留空。
反模式:
- 模型没找到字段时编造。
- 空字段填“未知”但下游当作真实值。
- 日期、金额、单位没有标准化。
5. 摘要和改写任务
摘要不能只看流畅度。
Rubric:
| 维度 | 标准 |
|---|---|
| 覆盖 | 是否覆盖关键点 |
| 忠实 | 是否只基于原文 |
| 压缩 | 是否去掉冗余 |
| 结构 | 是否符合目标格式 |
| 安全 | 是否泄漏不该输出的信息 |
摘要常见失败:
- 删除关键限制条件。
- 加入原文没有的信息。
- 改写语气改变承诺边界。
6. 结构化输出评测
结构化输出至少分两层:
- 语法层:JSON 能 parse,schema 通过。
- 语义层:字段内容正确。
示例指标:
| 指标 | 说明 |
|---|---|
| parse rate | 能否解析 |
| schema pass rate | 是否符合 schema |
| field completion | 必填字段是否完整 |
| field correctness | 字段值是否正确 |
| repair rate | 重试或修复比例 |
不要让 parser 静默修复严重语义错误。
7. LLM-as-judge
适合:
- 开放问答初筛。
- 摘要质量。
- 语义相似。
- 失败原因归类。
不适合单独用于:
- 高风险安全。
- 合规结论。
- 事实必须精确的任务。
- judge 无领域知识的任务。
校准流程:
人工标注小样本
-> judge 按 Rubric 评分
-> 比较一致率
-> 分析分歧
-> 修改 judge Prompt
-> 固定 judge 版本
8. 工程案例
8.1 客服意图分类
评测:
- 退款、物流、投诉、账户、其他。
- 高风险投诉不能漏判。
- 模糊样例应输出
needs_clarification。
8.2 工单字段抽取
字段:
- 订单号。
- 用户诉求。
- 金额。
- 时间。
- 风险标签。
评测:
- schema 通过率。
- 金额和日期标准化。
- 缺字段不编造。
9. 常见反模式
| 反模式 | 表现 | 后果 | 修正 |
|---|---|---|---|
| JSON 能 parse 就通过 | 字段语义错 | 下游误用 | 语义评分 |
| 只看总体准确率 | 高风险漏判 | 事故 | 分类别指标 |
| judge 无校准 | 分数好看 | 不可信 | 人工标注集 |
| 重试无限制 | 格式失败一直修 | 成本失控 | max repair |
| 摘要只看流畅 | 删除关键条件 | 误导用户 | 忠实度 Rubric |
10. 练习
为“客服工单分类 + 字段抽取”设计评测:
- 10 条分类样例。
- 10 条抽取样例。
- schema。
- 指标。
- 高风险一票否决条件。
11. 验收题
- 结构化输出为什么要分语法层和语义层评测?
- 分类任务为什么不能只看总体准确率?
- 摘要任务最常见的忠实性问题是什么?
- LLM-as-judge 如何校准?
- 哪些任务必须人工复核?
- repair retry 为什么需要上限?