公众号旧文
为什么 AI 总是 一个字一个字 的回答问题
很多人在使用 ChatGPT 或其他 AI 时,都会发现:
AI 的回答并不是一次性全部出现,而是像打字一样,一个字一个字的往外冒。
例如:
今
今天
今天天
今天天气
今天天气不
今天天气不错
为什么 AI 要这样输出?它真的是一个字一个字想出来的吗?
要理解这个问题,就需要先知道一个非常重要的概念:
Token
一、什么是 Token?
在 AI 模型里,文本并不是按“字”或者“单词”来处理的,而是会被拆成一种叫 Token(标记) 的单位。
简单理解:
Token 就是模型处理文本时使用的最小单位。
例如一句中文:
你好,世界
在 AI 模型内部,可能会被拆成:
你 | 好 | , | 世界
也可能是:
你好 | , | 世界
这些被拆分出来的单位,就叫 Token。
二、Token 不一定等于一个字
很多人以为:
1
个字 =
1
个 token
其实不一定。
例如中文:
人工智能
可能被拆成:
人工 | 智能
也可能是:
人 | 工 | 智 | 能
英文也一样。
例如:
Hello
world
可能被拆成:
Hello
| world
也可能是:
Hel
| lo | world
不同的 AI 模型,会有不同的 Tokenizer(分词器)。
三、为什么 AI 要用 Token?
原因很简单:
神经网络更容易处理数字序列。
AI 并不能直接理解:
你好
它看到的是:
1234
5678
也就是说:
Token
→ 数字 ID → 模型计算
整个过程大概是这样:
用户输入文字
↓
Tokenizer 切成 token
↓
token 转换成数字
↓
模型计算
↓
生成新的 token
↓
再转换回文字
所以 AI 的本质其实是:
不断预测下一个 token。
四、AI 是怎么生成答案的?
当你问 AI 一个问题时,例如:
为什么天空是蓝色的?
模型并不是先想好整段答案。
它的工作方式更像是这样:
预测第一个 token
↓
预测第二个 token
↓
预测第三个 token
↓
……
例如:
天空
之所以
呈现
蓝色
是因为
……
每生成一个 token,模型都会重新计算一次。
所以 AI 的生成过程其实是:
token
→ token → token → token
一步一步往下推。
五、为什么 AI 会一个字一个字的输出?
当模型生成 token 时,服务器其实可以有两种做法:
第一种:全部生成完再返回
例如:
生成 500 个 token
↓
一次性返回
这样用户就会看到:
等待 5 秒
↓
突然出现一大段文字
体验会比较差。
第二种:边生成边发送
很多 AI 系统采用的是:
生成一个 token
↓
立刻发送给浏览器
↓
浏览器显示
于是用户看到的效果就是:
今
今天
今天天气
今天天气不错
就像 AI 在打字一样。
这种技术叫:
流式输出(Streaming)。
六、Token 也是 AI 的计费单位
如果你用过 AI API,可能见过这样的说法:
100 万 token
这里的 token,其实就是:
模型处理的文本单位数量。
通常包含两部分:
输入 token + 输出 token
例如用户问题:
写一篇关于闪电形成的文章
假设消耗:
输入:30 token
输出:800 token
总消耗就是:
830 token
这就是 AI 服务的计费方式。
七、一个很多人不知道的小细节
虽然你看到 AI 是 一个字一个字输出,但实际上:
模型不一定真的是一次生成一个 token。
很多推理服务器会:
一次生成几个 token
↓
再分批发送
所以有时候你会发现:
- 开头输出很快
- 中间稍微慢一点
这其实是服务器在控制发送节奏。
八、总结
简单来说:
Token 是 AI 处理文本的基本单位。
AI 的回答本质上是:
不断预测下一个 token
而我们看到的打字机效果,就是因为:
服务器一边生成 token,一边把结果发送给浏览器。
于是就出现了 AI 像打字一样回答问题 的现象。