第 01 章 · 认识
先看全局:大模型到底在做什么
不从公式起步,先建立语言模型、训练、推理和应用之间的完整地图。
学习准备与本章目标
- 开始前
- 无需前置知识
- 学完后
- 解释大模型的输入和输出 · 区分训练与推理 · 看懂后续章节之间的关系
本章路线图
这一章先搭建全局坐标,不要求推公式。读完后应能回答四个问题:模型接收什么、输出什么、能力从哪里来、一个大模型应用由哪些部分组成。
后续内容可以压缩成一条主线:
原始数据 → Token → 向量 → Transformer → 预训练 → 后训练 → 推理服务 → RAG / Agent → 评测与安全。
遇到新名词时,先判断它位于链路的哪一段,再问它解决了什么限制。这样比单独记模型名和缩写更可靠。
大模型首先是条件概率模型
语言模型接收一串已经出现的 Token,计算词表中每个候选 Token 成为下一项的概率:
生成一句话时,模型重复执行同一过程:计算概率、选择一个 Token、把它接回上下文,再预测下一项。整段文本的概率可写成每一步条件概率的乘积:
要在不同语境下预测准确,模型必须学到词法、语法、事实关联、文本结构、代码模式和任务步骤。复杂能力不是另装的规则库,而是在大规模数据与训练目标下形成的统计结构。
一次回答的完整数据流
以“解释一下梯度下降”为例,一次请求大致经历六步:
- Tokenizer 把文字切成 Token,并转为整数 ID。
- Embedding 表把每个 ID 映射成高维向量,并注入位置信息。
- 向量穿过多层 Transformer Block;每层包含注意力、前馈网络、残差和归一化。
- 最后一层隐藏状态经过输出投影,得到覆盖整个词表的 logits。
- Softmax 把 logits 转成概率,解码策略选出下一个 Token。
- 新 Token 加入上下文,模型继续生成,直到停止符或长度上限。
假设 batch 为 B、序列长度为 T、隐藏维为 D、词表大小为 V,核心形状通常是:
Token IDs [B, T]
Embedding [B, T, D]
Hidden states [B, T, D]
Logits [B, T, V]
以后看到任何架构改动,都可以沿这四个形状检查它改变了哪一步。
参数、上下文与外部知识
三类信息来源需要严格区分:
| 来源 | 保存在哪里 | 更新方式 | 主要限制 |
|---|---|---|---|
| 参数 | 模型权重 | 继续训练或微调 | 更新成本高,事实可能过时或记错 |
| 上下文 | 当前输入窗口 | 每次请求直接提供 | 长度有限,位置和表达会影响使用效果 |
| 外部知识 | 文档库、搜索、数据库、工具 | 独立维护 | 依赖检索质量、权限和系统可用性 |
模型参数不是可以逐条查询的百科表。一个事实通常分散编码在许多权重和激活中,模型能复述它,也可能在相似语境中混淆它。需要最新、可追溯或受权限控制的信息时,应使用 RAG 或工具,而不是期待参数永久正确。
模型规模里的几个基本量
“7B 模型”通常表示约 70 亿个可训练参数,但参数量不等于运行时全部显存。还要区分:
V:词表大小,影响输入 Embedding 和输出投影。D:隐藏维度,决定每个 Token 的表示宽度。L:层数,决定重复多少个 Transformer Block。T:上下文长度,影响注意力计算量和 KV Cache。N:参数总量,影响权重存储与主要计算量。
权重以 BF16 保存时,仅权重下限约为 参数量 × 2 字节。训练还需梯度、优化器状态、激活和通信缓冲;推理则通常由权重、KV Cache 和临时工作区共同占用显存。
训练:让正确 Token 的概率更高
训练样本通常不需要人工为每个位置写标签。对序列“我 喜欢 机器 学习”,输入可以是前四项,目标是向右错一位的后四项。模型同时在多个位置预测下一 Token,并用交叉熵衡量预测分布与真实 Token 的差异。
一个训练步包含:
取一批数据 → 前向计算 logits → 计算 loss
→ 反向传播梯度 → 优化器更新参数 → 清空梯度
预训练主要扩大通用模式和知识;指令微调让模型适应问答格式;偏好对齐进一步调整有用性、安全性和风格。它们沿用相似的神经网络计算,但数据、目标函数和成本不同。
推理:在固定参数下逐步生成
推理通常不更新权重。长提示词先经过 Prefill,一次处理全部输入并建立 KV Cache;之后进入 Decode,每一步只加入一个或少量新 Token。前者容易利用大矩阵并行,后者更受显存带宽、缓存和调度影响。
生成结果还取决于解码策略:
- 贪心解码每次选最高概率,结果稳定但可能单调。
temperature调整分布尖锐程度,不是“创造力按钮”。top-k和top-p限制候选集合,减少低概率尾部噪声。- 停止词、最大长度和重复惩罚控制输出边界。
同一模型在不同提示词、采样参数和工具环境下会呈现不同效果,因此评估系统时不能只记录模型名称。
基础模型、聊天模型与应用系统
基础模型主要完成续写;聊天模型经过对话格式和偏好数据训练,更擅长遵循指令。真正的产品还会在模型外增加系统提示词、会话管理、知识检索、工具调用、权限、缓存、审核与监控。
模型层:Tokenizer + Transformer + 解码
能力层:检索、工具、记忆、工作流、结构化输出
产品层:用户界面、权限、数据、监控、成本与反馈
模型回答错误不一定只该“换更大的模型”。问题也可能来自错误文档、上下文截断、工具参数、提示模板或结果展示。
能力边界与常见误解
- “说得流畅就是理解正确。” 流畅来自语言分布建模,不等于事实已核验。
- “上下文越长越好。” 长上下文会增加成本,也可能引入噪声和位置依赖。
- “参数越多一定越强。” 数据、训练预算、架构、后训练和评测同样重要。
- “模型能调用工具就等于 Agent。” 还需要状态、循环、错误处理、权限和停止条件。
- “训练 loss 下降就代表产品更好。” 产品质量还要看事实性、任务成功率、延迟、安全和成本。
用一张表定位后续章节
| 想弄懂的问题 | 对应章节 |
|---|---|
| 文字怎样变成数字 | Token 与 Embedding |
| 参数怎样学会 | 损失、梯度与优化 |
| 注意力怎样连接上下文 | Transformer |
| 通用能力怎样形成 | 预训练 |
| 多卡怎样共同训练 | 分布式训练 |
| 模型怎样学会听指令 | SFT、LoRA 与偏好对齐 |
| 怎样降低在线延迟和显存 | 推理与服务 |
| 怎样使用可靠外部资料 | RAG |
| 怎样执行多步任务 | Agent |
| 怎样证明系统有效且安全 | 评测、安全与幻觉 |
| 图片怎样进入语言模型 | 多模态 |
章末检查
- 从用户输入到下一个 Token,数据依次经过哪些组件?
- 参数知识、上下文和外部知识的更新方式有何不同?
- 训练与推理分别需要保存什么,关注哪些指标?
- 一个大模型产品出错时,为什么不能只检查模型?
如果能画出完整数据流,并给每个箭头写出输入和输出,这一章就达到了目标。
延伸资料
本章进阶内容
原理专题与代码实践
完成主教材后,按顺序阅读原理专题、完成代码实践,并用掌握标准复查本章内容。
- 01
先读主教材,建立训练—推理—应用全景
- 02
深挖模型规模、计算量与能力边界
- 03
准备 Python、NumPy 与 PyTorch 环境
- 04
画出一条端到端数据流并解释每个环节
本章术语
六个关键词
- Token
- 模型处理文本时使用的离散符号单位,不固定等于一个字或一个词。
- 参数
- 训练得到的数值权重,决定模型怎样变换输入。
- 上下文
- 一次请求实际放入模型窗口的 Token 序列。
- Logits
- Softmax 之前对词表候选项给出的未归一化分数。
- Prefill
- 推理中一次处理完整提示并建立 KV Cache 的阶段。
- Decode
- 基于已有上下文逐步生成新 Token 的阶段。
章节记录
