大语言模型工作原理
深入理解大语言模型的核心技术架构、训练过程和推理机制
姊妹篇与对照阅读
- 应用层速通(Token 预算、温度、RAG、排障):LLM 基础(前端+AI)
- 同主题「精简机制篇」(Decoder 直觉、QKV、和计费边界):LLM 原理:Transformer 与工作机制
- 同模块、结构/公式更细:Transformer 架构深度解析 · 能力与选型向:大语言模型深度解析
目录
- 🎯 学习目标
- 🧠 大语言模型概述
- 🏗️ Transformer架构详解
- 分词、Token 与工程计费
- 🔄 训练流程详解
- ⚡ 推理机制解析
- 图示与伪代码:前向一步与自回归解码(替代长 demo)
- 🎯 学习检验
- 🚀 实践项目建议
- 📚 延伸阅读
🎯 学习目标
通过本章学习,你将能够:
- 理解大语言模型的基本工作原理和技术架构
- 掌握Transformer架构的核心组件和机制
- 了解预训练、微调和推理的完整流程
- 理解大模型的能力来源和局限性
- 为实际应用大模型打下理论基础
🧠 大语言模型概述
什么是大语言模型
大语言模型(Large Language Model,LLM)是基于深度学习技术,通过在大规模文本数据上进行预训练而获得强大语言理解和生成能力的神经网络模型。
| 特征维度 | 传统语言模型 | 大语言模型 | 关键差异 |
|---|---|---|---|
| 模型规模 | 百万级参数 | 千亿级参数 | 参数量增长1000倍以上 |
| 训练数据 | 特定领域数据 | 互联网规模文本 | 数据规模和多样性大幅提升 |
| 能力范围 | 单一任务 | 多任务通用能力 | 从专用到通用 |
| 学习方式 | 监督学习 | 自监督预训练+微调 | 学习范式的根本变化 |
| 涌现能力 | 无 | 推理、规划、创作等 | 规模带来的质变 |
| 应用方式 | 任务特定模型 | 通用基础模型 | 应用模式的转变 |
大模型的核心能力
| 能力类型 | 具体表现 | 技术基础 | 应用场景 | 能力边界 |
|---|---|---|---|---|
| 语言理解 | 文本分类、情感分析、信息抽取 | 深层语义表示学习 | 内容审核、智能客服 | 需要大量上下文的复杂理解 |
| 语言生成 | 文章写作、对话回复、代码生成 | 自回归生成机制 | 内容创作、编程辅助 | 事实准确性、逻辑一致性 |
| 知识问答 | 百科问答、专业咨询、常识推理 | 参数化知识存储 | 智能助手、教育辅导 | 知识更新、专业深度 |
| 逻辑推理 | 数学计算、逻辑推导、因果分析 | 思维链学习 | 决策支持、问题解决 | 复杂推理、符号操作 |
| 创意生成 | 故事创作、诗歌写作、创意设计 | 模式组合和变换 | 文艺创作、营销策划 | 原创性、文化敏感性 |
| 多语言处理 | 翻译、跨语言理解 | 多语言联合训练 | 国际化应用、语言学习 | 低资源语言、文化差异 |
与机制对应的能力边界(理解、推理、生成)
上表从应用体验角度描述能力。若从机制上收束,可避免把模型当成“有意识的逻辑机”或“可证明正确的推理器”。
| 日常说法 | 在机制上更稳的表述 | 工程含义 |
|---|---|---|
| 理解上下文 | 自注意力在整段子词序列上做可学习加权,FFN/深层堆叠形成利于下一步预测的表示;受 Context Window 与输入顺序(含位置信息)约束 | 多轮对话与长文档要管 截断、摘要、RAG;喂什么偏什么 |
| 逻辑推理 | 多为训练分布中的模式续写 + 多步自回归;链式思考(CoT)常提高外显与稳定性,不保证与符号/证明系统等价 | 关键结论、数值与权限要 工具、代码、数据校验 |
| 生成 | 自回归:反复预测下一子词、拼回序列,直到 EOS 或长度上限;温度/Top-p 调节 采样随机性 | 流式即逐步解码;需 可中止、计费、max_tokens 与服务端对中断的处理(避免白烧 Token) |
以上与姊妹篇 LLM 原理:Transformer 与工作机制 的表述一致,便于你在「全栈 AI 文档」与「应用层速通」间切换时概念对齐。
🏗️ Transformer架构详解
架构总览
Transformer是大语言模型的核心架构,它革命性地引入了自注意力机制,实现了并行化训练和长距离依赖建模。
| 组件 | 功能 | 创新点 | 计算复杂度 | 关键参数 |
|---|---|---|---|---|
| 输入嵌入 | 将词汇转换为向量表示 | 学习语义相似性 | O(V×d) | 词汇表大小V,嵌入维度d |
| 位置编码 | 为序列提供位置信息 | 绝对/相对位置编码 | O(L×d) | 序列长度L |
| 多头注意力 | 并行处理不同类型关系 | 多头并行计算 | O(L²×d) | 头数h,注意力维度d_k |
| 前馈网络 | 非线性变换和特征提取 | 两层全连接网络 | O(L×d×d_ff) | 前馈维度d_ff |
| 层归一化 | 稳定训练过程 | 层级归一化 | O(L×d) | 归一化参数 |
| 残差连接 | 缓解梯度消失 | 跳跃连接 | O(1) | 无额外参数 |
自注意力机制深度解析
自注意力机制是Transformer的核心创新,它允许模型在处理序列时关注到序列中的任意位置。
| 计算步骤 | 数学表示 | 物理意义 | 计算示例 |
|---|---|---|---|
| 查询、键、值计算 | Q=XW_Q, K=XW_K, V=XW_V | 将输入映射到不同的表示空间 | 输入"我爱北京"→Q,K,V矩阵 |
| 注意力分数计算 | Attention(Q,K,V) = softmax(QK^T/√d_k)V | 计算词与词之间的相关性 | "我"对"北京"的注意力权重 |
| 多头并行计算 | MultiHead = Concat(head_1,...,head_h)W_O | 并行捕获不同类型的关系 | 语法关系头+语义关系头 |
| 输出投影 | Output = MultiHead × W_O | 整合多头信息 | 融合所有关系信息 |
位置编码机制
由于自注意力机制本身不包含位置信息,Transformer需要额外的位置编码来处理序列的顺序关系。
| 编码类型 | 计算方式 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|---|
| 绝对位置编码 | PE(pos,2i) = sin(pos/10000^(2i/d)) | 简单直观,计算高效 | 长序列泛化能力有限 | 固定长度序列 |
| 相对位置编码 | 基于相对距离计算注意力 | 更好的长序列泛化 | 计算复杂度较高 | 变长序列处理 |
| 可学习位置编码 | 通过训练学习位置表示 | 适应性强 | 需要更多训练数据 | 特定领域应用 |
| 旋转位置编码(RoPE) | 通过旋转矩阵编码位置 | 理论基础扎实,性能优秀 | 实现相对复杂 | 现代大模型 |
分词、Token 与工程计费
Token 是模型在词表上离散化的最小处理单位,也是绝大多数公有云 API 的计费与上下文长度的计量单位。前文「自回归、下一词预测」在工程里更精确地说是 「下一子词/子字片段」 预测。
子词、BPE 与词表
- 子词分词(BPE、SentencePiece、WordPiece 等)把未登录词拆成更小的子单元,在「词表规模」和「未登录词问题」之间折中。
- 词表(vocabulary)是模型训练时与 Tokenizer 绑定的;不同模型/不同代际 的 Token 化结果不可混用对账。
- 中文往往 1 个汉字不是 1 个 Token;英文常见词常为 1 Token,长词会拆成多 Token。
API 用量、计费与“字符粗估”
- 以提供商返回的
usage(prompt_tokens/completion_tokens)为对账与结算准绳;自写「按字数 × 系数」的公式仅用于预算与告警,不替代正式账单。 - 产品侧要区分:输入(系统提示+历史+检索+用户问)与 输出 的加总;
max_output_tokens只约束生成侧。 - 更偏产品落地的 Token 与上下文策略见 LLM 基础(前端+AI)。
🔄 训练流程详解
预训练阶段
预训练是大语言模型获得基础能力的关键阶段,通过在大规模无标注文本上进行自监督学习。
| 训练阶段 | 目标 | 数据来源 | 学习任务 | 能力获得 |
|---|---|---|---|---|
| 预训练 | 学习语言的统计规律和知识 | 互联网文本、书籍、论文等 | 下一个词预测(Next Token Prediction) | 语言理解、知识记忆、基础推理 |
| 监督微调(SFT) | 学习遵循指令和对话格式 | 人工标注的指令-回答对 | 指令跟随任务 | 指令理解、任务执行 |
| 强化学习(RLHF) | 对齐人类价值观和偏好 | 人类反馈数据 | 基于人类反馈的强化学习 | 有用性、无害性、诚实性 |
训练数据处理流程
| 处理步骤 | 目的 | 具体操作 | 技术要点 | 质量影响 |
|---|---|---|---|---|
| 数据收集 | 获取大规模文本数据 | 网页爬取、书籍数字化、论文收集 | 数据源多样性、版权处理 | 决定模型知识广度 |
| 数据清洗 | 提高数据质量 | 去重、过滤低质量内容、格式标准化 | 启发式规则、机器学习过滤 | 影响模型输出质量 |
| 数据预处理 | 转换为模型输入格式 | 分词、编码、序列切分 | 词汇表构建、特殊标记处理 | 影响模型理解能力 |
| 数据混合 | 平衡不同类型数据 | 按比例混合不同来源数据 | 采样策略、权重分配 | 影响模型能力分布 |
模型训练优化
| 优化技术 | 目的 | 实现方法 | 效果 | 适用规模 |
|---|---|---|---|---|
| 梯度累积 | 模拟大批次训练 | 累积多个小批次的梯度 | 稳定训练,节省显存 | 中小规模模型 |
| 混合精度训练 | 加速训练,节省显存 | FP16/BF16 + FP32混合使用 | 训练速度提升2倍 | 所有规模 |
| 梯度检查点 | 节省显存 | 重计算中间激活值 | 显存节省50%,时间增加20% | 大规模模型 |
| 模型并行 | 突破单卡限制 | 将模型分布到多个GPU | 支持超大模型训练 | 超大规模模型 |
| 数据并行 | 加速训练 | 多GPU同时处理不同数据 | 训练速度线性提升 | 所有规模 |
| ZeRO优化 | 优化显存使用 | 分布式存储优化器状态 | 显存效率大幅提升 | 大规模模型 |
⚡ 推理机制解析
文本生成过程
大语言模型的文本生成是一个自回归的过程,每次生成一个词汇(token),并将其作为下次生成的输入。
| 生成步骤 | 计算过程 | 技术细节 | 性能考虑 |
|---|---|---|---|
| 输入编码 | 将文本转换为token序列 | 使用训练时的分词器 | 词汇表外词汇处理 |
| 前向传播 | 计算下一个token的概率分布 | 通过所有Transformer层 | 计算复杂度O(L²×d) |
| 采样策略 | 从概率分布中选择下一个token | 贪心、随机、核采样等 | 平衡质量和多样性 |
| 序列更新 | 将新token添加到序列中 | 更新输入序列 | 序列长度限制 |
| 终止判断 | 判断是否结束生成 | 遇到结束符或达到长度限制 | 生成长度控制 |
采样策略对比
| 采样方法 | 原理 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|---|
| 贪心采样 | 总是选择概率最高的token | 确定性输出,质量稳定 | 缺乏多样性,容易重复 | 事实性问答、翻译 |
| 随机采样 | 按概率分布随机选择 | 输出多样性高 | 质量不稳定,可能偏离主题 | 创意写作、头脑风暴 |
| Top-k采样 | 从概率最高的k个token中采样 | 平衡质量和多样性 | k值需要调优 | 通用文本生成 |
| Top-p采样 | 从累积概率达到p的token中采样 | 自适应候选集大小 | p值需要调优 | 对话系统、内容创作 |
| 温度采样 | 调整概率分布的尖锐程度 | 灵活控制随机性 | 温度参数敏感 | 需要精细控制的场景 |
推理优化技术
| 优化技术 | 原理 | 效果 | 实现复杂度 | 适用场景 |
|---|---|---|---|---|
| KV缓存 | 缓存键值对,避免重复计算 | 推理速度提升5-10倍 | 低 | 所有自回归生成 |
| 批处理推理 | 同时处理多个请求 | 吞吐量提升3-5倍 | 中 | 服务端部署 |
| 模型量化 | 降低模型精度以减少计算 | 速度提升2-4倍,显存减少50% | 中 | 资源受限环境 |
| 模型剪枝 | 移除不重要的参数 | 模型大小减少30-50% | 高 | 边缘设备部署 |
| 知识蒸馏 | 用小模型学习大模型知识 | 保持90%性能,大小减少10倍 | 高 | 移动端应用 |
| 投机解码 | 用小模型预测,大模型验证 | 推理速度提升2-3倍 | 高 | 高质量要求场景 |
图示与伪代码:前向一步与自回归解码(替代长 demo)
以往常见的「几百行可运行 JavaScript 教学版 Transformer」容易占满篇幅,且与工程里实际使用的 PyTorch / 推理引擎 / 托管 API 脱节。这里用图示 + 极短核心式建立直觉。若要动手跑完整训练或推理,推荐直接使用 Hugging Face Transformers 或 nanoGPT;云上调用与鉴权、限流、错误处理见 AI API 集成与调用技巧。
数据流总览(Mermaid)
一次前向的目标:在已给出的整段子词(含系统提示、历史、用户输入)上,为「下一个子词」在词表上给出一个概率分布。Decoder-only 对话模型在实现上,是对可见前缀反复做这类计算;采样的随机性由 temperature / top_p 等控制。
自回归循环(伪代码)
自回归解码=把上一步新生成的子词拼回输入,再算下一步的分布。流式输出(SSE)本质上是下面循环在「每多出一个子词」时往客户端推一段文本。
序列 = 分词(系统+用户+已生成, ...);
for step in 1..max_out_tokens:
分布 = Softmax( LM(序列) 在待预测位置上的 logits );
下一词 = Sample(分布; temperature, top_p, ...);
若 下一词==EOS: 结束;
序列 = 序列 + [下一词];
自注意力与一层的核心式
自注意力把同一序列中每个子词都投影为 Q(查什么)、K(可匹配的标签)、V(要混合进输出的内容);注意力权重由 Q 与 K 的相似度经 softmax 得到,再去加权 V。缩放点积的「一句话公式」是(与 Transformer 架构深度解析 的数学部分一致,此处不展开求导与多头拆分):
Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) @ V(在 PyTorch 中即对最后一维做 softmax,再与 V 相乘。)
一个 Encoder/Decoder 子层在残差 + 层归一化下可记为:先对 LayerNorm(x) 做自注意力,再加回 x;再对 LayerNorm(·) 做前馈 FFN,再加回。Decoder 侧在「生成」时还会加 因果掩码,保证当前子词不能看见尚未生成的右端子词。这里不再粘贴整类 class MultiHeadAttention。
与 API 对接时只需盯住的字段
| 你关心的 | 通常在哪里 |
|---|---|
| 花多少钱 / 用多长上下文 | 响应体里的 usage(prompt_tokens、completion_tokens 等),以服务商返回为准 |
| 生成长度 | 请求里 max_tokens / 厂商等价字段;注意与 Context Window 的关系 |
| 稳 vs 活 | temperature、top_p、有的模型还有 seed |
最小调用骨架(不是可运行全要素示例;缺 URL、key、错误处理,仅保留结构以对照文档):
// 发 JSON、读回文本与 usage —— 与「原理」一节的自回归、计费对齐即可
const res = await fetch(apiUrl, {
method: "POST",
headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
body: JSON.stringify({
model,
messages: [{ role: "user", content: prompt }],
max_tokens: 200,
temperature: 0.4,
}),
});
const j = await res.json();
const reply = j.choices?.[0]?.message?.content;
const { prompt_tokens, completion_tokens } = j.usage;
与姊妹篇的图示表述对齐:LLM 原理:Transformer 与工作机制(Decoder 堆叠、子词、能力边界一句话版)。
🎯 学习检验
原理理解检验
- 架构理解:能否解释Transformer架构的核心组件和作用?
- 注意力机制:能否描述自注意力机制的计算过程?
- 训练流程:能否说明预训练、微调、RLHF的目的和方法?
- 生成机制:能否解释自回归生成的工作原理?
实践能力检验
- API使用:能否熟练调用大模型API并分析响应?
- 参数调优:能否根据需求调整采样参数?
- 性能分析:能否评估模型的性能和效率?
- 问题诊断:能否识别和解决常见的使用问题?
🚀 实践项目建议
原理验证项目
- 画清数据流:对着本文 Mermaid,能手绘「嵌入 → 多层块 → 词表」与自回归外圈循环。
- 注意力小实验:在 Transformers 或课程 notebook 里跑 一两层 小模型,只观察注意力矩阵长什么样(不必手写 200 行矩阵乘)。
- 采样 A/B:同一
prompt只改temperature/top_p,各生成 3 次,把差异记成可复述的结论。 - 用量对账:用任意官方 SDK 或 curl 打一次流式与非流式,核对
usage与账单字段。
应用开发项目
- 智能对话系统:已接入大模型 + 会处理中断与 usage 的 Web 或 CLI 即可算过关。
- 文本生成工具:有「短/中/长」或「更稳/更活」的显式产品开关,并映射到 API 参数。
- 统一 API 适配层:对两家厂商的
messages/max_tokens/ 错误体做归一,而不是复制粘贴示例代码。 - Token 与成本看板:按日/按模型聚合计费字段,和粗估作对比,形成「预警阈值」。
📚 延伸阅读
核心论文
- "Attention Is All You Need" - Transformer原始论文
- "Language Models are Few-Shot Learners" - GPT-3论文
- "Training language models to follow instructions" - InstructGPT论文
- "Constitutional AI: Harmlessness from AI Feedback" - Constitutional AI论文
技术博客
- The Illustrated Transformer - 图解Transformer架构
- OpenAI Blog - 大模型技术发展动态
- Anthropic Research - AI安全和对齐研究
- Hugging Face Blog - 开源大模型技术分享
开源资源
- Transformers库 - Hugging Face的模型库
- nanoGPT - 简化版GPT实现
- LLaMA - Meta开源大模型
- ChatGLM - 清华开源对话模型
学习提示:先读通本文表格 + Mermaid + 伪代码,再选 Transformers / 云 API 其一做小实验(看
usage、改temperature),避免在文档里追求「手抄几百行教学版 Transformer」;工程深读以 大模型技术 与开发实战篇为准。