Skip to content

大模型 Token 计费规则详解知识文档

在使用大模型时,我突然想到为什么token计费要区分输入和输出两类分别计价? 还有为什么输入token还要进一步划分缓存命中和缓存不命中两种情况执行不同计费标准。

0、先科普几个绕不开的基础概念

在回答两个核心问题之前,先把几个高频出现的"行话"用大白话讲清楚,后面就不卡壳了。

1. 什么是 Token?

Token 是大模型处理文本的最小计费单位,可以理解为"模型眼里的一个字符块"。

  • 它不完全等于"一个字"或"一个单词":
    • 英文里 1 个 token ≈ 0.75 个英文单词("hello" 是 1 个 token,"unbelievable" 可能被拆成 3 个)
    • 中文里 1 个汉字 ≈ 1–2 个 token
  • 为什么不按字符或字数收费? 因为模型内部本来就是按 token 在算的,token 数才真实反映了计算量。

粗略换算:1000 个 token ≈ 750 个英文单词 ≈ 500 个汉字

2. 什么是 GPU 和算力?

  • GPU:一种专门做大规模并行计算的芯片,是跑大模型的"主力发动机"。一张高端 AI GPU(比如 H100)市场价几十万人民币,租用价按秒计。
  • 算力成本:跑模型本质上是在"烧电 + 烧 GPU 时间"。模型每多算一步,电表和折旧表就多跳一格。计费规则的本质,就是把这些真实成本按公平的方式摊给用户。

3. 什么是显存(VRAM)?

  • GPU 自带的高速内存,用来临时存放模型权重和计算中间结果。
  • 显存非常贵且容量有限(单卡通常 40–80GB)。显存里能塞下什么、能复用什么,直接决定了成本结构——这点在后面讲缓存时是核心。

4. 什么是 Prompt?什么是"上下文"?

  • Prompt(提示词):你发给模型的全部输入,包括系统设定、历史对话、当前问题、参考资料等。
  • 上下文窗口(Context Window):模型一次能"看进眼里"的最大 token 数,比如 128K、200K。超过这个长度的内容会被截断。
  • 关键点:每次对话,模型看到的"输入"通常不只是你刚打的那句话,而是整段历史 + 系统提示 + 资料。这就是为什么多轮对话越聊越贵。

一、为什么 token 计费要区分"输入"和"输出"分别定价

核心结论

输入和输出消耗的算力差着数量级,所以单价也差着数量级(输出价通常是输入价的 3–5 倍,部分推理模型甚至 10 倍以上)。

1.1 输入阶段:模型在"读题"——可以并行,便宜

当你把一段 prompt 发给模型时,模型做的事情叫 Prefill(预填充)

  • 一次性把所有输入 token 并行地送进神经网络。
  • "并行"是关键——GPU 最擅长的就是同时算一大批数据,几千个 token 可以在一两秒内全部处理完。
  • 这个阶段的产物是一份叫 KV Cache(键值缓存) 的中间结果,可以理解为"模型读完题后写在草稿纸上的笔记"。

类比:让你用 5 秒钟扫一眼一整页 PPT,眼睛是并行接收信息的,不累。

1.2 输出阶段:模型在"答题"——必须串行,昂贵

模型生成回复时做的事情叫 Decode(解码),它有一个绕不开的物理限制:

  • 必须一个 token 一个 token 地往外蹦,不能并行。
  • 每生成一个新 token,都要做一次完整的神经网络前向计算,输入是"原始 prompt + 已经生成的所有 token"。
  • 也就是说,生成第 100 个字时,模型实际上要参考前面 99 个字 + 你最初的 prompt,整体过一遍网络。

类比:让你逐字手写一篇 500 字作文,每写一个字都要在脑子里回顾"我前面写了啥、整体思路是啥",比扫 PPT 累几十倍。

1.3 成本对比一目了然

维度输入(Prefill)输出(Decode)
计算模式并行(一次算一大批)串行(一个一个算)
GPU 利用率高(吃满算力)低(受内存带宽限制)
单 token 耗时极短(毫秒级)较长(每个字 10–50ms)
显存占用一次性峰值持续占用直到生成结束
典型单价便宜(基准价)贵 3–5 倍

1.4 商业逻辑:为什么必须分开计价?

如果搞"一口价",只有两种结果:

  • 定低了 → 厂商在输出端赔本,长期不可持续,要么涨价要么关停。
  • 定高了 → 只发送短输入、读长文档的用户被多收钱,不公平,会被竞品挖走。

分开定价 = 价格匹配真实成本 = 用户和厂商都觉得公平。这是市场竞争自然演化的结果,现在所有主流厂商(OpenAI、Anthropic、Google、字节、阿里、DeepSeek)都遵守这套规则。

二、为什么输入 token 还要分"缓存命中"和"缓存不命中"

核心结论

重复计算 = 重复烧 GPU = 重复烧钱。如果某段输入模型刚刚算过,把结果存起来直接复用,成本骤降,省下的钱以折扣形式返还给用户,皆大欢喜。这套机制叫 Prompt Caching(提示词缓存)

2.1 缓存的到底是什么?

缓存的不是"文字本身",而是前面提到的 KV Cache(模型读完输入后写下的草稿笔记)

  • 当你第一次发送某段 prompt,模型做完 Prefill,会生成一份 KV Cache。
  • 厂商把这份 KV Cache 暂存在显存或高速存储里(通常保留几分钟到几小时)。
  • 如果短时间内有另一个请求,开头部分和上次完全一样,就可以直接把上次的 KV Cache 捞出来用,跳过这部分的计算。

重点:缓存只在"前缀完全一致"时才命中。哪怕只改一个字,从那个字开始往后都必须重算。所以稳定不变的内容(系统提示、知识库文档)一定要放在 prompt 最前面

2.2 命中 vs 不命中:成本差异

场景模型做了什么成本用户价格
缓存不命中(Cache Miss)老老实实把每个输入 token 跑一遍神经网络,生成新的 KV Cache全额 GPU 算力全价(基准价)
缓存命中(Cache Hit)直接读取上次存好的 KV Cache,跳过计算几乎只剩"读取存储"的成本打折(通常 1–3 折,部分厂商低至 0.5 折)

2.3 用一个生活类比说清楚

去餐厅点菜

  • 第一次点一道复杂菜:厨师从洗菜、切菜、调料开始做,耗时 30 分钟,全价收
  • 老顾客 10 分钟后点同款:后厨还留着半成品,加热摆盘 3 分钟出餐,打 2 折
  • 但如果你说"我要同款但去掉香菜"——前面准备好的半成品作废,又得重做,还是全价

这就是为什么"前缀必须完全一致"才能命中缓存。

2.4 哪些场景特别能省钱?

缓存命中收益最大的典型场景:

  1. 长系统提示词(System Prompt) 很多 Agent 应用的系统提示动辄几千 token(角色设定 + 工具说明 + 规则约束),每次对话都重复发送。缓存命中后,这几千 token 几乎不要钱。

  2. 多轮对话 每一轮对话都要把"之前所有历史"重新发给模型。第 N 轮时,前 N-1 轮的内容如果命中缓存,成本大幅下降。

  3. RAG(检索增强生成)拼接的长文档 把一份 PDF 当作背景知识反复提问。第二次提问时,那份 PDF 部分命中缓存。

  4. 批量处理同模板任务 比如"基于以下模板分析 1000 份简历"——模板部分每次都命中。

2.5 商业逻辑:为什么是双赢机制?

角色收益
用户重复内容大幅省钱,长 prompt 应用(Agent、RAG)成本降一个量级
厂商显存利用率提高、同样 GPU 能服务更多请求、整体毛利改善
生态引导开发者把稳定内容放前面、按缓存友好的方式设计 prompt,进一步压低全行业成本

关键洞察:缓存定价不是营销噱头,而是把"省下的算力"以折扣形式直接还给用户。厂商之所以愿意这么做,是因为不这么做的话,竞争对手会先做,然后抢走客户。

2.6 实战小贴士(写 prompt 时怎么省钱)

  • 稳定内容(系统提示、知识库、Few-shot 示例)放最前面
  • 动态内容(用户问题、当前数据)放最后
  • 不要在 prompt 中间插入随机变量(时间戳、UUID),会让后面的内容全部失效缓存
  • 多轮对话保持历史结构稳定,不要重排消息顺序

三、把两套规则放一起看:一次完整的计费链路

假设你向某模型发送一个请求:

[系统提示: 5000 tokens] + [对话历史: 3000 tokens] + [当前问题: 200 tokens]
→ 模型生成回复 [800 tokens]

如果上一轮对话刚结束 2 分钟(缓存还在):

部分Token 数计费类型假设单价小计
系统提示(命中缓存)5000缓存命中输入$0.30 / 百万 token$0.0015
对话历史(命中缓存)3000缓存命中输入$0.30 / 百万 token$0.0009
当前问题(新内容)200缓存不命中输入$3.00 / 百万 token$0.0006
模型回复800输出$15.00 / 百万 token$0.0120
合计$0.0150

如果没有缓存机制,同样请求的成本会是:

  • 全部 8200 输入 token × $3.00 + 800 输出 × $15.00 = $0.0366

缓存让这次请求便宜了约 59%。 这就是为什么大型 Agent 应用、客服系统都在拼命优化 prompt 缓存命中率。

四、一句话总结

大模型计费的底层逻辑只有一句话:让价格如实反映 GPU 实际烧掉的算力。

  • 输入便宜、输出贵 → 因为读题并行、答题串行,成本天差地别。
  • 缓存命中打折 → 因为复用上次的中间结果,几乎没烧 GPU。

理解了这两点,你就能看懂市面上所有主流大模型的定价表,也知道怎么写 prompt 最省钱。