大模型核心概念总览
这一页是“大模型基础”章节的总入口。目标不是把每个公式都讲到最深,而是帮你把 LLM 的核心知识串成一张完整地图:文本如何变成 token,token 如何变成向量,Transformer 如何处理上下文,模型如何训练,为什么会幻觉,推理时如何生成,工程里如何部署、评估和控制风险。读完这页,你应该能回答面试里最常见的开放题:“请你系统介绍一下大语言模型。”
如果你刚从 新手入门 过来,可以把本页当成进阶版地图;如果你已经会一些深度学习,可以把本页当成查漏补缺清单。真正深入每个模块时,再进入侧边栏里的 Transformer、Attention、Tokenizer、Embedding、解码、MoE、长上下文等专题。
这页怎么读
建议按三遍来读:
- 第一遍看全局:只看标题、表格、流程图,建立“一个 LLM 从输入到输出”的完整路径。
- 第二遍看概念:理解 token、embedding、attention、logits、loss、decoding、KV Cache、RAG、Agent 等词之间的关系。
- 第三遍看面试:把每节末尾的“面试表达”整理成自己的话,练习用 2 分钟讲清大模型。
你不需要一次性记住所有细节。基础知识最好的学习方式是反复遇到、反复回看:第一次知道它是什么,第二次知道它为什么重要,第三次能在项目和面试里说清它怎么用。
一句话理解大语言模型
大语言模型(Large Language Model,LLM)是基于海量文本和代码训练出来的神经网络语言模型。它的核心目标是:给定前面的 token,预测下一个 token 的概率分布。
这句话里有四个关键词:
- token:模型真正处理的单位,不一定等于一个汉字或一个英文单词。
- 前面的 token:也就是上下文,模型根据上下文决定下一个 token。
- 概率分布:模型不是直接给唯一答案,而是给词表中每个 token 一个分数。
- 预测下一个 token:自回归语言模型逐个 token 生成,直到生成结束符或达到长度上限。
比如输入:
大模型的核心能力是模型会计算下一个 token 是“生成”“理解”“预测”“推理”等的概率。选出一个 token 后,再把它接回上下文,继续预测下一个 token。你看到的完整回答,就是这个过程重复很多次的结果。
这个机制看似简单,却能在大规模数据、大模型参数、大算力训练下表现出总结、翻译、代码、推理、对话、工具调用等复杂能力。这也是大模型让人惊讶的地方:底层目标是下一个 token 预测,表层能力却像是在理解和思考。
LLM 与传统 NLP 模型有什么不同
早期 NLP 常常为每个任务训练一个模型:情感分类一个模型,命名实体识别一个模型,机器翻译一个模型,问答又是另一个模型。大语言模型改变了这个范式:一个通用模型通过 prompt、上下文、工具和少量样例,就能适配很多任务。
| 维度 | 传统 NLP / 小模型 | 大语言模型 |
|---|---|---|
| 训练目标 | 常针对单一任务 | 通用下一个 token 预测 + 后训练 |
| 数据规模 | 相对有限,常需标注 | 海量无标注文本和代码 |
| 使用方式 | 固定输入输出格式 | prompt、对话、工具调用、RAG |
| 泛化能力 | 任务外能力弱 | 能通过上下文学习新任务 |
| 部署成本 | 通常较低 | 参数大、显存和推理成本高 |
| 风险 | 可控但能力有限 | 能力强但会幻觉、越权、成本高 |
面试表达可以这样说:
大模型的关键变化不是“模型变大”这么简单,而是从任务专用模型转向通用基础模型。它通过预训练获得通用语言和知识能力,通过 SFT 和对齐变成可对话助手,再通过 RAG、Agent、工具调用接入外部知识和业务系统。
一个 LLM 是怎样炼成的
可以把大模型生命周期拆成六个阶段:
数据收集与清洗
-> Tokenizer 训练与分词
-> 预训练 Pre-training
-> 后训练:SFT / 对齐 / 偏好优化
-> 推理部署:量化 / KV Cache / 并发服务
-> 应用增强:Prompt / RAG / Agent / 工具1. 数据收集与清洗
模型能力首先来自数据。预训练语料通常包含网页、书籍、论文、代码、百科、论坛、问答、数学题、合成数据等。数据不是越多越好,还要看质量、去重、比例、合规和污染控制。
常见处理包括:
- 语言识别:过滤不需要的语种或低质量混杂文本。
- 质量过滤:去掉乱码、广告、采集页、模板页、低质量 SEO 文本。
- 去重:避免模型反复看到相同内容,降低记忆和过拟合。
- PII 和有害内容处理:降低隐私泄露和安全风险。
- 评测集去污染:避免测试题混入训练集导致分数虚高。
- 数据配比:网页、书籍、代码、数学、多语言数据按策略混合。
数据质量会深刻影响模型:高质量代码数据提升编程能力,高质量数学数据提升推理能力,高质量中文语料提升中文体验,低质量数据则会带来幻觉、废话、格式不稳和价值观问题。
2. Tokenizer 与分词
模型不能直接处理原始文字,需要先用 Tokenizer 把文本切成 token,再把 token 映射成整数 ID。比如“人工智能”可能被切成一个或多个 token,不同模型的切分方式可能不同。
Tokenizer 的重要性体现在:
- 影响上下文长度:同一段中文在不同 tokenizer 下 token 数可能差很多。
- 影响 API 成本:很多服务按 input token 和 output token 计费。
- 影响训练效率:序列越短,同样上下文能容纳更多信息。
- 影响字符级任务:模型看到的是 token,不是每个字符,所以数字母、反转字符串常翻车。
- 影响中英文体验:中文词表覆盖不足时,中文会更费 token。
深入可看 Tokenizer 与分词。面试里常问:“为什么中文更费 token?”“Tokenizer 和模型能不能随便替换?”答案是:不能。Tokenizer 的 token ID 和模型 Embedding 权重一一对应,随便替换等于输入空间变了。
3. 预训练
预训练是大模型最烧算力的阶段。模型在海量 token 上做自监督学习,最常见目标是自回归下一个 token 预测:
输入:今天 北京 的 天气
目标:预测下一个 token训练时,模型会对每个位置预测真实下一个 token。如果预测错了,就通过损失函数计算误差,再用反向传播调整参数。这个过程重复数万亿 token 后,模型学到了语言结构、事实知识、代码模式、推理套路、写作风格和许多世界知识。
预训练产物通常叫 Base Model。Base 模型很会续写,但不一定会像助手一样回答问题。给它一句“请解释 Transformer”,它可能接着写一段教程,也可能继续生成网页、论文片段或问答格式。这就是为什么后面还需要 SFT 和对齐。
4. 监督微调 SFT
SFT(Supervised Fine-Tuning)用大量“指令 -> 回答”样本继续训练模型,让它学会按人类指令回答。
样本长这样:
用户:请用三句话解释 RAG。
助手:RAG 是检索增强生成......SFT 让模型从“会续写”变成“会对话、会遵循指令、会按格式输出”。你平时用到的 Chat 模型,大多都经过 SFT。
SFT 的关键不只是数量,还包括:
- 指令是否多样。
- 回答是否高质量。
- 是否覆盖目标场景。
- 是否使用正确的 chat template。
- 是否避免低质、幻觉、错误格式数据。
5. 对齐与偏好优化
SFT 让模型会回答,但回答不一定符合人类偏好。对齐阶段让模型更有用、诚实、无害。常见方法包括 RLHF、DPO、RLAIF 等。
对齐关注的问题:
- 哪个回答更有帮助。
- 哪个回答更安全。
- 模型是否应该拒绝有害请求。
- 模型是否过度拒绝无害请求。
- 模型是否会迎合用户错误观点。
对齐后的模型更适合对话产品,但也可能带来新问题,比如过度拒答、风格变保守、复杂任务不够直接。因此模型评估不能只看 benchmark,也要看真实使用体验。
6. 推理部署与应用增强
模型训练好以后,还要部署成服务。推理阶段关注的是:如何让模型又快、又省、又稳定地生成。
关键技术包括:
- KV Cache:缓存历史 token 的 K/V,避免每步重复计算。
- 量化:用更低精度存权重,减少显存和成本。
- vLLM / SGLang:提升并发、吞吐和长上下文利用率。
- 连续批处理:把不同请求动态合批,提高 GPU 利用率。
- 模型网关:统一鉴权、限流、路由、计费和观测。
应用层则常用:
- Prompt 工程:通过提示词激发模型能力。
- RAG:接入外部知识库,减少幻觉。
- Agent:让模型规划步骤、调用工具、完成任务。
- Function Calling:让模型输出结构化工具调用意图。
从输入到输出:一次完整前向过程
以用户输入“请解释什么是 Attention”为例,一个 decoder-only 大模型大致这样工作:
1. 文本输入
"请解释什么是 Attention"
2. Tokenizer
文本 -> token ids
3. Embedding
token ids -> 向量表示
4. 加入位置信息
通过 RoPE 等方式让模型知道 token 顺序
5. 多层 Transformer Block
每层包含 Attention、FFN、残差、归一化
6. 输出最后位置的 hidden state
表示当前上下文下下一步生成的状态
7. LM Head
hidden state -> 词表大小的 logits
8. Softmax / 解码策略
logits -> 概率 -> 选出下一个 token
9. 拼回上下文继续生成
重复 4-8,直到停止这条路径就是基础章节的主线:Tokenizer 决定文本怎么进入模型,Embedding 决定 token 怎么变成向量,Transformer 决定上下文如何交互,logits 和 softmax 决定概率,解码策略决定最后选哪个 token。
Transformer 为什么重要
Transformer 是现代大模型的核心架构。它的最大贡献是用 Attention 替代 RNN 的串行处理,让模型能够并行训练,并直接建模长距离 token 关系。
一个典型 Transformer Block 包含:
- Attention:让每个 token 读取上下文中相关 token 的信息。
- FFN / MLP:对每个 token 的表示做非线性变换,提供容量和知识存储。
- 残差连接:让深层网络更容易训练。
- LayerNorm / RMSNorm:稳定数值和训练过程。
- 位置编码:让模型知道 token 的顺序。
现代主流 LLM 多是 decoder-only 架构,例如 GPT、LLaMA、Qwen、DeepSeek 等。它们用因果掩码保证每个位置只能看到自己和之前的 token,从而符合“预测下一个 token”的训练目标。
深入可看 Transformer 架构详解。
Attention 的直觉
Attention 可以理解成“按相关性取信息”。每个 token 会生成 Query、Key、Value 三种向量:
- Query:我想找什么信息。
- Key:我有什么标签可以被匹配。
- Value:如果我被关注,应该提供什么内容。
公式是:
$$\text{Attention}(Q,K,V)=\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$
大白话拆解:
QK^T算每个 token 和其他 token 的相关性。- 除以
sqrt(d_k)防止分数过大导致 softmax 饱和。 - softmax 把分数变成权重。
- 权重乘 V,把相关信息加权取回来。
多头注意力则是在多个子空间里同时做这件事:有的头关注语法,有的头关注实体,有的头关注长距离指代。现代模型为了省 KV Cache,又发展出 MQA、GQA、MLA 等变体。
深入可看 Attention 与变体。
Embedding:把离散 token 变成连续语义
token ID 本身只是整数,模型不能直接理解它。Embedding 层把每个 token ID 映射成一个高维向量。这个向量可以理解成 token 在语义空间里的坐标。
Embedding 很重要,因为:
- 相似词会学到相近表示。
- RAG 用 embedding 做语义检索。
- 多模态模型也会把图片、音频等转成向量后接入模型。
- 推荐、聚类、去重、语义搜索都依赖向量表示。
但要注意:LLM 的输入 embedding 和 RAG 的 embedding 模型不是一回事。前者是语言模型内部的 token 表示,后者通常是专门训练的句向量/文档向量模型,用来计算语义相似度。
深入可看 嵌入层与表示学习。
位置编码:为什么顺序很重要
Attention 本身不天然知道顺序。如果不给位置信息,“我打你”和“你打我”可能只是同一组 token 的不同排列,模型无法理解语义差异。因此需要位置编码。
常见方案:
- 绝对位置编码:给每个位置一个固定或可学习向量。
- RoPE:把位置以旋转方式注入 Q/K,是当前 LLM 主流方案。
- ALiBi:通过距离偏置影响注意力分数。
- 长上下文扩展:通过 RoPE scaling、插值、外推等方法扩展长度。
位置编码不仅影响模型理解顺序,也影响长上下文能力。很多“支持 128K 上下文”的模型,背后都需要位置编码、注意力、训练数据和推理系统一起配合。
深入可看 位置编码(RoPE / ALiBi) 和 长上下文机制。
Logits、Softmax、Loss:模型如何学习和输出
模型最后一层会输出一个长度等于词表大小的向量,这个向量叫 logits。每个位置对应一个 token 的原始分数。
然后:
- 训练时,用 softmax 把 logits 转成概率,再用交叉熵损失衡量“模型给真实下一个 token 的概率够不够高”。
- 推理时,用解码策略从 logits 或概率里选出下一个 token。
几个关键概念:
- softmax:把任意分数变成概率分布。
- 交叉熵 loss:真实 token 概率越低,loss 越大。
- 困惑度 PPL:可以理解成模型平均在多少个候选里犹豫。
- 数值稳定:softmax 要避免指数溢出,常用减最大值技巧。
面试里经常问:“训练时为什么用交叉熵?”“PPL 是什么?”“logits 和概率有什么区别?”这些都属于输出侧基础。
深入可看 从 Logits 到损失(Softmax/PPL)。
解码:为什么同一个问题回答会不同
模型每一步给的是概率分布,解码策略决定怎么从分布里选 token。
常见策略:
| 策略 | 直觉 | 适合 |
|---|---|---|
| Greedy | 每步选概率最高的 token | 追求确定性,但容易死板 |
| Beam Search | 保留多个高概率序列 | 翻译、摘要等较确定任务 |
| Temperature | 控制随机性 | 低温事实,高温创意 |
| Top-k | 只在前 k 个候选里采样 | 简单但不够自适应 |
| Top-p | 保留累计概率达到 p 的候选 | 主流开放生成 |
| Min-p | 按最高概率比例过滤候选 | 高温生成更稳 |
如果你做事实问答、抽取、分类,通常用低温度;如果做创意写作、头脑风暴,可以提高温度;如果做结构化 JSON 输出,要降低随机性并加 schema 校验。
深入可看 解码与采样策略。
Mask、Padding 与训练实现细节
大模型训练不是一条样本一条样本孤立处理,而是把很多序列组成 batch。这里会出现三个实现细节:
- 因果掩码:自回归模型不能看未来 token,所以注意力矩阵上三角要遮住。
- Padding 掩码:不同样本长度不同,短样本补 pad 后不能让 pad 参与注意力。
- Packing:把多个短样本拼进一个长序列,提高训练效率,但要防止样本之间互相看见。
这些细节很容易被忽略,但在手撕题、训练排错、微调项目里很常见。比如左 padding 和右 padding 对 decoder-only 模型的推理影响不同,attention mask 写错会导致模型偷看答案或 loss 异常。
深入可看 Mask 与 Padding。
上下文窗口与长上下文
上下文窗口是模型一次能处理的最大 token 数。8K、32K、128K、1M 都是在说这个窗口长度。
窗口越大,可以放入更多历史对话、文档、代码、检索结果,但代价也更高:
- KV Cache 显存随长度增长。
- 注意力计算和访存压力增加。
- 长文本中间内容可能被忽略,也就是 lost in the middle。
- 输入越长,成本越高,延迟越大。
所以工程上不会简单把所有资料都塞进上下文,而是会用摘要、RAG、滑动窗口、记忆系统、长上下文优化等方法组合。
面试可以这样说:
长上下文解决的是“能不能放得下”,但不等于“模型一定用得好”。生产系统还要考虑检索、压缩、引用、成本、延迟和中间信息丢失。
MoE:为什么模型可以很大但推理不那么贵
MoE(Mixture of Experts,混合专家)把模型中的部分 FFN 换成多个专家网络。每个 token 只激活其中少数几个专家,而不是跑完整个模型。
直觉:
Dense 模型:每个 token 都走全部参数
MoE 模型:每个 token 只走少数专家优点:
- 总参数量可以很大,容量强。
- 每次推理只激活部分参数,计算成本相对可控。
- 不同专家可能学习不同模式。
难点:
- 路由负载均衡。
- 专家并行通信。
- 训练稳定性。
- 小 batch 推理效率。
DeepSeek 等模型让 MoE 成为面试热点。深入可看 MoE 混合专家模型。
为什么大模型会幻觉
幻觉不是偶然 bug,而是语言模型机制和训练目标带来的自然风险。模型训练目标是“生成高概率文本”,不是“只说可验证事实”。
常见原因:
- 训练数据里有错误或矛盾。
- 模型对长尾事实记忆不牢。
- 用户问题缺少上下文,模型补全了不存在的信息。
- prompt 要求它必须给答案,诱导它编。
- 解码随机性带来不稳定。
- 模型不知道最新或私有信息。
缓解方式:
- 对事实问题要求引用来源。
- 用 RAG 提供检索材料。
- 对关键答案做规则或工具校验。
- 降低温度,减少随机性。
- 让模型表达不确定性。
- 建立评测集和 bad case 回归。
面试里不要只说“幻觉是模型编造”,还要说“如何工程化缓解”:RAG、工具、校验、评估、人工复核、监控反馈。
Prompt、RAG、Agent 的关系
这三个词经常一起出现,但层级不同。
| 方法 | 核心思想 | 解决的问题 |
|---|---|---|
| Prompt | 把任务、背景、约束说清楚 | 激发模型已有能力 |
| RAG | 先检索资料,再让模型基于资料回答 | 外部知识、私有知识、减少幻觉 |
| Agent | 模型规划步骤并调用工具 | 多步任务、动态决策、执行动作 |
三者不是互斥关系。一个企业级知识库 Agent 可能同时使用:
- Prompt 定义角色、输出格式和安全边界。
- RAG 检索制度文档和知识库。
- Function Calling 调订单、工单、权限等工具。
- Agent 编排多步任务。
生产系统里,越靠近执行和写操作,越需要服务端权限、审计、人审和评测门禁。Prompt 不是安全边界。
大模型应用的工程闭环
一个能上线的大模型应用,不只是“调 API + 返回答案”。至少要考虑:
用户请求
-> 鉴权与租户上下文
-> Prompt / RAG / Tool 编排
-> 模型调用
-> 输出校验与安全过滤
-> 日志、trace、token 成本
-> 用户反馈与评测回归关键工程能力:
- 鉴权:谁能访问哪些数据和工具。
- 限流:防止突发请求打爆模型或预算。
- 超时与重试:模型慢、网关失败、工具异常时如何恢复。
- 成本统计:按 app、tenant、model、token 计费。
- 观测:记录 prompt_version、model、latency、tokens、retrieved_docs、tool_calls。
- 评测:上线前和变更后跑 golden set、bad case、安全集。
- 回滚:模型、prompt、RAG 参数、工具 schema 都要能回退。
这也是为什么大模型应用开发不是简单“会调用模型 API”,而是传统软件工程能力和 AI 能力的结合。
参数、数据、算力:大模型三角
理解大模型基础,不能只盯着“参数量”。模型能力通常来自三个要素的共同作用:参数、数据、算力。
| 要素 | 作用 | 常见误区 |
|---|---|---|
| 参数 | 决定模型容量,承载模式和知识 | 参数越大一定越好 |
| 数据 | 决定模型学到什么、学得是否干净 | 数据越多一定越好 |
| 算力 | 决定能训练多大、训练多久、推理多快 | 显卡越多就能直接训练好模型 |
参数:容量不是全部
参数可以理解为模型内部可调的“旋钮”。训练就是不断调整这些旋钮,让模型对下一个 token 的预测更准确。参数越多,模型理论容量越大,能表示更复杂的模式。但参数不是魔法:如果数据质量差、训练配比差、对齐差,参数再多也可能输出废话、幻觉或不稳定。
面试里可以这样回答:
参数量决定容量上限,但最终效果还取决于数据质量、训练 token 数、模型结构、后训练和评估。一个小而干净、针对场景优化的模型,可能在特定任务上比通用大模型更实用。
数据:质量决定上限
大模型会从数据里学习语言、事实、代码、推理模式和价值倾向。数据质量差会带来很多后果:
- 垃圾网页太多:模型学会啰嗦、套话和低质表达。
- 重复数据太多:模型容易记忆和复读。
- 错误数据太多:事实能力下降,幻觉增加。
- 有害数据太多:安全风险上升。
- 代码数据不足:编程能力弱。
- 中文语料不足:中文表达和文化语境弱。
所以训练数据工程不是简单爬网页,而是清洗、去重、过滤、配比、去污染、合规处理的系统工程。很多模型能力差异并不来自结构,而来自数据。
算力:训练和推理都要花钱
训练阶段需要大量 GPU 进行矩阵乘法和反向传播。推理阶段也需要算力,因为每生成一个 token 都要经过多层 Transformer。
训练和推理的算力差异:
| 阶段 | 目标 | 主要成本 |
|---|---|---|
| 训练 | 调整参数,让 loss 下降 | GPU 时间、数据管线、分布式通信 |
| 推理 | 用固定参数生成回答 | 显存、KV Cache、输出 token、并发调度 |
新手常以为“模型训练完就不贵了”,其实热门应用的推理成本可能长期高于训练成本。每个用户每次对话都要消耗 token、显存和 GPU 时间,输出越长越贵,并发越高越难。
缩放定律与涌现能力
大模型发展背后有一个重要经验:在一定范围内,模型越大、数据越多、算力越多,loss 会按可预测规律下降,这就是缩放定律。它解释了为什么业界愿意持续扩大模型规模,也解释了为什么“更多数据 + 更多算力 + 更大模型”曾经是主路线。
但缩放不是无脑堆:
- 参数大但数据不足,会欠训练。
- 数据多但质量差,会学到噪声。
- 上下文长但训练不足,会“标称长上下文,实际不会用”。
- 推理时算力增加,会带来成本和延迟问题。
所谓涌现能力,是指模型规模达到一定程度后,某些能力突然表现明显,例如多步推理、上下文学习、复杂指令遵循。是否“突然”仍有争议,但面试里你可以把它理解为:模型规模和数据规模提升后,原来很弱的能力变得可用。
训练、微调、提示词、RAG:四种“让模型更适合任务”的办法
新手常问:我想让模型懂我的业务,到底该训练、微调、写 prompt,还是做 RAG?可以用下面这张表判断。
| 方法 | 是否改参数 | 适合解决 | 不适合解决 |
|---|---|---|---|
| Prompt | 不改 | 指定任务、角色、格式、风格 | 大量新知识、稳定复杂能力 |
| RAG | 不改 | 私有知识、实时知识、引用溯源、权限控制 | 改变模型内在行为习惯 |
| SFT/LoRA | 改少量或部分参数 | 固定格式、领域风格、任务流程 | 高频更新知识、严格权限 |
| 继续预训练 | 改大量参数 | 注入大量领域语料和语言能力 | 小团队快速应用 |
Prompt 适合什么
Prompt 是最轻量的方法。你通过指令告诉模型:你是谁、要完成什么、基于什么材料、输出什么格式、不要做什么。它适合快速试验和日常使用。
但 prompt 有边界:如果模型完全不知道某个私有事实,prompt 不能凭空让它知道;如果任务要求稳定执行复杂格式,单靠 prompt 也可能不够。
RAG 适合什么
RAG 适合知识类应用。它不要求模型记住所有资料,而是在用户提问时检索相关资料,再让模型基于资料回答。它的优势是知识可更新、可引用、可权限过滤。
典型场景:
- 企业制度问答。
- 客服知识库。
- 法律条文问答。
- 投研资料问答。
- 项目文档助手。
微调适合什么
微调适合让模型学会某种稳定行为,例如特定输出格式、行业术语风格、客服话术、代码生成习惯。LoRA / QLoRA 降低了微调成本,但微调仍然需要数据、评估和上线流程。
如果只是“让模型知道最新价格表”,不要优先微调;价格表会更新,RAG 更合适。
继续预训练适合什么
继续预训练适合有大量领域文本、希望模型吸收领域语言和知识的团队。它成本高、风险大,需要训练经验和评估体系。多数应用团队不从这里开始。
面试表达:
Prompt 解决任务表达,RAG 解决外部知识,微调解决行为习惯,继续预训练解决领域底座。四者不是互斥,而是成本、风险、更新频率和可控性的取舍。
模型选型:不要只看榜单第一
实际项目里选模型,要看任务、成本、延迟、合规和工程约束。
| 维度 | 该问什么 |
|---|---|
| 能力 | 是否擅长中文、代码、数学、长文、工具调用 |
| 成本 | input/output token 单价,是否支持缓存 |
| 延迟 | 首 token 延迟、输出速度、并发能力 |
| 上下文 | 是否真的能处理长文档,不只是标称长度 |
| 稳定性 | API 可用性、限流、错误率 |
| 合规 | 数据能否出境,是否需要私有化 |
| 生态 | SDK、工具链、社区、部署方案 |
| 可评估 | 是否能在自己的测试集上稳定胜出 |
一个常见选型流程:
定义任务和指标
-> 准备 100-300 条真实样本
-> 统一 prompt 和解码参数
-> 对比多个模型
-> 记录质量、延迟、成本、失败类型
-> 选择主模型和备用模型
-> 上线后持续监控不要只说“某模型榜单高,所以选它”。面试官更想听你能否按业务指标评估模型:这个模型是否满足场景,失败在哪里,成本是否可接受,出了问题能否 fallback。
常见基础排错:模型为什么答不好
当大模型回答不好时,新手容易直接说“模型不行”。更专业的排查方式是分层定位。
| 问题表现 | 可能原因 | 排查方向 |
|---|---|---|
| 答非所问 | Prompt 目标不清、上下文缺失 | 补背景、约束输出、拆任务 |
| 编造事实 | 缺少资料、模型知识过时 | RAG、引用、事实校验 |
| 输出格式不稳 | 示例不足、随机性高 | few-shot、JSON schema、低温度 |
| 长文漏重点 | 上下文太长、中间丢失 | 检索、摘要、分段处理 |
| 工具调用错 | schema 设计差、权限不清 | 参数校验、错误恢复、工具评测 |
| 成本过高 | prompt 太长、输出过长、重试多 | 压缩上下文、限制 max_tokens、缓存 |
| 延迟高 | 模型太大、输出太长、并发高 | 流式输出、路由小模型、推理优化 |
| 线上退化 | prompt/model/schema 变更 | 版本管理、评测回归、灰度 |
可以用一句话总结:
大模型问题要先分清是输入问题、检索问题、模型问题、解码问题、工具问题还是工程问题。不要一上来就改模型,也不要所有问题都靠 prompt 硬修。
从基础到项目:概念如何落地
基础概念不是为了背,而是为了指导你做项目。下面用一个“企业知识库问答”的例子串起来。
用户提问
-> Tokenizer 计算输入 token
-> Embedding 模型把问题转成向量
-> 向量库检索相关文档 chunk
-> Prompt 把问题和资料组织给 LLM
-> Transformer 处理上下文并生成 logits
-> 解码策略生成回答
-> 引用来源、做安全校验、记录 trace这里每个基础概念都有位置:
- Tokenizer 决定上下文和成本。
- Embedding 决定检索相关性。
- RAG 决定资料是否进入上下文。
- Transformer 决定模型如何处理上下文。
- Logits 和 decoding 决定输出稳定性。
- 评测决定系统是否真的好用。
- 工程闭环决定能否上线。
如果是 Agent 项目,还会加上工具 schema、Function Calling、权限、审批、审计、轨迹评测。基础越扎实,越能在复杂项目里定位问题。
模型评估:怎么判断好坏
大模型评估分很多层:
| 层级 | 关注什么 | 例子 |
|---|---|---|
| 基础能力 | 知识、数学、代码、推理 | MMLU、GSM8K、HumanEval |
| 语言质量 | 是否流畅、有帮助 | 人评、LLM-as-Judge |
| 事实可靠 | 是否幻觉、引用是否正确 | RAGAS、事实核查 |
| 安全对齐 | 是否拒绝有害请求 | 红队、安全集 |
| 工程指标 | 延迟、成本、吞吐 | TTFT、TPOT、P95、goodput |
| 业务效果 | 是否解决用户问题 | 转化率、解决率、满意度 |
不要只看榜单。榜单可能受数据污染、题型偏差、prompt 差异影响。生产选型更应该看自己的业务评测集:同样的问题、同样的解码参数、同样的成本口径,对比不同模型的质量、延迟和稳定性。
大模型基础知识地图
下面是基础章节各页的定位:
| 页面 | 你会学到什么 | 适合什么时候看 |
|---|---|---|
| Transformer 架构详解 | Transformer Block、Decoder-only、残差、FFN | 想理解模型骨架 |
| Attention 与变体 | Q/K/V、MHA、GQA、MLA、KV Cache | 面试高频、推理优化前置 |
| 线性注意力与混合架构 | SSM、Mamba、线性注意力 | 关注新架构趋势 |
| 位置编码 | RoPE、ALiBi、长上下文外推 | 理解上下文长度 |
| 归一化与激活函数 | LayerNorm、RMSNorm、SwiGLU | 理解训练稳定性 |
| Tokenizer 与分词 | BPE、SentencePiece、中文 token 成本 | 理解输入和计费 |
| 嵌入层与表示学习 | 向量、语义空间、相似度 | RAG 和检索前置 |
| 解码与采样策略 | temperature、top-p、beam search | 控制输出稳定性 |
| 从 Logits 到损失 | softmax、交叉熵、PPL | 理解训练目标 |
| Mask 与 Padding | 因果掩码、padding、packing | 手撕题和微调排错 |
| MoE | 专家路由、稀疏激活 | 理解 DeepSeek 等模型 |
| 长上下文 | KV Cache、lost in the middle | 长文档和 Agent 场景 |
推荐顺序:先看本页,再看 Transformer、Attention、Tokenizer、Embedding、Logits/Loss、Decoding;之后根据兴趣看位置编码、归一化、MoE、长上下文。
面试中如何组织“大模型总览”回答
遇到“介绍一下大模型”“你对 LLM 的理解是什么”这类开放题,可以按四段回答:
第一段:定义
大语言模型是基于海量文本和代码预训练的 Transformer 神经网络,核心目标是根据上下文预测下一个 token。经过 SFT 和对齐后,它从 Base 模型变成能遵循指令的 Chat 模型。
第二段:训练流程
训练流程通常包括数据清洗、Tokenizer、预训练、SFT、RLHF/DPO 等对齐。预训练获得语言和世界知识,SFT 学会按指令回答,对齐让输出更符合人类偏好和安全要求。
第三段:应用方式
应用层通常有 Prompt、RAG、Agent 三条线。Prompt 负责描述任务,RAG 接外部知识减少幻觉,Agent 让模型调用工具完成多步任务。生产系统还要做权限、日志、评测、成本和安全。
第四段:问题与工程化
大模型会幻觉、上下文有限、成本高、延迟不稳定,也不能替代权限控制。工程上通过 RAG、工具校验、模型网关、评测集、监控和人工复核来降低风险。
这样回答既有原理,也有工程意识,比单纯背 Transformer 公式更完整。
基础部分学习路线与掌握标准
大模型基础内容看起来多,但可以分成三个层次学习,不必一开始平均用力。
第一层:能讲清主链路
这是所有方向都必须掌握的最低要求。你要能把下面这条链路讲顺:
文本 -> token -> embedding -> Transformer -> logits -> softmax -> decoding -> 输出这一层的掌握标准:
- 知道 token 不是汉字或单词本身,而是分词器切出来的单位。
- 知道 embedding 是把离散 token 变成连续向量。
- 知道 Transformer 通过 Attention 和 FFN 处理上下文。
- 知道 logits 是词表分数,softmax 后变成概率。
- 知道解码策略会影响确定性、多样性和复读。
- 知道模型逐 token 生成,所以输出越长越慢、越贵。
如果你只能准备一天基础面试,就优先把这一层讲熟。
第二层:能解释关键“为什么”
面试官往往不会只问“是什么”,而会追问“为什么”。这一层要能解释:
- 为什么 Transformer 比 RNN 更适合大模型:并行训练、长距离依赖、可扩展性更好。
- 为什么 Attention 要有 Q/K/V:解耦查询、匹配和取值三种角色。
- 为什么要除以
sqrt(d_k):防止点积过大让 softmax 饱和。 - 为什么 decoder-only 成为主流生成架构:天然适合自回归生成和统一文本接口。
- 为什么需要位置编码:Attention 本身不知道顺序。
- 为什么需要 KV Cache:自回归生成时避免重复计算历史 K/V。
- 为什么模型会幻觉:训练目标是生成高概率文本,不是事实数据库。
- 为什么 RAG 能缓解幻觉:给模型提供可检索、可引用的外部依据。
能回答这些“为什么”,说明你不是只背术语,而是真理解了结构动机。
第三层:能联系工程和项目
真正拉开差距的是把基础概念讲到项目里。比如:
- 你能从 token 讲到上下文成本、中文成本、长 prompt 优化。
- 你能从 embedding 讲到向量检索、RAG、相似度和召回质量。
- 你能从 decoding 讲到事实问答低温度、创意写作高温度、结构化输出要约束。
- 你能从 KV Cache 讲到长上下文显存、并发吞吐和 vLLM。
- 你能从幻觉讲到 RAG、引用、评测集、人工复核和线上 bad case。
- 你能从模型评估讲到业务指标,而不是只背 MMLU、GSM8K。
这一层是面试和项目复述最有价值的部分。很多候选人会背 Attention 公式,但讲不清“为什么我的知识库问答成本变高”“为什么长文档放进上下文仍然答错”“为什么换模型后 JSON 输出不稳定”。如果你能把基础知识用于排查这些问题,就已经超过纯背八股的水平。
一个月基础训练法
建议按四周推进:
| 周次 | 目标 | 输出物 |
|---|---|---|
| 第 1 周 | 搞懂 token、embedding、Transformer 主链路 | 画一张从输入到输出的流程图 |
| 第 2 周 | 深入 Attention、位置编码、FFN、归一化 | 写一篇“Transformer 为什么有效”的笔记 |
| 第 3 周 | 学 logits、loss、decoding、KV Cache | 做一个解码参数对比实验 |
| 第 4 周 | 把基础用于 RAG/Agent/推理项目 | 复盘一个小项目的成本、延迟和错误来源 |
每周都要有输出物。没有输出物的学习,很容易停留在“我好像看懂了”。大模型基础尤其需要用图、表、代码、项目复盘来固化。
高频基础名词速查
- Token:模型处理文本的最小单位,由 Tokenizer 切分。
- Vocabulary:模型词表,包含所有可能 token。
- Embedding:把 token ID 映射成向量。
- Hidden State:模型每层输出的中间表示。
- Attention:按相关性从上下文取信息。
- FFN / MLP:Transformer 中对每个位置做非线性变换的网络。
- Residual:残差连接,让深层模型更容易训练。
- LayerNorm / RMSNorm:归一化,稳定训练。
- RoPE:主流旋转位置编码。
- Logits:模型输出的词表分数。
- Softmax:把 logits 转成概率。
- Cross-Entropy:训练语言模型常用损失。
- PPL:困惑度,衡量语言模型预测能力。
- KV Cache:缓存历史 token 的 K/V,加速推理。
- Temperature:控制生成随机性。
- Top-p:保留累计概率达到 p 的候选集合。
- Base Model:只预训练的基座模型。
- Chat Model:经过 SFT/对齐、适合对话的模型。
- RAG:检索增强生成。
- Agent:能规划并调用工具的模型应用形态。
基础高频 FAQ
Q1:大模型为什么叫“大”? 通常指参数规模大、训练数据大、计算量大。参数从数十亿到数千亿不等,训练 token 可达万亿级。大规模带来更强泛化和涌现能力,但也带来高成本和部署难度。
Q2:参数越多一定越好吗? 不一定。参数量通常和能力正相关,但数据质量、训练方法、对齐质量、推理配置也很关键。一个训练充分、数据好的小模型,可能在特定任务上超过粗糙的大模型。
Q3:Base 模型和 Chat 模型有什么区别? Base 模型只做预训练,擅长续写;Chat 模型在 Base 上做 SFT 和对齐,学会听指令、按对话格式回答。直接拿 Base 聊天,容易答非所问。
Q4:为什么预训练用自监督学习? 因为互联网文本没有人工标注,但可以自然构造“预测下一个 token”的训练目标。这样才能利用万亿级无标注数据。如果全靠人工标注,规模根本上不去。
Q5:模型的知识存在哪里? 主要隐式存储在权重里,是训练数据的有损压缩。它不是数据库,所以会记错、过时、混淆长尾事实。实时和私有知识通常要用 RAG 或工具接入。
Q6:上下文窗口是不是越大越好? 不完全是。长窗口能放更多信息,但成本、延迟、KV Cache 显存都会增加,而且模型可能忽略中间内容。生产系统更关注“有效上下文”,常结合 RAG、摘要和压缩。
Q7:为什么模型会幻觉? 因为训练目标是生成高概率文本,不是天然保证事实正确。当问题缺少依据、知识过时或模型不确定时,它仍可能生成看似合理的内容。缓解靠 RAG、工具、引用、校验和评测。
Q8:Temperature 设为 0 就完全稳定吗? 不一定。低温或贪心解码会更稳定,但底层并行计算、动态 batching、服务实现也可能带来微小差异。严格复现需要固定种子、后端和推理配置。
Q9:RAG 和微调有什么区别? RAG 是把外部资料检索出来放进上下文,不改模型参数;微调是用数据继续训练模型,改变模型行为。知识频繁更新、需要引用和权限时优先 RAG;要改风格、格式、领域习惯时考虑微调。
Q10:Agent 和普通聊天有什么区别? 普通聊天主要生成回答;Agent 会规划步骤、调用工具、读取环境反馈,再继续行动。Agent 更强,也更容易出错,因此要做工具权限、人审、审计和评测。
Q11:为什么推理部署这么难? 因为大模型生成是逐 token 的,输出 token 越多越慢;同时权重和 KV Cache 占显存,高并发需要复杂调度。要用量化、KV Cache、动态 batching、vLLM、模型网关等优化。
Q12:面试基础部分最容易被追问什么? 最常见的是:Transformer 为什么替代 RNN,Attention 公式含义,Tokenizer 为什么重要,softmax/交叉熵怎么训练,KV Cache 如何加速,为什么会幻觉,RAG 和微调怎么选,Base 和 Chat 模型有什么区别。
自检清单
读完本页,你可以用下面问题检查自己是否真正理解:
- 能否用 1 分钟解释 LLM 是什么?
- 能否说清 token、embedding、logits、softmax 的关系?
- 能否画出从输入文本到输出 token 的流程?
- 能否解释 Transformer 中 Attention 和 FFN 的分工?
- 能否说出预训练、SFT、对齐分别解决什么问题?
- 能否解释为什么模型会幻觉,以及工程上怎么缓解?
- 能否说明 RAG、Agent、Prompt 的区别和组合方式?
- 能否说出推理成本为什么高,KV Cache 为什么重要?
- 能否按“定义 -> 训练 -> 应用 -> 风险”组织一段面试回答?
如果这些问题能回答到七成,你就已经掌握了大模型基础的主干。后面要做的是沿着每个专题深入,而不是在总览页里死背所有细节。
下一步怎么学
按目标选择路线:
- 想懂底层结构:继续看 Transformer 架构详解 和 Attention 与变体。
- 想做应用开发:看 Prompt 工程、RAG 基础、Agent 基础。
- 想做训练微调:看 预训练流程、微调范式、LoRA / QLoRA。
- 想做推理部署:看 推理优化与部署、模型网关。
- 想准备面试:看 高频面试题速记 和 分岗位面试真题。
最后记住一句话:大模型基础不是孤立知识点,而是一条链路。输入如何表示、模型如何计算、训练如何优化、推理如何生成、应用如何落地、风险如何控制,这条链路串起来,你就真正入门了。
基础篇的横向复盘:把知识点接成决策
学完单页概念后,建议再做一次横向复盘。面试官往往不会按目录问:“请解释 RoPE,再解释 Softmax。”更常见的是给出一个现象,要求你从底层推到系统方案。下面的映射能帮助你把零散术语变成排查路径。
| 现象 | 先问的基础问题 | 常见工程动作 | 应继续阅读 |
|---|---|---|---|
| 中文长提示成本异常高 | token 是如何切分的?上下文预算如何分配? | tokenizer 统计、压缩历史、限制输出 | Tokenizer、长上下文 |
| 输出 JSON 偶尔不合法 | 解码如何采样?模型是否学过该模板? | schema 约束、重试、停止词和 validator | 解码与采样、Logits 与损失 |
| 模型漏掉长文档中间证据 | 注意力与位置编码能否有效利用该长度? | 检索分段、重排、摘要、长度分桶评测 | Attention、位置编码 |
| 并发一高就变慢或 OOM | 权重、激活、KV Cache 分别占多少? | 限制上下文、分页缓存、动态批处理、量化 | 模型架构谱系 |
| 换模型后产品风格和工具调用变了 | chat template、SFT、对齐与采样版本是否一致? | 版本锁定、回归集、灰度和回滚 | LLM 全链路 |
| 想靠更大模型解决所有问题 | 缺的是通用能力、最新知识、确定性计算还是权限? | 路由、RAG、工具、微调与人工确认组合 | 缩放规律与能力边界 |
一道综合题的回答骨架
例如面试官问:“企业知识助手把五十页合同直接塞给模型后,成本升高且经常漏答,怎么处理?”可以按以下顺序回答:
- 先把页面长度换算成 token,明确预留输出、system、历史与证据的上下文预算;这对应 tokenizer 和长上下文成本。
- 检查模型是否能在该长度可靠定位信息,不能只看最大窗口标称值;用合同类型和关键条款切片评测。
- 对高价值段落做结构化解析、分块、检索和 rerank,再把带页码/条款号的最小充分证据放进 prompt。
- 对金额、日期、责任主体等关键字段使用结构化 schema、单位校验和必要的人工复核,不让自然语言流畅度冒充准确性。
- 记录模型、prompt、检索索引、输入/输出 token、引用覆盖和失败切片,以便灰度比较、回滚和 bad case 回流。
这个回答同时用到了 Tokenizer、Attention、RAG、解码、评测和可观测性。基础知识的价值,正是让你知道每一个优化为什么有效、又会牺牲什么。
新增专题的学习顺序
- 先读 模型架构谱系与选型,建立 Encoder、Decoder、Seq2Seq、FIM 与混合架构的整体坐标。
- 再读 从数据到回答:LLM 全链路,理解一次训练和一次在线请求分别经过哪些可观测、可治理的环节。
- 最后读 缩放规律、容量与能力边界,把参数、数据、推理成本、路由和风险放到一个质量-成本框架中判断。