把一个常被忽略的概念讲明白

词元, 不是“词”。

词元是大模型处理文字时真正拿来计算的单位。

你问一句话、贴一段代码、发一段 JSON,模型都不会直接“看原文”,而是先把它切成词元,再开始处理。

真正决定窗口、费用和延迟的,往往不是字数,而是词元数。

算窗口 算费用 算延迟 也决定缓存效率

先有这三个直觉,后面就好懂了。

词元是片段,不一定是词。

它可以是一个字、半个单词、一个空格、一个括号,甚至是一段高频短语。

模型真正计数的,是词元数。

上下文窗口、输入输出费用、部分缓存与推理开销,通常都围着词元计算。

同一段话,换个模型可能就不一样。

因为不同模型可能用不同的分词器和词表,所以词元数量并不总是统一的。

先猜,再看,再自己试。

与其读长篇解释,不如自己点几下。交互越少“猜错”,这个概念就越稳。

猜一猜

点“对”或“错”,马上看解释。

看切分

同一段内容,在模型眼里会被拆成不同片段。

原文

            
字符 0
词元 0
每词元字符 0
切分结果

写一句话,估一下词元预算

这是为了建立直觉的粗略估算,不是某个模型的精确计数。

总字符 0
汉字数 0
英文数字片段 0
粗略词元 0
预算感受

不是所有场景都要精打细算,但这几种最容易超支。

长对话

历史轮次越多,模型每次都要“重读”的内容越多,成本和延迟都会被放大。

代码和 JSON

它们有很多符号、字段名和重复结构,通常比看起来更耗词元。

知识库检索

如果一次塞进太多片段,窗口会被迅速挤满,反而不利于模型抓重点。

把这三件事分清楚,就已经超过很多人了。

词元等于汉字数吗?

不等于。一个汉字可能是一个词元,高频双字词也可能合成一个词元,具体要看分词器。

词元越少越好吗?

也不是。最重要的是减少无效重复,而不是把必要信息压缩得看不懂。

大窗口就等于什么都记得住吗?

不等于。窗口变大只是容量更大,不代表模型对所有位置的信息都同样敏感。