微信扫码
添加专属顾问
我要投稿
提升LLM应用性能的四大实用技巧,助你降低延迟与成本的同时提高输出质量。核心内容: 1. 利用缓存token技术降低API调用成本 2. 优化提示结构(静态内容前置)提升处理效率 3. 建立定制化基准测试持续优化提示效果
大模型(LLM)能够自动化大量任务。自2022年ChatGPT发布以来,市场上涌现出越来越多利用 LLM 的AI产品。然而,我们在使用 LLM 的方式上仍有许多可改进之处。例如,使用提示词优化工具改进你的提示(prompt),以及利用缓存的token,就是两种简单却能显著提升 LLM 应用性能的技术。
在本文中,我将介绍几种具体的技巧,帮助你优化提示的创建与结构,从而降低延迟和成本,同时提升生成结果的质量。本文的目标是为你提供这些切实可行的方法,让你能够立即将其应用到自己的 LLM 项目中。
这张信息图突出了本文的主要内容。我将讨论四种不同的技术,可显著提升你的 LLM 应用在成本、延迟和输出质量方面的表现。具体包括:利用缓存 token、将用户问题置于提示末尾、使用提示优化器,以及建立你自己的定制化 LLM 基准测试。(图片由 Gemini 提供。)
在很多情况下,你可能已经有一个能在特定 LLM 上运行并产生尚可结果的提示。但很多时候,你并未花时间对提示进行优化,这就意味着你错失了大量潜在的性能提升空间。
我认为,通过本文介绍的具体技术,你可以轻松地在几乎不增加额外工作量的前提下,同时提升响应质量并降低成本。仅仅因为一个提示和 LLM 能“跑通”,并不意味着它已达到最优性能。事实上,在很多场景下,只需稍作调整,就能获得显著改进。
在本节中,我将详细介绍可用于优化提示的几种具体方法。
我要介绍的第一个技巧是:始终将静态内容(static content)放在提示的最前面。所谓静态内容,是指在多次 API 调用中保持不变的部分。
之所以要这么做,是因为所有主流 LLM 服务商(如 Anthropic、Google 和 OpenAI)都支持缓存 token(cached tokens)。缓存 token 是指在先前 API 请求中已被处理过的 token,再次使用时可以以更低的成本和更快的速度进行处理。不同服务商的具体策略略有差异,但通常缓存输入 token 的价格约为普通输入 token 的 10%。
缓存 token 是指在之前的 API 请求中已经被处理过的 token,再次使用时比普通 token 更便宜、更快。
这意味着,如果你连续两次发送完全相同的提示,第二次请求中的输入 token 成本将仅为第一次的十分之一。这是因为 LLM 服务商会对这些输入 token 的处理结果进行缓存,从而让新请求的处理更便宜、更迅速。
在实践中,要有效利用 token 缓存,关键在于将变量内容放在提示末尾。
例如,如果你有一个很长的系统提示(system prompt),而每次请求的用户问题不同,你应该这样组织提示:
prompt =f"""{long static system prompt}{user prompt}"""举个例子:
prompt =f"""你是一位文档专家……你应始终按以下格式回复……如果用户询问……你应该回答……{user question}"""
这里,我们将提示中不变的部分(静态内容)放在前面,而将变化的部分(用户问题)放在最后。
在某些场景中,你可能需要传入文档内容。如果你要处理大量不同的文档,应将文档内容放在提示末尾:
# 处理不同文档时prompt =f"""{static system prompt}{variable prompt instruction 1}{document content}{variable prompt instruction 2}{user question}"""
但如果你多次处理同一份文档,那么为了确保文档内容也能被缓存,你需要保证在文档内容之前没有任何变量内容:
# 多次处理相同文档时prompt =f"""{static system prompt}{document content} # 确保在任何变量指令之前{variable prompt instruction 1}{variable prompt instruction 2}{user question}"""
需要注意的是,缓存 token 通常只有在两个请求的前 1024 个 token 完全相同时才会被激活。例如,如果上面示例中的静态系统提示长度不足 1024 个 token,你就无法利用缓存机制。
# 切勿这样做!prompt =f"""{variable content} <--- 这会完全破坏缓存机制{static system prompt}{document content}{variable prompt instruction 1}{variable prompt instruction 2}{user question}"""
最佳实践:
你的提示结构应始终遵循“从最静态到最动态”的原则——即先放变化最少的内容,再逐步加入变化最多的内容。
另一个提升 LLM 性能的有效技巧是:始终将用户问题放在提示的末尾。理想情况下,你的系统提示应包含所有通用指令,而用户提示仅包含用户的问题本身,如下所示:
system_prompt ="<通用指令>"user_prompt =f"{user_question}"
Anthropic 在其提示工程文档中指出,将用户问题放在末尾最多可提升 30% 的性能,尤其是在使用长上下文时。把问题放在最后能让模型更清晰地理解当前任务目标,从而在多数情况下生成更高质量的回答。
人类编写的提示往往杂乱、不一致、包含冗余内容,且缺乏结构。因此,你应始终将提示通过一个提示优化器进行处理。
最简单的优化方式是直接让一个 LLM 来优化你的提示,例如:
“请优化以下提示:{prompt}”
LLM 会返回一个结构更清晰、冗余更少的新提示。
但更好的做法是使用专门的提示优化工具,例如 OpenAI 或 Anthropic 控制台中提供的优化器。这些工具是经过专门设计和调优的 LLM,专门用于优化提示,通常效果更佳。
此外,为了获得最佳优化结果,你应提供以下信息:
提供这些额外信息通常能显著提升优化效果。很多时候,你只需花费 10–15 分钟,就能获得一个性能大幅提升的提示。因此,使用提示优化器是提升 LLM 性能所需 effort 最低的方法之一。
你所选用的 LLM 本身也会极大影响应用的整体性能。不同模型擅长的任务各不相同,因此你需要在自己的应用场景中测试多个 LLM。我建议至少接入主流 LLM 提供商,如 Google Gemini、OpenAI 和 Anthropic。设置这些服务非常简单,一旦凭证配置完成,切换模型通常只需几分钟。此外,你也可以考虑测试开源 LLM,尽管它们通常需要更多配置工作。
接下来,你需要为你的具体任务建立专属的基准测试,以评估哪个 LLM 表现最佳。同时,你还应定期检查模型性能,因为大型 LLM 提供商有时会在不发布新版本的情况下悄悄升级模型。当然,你也应随时关注各大厂商推出的新模型,并及时尝试。
在本文中,我介绍了四种可用于提升 LLM 应用性能的技术:
这些方法都相对简单易行,却能带来显著的性能提升。我相信还有很多类似且简单的技巧尚未被广泛采用,你应该始终保持探索的心态。这类技巧通常散见于各类技术博客中,但是你关注我的提示工程就能获得更多干货。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-12-31
AI快速搭建web自动化测试项目实践
2025-12-31
别再纠结用 Skill 还是 Subagent 了,这一篇讲透 Claude Code 的「分身术」
2025-12-30
你的AI总是答非所问?试试这个被99%的人忽略的提示词技巧
2025-12-30
Anthropic 官方最简单的一个 skill,确藏着最高级的提示词技巧
2025-12-29
Prompt 里的那个 `{}`,可能是你系统的最大漏洞,别把用户输入直接拼进 Prompt
2025-12-28
从零开始的Claude Skill 实操指南:手把手教你使用Claude Skills
2025-12-27
让 Claude Code Skills 100%生效的NB技巧
2025-12-27
颠覆AI的用法:直接拆了Claude官方SKILL,学习AI产品怎么写PRD,AI开发怎么写代码,AI测试怎么写用例
2025-10-09
2025-11-14
2025-10-21
2025-10-13
2025-12-03
2025-12-17
2025-10-30
2025-11-09
2025-11-27
2025-11-30
2025-12-22
2025-12-14
2025-12-03
2025-12-02
2025-11-29
2025-09-05
2025-08-25
2025-06-17