Skip to content

高频面试题

如何优化过长的提示词?提示词压缩有哪些技巧?

这题考的是你能否在 token 成本、上下文质量、指令完整性和召回准确率之间做工程取舍。

适合阶段:Prompt 工程化 / Context Engineering 面核心能力: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 示例?

  • 考察点:示例选择。
  • 回答方向:保留覆盖边界和高频错误的代表样本,删除重复简单样本。

基于 MIT 协议开源