Token、参数、上下文窗口:大模型必懂的 3 个核心概念,一篇吃透!

0 阅读10分钟

Token 的概念

Token 在大模型领域中是一种计算单位。大模型本质上是在进行数学运算。但是人类的语言是没有办法直接进行数学运算的,所以大模型会将人类的语言先转换为数字(Token),然后再进行数学运算。

由于这个特性,Token 也变成了大模型的计费单位。大模型的收费标准也是按照 Token 的运算次数来收费的。可以理解为:大模型帮你运算了多少次,一次运算(一个 Token)多少钱。

本文讨论的 Token,特指 AI 大模型背景下面的 Token。与很多程序员平时开发权限校验系统中用到的 Token,两者是不同的概念。

文字转 Token

OpenAI 提供了一个将文字转换为 Token 的页面tokenizer,在这个页面中可以清晰的看懂什么是 Token。下图中可以看到:“微信公众号关注四千岁”,这 10 个中文被切分成“微信公众号”、“关注”、“四”、“千”、“岁”,这 5 个 Token 了。

什么是Token?

看懂了吗?在 AI 领域,我们常说的 Token,就是这个意思。一个 Token 可以代表一个汉字,也可以代表多个汉字。

每个 Token 都有一个与之对应的唯一数字(TokenID),比如:“微信公众号”,这个 Token 就有一个唯一的数字(TokenID):179951。如下截图:

TokenID

其他符号也能转换为 Token

除了文字可以转换为 Token 之外,我们常用的表情和符号,也可以转换为 Token。

表情也能转换为 Token

Token 的转换规则

一句话来说就是:高频组合+语义组合。Token 映射的核心目标是平衡语义完整性和计算效率 —— 高频组合合并可减少 Token 总量,提升模型处理效率。

Token 转换时,首先会将你输入的一段文字进行拆分。拆分成一个一个的单个文字,然后判断哪些文字经常连在一起使用,发现高频组合的文字之后,就会把对应的文字组合在一起,这个高频组合就会变成一个Token。当然,这也并不是固定的。训练大模型时,有的公司会特意人工介入去调优这种转换规则。总之,Token 转换的基本原理就是这样。

语义组合说的是:字和字组合在一起,要有意义,人类要能看得懂。要能准确描述一个东西或一件事情才行。即便部分组合无实际语义,但只要是人类可理解的(例如网络热梗 “巴巴博一”),也会被归为一个 Token。

Token 转换规则是固定的吗?

文本到 Token 的转换规则并不是固定的,每个公司训练大模型的方式是不一样的,所以他们的文本转换 Token 的规则也是不一样的,甚至每家公司下面的每个大模型都有自己独有的 Token 转换规则。总之,在大模型这里 Token 大概就是这个意思。大模型会按照自己的规则,将文本转换为一个个的 Token,一个 Token 有可能对应一个中文,也有可能对应多个中文。

需要注意的是,由于每个大模型都有自己的 Token 转换规则,所以 TokenID 的唯一性仅局限于某一特定大模型的 Token 映射体系内(同一模型的不同版本也可能存在 TokenID 调整)。大家都有不同的 Token 转换规则,不能一概而论。

大模型的基本原理

大模型本质上就是一个数学公式,Token 就是数学公式中的计算因子。大模型根据你输入的 Token,进行数学运算,最后算出一个计算结果,计算结果肯定也是一个 Token 了。

模型参数

你可能在新闻中看到过类似这样的名字:Qwen3.5-397B-A17B。或者哪个模型有几百亿参数之类的。

B = Billion = 10亿。397B,就代表这个模型总共有 3970 亿个参数。A17B,代表这个模型回答问题时激活的参数。

大模型中的参数又是什么意思呢?首先要说明的是:大模型并不是我们想象中的那样,会把全世界的文章或者书籍一字不落的保存下来。

你让大模型给你背三国演义,大模型肯定不可能按照原著一字不差的给你背出来。大模型跟人类是一样的,你看完一本书,你的大脑只会对这本书有一个大概的了解,你在跟人讨论这本书的时候,也是基于你大脑中存储的关于这本书的大概观点去讨论的,你并不会把整本书背下来。

大模型也是这样,大模型保存的是知识点、是规律(规矩)、是常识,这些知识点和规律就是大模型的参数

大模型中的一个参数等于一个知识点、一个常识、或者是一个规矩。比如,中国的手机号是 11 位的,这种就是一个知识点,也算是一个规矩。

大模型中的参数就是这个意思,一个397B参数的大模型只是存储了这个世界上的3970亿个知识点或者规律或者关键事件。A17B的意思是,当你向大模型提问某一方面的问题时,大模型会激活3970亿个参数中的其中170亿个参数(常识),来回答你的问题。比如,你问医学领域知识时,大模型不会让3970亿个参数都参与计算,因为这3970亿个参数中可能只有50亿个参数是跟医学领域相关的,这类大模型也叫MoE(混合专家模式)。现在主流的大模型都是这种 MoE 模式。前几年的大模型基本上都是Dense类型的大模型,就是你不管问什么问题,3970亿个参数都会参与计算,这显然会造成大量的算力浪费。

Token 计算

你输入的问题首先会变成一个个的 Token,然后大模型会计算你的 Token,算出来的结果也是一个参数。大模型拿着这个参数,去跟大模型中现有的 3970 个参数进行关联,把关联性最强,可能性最大的 Token 筛选出来,这个过程也叫做推理。推理完成后,把筛选后的 Token 返回出去,这就是大模型给你的回答。

上下文窗口

你也可能经常在新闻中看到某个大模型的上下文窗口最大支持:200K Token。其中K(Kilo)是 1 千的意思,跟计算机中的存储单位kb(1 kb=1024 byte)是有区别的。

大模型的上下文窗口指的是:你发送给大模型的问题+大模型给你的回复,这些内容加起来不能超过 200K。

200K=200 * 1000 = 20 万 Token。1 个 Token 平均下来相当于 2 个汉字左右,200K Token 转换成中文大概在 30 万个汉字到 40 万个汉字之间。可以看一下国内大模型公司官网对于Token的解释,如下截图:

MiniMax官网 关于 Token 的解释

智谱官网关于 Token 的解释

大模型是没有记忆的

在我们平时使用豆包这类 APP 时,你似乎能够感觉到大模型能记住你是谁,你都问过哪些问题。这是因为你在使用豆包进行提问时,豆包会将你之前问过的所有问题以及大模型之前给你的所有回答,一起打包发送给大模型。所以大模型才知道你是谁、问过哪些问题、大模型之前是怎么回复你的。

首先要说明的是,大模型本身肯定是没有记忆的,大模型就是一个数学公式,跟你初中见过的数学公式是类似的,数学公式肯定是没有记忆的。

我们举个例子:你在豆包上打开一个聊天框,你第一次输入问题:”你是谁?“,大模型回答:”我是豆包“。你第二次输入问题:”1+1 等于几?“,注意,此时豆包发送你的第二个问题时,会将你第一次的提问和大模型第一次给你的回答,再加上你第二次的提问,一起打包发送给大模型。正是因为这样,大模型才知道你是谁,你曾经问过什么问题。

对于大模型来说,你的每次提问都是一个新的上下文窗口,如果你不把第一次提问的内容发送给大模型,大模型实际上不知道你刚刚问了它什么,它也不知道它刚刚是怎么回答你的。你的每次提问对于大模型来说都是新的开始。你只有在每次提问时,把历史记录一起打包发送给大模型,大模型才能基于你前几次的问答,回答你本次的问题。也正是因为这样,所以你的 Token 消耗的才特别快。你看起来只发送了几个文字给大模型,但实际上你本次发送的内容包含了你之前的所有历史记录,消耗的 Token 可能是你预想的几十倍。如果你本次问的内容跟之前的问题没有关联,你最好在豆包上面新开一个对话,这样会省很多 Token。

当你提问的次数过多时,内容有可能超过大模型支持的最大上下文窗口,此时大模型会对你发送过来的内容进行截断处理,超出的部分会被大模型丢弃。此时,大模型给你的回复可能就没有那么准确了。

智谱官网对于超出上下文的处理

不过呀不用担心,像豆包、OpenClaw 这类应用在每次发送内容前,都会智能判断历史记录是否超过上下文窗口的大小,如果即将超过大模型支持的最大上下文窗口时,豆包会自动抛弃最开始的内容或者对话中最没有意义的内容,会保证你本次的提问能够完整的发送给大模型,并且也会给大模型的回答预留足够的空间以保证你本次的提问能够得到大模型的完整回答

结尾

相信你看到这里已经大致了解了:大模型的基本原理、MoE大模型、Dense大模型、Token 的概念、模型参数等等。下次你在新闻中看到新的大模型发布,通过大模型的名字,你就能大概明白这个新的大模型有多厉害了。

如果你平时还在使用 ClaudeCode、OpenClaw、OpenCode 等等这些 AI 智能体,关注我。下篇文章我们来讲讲如何使用工具统计我们每天使用了多少 TokenClaudeCode都调用了哪些工具、如何防止大模型公司乱扣费这些问题。

参考资料 [1]

tokenizer: platform.openai.com/tokenizer