LLM 核心原理:模型如何生成答案
本文只解决一个问题:用户输入一句话后,LLM 是怎样一步步生成回答的?
1. 什么是 LLM
LLM 的全称是Large Language Model(大语言模型)。
它通过大量文本、代码等数据进行训练,学习:
- 语言规律;
- 词语之间的关系;
- 常见知识和表达方式;
- 根据上下文继续生成内容的方法。
一句话理解
LLM 本质上是一个根据已有上下文,持续预测“下一个 Token”的概率模型。
这里的Token不一定是完整的“词”,也可能是:
- 一个汉字;
- 一个词语;
- 英文词根;
- 数字;
- 标点符号;
- 代码片段。
2. 大模型与传统小模型的区别
| 对比项 | 传统 AI 小模型 | LLM 大模型 |
|---|---|---|
| 主要定位 | 专用工具 | 通用能力底座 |
| 任务范围 | 通常只处理一类任务 | 可以处理多种语言任务 |
| 使用方式 | 调用固定功能 | 使用自然语言描述任务 |
| 更换任务 | 经常需要重新训练 | 常可通过 Prompt 快速适配 |
| 优势 | 速度快、成本低、结果稳定 | 通用性强、适配速度快 |
| 局限 | 迁移能力弱 | 成本较高,可能产生幻觉 |
传统模型更像“专科医生”,大模型更像“通用助手”。
3. LLM 生成答案的完整流程
可以把它记成六步:
文字 → Token → 向量 → 注意力计算 → 预测下一个 Token → 循环生成完整回答4. 第一步:Tokenization
Tokenization 是什么
Tokenization 是把人类文本拆成模型可以处理的 Token,并为每个 Token 分配编号。
例如:
输入: 我喜欢人工智能 可能拆成: 我 / 喜欢 / 人工 / 智能模型实际接收到的不是文字,而是一组 Token ID:
[1024, 3578, 6211, 9086]Token 数量会影响什么
- 上下文长度;
- API 使用费用;
- 输入和输出速度;
- 一次能够处理的文档大小。
不同模型使用不同的分词器,相同文字的 Token 数量可能不同。
5. 第二步:Embedding
Token ID 只是编号,本身没有直接表达语义。
Embedding 会把每个 Token 转换为一组数字向量:
“苹果” → [0.21, -0.35, 0.72, ...] “香蕉” → [0.18, -0.31, 0.68, ...] “汽车” → [-0.44, 0.12, -0.53, ...]含义接近的词,在向量空间中通常也会更加接近。
图片将 Tokenization 和 Embedding 放在一起讲解。更准确的区分是:
Tokenization 负责拆分和编号,Embedding 负责把编号转换成向量。
6. 第三步:Attention 注意力机制
Attention 的作用是判断:
当前生成内容时,应该重点参考上下文中的哪些 Token?
例如:
小明把书交给小李,因为他明天要考试。模型需要结合上下文判断“他”更可能指谁。
Attention 会计算不同 Token 之间的关联强弱。
Q、K、V 的简单理解
Query:当前正在寻找什么信息;Key:每个 Token 能提供什么线索;Value:每个 Token 携带的具体内容。
多个注意力头会同时关注不同关系,例如:
- 语法关系;
- 指代关系;
- 时间关系;
- 因果关系;
- 代码中的变量依赖。
7. 第四步:预测下一个 Token
模型处理完上下文后,会计算下一个 Token 的概率分布。
例如:
输入: 周五下班了,我想去……模型可能得到:
吃火锅 38% 电影院 25% 逛商场 15% 回家 12% 其他 10%模型会根据解码参数:
- 直接选择概率最高的 Token;
- 或从高概率候选中进行采样。
因此,同一个问题可能生成不同回答。
8. 第五步:自回归生成
LLM 通常采用Autoregressive Generation(自回归生成)。
它每次只生成一个 Token,然后把刚生成的 Token 加回上下文,再预测下一个。
生成过程可以理解为:
输入上下文 → 预测一个 Token → 把 Token 加入上下文 → 再预测一个 Token → 直到遇到停止条件9. Temperature 为什么会影响回答
Temperature控制生成时的随机程度。
| Temperature | 输出特点 | 常见场景 |
|---|---|---|
| 较低 | 稳定、保守、重复性高 | 代码、数据提取、事实问答 |
| 中等 | 稳定与创造性平衡 | 普通对话、方案编写 |
| 较高 | 更多样、更有创意 | 小说、文案、头脑风暴 |
Temperature 不会让模型获得新知识,只会改变它如何从候选 Token 中选择结果。
10. 为什么模型会产生幻觉
模型的目标是:
生成在语言上最可能出现的后续 Token它并不是一个能够自动核实所有事实的数据库。
因此,当模型缺少可靠信息时,可能生成:
- 看起来合理但不存在的数据;
- 错误的时间和人物;
- 虚构的文献或链接;
- 不存在的代码接口;
- 逻辑通顺但事实错误的答案。
降低幻觉的方法包括:
- 提供清晰上下文;
- 使用联网搜索;
- 使用 RAG 知识库;
- 调用数据库或工具;
- 要求引用来源;
- 对重要结果进行人工验证。
11. 关于“涌现能力”
随着参数、数据和训练计算量增加,一些能力可能明显增强,例如:
- 少样本学习;
- 复杂指令理解;
- 多步骤问题处理;
- 代码生成;
- 跨语言迁移。
更稳妥的理解是:
部分能力会随着模型规模逐渐增强,并在某些测试中表现出类似“阶段性跃迁”的现象。
它不意味着模型突然拥有意识,也不代表所有能力都能稳定、准确地出现。
12. 最终总结
1. 用户输入文字; 2. Tokenizer 将文字拆成 Token; 3. Embedding 将 Token 转换为向量; 4. Attention 分析上下文关系; 5. 模型计算下一个 Token 的概率; 6. 选择或采样一个 Token; 7. 将新 Token 加入上下文并继续生成。LLM 的底层核心是概率预测;它表现出的问答、写作和编程能力,都建立在大规模训练与连续 Token 生成之上。