核心要点
去冗余:删除重复、寒暄、与任务无关的内容,合并同义表述。
摘要式压缩:用模型把长上下文/历史摘要成要点,保留关键事实。
LLMLingua 类方法:按困惑度(perplexity)识别并删除信息量低、可预测的 Token,保留高信息 Token。
权衡:压缩降低 Token 成本与延迟,但要设保护规则避免删掉指令、约束、关键数字等核心信息。
标准回答
为什么要压缩
长提示(长文档、长对话历史、大量示例)会显著抬高 Token 成本与延迟,并可能挤占上下文窗口。提示词压缩的目标是在尽量不损失效果的前提下减少输入 Token。
常见方法
- 去冗余:删掉重复内容、客套话和与任务无关的段落,合并同义表述。这是最直接、风险最低的一步。
- 摘要式压缩:用 LLM 把长上下文或多轮历史压成结构化要点,保留关键事实与结论,丢弃过程性细节。
- 基于困惑度的删减(LLMLingua 类):用一个小模型估计每个 Token 的困惑度,删除那些信息量低、容易被预测出来的 Token,保留高信息量内容,从而在 Token 级别做高压缩比。
关键权衡
压缩降本降延迟,但越激进越可能误删关键信息。要为指令、约束、关键数字/实体设保护规则,并在评测集上验证压缩后效果是否稳定。Token 成本测算见 LLM Token 经济学。
常见误区
⚠️ 常见踩坑
压缩不是「越短越好」:删掉指令、输出格式约束或关键事实会直接导致答错或跑偏。务必区分「冗余」与「关键信息」,并用评测验证压缩比与效果的平衡。
追问
追问 1:为什么可以按困惑度删 Token,而不是随机删?
困惑度低意味着该 Token 在上下文中高度可预测、信息量小,删掉后模型仍能从周围内容恢复其含义;而高困惑度 Token 往往承载关键、不可预测的信息。按困惑度删减能在相同压缩比下尽量保留信息量,效果远好于随机删。
追问 2:压缩和 RAG、上下文窗口扩展是什么关系?
三者互补:上下文扩展提高可容纳长度但成本/延迟仍高;RAG 只检索相关片段从源头减少输入量;提示压缩则对已选入的内容进一步精简。实际系统常先用 RAG 选材、再做压缩,以同时控制相关性与 Token 成本。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。