mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
8848 字
24 分钟
揭开黑盒:大模型如何生成回答
2025-07-02

开篇:你一直在做大模型做的事#

想象你和朋友玩一个游戏:我说前半句,你接后半句。

“今天天气…”

你脱口而出:“真好。”

为什么不是 紫色?为什么不是 跑步?因为你的大脑根据日常经验,在一瞬间完成了一次 预测:在所有可能的词里,选出了最合理的那一个。

大语言模型(Large Language Model,LLM)做的事情,本质上和你一模一样:预测下一个词

只不过,你靠的是二十多年的人生经验,而它靠的是数万亿字的训练数据和上千亿个参数。你的 直觉 发生在神经元里,它的 直觉 发生在数学运算里。

这篇文章,就是带你走完从 你输入一段文字 到 “AI 吐出回答” 的全过程。读完之后,你会理解:大模型不是在 查字典,不是在 搜索引擎里找答案,而是在做一件非常纯粹的事:根据上文,猜下文。


本文要点

  1. 大模型的工作流程:文字 → Token → 向量 → Transformer → 概率 → 输出
  2. 什么是 Token,为什么不直接按字处理
  3. Embedding:让计算机 理解 语义的魔法
  4. Transformer:层层加工,从语法到语义
  5. 概率采样:Temperature、Top-p、Top-k 怎么影响输出
  6. 自回归生成:为什么 AI 一个字一个字 “打” 出来
  7. 幻觉的本质:不是 记错了,而是 猜错了
  8. 能力边界:大模型擅长什么、不擅长什么
  9. 工程优化:上下文窗口、KV Cache、量化技术
  10. 定制层次:提示工程、微调和训练的区别

一、从文字到数字:Token 化#

1.1 计算机不认字#

计算机是一台计算器。它能处理 0 和 1,能做加减乘除,但它看不懂 你好 两个字。要让计算机处理人类语言,第一步就是把文字翻译成数字。

这个翻译过程叫做 Token 化(Tokenization)。翻译后的最小单位叫做 Token

1.2 Token 不是 “字”,也不完全是 “词”#

你可能会想:一个汉字对应一个数字,不就行了?或者一个英文单词对应一个数字?

听起来合理,但实际操作中有问题。

按字拆分的问题:词汇表太大。中文常用字就有好几千,加上生僻字、专有名词,数量爆炸。而且单个字缺少语义信息,“人” 和 “工” 拆开后,模型很难知道它们组合起来是 人工。

按词拆分的问题:新词怎么办?“ChatGPT” 这个词在几年前根本不存在。如果词汇表里没有,模型就完全不认识它了。

所以,现代大模型采用了一种折中方案:BPE(Byte Pair Encoding,字节对编码)。

1.3 BPE:在效率和灵活性间平衡#

BPE 的思路很朴素:先把文本拆成最小的单元(字节或字符),然后统计哪些相邻的单元经常一起出现,把它们合并为一个新的 Token。反复合并,直到词汇表达到预定大小。

这就像你整理书架。一开始每本书单独放,然后发现《哈利·波特》七本总是一起借,干脆捆在一起算一组。

来看实际的 Token 化结果:

中文示例

人工智能很强大 被切分为:

["人工", "智能", "很", "强大"]

四个汉字组合被识别为两个有意义的词组,“很” 和 强大 各自独立。

英文示例

“artificial intelligence” 被切分为:

["art","ificial","intelligence"]

注意 “artificial被拆成了art”和”ificial”:因为”art” 是高频子词,单独做一个 Token 更高效。

1.4 Token 数量限制:上下文窗口#

每个大模型能处理的 Token 数量是有上限的,这个上限叫做上下文窗口(Context Window)。你可以把它理解为模型的 工作记忆,窗口越大,它能同时 看到 的内容越多。

不同模型的上下文窗口差异巨大:

模型上下文窗口约相当于
GPT-3.54K tokens约 3,000 字
GPT-4128K tokens约一本小说
Claude 3.5200K tokens约两本小说
Gemini 2.01M+ tokens约几十本书

1.5 粗略换算#

记住两条经验法则,够日常使用了:

  • 1 个中文字 ≈ 1~2 个 Token
  • 1 个英文单词 ≈ 1~1.5 个 Token

所以当你看到 “这个模型支持 128K Token” 时,大概意味着它能一次性处理约 6~10 万字的中文内容。


二、从 Token 到向量:Embedding#

2.1 数字还不够,要有 意义#

Token 化之后,每个 Token 都有了一个编号。比如 人工 可能是 Token #8421,智能 可能是 Token #3057。

但编号只是 ID,没有任何语义信息。#8421 和 #3057 之间差了 5364,这个数字毫无意义。

需要一种方式,让数字本身能 表达含义。

2.2 向量:语义的坐标#

解决方案是把每个 Token 映射成一个向量(Vector):一组高维的数字列表。在真实的大模型中,每个 Token 会被转换成一个几千维的向量。

什么是 维度?想象一下地图。地图上的每个城市有两个坐标:经度和纬度。这是 2 维。如果再加上海拔,就是 3 维。向量的维度类似,只不过大模型用的是几千个维度,每个维度描述 Token 的一个 语义特征。

这个转换过程叫做 Embedding(嵌入)。

2.3 经典例子#

假设把词汇映射到一个简化的向量空间(实际维度远高于此):

flowchart TD N0["国王"] N1["[0.9, 0.8, 0.1, ...] ← 权力高,男性特征强"] N0 --> N1 N2["王后"] N3["[0.9, 0.2, 0.1, ...] ← 权力高,女性特征强"] N2 --> N3 N4["男孩"] N5["[0.1, 0.8, 0.9, ...] ← 权力低,男性特征强"] N4 --> N5 N6["女孩"] N7["[0.1, 0.2, 0.9, ...] ← 权力低,女性特征强"] N6 --> N7

你会发现一个神奇的规律:

国王 - 男性 + 女性 ≈ 王后

向量空间里的方向代表语义关系。国王 到 王后 的方向,和 男孩 到 女孩 的方向几乎平行,它们都表示 性别转换。

这就是 Embedding 的威力:语义相近的词,在向量空间里距离也近。“猫” 和 “狗 会靠在一起,而 猫” 和 民主 则相距甚远。

2.4 位置也很重要#

小明打了小红 和 小红打了小明,用的词完全一样,但意思截然不同。区别在哪里?词序

所以模型不仅要知道每个 Token 是什么,还要知道它在句子里的位置。做法是给每个 Token 的向量再加上一个位置向量(Positional Encoding):

最终向量 = 词义向量 + 位置向量

这样,同一个词出现在不同位置,最终的向量也不同。模型就能区分 小明打了小红 和 小红打了小明 了。


三、Transformer 的层层加工#

3.1 向量进入 加工厂#

到此为止,有了一组带有位置信息的向量。但这些向量还是 孤立 的:每个 Token 只知道自己的意思,不知道和上下文其他词的关系。

接下来,这些向量要进入模型的核心结构:Transformer

你可以把 Transformer 想象成一家工厂的流水线。原材料(向量)从一端进去,经过一层又一层的加工,最后从另一端出来。每经过一层,向量中包含的信息就更丰富、更精确。

3.2 每层做两件事#

Transformer 的每一层都做两件事:

1. 自注意力计算(Self-Attention)

这是 Transformer 最核心的创新。自注意力让每个 Token 能 看到 句子里的所有其他 Token,并判断哪些 Token 跟自己关系最密切。

想象你在读一段话:

“那只坐在垫子上,看起来很舒服。”

当模型处理到 “它 这个词时,自注意力机制会让 它” 去 关注 句子里的每个词,然后发现:它和 “猫 的关联度最高。于是 它 的向量会融入 猫 的语义信息,模型因此理解了 它” 指的是猫。

2. 前馈网络(Feed-Forward Network)

自注意力让 Token 之间交换了信息,前馈网络则负责对这些信息做进一步的加工和转换。你可以把它理解为 消化吸收 环节:把交换来的信息整合成更有用的表示。

3.3 浅层学语法,深层学语义#

一个大模型通常有几十到上百层 Transformer。不同深度的层 学到 的东西不一样:

  • 浅层(第 1~10 层):学习基础的语法结构。比如判断 我 是主语,吃 是动词,苹果 是宾语。
  • 中层(第 10~50 层):学习短语和句子层面的语义。比如理解 “我爱 AI” 表达的是积极态度。
  • 深层(第 50 层以上):学习复杂的推理和长距离依赖。比如理解一段话里前后呼应的逻辑关系。

GPT-4 有近百层 Transformer。每经过一层,模型对输入文本的 理解 就更深一层:就像你读一篇文章,第一遍看懂字面意思,第二遍理解作者意图,第三遍体会言外之意。


四、从向量到概率:预测下一个 Token#

4.1 加工完成,开始 猜词#

经过几十到上百层 Transformer 的加工,每个 Token 的向量已经融合了丰富的上下文信息。现在,模型要用这些向量来完成它的核心任务:预测下一个 Token

具体怎么做?模型拿到最后一个位置的向量,把它投射到整个词汇表上,算出每个候选 Token 的概率。

假设你输入 今天天气,模型会输出一张概率分布表:

候选 Token概率
很好35%
不错20%
晴朗18%
炎热10%
寒冷8%
怎么样5%
…………
紫色0.001%

很好 排第一,因为训练数据里 今天天气很好 出现得最多。紫色 几乎为零,因为 今天天气紫色 在任何正常文本中都不会出现。

4.2 采样策略:选哪个?#

现在有一张概率表,模型怎么从中选出最终的词?这就涉及到采样策略

Temperature(温度)#

Temperature 是最常用的控制参数。它调节概率分布的 尖锐程度。

想象你面前有一排水龙头,每个水龙头的出水量代表一个词的概率。

  • Temperature = 0.1(低温):概率最高的水龙头出水量巨大,其他的几乎关闭。模型几乎总是选最可能的词。输出非常确定、保守,适合写代码、做翻译。
  • Temperature = 1.0(常温):水龙头出水量大致按原始概率分布。输出合理且有变化,适合日常对话。
  • Temperature = 2.0(高温):所有水龙头出水量趋于均匀,低概率词也有很大机会被选中。输出变得天马行空、不可预测,适合头脑风暴、创意写作。

用一个更直观的对比:

flowchart TD N0["Temperature 0.1"] N1[""宫保鸡丁"(永远是那道最大众的菜)"] N0 --> N1 N2["Temperature 1.0"] N3[""麻婆豆腐"(合理,但有变化)"] N2 --> N3 N4["Temperature 2.0"] N5[""松鼠桂鱼配薄荷冰淇淋"(放飞自我)"] N4 --> N5

Top-p(核采样)#

Top-p 的思路是:把候选词按概率从高到低排列,累计概率达到 p 的那些词组成 候选集,然后从候选集中随机选。

  • Top-p = 0.1:只看概率最高的几个词(累积概率达到 10% 就停)。
  • Top-p = 0.9:把大部分合理的词都纳入候选(累积概率达到 90%)。

Top-k(前 k 选择)#

Top-k 更简单粗暴:只从概率最高的前 k 个候选中选。

  • Top-k = 1:等同于贪心解码(Greedy Decoding),永远选概率最高的词。
  • Top-k = 50:从前 50 个候选中选,兼顾多样性和合理性。

这些参数如何配合#

在实际使用中,这三个参数通常组合使用。例如:

  • 写代码:Temperature = 0.2,Top-p = 0.1 → 极度保守
  • 日常对话:Temperature = 0.7,Top-p = 0.9 → 自然流畅
  • 创意写作:Temperature = 1.2,Top-p = 0.95 → 丰富多变

五、自回归生成:一个词接一个词#

5.1 关键机制:用输出作为输入#

到这里你可能会问:模型一次只预测一个 Token,那一整段话是怎么生成的?

答案是自回归(Autoregressive)生成。流程是这样的:

  1. 你输入 请写一首诗
  2. 模型预测下一个 Token → “春”
  3. 把 请写一首诗春 作为新的输入
  4. 模型预测下一个 Token → “风”
  5. 把 请写一首诗春风 作为新的输入
  6. 模型预测下一个 Token → “拂”
  7. ……
  8. 直到模型输出一个特殊的 结束Token(EOS),或者达到最大长度限制
flowchart TD N0["请写一首诗"] N1["[春]"] N0 --> N1 N1["[春]"] N2["[风]"] N1 --> N2 N2["[风]"] N3["[拂]"] N2 --> N3 N3["[拂]"] N4["[面]"] N3 --> N4 N4["[面]"] N5["[来]"] N4 --> N5 N5["[来]"] N6["[,]"] N5 --> N6 N6["[,]"] N7["[花]"] N6 --> N7 N7["[花]"] N8["[开]"] N7 --> N8 N8["[开]"] N9["……"] N8 --> N9

每一步,模型都要把前面所有的 Token 重新 “看” 一遍,然后预测下一个。这就像你写文章,每写一个字都要回头读一遍前面写的内容。

5.2 为什么输出有时很慢#

现在你理解了为什么 AI 的回答是 逐字打出 而不是一整段瞬间出现:因为它确实是一个 Token 一个 Token 生成的。每生成一个 Token,都要跑一遍那几十层 Transformer。

输出越长,需要的计算越多,速度自然越慢。这也是为什么你让 AI 写一篇长文,等待时间明显比回答 “1+1 等于几” 要长得多。

5.3 为什么会 跑题#

自回归生成有一个天然的隐患:错误会累积

如果模型在第 50 个 Token 时选了一个不太恰当的词,后面所有的预测都建立在这个 歪了 的基础上。就像你走路时第一步偏了 1 度,走 100 步后就偏得很远了。

这就是为什么 AI 在生成长文本时有时会 跑题 或 前后矛盾:每一步微小的偏差,在自回归过程中会被不断放大。


六、为什么会 幻觉#

6.1 大模型不是在 查资料#

很多人以为 AI 在回答问题时,会像搜索引擎那样去某个数据库里查找答案。这是一个常见的误解。

大模型没有一个 知识库 可以查询。它做的事情始终只有一件:根据上文,预测下一个最可能的词。它的 知识 全部编码在模型参数里,是训练过程中从海量文本中学到的统计规律。

6.2 两个场景对比#

场景 1:碰巧答对

你问:“OpenAI 的 CEO 是谁?”

训练数据里,“OpenAI”和”CEO后面经常跟着Sam Altman”。所以模型预测的下一个词大概率是”Sam Altman”,恰好是正确的。

但注意,模型并不 知道 Sam Altman 是谁,也不 知道 他是 CEO。它只是根据统计规律,发现这些词经常一起出现。

场景 2:自信编造

你问:“2026 年诺贝尔物理学奖得主是谁?”

训练数据里没有这个信息(假设训练数据截止到 2025 年)。但模型发现,诺贝尔物理学奖得主 这个短语后面,应该跟一个人名。于是它根据统计规律,编造 了一个看起来合理的名字。

更可怕的是,它编造时的语气和回答正确信息时一模一样:没有任何犹豫或不确定的标志。

6.3 幻觉的本质#

幻觉(Hallucination)不是 Bug,而是自回归文本生成器的固有特性。

模型在生成文本时,它的唯一目标是让输出在统计上看起来 合理。它不会检查自己说的是否真实,因为它根本没有 真实 这个概念。

用一个类比:大模型就像一个博学的演讲者,无论你问什么问题,他都能流畅地给出一个 听起来很对 的回答。但他没有笔记本可以查证,所有的回答都是凭记忆即兴发挥的。大多数时候他说对了,但有时候他会一本正经地胡说八道。

6.4 如何应对幻觉#

在关键场景中,永远不要盲信大模型的输出。几条实用建议:

  • 重要信息交叉验证:让模型给出来源或依据,然后自己查证
  • 接入外部知识库:使用 RAG(检索增强生成)技术,让模型先 查资料 再回答
  • 限定输出范围:要求模型只从给定材料中提取信息,不要自行发挥
  • 人工审核兜底:涉及法律、医疗、财务等领域,必须人工复核

七、能力的边界#

理解了大模型的工作原理后,可以清楚地划定它的能力边界。

7.1 擅长的事#

这些任务恰好契合 预测下一个词 的能力模型:

  • 模式识别:识别文本中的模式和规律(比如情感分析、文本分类)
  • 文本转换:翻译、改写、摘要、格式转换
  • 补全生成:给定开头续写、给定问题回答、给定需求写代码
  • 格式化输出:按指定格式整理信息(JSON、表格、Markdown)

7.2 不擅长的事#

这些任务超出了 统计文本生成 的能力范围:

  • 精确计算:问 “3,847 × 2,916 等于多少”,模型会 猜 一个答案而不是真的计算。它没有计算器。
  • 实时信息:训练数据有截止日期。模型不知道今天的新闻、实时的股票价格。
  • 长链推理:需要 10 步以上严密逻辑推导的数学证明或编程题,容易在中间某步出错。
  • 持续学习:模型参数在训练后固定。它无法从和你的对话中 学会 新知识(除非重新训练或微调)。

7.3 灰色地带#

有些能力模型 勉强可以,但不稳定:

  • 常识推理:大多数时候正确,但偶尔会犯令人困惑的低级错误
  • 创造性任务:能写出还不错的诗和故事,但很难真正 原创,更像是重组
  • 个性化:可以模仿语气和风格,但没有真正的 个性

了解这些边界,能帮你把大模型用在正确的地方,避免不切实际的期待。


八、上下文窗口的演进#

8.1 从 4K 到 1M+:一场记忆力的军备竞赛#

上下文窗口的大小,直接决定了模型能同时处理多少信息。这几年的演进堪称飞速:

flowchart TD N0["2023 年:GPT-4 32K"] N1["128K tokens"] N0 --> N1

这是什么概念?4K Token 大约是一篇短文章。128K Token 大约是一本小说。1M Token 则可以装下几十本书或一个中型代码仓库。

8.2 长上下文的意义#

上下文窗口的扩大,实实在在地改变了使用场景:

  • 4K 时代:只能做短对话,稍长的文档就要手动截取
  • 128K 时代:可以一次性分析一整份合同、一本技术文档
  • 1M 时代:可以处理整个代码仓库、整本书,甚至让模型阅读几百页的会议记录后做总结

8.3 O(N²) 的瓶颈#

但扩大窗口不是免费的。Transformer 中自注意力机制的计算量,与序列长度的平方成正比,这就是 O(N²) 复杂度。

什么意思?如果上下文从 4K 扩大到 128K(32 倍),自注意力的计算量会增加 32² = 1,024 倍。

用生活类比:你在一个 10 人的聚会上,每个人要和其他 9 个人打招呼,总共 45 次握手。如果人数变成 320 人,握手次数变成 51,040 次。人数增加 32 倍,握手次数增加超过 1,000 倍。

8.4 优化方向#

研究者们一直在想办法解决这个问题:

  • 稀疏注意力(Sparse Attention):不是每个 Token 都关注所有 Token,而是只关注 重要的 那些
  • 线性注意力(Linear Attention):通过数学变换将复杂度从 O(N²) 降到 O(N)
  • 滑动窗口注意力(Sliding Window Attention):每个 Token 只看固定范围内的邻居
  • Flash Attention:不改变数学原理,通过优化 GPU 内存访问来加速

这些优化让百万级别的上下文窗口从理论变成了现实。


九、KV Cache 与推理优化#

9.1 重复计算的浪费#

回忆一下自回归生成的过程:模型每生成一个 Token,都要把前面所有 Token “看” 一遍。

假设模型已经处理了 1,000 个 Token,现在要预测第 1,001 个。按照原始逻辑,前 1,000 个 Token 的注意力计算要全部重新做一遍。但这些 Token 没有变化,上一轮已经算过了,全部重算是巨大的浪费。

9.2 KV Cache:记录中间结果#

KV Cache 的思路非常直觉:把已经算过的中间结果(具体来说是自注意力机制中的 Key 和 Value 矩阵)缓存起来,下次直接复用。

类比一下:你在做一道多步骤的数学题,每一步的结果你都记在纸上。做到第 5 步时,你不需要从第 1 步重新算,只要看纸上记的结果继续往下做就行。

有了 KV Cache,模型生成第 1,001 个 Token 时,只需要计算第 1,001 个 Token 与前面 1,000 个 Token 的关系,而前 1,000 个 Token 之间的关系直接从缓存中读取。

9.3 推理速度的提升#

KV Cache 带来的提速非常显著。没有 KV Cache 时,生成第 N 个 Token 的时间与 N 成正比,越往后越慢。有了 KV Cache,每一步的增量计算量基本恒定。

代价是显存。KV Cache 会随着上下文长度线性增长。对于 128K 上下文的模型,KV Cache 可能占用几十 GB 的显存。

9.4 其他优化技术#

除了 KV Cache,还有一些重要的推理优化技术:

Flash Attention

标准的注意力计算需要在 GPU 的高带宽内存(HBM)和计算核心之间来回搬运数据。Flash Attention 通过 分块计算(Tiling)减少数据搬运次数,在不改变数学结果的前提下大幅提速。

效果:速度提升 2~4 倍,显存占用也更低。

Speculative Decoding(推测性解码)

核心思路:用一个小而快的 草稿模型 先快速生成一串候选 Token,再用大模型一次性验证。如果大部分候选通过验证,就省去了大模型逐个生成的时间。

类比:写文章时先打一份草稿,再让主编一次性审阅。比主编一个字一个字地写,快得多。


十、量化技术简介#

10.1 模型太大,装不下#

GPT-4 据估计有超过 1,750 亿参数。每个参数用 16 位浮点数(FP16)存储,需要约 350 GB 显存。单张消费级显卡通常只有 8~24 GB,差了十几倍。

怎么办?一个有效的办法是量化(Quantization)。

10.2 量化:用低精度换高效率#

量化的核心思想:用更少的位数(Bit)来表示模型参数。

精度格式每个参数占用相当于
FP32(全精度)32 位高清 4K 照片
FP16(半精度)16 位高清 1080p 照片
INT8(8 位整数)8 位标清 720p 照片
INT4(4 位整数)4 位缩略图

从 FP16 量化到 INT8,模型体积减半。从 FP16 量化到 INT4,体积只有原来的四分之一。

用照片类比:高清照片和标清照片,远看几乎一样,只有放大细节时才能看出差别。量化也一样,精度降了,但模型在大多数任务上的表现下降很小。

10.3 常见量化格式#

如果你想在自己的电脑上跑大模型,你会经常遇到这几个名字:

  • GPTQ:GPU 上运行的量化格式,速度快,需要显卡
  • AWQ:比 GPTQ 更新,对重要参数保留高精度,质量更好
  • GGUF:CPU 上也能运行的格式,适合没有独立显卡的电脑

10.4 量化的意义#

量化技术让原本只能在数据中心运行的大模型,也能跑在普通电脑甚至手机上。例如:

  • 一个 70 亿参数(7B)的模型,FP16 需要约 14 GB 显存。INT4 量化后只需要约 4 GB,一张普通显卡就够了。
  • 许多开源模型(如 Llama、Qwen、DeepSeek)都提供了量化版本,让个人用户也能在本地体验大模型的能力。

十一、附:训练、微调还是写提示词?#

11.1 四种定制层次#

很多人问:“我想让 AI 做某件事,应该训练一个模型吗?”

大多数情况下,答案是:不需要

定制大模型的方式从简到繁,分为四个层次:

1. 直接使用(Zero-shot)#

直接把问题丢给模型,不做任何额外设置。

适用场景:通用问答、翻译、摘要等标准任务。

类比:直接走进一家餐厅,看菜单点菜。

2. 提示工程(Prompt Engineering)#

精心设计输入的提示词,引导模型给出更好的回答。

适用场景:特定格式输出、角色扮演、复杂推理任务。

类比:跟厨师详细说明你的口味偏好:少油少盐,微辣,不要香菜。

3. 微调(Fine-tuning)#

用你自己的数据对现有模型做进一步训练,让模型学会特定领域的知识或风格。

适用场景:需要模型持续稳定地输出特定风格、掌握专业领域知识、或遵守特殊格式要求。

类比:请一位厨师到你家学做你老家的菜。他本来就会做饭,现在专门学习你喜欢的口味。

4. 从头训练(Pre-training)#

从零开始,用海量数据训练一个全新的模型。

适用场景:需要一个完全定制的基座模型(极少数大型企业才需要)。

类比:自己开一家烹饪学校,从零培养厨师。

11.2 决策建议#

永远从最简单的方法开始。实际上,80% 的问题通过提示工程就能解决。

11.3 成本对比速查表#

定制方式技术门槛数据需求时间成本资金成本适用比例
直接使用几秒API 调用费50%
提示工程少量示例几小时API 调用费30%
微调中高数百~数万条数天数百~数千美元15%
从头训练极高数 TB 文本数月数百万美元以上5%

看这张表,你应该能理解为什么大多数人和团队只需要前两种方式了。


图解:一次完整的生成过程#

下面用一张流程图,串起从输入到输出的完整链路。

{{< mermaid >}} flowchart LR A[输入文字
今天天气] —> B[“Token 化
[今天, 天气]”] B —> C[“Embedding
转为高维向量”] C —> D[”+ 位置编码”] D —> E[“Transformer
N 层加工”] E —> F[“概率分布
很好 35%
不错 20%
晴朗 18%”] F —> G[“采样策略
Temperature
Top-p / Top-k”] G —> H[输出 Token
很好] H —>|加入输入
继续预测| B

style A fill:#e1f5fe style E fill:#fff3e0 style H fill:#e8f5e9 {{< /mermaid >}}

11.4 Temperature 效果对比#

┌─────────────────────────────────────────────────────────┐
│ Temperature 对输出的影响 │
├─────────────────────────────────────────────────────────┤
│ │
│ 输入:"用一句话形容春天" │
│ │
│ Temperature 0.1 (保守) │
│ ████████████████████░░░░ "春天是万物复苏的季节。" │
│ → 几乎每次输出一样,最 "安全" 的回答 │
│ │
│ Temperature 0.7 (平衡) │
│ ██████████████░░░░░░░░░░ "春风拂面,花开满枝头。" │
│ → 合理且有变化,每次可能略有不同 │
│ │
│ Temperature 1.5 (奔放) │
│ ████████░░░░░░░░░░░░░░░░ "春天是大地打了个彩色的喷嚏。" │
│ → 意想不到的表达,创造性强但可能 "离谱" │
│ │
│ ────────────────────────────────────── │
│ █ = 确定性 ░ = 随机性 │
│ ← 保守 创造 → │
└─────────────────────────────────────────────────────────┘

FAQ#

11.5 Token 和字有什么区别?#

Token 是模型处理文本的最小单位,但它不等于一个字或一个词。中文中,常见的双字词通常是一个 Token(如 人工),单字也可能独立成一个 Token(如 “很”)。英文中,一个长单词可能被拆成多个 Token(如 “artificial”→“art”+“ificial”)。你可以用 OpenAI Tokenizer 在线工具,输入任意文本查看实际的 Token 化结果。

11.6 为什么模型有时回答很慢?#

因为模型是逐 Token 生成的(自回归)。每生成一个 Token,都要跑一遍整个 Transformer 网络。回答越长,需要生成的 Token 越多,等待时间越久。此外,上下文越长(你输入的内容越多),每一步的计算量也越大。所以 给它一本书让它总结 会比 问它 1+1 等于几 慢得多。

11.7 Temperature 应该设置多少?#

取决于你的需求:

  • 写代码、做翻译、提取信息:0.1~0.3(要精确)
  • 日常对话、写邮件:0.5~0.8(自然流畅)
  • 创意写作、头脑风暴:0.9~1.3(丰富多变)

如果不确定,从 0.7 开始尝试,觉得太 死板 就调高,太 胡来 就调低。

11.8 幻觉能彻底解决吗?#

目前不能。幻觉是自回归文本生成的固有特性:模型的目标是生成 统计上合理的文本,而不是 事实正确的文本。不过可以通过技术手段大幅缓解:RAG(让模型先检索再回答)、事实核查模块、输出结构化约束等。未来随着技术进步,幻觉的频率和严重程度会持续降低,但完全消除在理论上很难。

11.9 上下文窗口越大越好吗?#

不完全是。更大的上下文窗口确实能处理更多信息,但有几个问题:第一,计算成本更高(费用和速度);第二,研究表明模型在超长上下文中可能出现 迷失在中间(Lost in the Middle)的现象,对开头和结尾的信息记得清楚,中间的容易忽略;第三,更多的上下文意味着更多的噪音,有时反而影响输出质量。最佳实践是给模型提供恰到好处的上下文,不多不少。

11.10 量化后模型会变笨吗?#

轻度量化(FP16 → INT8)在大部分任务上几乎没有可感知的性能损失。深度量化(INT4 甚至更低)在一些需要高精度推理的任务上可能有轻微下降,但对日常使用而言差别不大。好比你把一张 4K 照片压缩到 1080p,日常看完全够用,只有放大到像素级别时才能看出区别。对于大部分用户来说,量化带来的便利(更低的硬件要求、更快的速度)远大于性能损失。


小结#

把这篇文章的核心串起来。

当你在聊天框里输入一段文字并按下回车,大模型内部经历了这样的旅程:

  1. Token 化:把文字拆分成模型能处理的最小单位(Token)
  2. Embedding:把每个 Token 转换为携带语义信息的高维向量
  3. 位置编码:给每个向量加上位置信息
  4. Transformer 加工:向量经过几十到上百层的网络,层层提取信息
  5. 概率输出:模型计算每个候选词的概率
  6. 采样:根据 Temperature、Top-p 等策略选出最终的词
  7. 自回归循环:选出的词加入输入,回到第 1 步,继续预测下一个词

整个过程的本质是什么?预测下一个最可能的词

它不是在 检索知识,不是在 理解问题,更不是在 思考人生。它是一台极其精密的概率预测机器。

理解了这一点,你就能:

  • 正确设定期望:不会指望它做精确计算或提供实时信息
  • 善用它的长处:文本生成、格式转换、模式识别
  • 防范它的短板:对重要输出保持审慎,做好人工核验
  • 调优输出效果:合理设置 Temperature 等参数

下篇预告#

现在你知道了大模型是怎么工作的。下一个自然的问题是:市面上这么多模型,我该用哪个?

GPT-4o、Claude、DeepSeek、Qwen、Gemini……它们各自擅长什么?价格差多少?怎么根据自己的需求做选择?


参考资料#

  1. Vaswani, A. et al. Attention Is All You Need (2017). Transformer 架构的奠基论文。
  2. OpenAI. Tokenizer Tool. 在线查看文本的 Token 化结果。
  3. Alammar, J. The Illustrated Transformer. 用可视化方式讲解 Transformer,强烈推荐。
  4. Holtzman, A. et al. The Curious Case of Neural Text Degeneration (2019). Top-p(核采样)的提出论文。
  5. Dao, T. et al. FlashAttention: Fast and Memory-Efficient Exact Attention (2022). Flash Attention 的原始论文。
  6. Leviathan, Y. et al. Fast Inference from Transformers via Speculative Decoding (2022). 推测性解码的原始论文。
  7. Dettmers, T. et al. LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale (2022). 大模型量化的里程碑工作。

支持与分享

如果这篇文章对你有帮助,欢迎支持作者或分享给更多人

揭开黑盒:大模型如何生成回答
https://blog.souloss.com/posts/machine-learning/llm-guide/how-llm-works/
作者
Souloss
发布于
2025-07-02
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时