主题
高频面试题
如何优化过长的提示词?提示词压缩有哪些技巧?
这题考的是你能否在 token 成本、上下文质量、指令完整性和召回准确率之间做工程取舍。
面试官角度分析,想考什么
- Prompt 过长有什么问题?
考成本、延迟、截断、注意力稀释和指令冲突。 - 怎么压缩?
考去重、分层、摘要、检索、模板化和结构化。 - 压缩会不会丢信息?
考风险和校验。 - 长上下文模型是不是不用压缩?
考上下文窗口不等于有效注意力。
可直接抄走的 30 秒参考答案
text
我会先把长 prompt 分成必须保留、按需保留和可删除三类。固定指令模板化,重复规则去重,历史对话摘要化,知识资料用 RAG 检索,示例只保留代表性样本,输出要求改成结构化字段。压缩后必须跑评估集,看准确率、格式合规率、幻觉率、token 和延迟,不能只追求短。面试回答详解,知其所以然
长 Prompt 的问题不只是贵,还会让模型更难抓住重点。
1. 先做信息分层
把 Prompt 拆成几类:
- 必须保留:系统规则、安全边界、输出 schema、用户当前问题。
- 按需保留:检索资料、历史摘要、示例、业务规则。
- 可删除:重复解释、过期上下文、无关历史、装饰性语言。
先分层再压缩,能避免误删关键指令。
2. 常见压缩技巧
- 去重:合并重复规则和相似示例。
- 结构化:用列表、字段、schema 替代长段自然语言。
- 摘要化:把历史对话压成状态摘要,保留决策和待办。
- 检索化:长知识库不要全塞,改用 RAG 按问题召回。
- 模板化:固定规则放模板,变量只传必要字段。
- 示例裁剪:保留最有代表性的 few-shot 示例。
3. 压缩 Prompt 的示例
压缩前:
text
你需要非常认真地阅读下面所有材料,然后尽量根据材料回答,不要乱说,格式最好清楚一点...压缩后:
text
任务:基于资料回答问题。
约束:
- 只使用资料中的事实。
- 证据不足时回答“资料不足”。
- 输出:结论、依据、缺失信息。短不等于弱,关键是表达更可执行。
4. 长上下文仍然需要压缩
即使模型支持很长上下文,也不代表把所有东西塞进去就是最优。长上下文会带来:
- 更高 token 成本和延迟。
- 无关信息干扰。
- 中间信息被忽略。
- 旧指令和新指令冲突。
- 截断或压缩摘要引入幻觉。
5. 压缩后的评估
Prompt 压缩要做回归测试。至少比较:
- 任务成功率。
- 关键事实保留率。
- 格式合规率。
- 幻觉率。
- 平均 token 和 P95 延迟。
不能只看 token 降了多少,还要看质量有没有掉。
面试官追问3个问题
追问一:摘要压缩最大的风险是什么?
- 考察点:上下文压缩风险。
- 回答方向:摘要可能改写事实、丢掉例外条件或引入幻觉,关键字段要结构化保留。
追问二:长上下文模型是否解决了 Prompt 过长问题?
- 考察点:有效上下文意识。
- 回答方向:只缓解窗口限制,不能消除成本、延迟、干扰和注意力衰减。
追问三:如何压缩 Few-shot 示例?
- 考察点:示例选择。
- 回答方向:保留覆盖边界和高频错误的代表样本,删除重复简单样本。