你在对话框里输入了一句话。几秒钟后,模型输出了回答。
比如你问它:"我家猫最近一直叫,尤其是半夜,是怎么回事?"
模型给你列了几条可能的原因:发情、饿了、不舒服、环境变化。每条还附了建议。看起来像是一个懂猫的朋友在帮你分析。
但这个过程里到底发生了什么?它不可能像人一样"读"懂了你的问题——它不认识字。它做的是另一套事情。
从输入到输出,可以拆成四步:
输入文字 → ① 拆块 → ② 转数字 → ③ 找关系 → ④ 逐字预测 → 输出回答每一步对应一个你必须理解的关键概念。我们按顺序走一遍。
第一步:拆块(Token)
你输入了一句话。模型拿到手,第一件事不是"读",是拆。
它不认识完整的句子,它认识的是一个个小块,叫Token。Tokenizer(分词器)会按自己的规则把你的话切成小块——比如"我今天很开心"可能被切成"我"、"今天"、"很"、"开心"四个块。
不同的语言、不同的模型,切法不一样:
- 英文 1 个 Token ≈ 0.75 个单词("unbelievable"可能被切成"un"、"believe"、"able"三段)
- 中文 1 个 Token ≈ 1~2 个汉字
- 有些模型词表大(比如 DeepSeek V4 上百万词表),常用词能整个保留,拆得少
- 有些模型词表小,长词就会被拆得更碎
为什么你要关心这个?因为这是大模型的计价单位。你每次调用 API,是按 Token 付费的。你每次控制输入的长度,实际就是在控制 Token 数量。你做 AI 产品时说的"控制成本",控制的就是这个东西。
好,现在文本被拆成了一个个小块。但模型还是"看"不懂它们——它只认识数字。
第二步:转数字(Embedding)
模型拿到这几个小块,下一件事:把每个小块变成一长串数字。
这个过程叫 Embedding(嵌入)。每个 Token 会被映射成一个几百维的向量——你可以理解为用几百个数字来描述这个 Token。
举个例子,在向量空间里:
"猫" 的数字 → 离 "狗" 近,离 "石头" 远 "开心" 的数字 → 离 "高兴" 近,离 "悲伤" 远每个数字本身没意义,有意义的是向量之间的距离*。*模型通过距离来判断"谁跟谁可能是同一类"。
这就解释了为什么 Embedding 可以做搜索——你把一段文字转成向量存起来,用户提问时也转成向量,然后算距离,距离近的就是相关的内容。这就是 RAG 里检索环节的原理。
好,现在所有 Token 都变成了数字。但还有个问题没解决:"我爱你"和"你爱我"的数字是不一样的呀——顺序不一样,意思就不一样。模型怎么区分?
第三步:找关系(注意力机制)
这是大模型最核心的机制,也是它跟老一代 AI 最大的区别。
在注意力机制出现之前,模型是按顺序读句子的:从左读到右,读完前面的,后面的就模糊了。注意力机制不一样——它允许模型在生成某个词的时候,回头看输入里所有的词,自己判断谁跟谁更相关。
具体到每一步:
- 预测第 1 个字时:回头看整个输入,判断"当前最该关注什么"
- 预测第 2 个字时:回头看整个输入 + 自己刚生成的 1 个字,再次计算
- 预测第 3 个字时:再回头看整个输入 + 刚生成的 2 个字
每一次都是看全部,算一遍。不是只看最近的那个。
但这也引出一个天然的限制——它能"看"的范围是有限的。
窗口限制(上下文窗口)
注意力机制虽然厉害,但不是无限看的。它能看到的最大范围叫做上下文窗口,单位也是 Token。
如果输入内容超过了窗口上限,最早的内容就会被"挤出去"——模型根本看不到。就像你站在一个房间中间,只能看到房间以内的东西,房间以外的你不知道。
这也是 RAG 的必要性所在:不是把所有内容塞进去,而是检索出最相关的内容,把有限的窗口用在刀刃上。
当前主流模型的窗口:
| 模型 | 上下文窗口 |
|---|---|
| Claude Opus 4.7 / Sonnet 4.6 | 1M |
| GPT-4.1(全系列) | 1M |
| Gemini 2.5 Pro | 1M |
| DeepSeek V4 Pro / Flash | 1M |
| Llama 4 Scout | 10M |
窗口确实越来越大了,但每次调 API 的成本也在跟着增加——窗口翻倍,Token 翻倍,成本翻倍。
第四步:逐字往外蹦(预测)
模型算好了相关性,接下来就是输出。
它不是一个字想好了再想下一个,而是一次只预测下一个最可能的 Token。你看到的那段完整回答,是这个步骤重复了几十上百次的结果。
那"最可能"怎么控制?靠Temperature(温度):
- Temperature 设到 0.1:每次选概率最高的那个词,稳定但死板
- Temperature 设到 1.0:概率高的词大概率选,但偶尔也给其他词机会,有变化
- Temperature 设到 1.5:更随机,适合创意发散
你做产品时,不同环节可以设不同的温度:意图分类用低温(要确定),客服回答用中温(要自然),营销文案用高温(要创意)。大部分大模型的 API 都支持这个参数。
补充:为什么大模型突然就会了很多事
你可能会发现一个现象:小模型(7B)做不了的事,大模型(70B)突然就会了。不是慢慢变好的,是跳跃式的。
比如思维链推理——7B 不会,13B 还是不会,到 65B 突然就会了。这就是能力涌现。
这个现象对做产品意味着什么:你不需要等"最强模型"出来了再动手。先搭好产品的流程框架,维护好一套测试集。每次新模型发布,跑一遍测试集,看哪些能力涌现了,哪些还需要用 RAG 兜底。
总结:全流程串起来
现在把四步连起来看,就是一个完整的工作流程:
你输入:"我家猫最近一直叫,尤其是半夜,是怎么回事?" ↓ ① 拆块 → 变成若干个 Token ["我家", "猫", "最近", "一直", "叫", "尤其", "是", "半夜", "是", "怎么回事"] ↓ ② 转数字 → 每个 Token 变成一个向量 "猫" → [0.12, -0.35, 0.67, ...] "叫" → [0.23, 0.11, -0.44, ...] "半夜" → [-0.05, 0.78, 0.33, ...] ... ↓ ③ 找关系 → 注意力机制算出"猫"和"叫"、"半夜"相关性高 模型知道重点不是"我家",而是"猫半夜叫"这个行为问题 ↓ ④ 逐字预测 → Temperature 决定"稳定"还是"灵活" 第 1 步:先输出"猫" 第 2 步:看输入 + "猫" → 输出"半夜" 第 3 步:看输入 + "猫半夜" → 输出"叫" …… 直到输出完 ↓ 你看到一段分析: "猫半夜叫常见原因有几种:发情(尤其是未绝育的猫)、饥饿或口渴、身体不适、环境变化引起焦虑……"这篇文章没有讲公式,没有贴代码。你的目标也不是能复现这个过程,而是别人问你"大模型是怎么工作的",你能按这个顺序把四步串一遍。讲清楚了,L2 就算过关了。