真实面经题目 · 原创解析
知识卡片抽取 Prompt 中为什么要同时写好示例和坏示例,如何用正反 few-shot 稳定结构化输出?
这题考察 Prompt Engineering 在结构化抽取任务中的设计能力。知识卡片抽取不是泛泛总结,而是把原始内容稳定映射到字段、格式和质量标准。好示例告诉模型什么是合格输出,坏示例和反例告诉模型哪些边界、误抽、过度概括和格式错误不能接受。优秀回答应覆盖 schema 约束、正反 few-shot、错误类型、评估指标和迭代方法。
真实面经题目 · 原创解析
这题考察 Prompt Engineering 在结构化抽取任务中的设计能力。知识卡片抽取不是泛泛总结,而是把原始内容稳定映射到字段、格式和质量标准。好示例告诉模型什么是合格输出,坏示例和反例告诉模型哪些边界、误抽、过度概括和格式错误不能接受。优秀回答应覆盖 schema 约束、正反 few-shot、错误类型、评估指标和迭代方法。
知识卡片抽取 Prompt 里同时放好示例和坏示例,本质是在给模型建立一个可执行的判别边界。好示例定义目标结构、字段粒度、表达风格和信息来源;坏示例定义禁止行为,比如凭空补充、字段混淆、把无关信息抽成知识点、格式不符合 schema、过度压缩导致关键信息丢失。正反 few-shot 的价值不是堆例子,而是覆盖最常见的边界场景,让模型知道“像这样输出”和“不要这样输出”的差别。落地时我会先定义字段 schema 和验收规则,再选覆盖面高的正例、反例和边界例,最后用离线样本评估准确率、字段完整率、格式合法率和人工修改率。
知识卡片抽取的输入通常是文本、对话或文档片段,输出是标题、概念、定义、要点、来源、标签等结构化字段。Prompt 首先要明确抽取目标、字段含义、是否允许改写、是否允许推断,以及无法抽取时如何留空。
好示例提供正向模式,让模型学习字段粒度、语言风格和信息保真方式。例如什么内容应进入标题,什么内容应进入解释,多个知识点如何拆分,原文证据如何保留。它降低模型自由发挥空间,让输出更接近产品需要。
坏示例不是为了让 prompt 变长,而是为了标出边界。常见反例包括把背景噪声当知识点、凭常识补充原文没有的信息、把多个概念混成一张卡、字段格式不合法、把低置信内容写成确定结论。反例能显著减少模型在模糊输入下的幻觉和过度抽取。
示例要覆盖高频样本、边界样本和失败样本,而不是随机挑几条。正例展示标准答案,反例展示错误输出并解释错因;如果 token 受限,可以保留最能区分边界的例子。对于复杂 schema,可以按字段分组给例子,避免模型只学到表面格式。
评估不能只看主观感觉,应准备标注集和自动校验。指标包括 JSON 或 schema 合法率、字段完整率、抽取准确率、幻觉率、重复率、人工修订成本。发现错误后,先判断是 schema 不清、示例覆盖不足、输入预处理问题,还是模型能力不足,再决定改 prompt、加校验或拆任务。
如果只给坏示例而不解释错因,确实可能有风险。更好的方式是明确标注“错误示例”和“错误原因”,再给对应的正确示例,让模型学到边界差异,而不是复制错误格式。
优先保留覆盖边界最多的样例,把重复样例删掉。也可以把通用规则放进系统指令,把少量关键正反例放进 prompt,复杂场景通过检索动态加载相似样例。
Prompt 中要明确禁止补充原文没有的事实,并要求无法确认时留空、标记低置信或返回不可抽取。结构化校验只能保证格式,不能保证事实,所以还需要证据字段或原文 span 对齐。
当单次输出字段多、错误类型复杂或模型经常混淆字段时,可以先做候选知识点识别,再做字段填充和质量校验。拆步能提高可控性,但会增加延迟和成本。