可以把评测拆成三件事:
- 是否遵守提示词要求
- 是否忠实于原始文档
- 周报本身是否完整、清晰、可用
不要只用“整体看起来不错”这种单一主观评分。更可靠的方法是:规则检测 + LLM 裁判 + 人工抽检。
一、先把提示词转成可检查项
假设提示词是:
根据文档生成周报,包含本周完成、问题风险、下周计划;不超过 800 字;不得编造;使用简洁正式的中文;风险必须注明负责人。
可以拆成:
| 维度 | 检查项 | 检查方式 |
|---|---|---|
| 结构遵循 | 是否包含三个指定章节 | 程序规则 / LLM |
| 长度遵循 | 是否不超过 800 字 | 程序规则 |
| 内容忠实 | 事项是否都能在文档中找到依据 | LLM + 引用核验 |
| 信息完整 | 文档中的重要事项是否被覆盖 | LLM |
| 风险格式 | 每项风险是否包含负责人 | 程序规则 / LLM |
| 表达风格 | 是否简洁、正式、像周报 | LLM / 人工 |
| 无编造 | 是否出现原文没有的人名、数字、日期、结论 | LLM + 实体比对 |
关键点是:先把自然语言提示词原子化。每条要求都要变成一个尽量独立、可以判定“通过/不通过”或打分的检查项。
推荐评分体系
可以采用 100 分制:
1. 提示词遵循度:30 分
检查:
- 格式和章节是否符合要求
- 字数、语言、语气是否符合要求
- 是否遗漏提示词中的明确指令
- 是否违反禁止项
- 是否满足特殊格式要求,例如表格、负责人、时间范围
其中“硬性要求”建议直接做门槛判断。例如:
- 超过字数:不合格
- 缺少必需章节:不合格
- 使用了禁止内容:不合格
2. 事实忠实度:30 分
把周报中的每个事实性陈述拆出来,检查能否被原文支持。
可以使用:
事实忠实度 = 有原文依据的事实数量 / 周报中的事实总数重点检查:
- 人名
- 日期
- 数字
- 项目状态
- 完成情况
- 原因和结论
- 风险判断
- 下周计划
“下周计划”比较特殊:如果原文没有计划,但模型自行推导了计划,应标为无依据推断,除非提示词明确允许模型给建议。
3. 关键信息覆盖率:20 分
忠实度高不代表周报好,因为模型可能只写原文中少量安全信息。
先从原文提取“应当进入周报的关键事实”,再检查生成结果覆盖了多少:
信息覆盖率 = 已覆盖的关键事实数量 / 原文中的关键事实总数例如原文中有:
- 完成 5 个事项
- 2 个延期事项
- 1 个高风险问题
- 3 个下周计划
生成结果只写了完成事项,即使没有编造,覆盖率也很低。
4. 周报质量:15 分
建议评价:
- 信息是否按主题归类
- 是否突出结果,而不是流水账
- 是否简洁
- 是否存在重复
- 风险和计划是否具体、可执行
- 阅读者能否快速理解本周状态
5. 可追溯性:5 分
理想情况下,让生成结果中的关键事项附带来源,例如:
- 完成支付接口联调。[来源:文档第 3 节]最终展示给用户时可以隐藏来源,但评测阶段保留引用,可以显著提高事实核验可靠性。
推荐的自动评测流程
原始文档 ↓ 提取关键事实和证据 ↓ 解析提示词,生成检查清单 ↓ 生成周报 ↓ 规则检测:字数、章节、格式、必填字段 ↓ LLM 逐项判断:忠实度、覆盖率、风格、可用性 ↓ 人工抽检与校准建议不要直接让一个 LLM 回答“这篇周报打多少分”。更可靠的方式是分步骤:
- 从提示词提取约束清单。
- 从原文提取关键事实。
- 从周报提取事实性陈述。
- 逐条验证事实是否有来源支持。
- 逐条检查关键事实是否被覆盖。
- 最后计算总分。
LLM 裁判提示词示例
你是周报质量评测员。 输入包括: 1. 原始文档 2. 生成周报时使用的提示词 3. 待评测周报 请严格基于原始文档进行评测,不要使用外部知识。 评测步骤: 一、提示词遵循 - 将提示词拆解成独立要求。 - 对每项要求判断:通过、部分通过、不通过。 - 给出对应证据。 二、事实忠实度 - 提取周报中的所有事实性陈述。 - 对每条判断: - supported:原文明确支持 - partially_supported:原文部分支持,但表述扩大或过度确定 - unsupported:原文没有依据 - contradicted:与原文冲突 - 引用原文证据。 - 不得因为内容“看起来合理”就判定为 supported。 三、信息覆盖率 - 提取原始文档中的关键完成事项、问题、风险和计划。 - 检查周报是否覆盖。 - 区分关键遗漏和次要遗漏。 四、表达质量 - 评价结构、简洁性、重复、可读性和行动明确性。 输出必须为 JSON: { "instruction_checks": [ { "requirement": "", "status": "pass|partial|fail", "evidence": "" } ], "claims": [ { "claim": "", "status": "supported|partially_supported|unsupported|contradicted", "source_evidence": "" } ], "missing_key_facts": [], "scores": { "instruction_following": 0, "faithfulness": 0, "coverage": 0, "writing_quality": 0, "traceability": 0, "total": 0 }, "fatal_issues": [], "summary": "" }让裁判输出 JSON,方便批量统计、排序和回归测试。
如何验证评测本身是否可靠
LLM 裁判也会误判,因此需要建立一小批人工标注集。
建议准备 50~200 个样本,并人为制造不同类型的问题:
- 缺少章节
- 超出字数
- 编造数字
- 把“进行中”写成“已完成”
- 漏掉重大风险
- 添加原文没有的下周计划
- 负责人写错
- 时间范围写错
- 内容正确但过于冗长
- 格式正确但事实错误
由至少两名人工评审独立评分,再比较自动评测结果:
- 硬性要求准确率
- 幻觉识别准确率
- 关键遗漏识别率
- 与人工总分的相关性
- 不同裁判模型之间的一致率
对于“是否编造”“是否违反硬约束”这类关键指标,应关注精确率和召回率,而不只是总分。
实际落地建议
最实用的质量门槛可以设置为:
硬性格式检查全部通过 事实忠实度 >= 95% 关键信息覆盖率 >= 85% 不存在 contradicted 事实 不存在重大风险遗漏 综合得分 >= 80同时保留分项结果。因为同样是 80 分:
- 一个可能是内容很好但格式略有问题;
- 另一个可能是格式完美但编造了事实。
这两类结果的风险完全不同,不应该只看综合分。
最终建议把指标分为两层:
- 准入指标:无事实冲突、无严重编造、满足硬性提示词要求。
- 质量指标:覆盖率、简洁度、结构、可读性、行动明确性。
事实正确性应该拥有最高优先级,不能被文笔或格式得分抵消。