news 2026/6/30 12:59:45

如何减少大模型 token 的消耗?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何减少大模型 token 的消耗?
省Token不是不用AI,而是更精细地分配AI资源。

之前看到一个说法:用户连续向 ChatGPT 提问十几到几十次,背后算力、资源损耗换算下来,相当于白白消耗几百毫升水资源。抛开资源损耗不谈,现在主流大模型经过大规模 RLHF 人类反馈对齐后,统一养成了“端水大师”式的客服思维。

随便问个啥都给你:“好的,我来为您解答”,中间给你列个“首先、其次、最后”,结尾还要加一句“希望这个回答对您有帮助,如果您还有其他问题...”。

看似废话文学,,但就token计费来说,就相当于不断漏水的水龙头,都是白花花的银子。

网上其实有很多人提出了相关的处理办法:

比如说:

  • 能用本地模型,就不用云端模型:对一些基础任务(比如录音转写),可以优先用本地模型处理,既能控制成本,也更利于保密。
  • 确定的用脚本,不确定的用模型:重复性、流程明确的工作,尽量做成脚本或可复用的工具;真正需要探索、判断和生成的环节,再调用大模型。
  • 用便宜模型给复杂项目写索引:在复杂项目里,先让成本较低的模型帮忙建立索引、整理结构,让更贵的模型能更高效地调用信息,避免在低效搜索上浪费Token。

还有人说有人提到英文通常比中文更省Token,嗯,,怎么能说不是一个灵机一动的好办法...

言归正传,想要大模型“好好说话”还可以试下这些方法:

先是大多数人用的多的日常对话,要解决的就是大模型的啰嗦病

很多人觉得让模型简短,只要加一句“请简短回答”就行了。大错特错!你加这句,它只会回复:“好的,我会尽量简短回答:...

对付这种讨好型人格,你的 Prompt 必须冷酷、具体、带有强制性

1. 设定“极简/无情”的人设在对话开头或者 System Prompt 里,直接剥夺它的“客服属性”。

“你是一个惜字如金的资深专家。你的回答必须直击要害,禁止使用任何寒暄、过渡句、总结性废话。禁止说‘好的’、‘当然’、‘综上所述’。”

2. 限制输出格式(最有效的一招)大模型在自由发挥时最容易啰嗦,把它框死在特定格式里,它就没空说废话了。

  • 写代码时:“只输出代码本身。禁止使用 Markdown 代码块标记,禁止任何解释和注释。”
  • 提取信息时:“严格以 JSON 格式返回结果,不要包含任何 JSON 之外的文本,不要说‘这是您的JSON’。”
  • 做选择题时:“只输出选项字母(如 A/B/C),不要输出选项内容,不要解释原因。”

3. 用 Few-shot(给例子)教它做人大模型是模仿大师。你光说“精简”没用,你直接给它看两个“一问一答、极其干练”的例子,它立马就能学会。

用户:中国的首都是哪? 助手:北京。 用户:水的化学式? 助手:H2O。 用户:[你的真实问题]

然后是API调用党:

如果你是开发者,在代码里调用 API,光靠Prompt约束是不够的(模型偶尔还是会幻觉发作),必须上工程手段。

1. 用好stop(停止词)参数,这是省token的一个好的办法,很多时候我们只需要模型输出一个词或一句话。你可以在 API 里设置stop序列。 比如你让模型提取文章里的人名,设置stop=["\n", "."]。模型只要输出完人名,碰到换行符或句号,就会立刻强制停止生成,后面那些“提取到的人名是xxx”的废话全被物理掐断。

2. 调高惩罚参数(Penalty)在API参数里,把frequency_penalty(频率惩罚)和presence_penalty(存在惩罚)稍微调高一点(比如0.2到0.5之间)。这会迫使模型减少重复词汇和车轱辘话,虽然不能直接减少总长度,但能让内容更紧凑。

3.max_tokens兜底这个大家都知道,限制最大输出token数。但注意,这招是治标不治本的。如果你把max_tokens设得很小,模型话没说完就被掐断了,反而会导致输出残缺,你还得重新调,更费钱。所以它只能作为防失控的兜底,不能作为主要的省token手段。

高阶玩法:架构与系统级“抠门”

如果你是在做一个AI产品,每天成千上万次调用,那必须从系统架构上省钱了。

1. 给上下文“瘦身”(Context 截断与摘要)多轮对话是token消耗的重灾区。很多新手把前20 轮的聊天记录全塞进prompt 里,token直接爆炸。

  • 做法:设定一个阈值(比如超过5轮),让大模型(或者便宜的小模型)对前面的对话做个“极简摘要”,然后只保留“摘要+最近2轮对话”作为新的上下文传给模型。

2. 杀鸡别用牛刀(模型路由 Router)不是所有问题都需要最贵、最聪明的模型(比如 GPT-4o 或 Claude 3.5 Sonnet)。

  • 做法:在请求最前面加一个极便宜的“意图识别小模型”(比如7B模型,甚至直接用正则/小模型分类)。
  • 如果是“今天星期几”、“帮我翻译这句话”这种简单任务,直接路由给便宜的Flash模型或者小参数模型。
  • 如果是“帮我写个复杂的分布式架构设计”,再路由给昂贵的大模型。这招能省下70%以上的 token 费用。

3. 语义缓存(Semantic Cache)用户问的问题往往有大量重复。用户 A 问“怎么重置密码”,用户B问“忘记密码了怎么办”。

  • 做法:引入向量数据库做语义缓存。把用户的问题向量化,如果和缓存里的问题相似度超过 95%,直接把缓存里的答案返回,根本不去调用大模型。这在客服、知识库问答场景里,能白嫖掉海量 token。

So...省token确实能省钱,但千万不要为了省token而把Prompt压缩得连人话都不像了

不然还得花更多的token去重新生成和纠错。

这里是咕泡,十年专注AI与IT人才培育

希望我的回答对你有帮助~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 12:59:41

基于kemans的大学生求职需求分析预测系统-付完整代码

项目详细演示视频: https://www.bilibili.com/video/BV1VCKS6UEsr/?spm_id_from333.1387.homepage.video_card.click 本项目构建了一个基于K-means聚类算法的大学生求职需求分析与预测系统,旨在通过机器学习手段为高校就业指导工作提供数据驱动的决策…

作者头像 李华
网站建设 2026/6/30 12:58:39

从零开始的ZYNQ学习(基于矿卡EBAZ4205)(四)

1. 为EBAZ4205配置轻量级桌面环境 在成功移植Ubuntu根文件系统后,我们的矿卡EBAZ4205已经能够运行基本的命令行界面。但对于开发者来说,图形化操作环境能极大提升工作效率。考虑到矿卡的硬件性能限制(256MB内存,单核Cortex-A9处理…

作者头像 李华
网站建设 2026/6/30 12:56:28

CANopen PDO与SDO:从概念到实战,构建高效工业通信网络

1. 工业通信的基石:PDO与SDO到底有什么区别? 第一次接触CANopen协议时,我也被PDO和SDO这两个专业术语搞得晕头转向。直到在电机控制项目中踩了几个坑才真正明白:它们就像快递服务中的"闪送"和"挂号信"——一个…

作者头像 李华
网站建设 2026/6/30 12:56:25

结构化意图锚点(SIA):解决AI Agent速度与精度矛盾的工程契约

1. 这不是一场框架比武,而是一次工程现实的照妖镜“LangChain vs. CrewAI”这个标题一出来,我第一反应不是去翻文档,而是下意识摸了摸自己上个月刚换的散热硅脂——因为只要在真实项目里同时跑过这两个框架的人,都经历过那种CPU风…

作者头像 李华
网站建设 2026/6/30 12:52:55

2026最新版】生产力工具Notion实测:这些隐藏功能让你效率翻倍!

Notion 是一款工作管理软件,用“块”编辑器来帮助用户整理资源和规划项目。Notion 自带 6 种视图模式,页面还能互相衔接,结构清晰,一目了然。 Notion 适配电脑端、移动端、平板端,在所有平台上编辑的数据能自行同步&a…

作者头像 李华
网站建设 2026/6/30 12:52:32

GoB技术实现:Blender与ZBrush跨平台3D数据交换架构解析

GoB技术实现:Blender与ZBrush跨平台3D数据交换架构解析 【免费下载链接】GoB Fork of original GoB script (I just added some fixes) 项目地址: https://gitcode.com/gh_mirrors/go/GoB GoB插件作为开源社区中实现Blender与ZBrush之间高效3D数据交换的关键…

作者头像 李华