LLM 工作原理
上一篇 LLM 介绍 讲了 LLM 是什么、能做什么。这一篇沿着"它到底是怎么工作的"这条线,把它打开看:核心任务、训练方式、推理循环、Transformer 架构,以及自注意力机制为什么成为现代大模型的基石。文末会串一下这些机制衍生出的实际应用场景。
1. 一句话本质:猜下一个词
LLM 最核心、最基础的任务其实非常简单:
给定一段上文(上下文),猜出下一个最可能出现的 token(字 / 词 / 概念片段)是什么。
例子:输入 这就是好,LLM 的任务就是猜下一个词:人、东西、家伙、男人 等等,并给出每个候选词出现的概率。
看起来平平无奇。但当模型参数足够大、训练数据足够多、上下文足够长时,把"猜下一个词"这个动作反复迭代下去,就会涌现出写文章、做翻译、写代码、做推理、做对话等五花八门的能力。这就是 AGI 学界常说的 emergent ability(涌现能力)。
一个直觉:把 LLM 想成一个"非常强、非常快的文字接龙选手"。所有炫酷的能力——聊天、写诗、debug——都是从"一次只猜一个 token,猜完接上,接着猜下一个"里堆出来的。
1.1 它到底在"理解"什么
重要的事实:LLM 并不是在"理解"语义。它在做的事情更接近:
- 在训练语料中,统计"在某种上下文里,哪个词最常跟在后面"。
- 学到的是词语之间的搭配模式与统计规律,而不是人类意义上的"概念"。
这个看似"只是统计"的看法并不削弱它的能力——就像飞机不需要模仿鸟扑翅膀,也能飞。下一节会看到,正是这种"基于上下文的统计预测"在足够大的规模下变得极其强大。
2. 它是怎么"学会"猜词的——海量阅读 + 疯狂练习
"猜下一个词"的目标定下来之后,剩下两件事:数据从哪来、怎么练。
2.1 数据:吞下整个互联网
训练时,LLM 吞下的是天文数字级别的文本:
- 公开网页(CommonCrawl 等)
- 书籍、论文、新闻
- 开源代码、Issue、PR
- 对话记录、问答社区
- 字幕、专利……
整体规模动辄 TB 甚至 PB 级别。它不是在"阅读理解"这些内容,而是在统计词语之间的搭配模式和共现规律。
一句话:训练数据不是"题库",而是"语料统计的来源"。模型学到的是"什么样的上文后面常出现什么样的下文"。
2.2 训练方法:完形填空
训练方法的核心思想异常朴素——遮住一部分,让它猜。就像小时候做"完形填空":
- 从海量文本中随机截取一段,例如
人工智能正在改变世界。 - 遮住其中一个词,例如遮住
改变,变成人工智能正在 [MASK] 世界。 - 让模型猜被遮住的词。它一开始当然是瞎猜。
- 揭晓答案(
改变),调整模型内部的参数和权重——猜错了就调一点,猜对了也微调让它下次更可能猜对。 - 重复亿万次:在超级计算机上,用海量句子,对模型内部数万亿个"旋钮"进行微调,持续数天甚至数月。
这个过程在论文里叫做 masked language modeling(BERT 系列)和 next-token prediction(GPT 系列),本质上都是同一个套路:让模型在已知上文条件下预测被遮住的 token,再用真实答案反传梯度调参。
经过这个过程的反复锤炼,模型逐渐学会:在特定上下文下,哪些词更常一起出现。这就是"它会说话"的全部秘密——只是统计规律被学得足够准、足够深。
3. 推理时它在做什么——反复玩"猜下一个词"
训练完成后,LLM 在写作文、聊天、翻译时,做的就是反复玩同一款游戏:
- 你给提示:输入一句话或问题(提示词 / Prompt),例如
写一首关于春天的诗。 - 模型启动:把提示词作为初始上下文。
- 猜第一个词:模型根据上下文,计算所有可能下一个词(
春天、微风、万物……)及其概率。 - 选择并添加:模型不是永远选概率最高的词(那样会太死板、太重复),而是按概率随机选一个。随机性可以用 temperature 参数控制:temperature 越低越确定、越高越发散。
- 更新上下文:现在上下文变成
写一首关于春天的诗 春天。 - 猜下一个词:基于新上下文再猜下一个词(
的、里、天……),假设它选了的。 - 循环往复:上下文变成
写一首关于春天的诗 春天的,再猜下一个词……直到生成完整句子或达到长度限制。 - 结果:最终可能生成
写一首关于春天的诗 春天的脚步轻轻走来,唤醒了沉睡的大地……。
这就是 自回归生成(autoregressive generation)——把上一次输出作为下一次输入,一步一步往前推。ChatGPT、Claude、文心一言、通义千问在底层都是这么工作的。
4. 关键问题:猜词不只是看前一个词
但是,真正决定 LLM 表现的,远不止"看前一个词"。它必须理解整个句子的上下文,以及词与词之间的关系。
例子:
苹果很好吃—— 这里的苹果是水果。苹果发布了新手机—— 这里的苹果是公司。
同样是 苹果,下一个词却完全不同。LLM 必须能分辨"第一个 苹果 跟 好吃 关系紧密(水果),第二个 苹果 跟 发布、手机 关系紧密(公司)"。
这件事,就是 Transformer 的自注意力机制 在做的事。下一节展开。
5. Transformer:现代 LLM 的骨架
5.1 起源
2017 年,Google 的论文 《Attention Is All You Need》 横空出世,被称为大语言模型的开山之作,首次提出了 Transformer 架构,奠定了大语言模型的基础。
- GPT(Generative Pre-trained Transformer,生成式预训练的 Transformer)里的 T 就是 Transformer。
- BERT、Llama、Qwen、DeepSeek、ChatGPT、Claude……今天几乎所有顶尖的语言模型,都是基于 Transformer 架构或其变体构建的。
- ChatGPT 的核心就是 Transformer 的 Decoder(解码器)部分。
掌握 Transformer,就掌握了理解现代 LLM 的钥匙。
5.2 为什么要替代 RNN
Transformer 推出之前,NLP 主流是 RNN(Recurrent Neural Network,循环神经网络)。
RNN 的设计思想:一个字一个字地阅读并处理文字。读后面的字时,脑子里努力记住前面读过的内容。问题非常明显:
- 长期依赖:读长文章时,容易忘记开头说了什么。
- 难以并行:必须按顺序读,GPU 无法充分发挥算力。
类比:让你只能从头一道题一道题地背八股文——不仅效率低,而且容易忘。
Transformer 的方案则完全不同:让你一眼扫过整段话,瞬间分析每个词和其他所有词之间的关系有多重要。不按顺序读,而是同时关注所有词,找出谁和谁联系紧密。
类比:不是按顺序背题,而是提前给你画好重点,找出各个题目之间的关系。
这就是"Attention Is All You Need"标题的精髓——注意力机制本身就够用了,不需要 RNN 那套顺序处理。
5.3 架构总览
把 Transformer 想象成一座多层大楼。每一层都做类似的事,只是叠加很多次之后,模型对语言的理解越来越深。
┌─────────────────────────────────────────────────────────┐
│ 输入序列 → 嵌入 → [Encoder × N] → [Decoder × M] → 输出 │
│ (Embedding) (编码器) (解码器) │
└─────────────────────────────────────────────────────────┘下面分模块拆解。
6. 自注意力机制(Self-Attention):Transformer 的灵魂
6.1 什么是 Attention
Transformer 中最重要的思想是 自注意力机制(Self-Attention)。这里的 Attention,就是论文标题 《Attention Is All You Need》 中的 Attention,足以见其重要性。
核心思想:把"要关注全部信息"优化成"只关注重点信息"。
人类看一张照片,不会立刻处理所有细节,而是把注意力集中在焦点上——比如先看人脸,再看船,再看海鸥。这就是一种 Attention 机制:把有限的注意力集中在重点信息上,节省资源,快速获得有效信息。
6.2 Self-Attention 怎么工作
把 Self-Attention 理解成一个"找关系"的游戏:
对于句子里的每一个词,Transformer 都会问:"在这个上下文中,其他所有词对我理解这个词有多重要?"
具体操作:
- "重要性"打分:给句子里的其他词都打一个"重要性分数"。分数高的词,对理解当前词就更关键。
- 加权聚合:用这些分数当权重,把所有其他词的信息加权汇总到当前词上。
例子——句子 亮哥不仅出了个八股文,他还出了新的项目课,它一定能大卖。
当模型处理 它 这个词时,自注意力机制会计算 它 和句子中其他词的关系:
八股文、项目课的分数非常高——它们是潜在指代对象。大卖的分数也比较高——它和"项目课"逻辑相关。- 其他词的分数相对较低。
于是模型就知道 它 指的是 项目课,而不是 八股文 也不是别的。这就是 Self-Attention 解决指代消歧 的核心机制。
6.3 多头注意力(Multi-Head Attention)
自注意力不是做一次,而是做很多次,每次关注不同方面的关系:
- 一次关注"谁在做什么"(主谓关系)。
- 一次关注"描述了什么属性"(修饰关系)。
- 一次关注"哪些词指向同一个实体"(指代关系)。
- ……
每次独立的注意力计算叫做一个"头"(head),多个头并行就叫做"多头注意力"(Multi-Head Attention)。最后把所有头的结果拼接、融合起来。这样能更全面地理解词与词之间多层次的关系。
直觉:不是让一个人同时关注语法、语义、指代、情感……而是让 N 个"专家"各看一面,最后汇总。
7. Transformer 详细流程
下面把 Transformer 完整流程拆开看——从输入一个句子,到模型最终输出下一个 token,中间到底发生了什么。
7.1 输入嵌入(Input Embedding)
把每个词(或字)转换成计算机能理解的数字向量(一串数字)。就像给每个词发一个独特的"身份证号"。
例如 苹果 → [0.21, -0.33, 0.87, ..., 0.05],这个向量在多维空间中编码了词义信息——语义相近的词(国王 vs 女王、北京 vs 上海)向量距离也相近。
7.2 位置编码(Positional Encoding)
因为 Transformer 是同时看所有词的,它本身不知道词的顺序。而"猫追老鼠"和"老鼠追猫"意思完全不同,所以必须额外添加表示词在句子中位置(第 1 个、第 2 个……)的信息——就像给每个词加上"座位号"。
主流的位置编码方案:
- 绝对位置编码(原 Transformer):用不同频率的正弦/余弦函数生成位置向量。
- RoPE(Rotary Position Embedding):现代大模型(Llama、Qwen、DeepSeek)主流,通过旋转矩阵把位置信息注入,天然支持长度外推。
- ALiBi(Attention with Linear Biases):在注意力分数上加一个线性偏置,简单且高效。
7.3 编码器(Encoder)
编码器的核心任务是深入理解输入序列。每一层包含两个子层:
多头自注意力层(Multi-Head Self-Attention)
- 就是上面说的"找关系"游戏。每个词同时关注序列中所有其他词。
- 多头并行,每次关注不同方面的关系,然后把结果合并。
前馈神经网络层(Feed-Forward Network, FFN)
- 对每个词单独进行更复杂的非线性变换(基于自注意力层得到的关系信息)。
- 通常是两个线性变换 + 一个激活函数(ReLU / GELU / SwiGLU)。
每个子层外面都会包一层 残差连接 + 层归一化(Add & Norm):技术细节,主要是让训练更稳定、梯度更顺畅。可以想象成在计算过程中加了"稳定器"和"平衡器"。
编码器会堆叠很多层(原 Transformer 是 6 层,现代大模型常见 12-96 层)。每一层都让模型对输入的理解更深入一层:
- 第 1 层:识别"词-词搭配"。
- 第几层:识别"短语-短语搭配"。
- 深层:识别"句法结构"、"语义角色"、"上下文指代"……
- 最深层:编码整段话的"意思向量"。
7.4 解码器(Decoder)
解码器的任务是生成输出序列——一步一步往外吐 token。结构上和编码器类似,但多了一个关键组件:
带掩码的多头自注意力层(Masked Multi-Head Self-Attention)
- 处理"已经生成出来的部分",但只能看过去的 token,不能看未来(用 mask 实现)。
- 保证生成时的因果性:预测第 t 个 token 时,只能依赖第 t 个之前的输出。
编码器-解码器注意力层(Encoder-Decoder Attention)——关键中的关键:
- 解码器在生成下一个词时,会回过头去看编码器对输入的理解结果(比如源语言句子)。
- 决定输入中的哪些部分对生成当前这个词最重要。
- 类比:写作文时,根据题目要求(编码器结果)来构思下一句。
前馈神经网络层(FFN)
- 与编码器相同,做非线性变换。
同样有残差连接 + 层归一化,解码器也堆叠很多层。
7.5 输出:线性层 + Softmax
最后,解码器的输出经过一个线性层 + Softmax,把高维向量映射回词表大小的概率分布:
- 词表 5 万词 → 5 万个概率。
- 概率最高的那个(或按 temperature/top-k/top-p 采样出来的那个)就是下一个 token。
- 把这个 token 接回输入,继续预测下一个……直到生成结束符或达到长度上限。
7.6 现代 LLM 用的是哪一部分
| 架构 | 用什么 | 代表模型 |
|---|---|---|
| Encoder-Only | 只要编码器 | BERT 系列(擅长理解,不适合生成) |
| Decoder-Only | 只要解码器 | GPT / Llama / Qwen / DeepSeek(主流大模型,擅长生成) |
| Encoder-Decoder | 编码器 + 解码器 | T5 / BART / 原始 Transformer(适合翻译、摘要) |
今天 Decoder-Only 是绝对主流——ChatGPT、Claude、Gemini、文心一言、通义千问,底层都是 Decoder-Only。
这也是为什么"自回归生成"成了现代 LLM 的代名词:用 Decoder 一边生成,一边把刚生成的 token 接回去当新输入。
8. Transformer 的核心优势
把 Transformer 的设计思想浓缩成一句话:
Transformer = 同时看所有词 + 疯狂计算词与词之间的关系(自注意力)+ 多层深入理解。
四个核心优势:
并行计算能力强
- 同时处理所有词,不像 RNN 必须按顺序。
- 计算速度快很多,特别适合用 GPU / TPU 训练和推理。
处理长距离依赖无敌
- 自注意力让模型能直接关注到句子中任意距离的两个词之间的关系,不管它们隔得多远。
- 彻底解决了 RNN "记不住开头"的问题。
效果大幅超越前辈
- 在各种 NLP 任务(翻译、问答、摘要、文本生成)上,效果都大幅超越了 RNN/LSTM。
- 论文里英德翻译 BLEU 直接涨了 2 个点以上。
成为大模型基石
- GPT / BERT / T5 / Llama / Qwen / DeepSeek / Claude / Gemini……几乎所有现代顶尖 AI 语言模型,都基于 Transformer 架构。
- ChatGPT 的核心就是 Transformer 的 Decoder 部分。
9. 实际应用:从机制到产品
理解 Transformer 和自注意力之后,可以串一下这些机制催生了哪些今天我们习以为常的应用。
9.1 自然语言处理(NLP)
- 机器翻译:Encoder-Decoder 架构的"原产地"应用,把一种语言编码成向量,再解码成另一种语言。
- 文本摘要:长文档编码,短摘要解码。
- 问答系统 / 情感分析 / 命名实体识别:BERT 系列的 Encoder 拿手好戏。
- 文本生成:Decoder-Only 一统天下,从 ChatGPT 到 Copilot 都是。
9.2 代码与软件工程
- 代码补全(GitHub Copilot、Cursor):在已有代码上下文里"猜下一个 token",本质是同款游戏。
- Bug 定位 / 重构 / 跨语言翻译代码:把代码当作一种"特殊语言"处理。
- 自动化测试生成 / 文档生成:同样是自回归生成。
9.3 多模态:把 Transformer 推广到图像、音频、视频
自注意力机制不只适用于文本——只要数据能变成序列,就能套 Transformer:
- Vision Transformer(ViT):把图片切成 patch 块,每个块当一个"词"送进 Transformer,横扫图像分类。
- CLIP:用 Transformer 把图像和文本编码到同一个向量空间,实现"以文搜图"。
- Whisper:用 Encoder-Decoder 做语音识别。
- Sora / Stable Diffusion 3 / VideoPoet:把视频切成时空 patch,Transformer 处理长序列。
重要观察:"猜下一个 token"是一个极其通用的范式——只要能把任务 token 化,就能用同款架构。这就是"Foundation Model(基础模型)"之所以叫这个名字的原因:一套架构,横扫多模态。
9.4 检索增强生成(RAG)
LLM 不擅长"私有 / 时效 / 准确"的事实。RAG 的做法:
- 用户的提问先去向量数据库检索相关文档。
- 把检索结果作为上下文塞进 prompt。
- LLM 基于这个"被喂过资料的上下文"生成回答。
Transformer 的长上下文能力 + 自注意力对远距离 token 的处理,让 RAG 成为可能。
9.5 Agent 与工具调用
现代 LLM 不只是"答话",还可以"做事"——拆解任务、调用 API、执行代码、做反思。自注意力让模型在多轮长上下文里保持一致的角色与目标,是 Agent 能跑得起来的基础设施。
9.6 本地化与端侧部署
得益于 Transformer 的并行性 + 量化 / 蒸馏技术,7B-13B 的模型已经能在消费级显卡甚至高端笔记本上本地运行:
- Ollama + llama.cpp:把模型加载成本压到单机。
- 手机端 LLM:量化到 4-bit 后,iPhone / 安卓旗舰机也能跑 7B 模型。
- 嵌入式设备:树莓派级硬件跑 1B-3B 模型做本地助理。
10. 一图串起全篇
┌────────────────────────────────────────────────────────────────┐
│ 训练阶段 │
│ [海量文本] → [Tokenizer] → [遮住 token] → [Transformer 预测] │
│ ↓ │
│ [揭晓答案 / 反传梯度] │
│ ↓ │
│ [调整参数 / 重复亿万次] │
└────────────────────────────────────────────────────────────────┘
↓ (训好的模型)
┌────────────────────────────────────────────────────────────────┐
│ 推理阶段 │
│ [Prompt] → [Embedding+PosEnc] → [Decoder × N] → [Linear+Softmax]│
│ ↑__________________| │
│ 自回归:把生成的 token 接回去继续猜 │
└────────────────────────────────────────────────────────────────┘每一格展开,就是本篇各节的内容。
11. 进一步阅读
- 论文
- 《Attention Is All You Need》(Vaswani et al., 2017)——Transformer 开山之作。
- 《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》(2018)——Encoder-Only 路线。
- 《Language Models are Few-Shot Learners》(Brown et al., 2020)——GPT-3,论证"规模带来涌现"。
- 《RoFormer: Enhanced Transformer with Rotary Position Embedding》(2021)——现代主流位置编码。
- 《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》(2020)——ViT,把 Transformer 推广到视觉。
- 科普
- Jay Alammar 的The Illustrated Transformer——图解经典。
- 3Blue1Brown 的神经网络系列(Transformer 章节)——直观可视化。
- 本仓库相关
- LLM 介绍——LLM 是什么、能做什么、与传统程序的区别。
- LLM 训练与对齐——预训练、SFT、RLHF/DPO、LoRA 等训练与对齐的工程视角。
- docker安装ollama并使用本地模型——把上面的模型跑在自己电脑上的入门。
一句话总结:LLM 是个"在海量文本上学过怎么猜下一个 token 的大型 Transformer"。猜词这件事在足够大的规模下,变成了聊天、写代码、做翻译、做推理的通用引擎——这就是 LLM 工作原理的全部故事。
