真实面经题目 · 原创解析

知识卡片抽取 Prompt 中为什么要同时写好示例和坏示例,如何用正反 few-shot 稳定结构化输出?

这题考察 Prompt Engineering 在结构化抽取任务中的设计能力。知识卡片抽取不是泛泛总结,而是把原始内容稳定映射到字段、格式和质量标准。好示例告诉模型什么是合格输出,坏示例和反例告诉模型哪些边界、误抽、过度概括和格式错误不能接受。优秀回答应覆盖 schema 约束、正反 few-shot、错误类型、评估指标和迭代方法。

出现于:字节跳动 · AI 应用开发

60 秒回答模板

知识卡片抽取 Prompt 里同时放好示例和坏示例,本质是在给模型建立一个可执行的判别边界。好示例定义目标结构、字段粒度、表达风格和信息来源;坏示例定义禁止行为,比如凭空补充、字段混淆、把无关信息抽成知识点、格式不符合 schema、过度压缩导致关键信息丢失。正反 few-shot 的价值不是堆例子,而是覆盖最常见的边界场景,让模型知道“像这样输出”和“不要这样输出”的差别。落地时我会先定义字段 schema 和验收规则,再选覆盖面高的正例、反例和边界例,最后用离线样本评估准确率、字段完整率、格式合法率和人工修改率。

考点 正例定义目标
难度 真实面经题
回答目标 证明你能从 PE 视角设计可控、可评估、可迭代的结构化抽取 Prompt。

深入解析

01

任务定义

知识卡片抽取的输入通常是文本、对话或文档片段,输出是标题、概念、定义、要点、来源、标签等结构化字段。Prompt 首先要明确抽取目标、字段含义、是否允许改写、是否允许推断,以及无法抽取时如何留空。

02

好示例作用

好示例提供正向模式,让模型学习字段粒度、语言风格和信息保真方式。例如什么内容应进入标题,什么内容应进入解释,多个知识点如何拆分,原文证据如何保留。它降低模型自由发挥空间,让输出更接近产品需要。

03

坏示例作用

坏示例不是为了让 prompt 变长,而是为了标出边界。常见反例包括把背景噪声当知识点、凭常识补充原文没有的信息、把多个概念混成一张卡、字段格式不合法、把低置信内容写成确定结论。反例能显著减少模型在模糊输入下的幻觉和过度抽取。

04

Few-shot 选择

示例要覆盖高频样本、边界样本和失败样本,而不是随机挑几条。正例展示标准答案,反例展示错误输出并解释错因;如果 token 受限,可以保留最能区分边界的例子。对于复杂 schema,可以按字段分组给例子,避免模型只学到表面格式。

05

评估迭代

评估不能只看主观感觉,应准备标注集和自动校验。指标包括 JSON 或 schema 合法率、字段完整率、抽取准确率、幻觉率、重复率、人工修订成本。发现错误后,先判断是 schema 不清、示例覆盖不足、输入预处理问题,还是模型能力不足,再决定改 prompt、加校验或拆任务。

易错点

  • 把 few-shot 理解成随便放几个例子,没有覆盖边界和错误类型。
  • 只写好示例,不告诉模型哪些内容不能抽、不能猜、不能合并。
  • 没有定义 schema、空值策略、证据要求和格式校验。
  • 只凭单条样本效果判断 prompt 好坏,没有离线评估和错误归因。

面试官追问

坏示例会不会反而诱导模型学坏?

如果只给坏示例而不解释错因,确实可能有风险。更好的方式是明确标注“错误示例”和“错误原因”,再给对应的正确示例,让模型学到边界差异,而不是复制错误格式。

正反 few-shot 太占 token 怎么办?

优先保留覆盖边界最多的样例,把重复样例删掉。也可以把通用规则放进系统指令,把少量关键正反例放进 prompt,复杂场景通过检索动态加载相似样例。

如何处理原文没有的信息?

Prompt 中要明确禁止补充原文没有的事实,并要求无法确认时留空、标记低置信或返回不可抽取。结构化校验只能保证格式,不能保证事实,所以还需要证据字段或原文 span 对齐。

什么时候该拆成多步抽取?

当单次输出字段多、错误类型复杂或模型经常混淆字段时,可以先做候选知识点识别,再做字段填充和质量校验。拆步能提高可控性,但会增加延迟和成本。