你可以通过保持提示词简短清晰来优化它们。在提示词开头给出关键词,并要求有条理的回答。如果删掉多余的词语、不把指令和数据混在一起,就能使用更少的 Token。使用直接的表达可以让内容更易理解。查看下表了解优化方法:

规则说明
把关键约束放在最后利用“近因效应”(recency bias)
提供具体指令保持输出一致
避免将指令和数据混在一起减少混淆
使用直接的语言削减多余 Token

优化提示词可以节省成本、提升响应速度,并增强你的整体工作流。

为什么 Token 优化很重要

成本与效率

Token 优化可以帮助你省钱并减少 Token 使用。当你减少输入 Token 和输出 Token 时,支出就会降低。很多公司会通过长期回报来衡量节省效果。新的应用通常希望获得 30%-60% 的投资回报率(ROI),而大型企业会每隔几个月或一年进行一次评估。提示词优化可以提升 LLM 性能,让你的工作更高效。

最新研究表明,在大语言模型部署中减少 Token 使用可以节省大量成本。一种新的混合推理方法通过对每个 Token 计算奖励分数,来决定何时调用昂贵的云端 LLM。这样可以减少云端资源的使用,同时仍然获得不错的回答。提示词优化帮助你聪明地使用 Token,而不是浪费它们。

使用简短的提示词和清晰的输出格式,可以最大化 Token 优化的收益。

速度与性能

提示词优化还能提升速度和 LLM 性能。当你减少输入 Token 和输出 Token 时,模型运行得更快。你撰写提示词的方式及其长度,会影响所需的内存与算力。长提示词因为 Transformer 架构中的注意力机制,需要更多资源。这可能会拖慢系统,并让扩展变得困难。

提示词优化通过降低内存和计算需求,帮助系统扩展。如果你要同时发送大量请求,简短的提示词可以避免性能下降,并更高效地使用 GPU 资源。上下文窗口的大小非常关键,因为它限制了你可以使用的输入 Token 和输出 Token 数量。通过持续进行提示词优化,你可以提升 LLM 性能,并保持系统平稳运行。

识别 Token 浪费来源

冗长提示词

当你的提示词过长或啰嗦时,就能发现 Token 浪费。冗长的提示词会在输入中添加大量多余的 Token,从而压缩模型输出的空间。如果提示词占用过多 Token,可能会碰到 Token 上限,引发错误或导致回答被截断。比如,与其说“Please explain in great detail(请非常详细地解释)”,不如直接说“Explain(解释)”。简短提示词有助于节省 Token,并得到更好的结果。

冗余上下文

你往往会在提示词中添加大量额外上下文,以为这样会更有帮助。实际上,过多的上下文会填满上下文窗口,却无法显著提升回答质量。这会造成 Token 浪费并抬高成本。例如:

  • 低效: “Think step by step and explain each solution process. First factor the numerator, then check if simplification is possible, and derive the final result.”(逐步思考并解释每一步过程。先因式分解分子,再检查是否可以化简,最后给出结果。)
  • 高效: “Show the solution process and final result.”(展示解题过程和最终结果。)

你应该避免重复指令或添加价值很低的细节。下表展示了如何让提示词更精炼:

冗长表述精炼表述
Please explain in great detail…Explain…
Don’t restate the same idea multiple times无(不应出现该类句子)
Remove repeated qualifiers or disclaimers无(不应出现该类句子)

低效的输出请求

当你以需要多轮步骤或多代理协作的方式来请求输出时,会使用更多 Token。每个代理都需要对话、共享信息并维护状态。代理之间每一次交互,都会为提示词和回答增加额外的 Token。这会放大 Token 浪费并拖慢流程。你应尽量让输出请求简单直接,以节省 Token。

常见错误包括:把所有指令塞进一个文件里,或在不同位置不断重复同样的要求。这些都会拉长提示词并浪费 Token。

提示词优化基础

简洁用词

你可以通过使用简短的词语来让优化器表现更好。短句既能减少 Token,又能保持清晰。当你编写提示词时,可以把长句拆成几个短句,并删去无助于理解的部分。这样可以突出核心信息,避免混淆。

以下是让提示词更紧凑的一些方法:

  • 使用 AI 写作工具检查语法与句子结构。
  • 把复杂句拆分成简单、清晰的句子。
  • 删除重复的观点或措辞。
  • 说明你想要的文档类型和具体特征。
  • 明确说明你对语气、风格或长度的要求。

你还可以给出一个示例输出,向模型展示期望结果。这有助于提示词优化器理解你的需求。如果你清楚回答的目标读者,也可以说明,这会让输出更贴合受众。

使用标题将指令部分与正文内容分开,有助于让提示词结构清晰、易于阅读。

当你采用这些方法时,可以减少 Token 浪费,使 Token 优化效果更好,同时让优化器更快、更稳定。

只保留关键信息

优秀的提示词优化器只保留真正重要的上下文。过多的上下文不仅浪费 Token,还会削弱提示词的有效性。你应该只添加完成任务所必需的信息,使提示词简短且聚焦。

你可以按以下步骤挑选上下文:

步骤指南说明
初稿编写根据任务与模型特点写出第一版提示词。
上下文分析审视主题、已有信息以及会影响提示词的限制条件。
分析与改写根据效果对措辞进行调整和精简。

从一个简单的提示词开始,只添加对回答质量有实际帮助的上下文。如果发现某些细节对结果没有太大影响,就应该删掉。这样可以让提示词优化器使用更少的 Token,并聚焦在关键内容上。

你还可以使用诸如“过滤”之类的优化方法。过滤会使用小模型来检查提示词中哪些部分是真正有用的。如果某一部分帮助不大,就可以删掉。这样既能节省 Token,又能让优化器表现更好。

结构化输出格式

结构化的输出格式可以帮助提示词优化器减少 Token 使用,并让回答更易阅读。当你指定输出格式时,会引导模型给出清晰、规整的结果,从而减少不必要的 Token,有助于整体 Token 优化。

尝试用以下方式改进提示词:

  • 请求使用项目符号、表格或列表形式输出。
  • 给出你想要的输出格式示例。
  • 使用小标题划分输出中的不同部分。
  • 说明预期读者是谁,帮助模型选择合适的语气与内容深度。

例如,你可以这样写:

Summarize the article in three bullet points.
Audience: Middle school students.
Format:
- Main idea
- Key detail 1
- Key detail 2

这个提示词清晰地表达了你的需求,使用的 Token 相对较少,而且能得到结构清晰、易于阅读的回答。

你还可以使用“知识蒸馏”等优化方法。在这种方法中,大模型先用常规提示词生成回答,然后用这些数据训练小模型,让它在更短的提示词下生成相近的结果。这有助于你找到更高效的优化器使用方式,从而节省 Token。

另一个办法是基于进化的提示词优化。你可以生成多个版本的提示词,进行测试和对比,然后保留表现较好的版本并持续迭代。通过不断改进,就能找到最适合自己场景的提示词。

通过使用简洁用词、只保留必要上下文以及结构化输出格式,你可以打造更强大的提示词优化器。这样能节省 Token、降低成本,并获得更高质量的回答。这些优化方法可以帮助你在每次调用优化器时都获得更好的收益。

高级 LLM Token 优化

你可以使用一些更高级的方法来优化 LLM 的 Token 使用。这些方法能帮助你节省 Token,并从提示词中得到更高质量的回答。你将会了解提示词压缩、轻量级模型过滤以及缓存 Token 等方法。每种方法都有自己的步骤,用来减少 Token 并简化工作流程。

提示词压缩

提示词压缩可以在不丢失关键信息的前提下缩短提示词。通过一系列步骤精简和澄清提示词,从而提升 Token 使用效率,同时让提示词更容易被模型理解。

你可以利用 LLMLingua Library 这类工具来删除多余 Token。LLMLingua 压缩在进行激进优化的同时,几乎不会损害性能,特别适用于检索增强生成(RAG)系统。你也可以用知识蒸馏:由大型“教师”模型生成回答,再教会小型“学生”模型使用短提示词得到相近结果。基于进化的优化则会生成多种提示词版本,对它们进行评估,并选出表现最佳的一批继续变异改进。

下面的表格展示了几种提示词压缩方法:

技术说明
LLMLingua 压缩结合激进优化与极小性能损失,对 RAG 系统尤为有效。
知识蒸馏使用大型“教师”模型生成输出,用短提示词训练较小的“学生”模型。
基于进化的优化受遗传算法启发,生成多个提示词变体,评估后选择表现最优者并进一步变异迭代。

在构建数据集时,你可以使用制表符分隔的行(tab-delimited)来代替 JSON。由于制表符分隔格式更紧凑,这能减少 Token 使用,使提示词更短、更易被模型处理。

轻量级模型过滤

轻量级模型过滤使用小模型检查提示词中是否存在多余 Token。这些小模型可以帮助你从提示词中删除对 LLM Token 优化无帮助的部分,从而只保留真正重要的内容。

你可以使用诸如“提示词剪枝”(prompt pruning)这类步骤。LLMLingua Library 可以帮助你移除不必要的 Token,使提示词更短。你还可以使用知识蒸馏,让小模型在短提示词下模仿大模型的回答表现。基于进化的提示词优化会用到遗传算法:生成多个版本,进行评估,再根据效果选择和改进。

以下是执行轻量级模型过滤的步骤:

  1. 使用小模型对提示词进行检查。
  2. 删除对任务无帮助的 Token。
  3. 测试新提示词的回答质量。
  4. 重复以上步骤,持续改进提示词。

通过这种方式,你可以获得更好的优化效果和更快的回答速度,也能让提示词更加清晰易读。

缓存 Token 与提示词改写器

缓存 Token 可以提升速度并减少 Token 使用。你可以将过去提示词中的 Token 缓存起来,在需要时重复使用。这样能够增强 LLM Token 优化效果,并让整体系统运行更加高效。

你还可以使用“提示词改写器”(improvers)来帮助优化提示词。改写器可以帮助你找到使用缓存 Token 的最佳方式,并通过特定步骤进一步精简提示词,从而节省 Token。

下表展示了使用缓存 Token 与改写器的优劣势:

优势局限
降低延迟受上下文窗口限制
提升计算效率知识相对静态
部署简单可能带来混淆

由于缓存 Token 减少了重复计算和检索开销,你可以更快地获得回答。你也可以减少计算资源的使用,因为不再需要单独的向量数据库或嵌入模型,系统部署与维护也相对更简单。

当然,这也有一些限制。上下文窗口限制了你能引用的缓存 Token 数量。你还需要经常更新缓存以反映最新信息,这可能会削弱缓存的收益。如果上下文过大,模型也有可能混淆不同信息源。

你可以通过以下方式管理缓存 Token:

  • 只缓存最有价值的内容。
  • 定期更新缓存。
  • 使用提示词改写器,让提示更清晰,降低混淆风险。

你可以使用 LLMLingua Library 等工具进行提示词剪枝,也可以通过知识蒸馏,用短提示词训练小模型。基于进化的优化则能根据表现自动调整和演化提示词。

通过这些方法,你可以获得更好的 Token 优化效果、更快的回答速度,以及更顺畅的工作流程。你可以让提示词更短、更清晰,节省 Token,并最大限度地提升 LLM Token 优化的收益。

节省 Token:真实案例

优化前后对比

通过对比真实示例,你可以更直观地理解优化效果。很多人一开始会写得又长又客气的提示词,这不仅会消耗更多 Token,有时还会降低模型的准确性。如果改成直接的指令式表达,往往能在减少 Token 的同时获得更好的回答。下表展示了不同风格对性能和 Token 数量的影响:

风格对性能的影响对 Token 数量的影响
礼貌降低准确率Token 数量更高
直接提高准确率Token 数量更低
中性效果波动Token 数量适中

你可以尝试把提示词从礼貌提问改成直接命令。例如,与其说:“Could you please summarize this article for me in detail?(你能帮我详细总结一下这篇文章吗?)”,不如改为:“Summarize the article in three bullet points.(用三个要点总结这篇文章。)” 这样的微小改动能够帮你节省 Token,并让提示词表现更好。

对 Token 使用的影响

真实项目表明,提示词优化可以显著减少 Token 使用。在某个项目中,团队使用一个三层框架来研究加密货币交易,从而减少了分析所需的 Token 数量。另一个项目使用 LLM4TG 这种面向图数据的格式,即使在严格的 Token 限制下也能完成复杂分析。CETraS 算法也通过抽样交易图,使原本极其困难的分析成为可能。

框架组件说明对 Token 使用的影响
三层框架用于研究加密货币交易显著降低 Token 需求
LLM4TG易读的图结构格式在少量 Token 下仍能完成分析
CETraS交易图采样算法让原本极难的分析变得可行

当你运用这些优化方法后,可以明显减少 Token 使用,并获得更快、更低成本的回答。务必经常检查自己的提示词,看看能否删减多余措辞。这样可以帮助你节省 Token,最大化每一个 Token 的价值。

你可以通过清晰的结构、简洁的表述和只保留必要细节来改进提示词。下表列出了常用的最佳实践:

技巧说明
把用户提示放在最后让任务更易理解,并帮助模型更好地执行。
尝试使用提示词优化器自动修正并删减多余内容。

如果你缩短提示词、控制输出长度并合理拆分信息,就能减少 Token 使用、降低成本。同时,你会得到更快的回答,并以更智能的方式使用 LLM。持续迭代提示词可以提高回答准确性、节省 Token,并带来更好的用户体验。