尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

How LLMs Actually Work(翻译)

How LLMs Actually Work(翻译)
📅 发布时间:2026/6/29 2:52:47

写在前面

现代主流大语言模型(LLM)几乎都是把同一种结构——Transformer block——一层一层堆起来的。所以只要把一个 Transformer 内部的几个零件理解透,就能看懂绝大部分主流 LLM 的论文和 model card。

模型与模型之间的区别,主要在于三件事:

  1. 用什么数据训练;
  2. 模型规模与超参(层数、宽度、注意力头数等);
  3. 后训练阶段做了什么(SFT、RLHF、DPO……)。

下面按 9 个主题,把 LLM 的"内部机器"从输入到输出走一遍。


1. Tokenization:把文字变成整数

模型并不直接读文字,它读的是整数 ID。把字符串切成整数序列的过程叫tokenization(分词 / 切分 token)。

  • Token ID:词表里每一项对应一个整数。模型只认这个整数,不认字符本身。
  • Vocabulary(词表):分词器固定的"小积木清单"。现代 LLM 词表通常在几万到几十万条之间。

token 通常不是完整单词,而是子词(subword)片段:

  • tokenization可能会切成["token", "ization"]
  • running可能会切成["run", "ning"]

为什么用子词?

  • 整词词表太大、对新词不泛化;
  • 字符级太小,模型连最简单的拼写规律都得从头学;
  • 子词介于两者之间:常见片段直接是一个 token,罕见词由小片段拼出来。

经典坑:问 LLM "strawberry 里有几个 r",早期模型常答错。不是模型不会数数,而是它根本看不到字母——它看到的是几个 token ID,"strawberry" 也许只是 1~2 个 token,里面的字母被打包了。

不同家族用不同分词器:GPT 系列用BPE(Byte Pair Encoding)的变体,LLaMA 系常用SentencePiece。算力消耗、多语种覆盖会受影响,但本质都是:文字进,整数出。


2. Embeddings:让整数有了"意思"

1024这样一个 token ID 本身没有任何含义,它只是一个行号。让它有意义的,是一张巨大的查找表——embedding matrix(词嵌入矩阵)。

  • 每一行对应词表里的一个 token;
  • 每一行是一个长向量,长度等于模型的隐藏维度(hidden size)。
  • 7B 量级的模型常见隐藏维度是 4096,更大的模型用更宽的向量。

Vector(向量):就是一串数字。Transformer 内部一切运算都是向量与矩阵的乘法。

模型拿到 token ID 后,会去 embedding 表里查出对应的那一行,后面的所有计算都用这个向量进行。

有趣的性质:训练完成后,语义相似的 token 在向量空间里也接近。

  • "king" 和 "queen" 的向量距离很近;
  • "Paris" 和 "France" 的向量距离也很近;
  • 著名的近似等式:king − man + woman ≈ queen。

这种几何结构没人手写过,是模型为了把"下一个 token 预测"做好,自己把它学出来的。

⚠️ 注意:到这一步,每个 token 已经变成向量了,但向量本身不带"位置信息"。"dog"无论排在第 1 个还是第 5 个,查表得到的是同一个向量。这就需要下一步的位置编码来补上。


3. Positional Encoding:告诉模型"谁先谁后"

纯粹的 self-attention天生不区分顺序,需要额外注入"位置信号",否则模型分不清是 "dog bites man" 还是 "man bites dog"。

3.1 经典做法:正弦余弦位置编码(Vaswani et al., 2017)

给每个位置一组固定的数字(不同频率的 sin/cos 组合),直接加到token 的 embedding 上。位置 1 加一个模式,位置 5 加另一个模式。

优点:可以外推到训练时没见过的更长序列。

但随着模型变大,加性方案有两个问题:

  1. embedding 既要装"语义"又要装"位置",容量受限;
  2. 学习版的绝对位置编码在长上下文上外推不稳——训练只见过 2048 长度,到 5000 时就不行了。

3.2 现代主流:RoPE(Rotary Position Embeddings)

Su et al. 2021 提出,目前 LLaMA、Mistral、Gemma、Qwen 等几乎所有开源模型都用它。

直觉:不再"加"位置向量,而是按位置旋转Query 和 Key 向量。

  • 位置 1 的 token 转一个小角度;
  • 位置 100 的 token 转一个大角度;
  • 注意力打分时,真正起作用的是两个 token 旋转角度的差——也就是它们的相对距离。

优点:

  • 天然编码相对位置(更贴合 attention 的需求);
  • 长上下文外推更平滑;
  • 不引入新参数。

3.3 "Lost in the Middle" 现象

Liu et al. 2023 报告:即使位置编码足够好,LLM 在长 prompt 中对开头和结尾的信息利用得更好,对中间的反而会"忘"。这也是"重要内容放开头/结尾"这条 prompt 工程经验的科学依据——模型并不是均匀使用你的 prompt 的每一部分。


4. Attention:token 之间互相"看"

Attention(注意力)是 Transformer 名字的来源,也是它最核心的机制。每一层 Transformer 里,attention 做一件事:让每个 token 看一眼它被允许看到的其他 token,决定哪些对自己接下来的表示更重要。

为此,每个 token 同时扮演三个角色,被映射成三个新向量:

角色含义
Query (Q)我想从别的 token 那里找什么?
Key (K)我能给别的 token 提供什么"标签"用来匹配?
Value (V)一旦匹配上,我会传出去什么内容?

Q、K、V 是同一个 token 经过三个不同的、可学习的线性变换得到的。

4.1 匹配过程

  1. 每个 token 的 Query 与所有可见 token 的 Key 做点积(dot product),点积越大表示越"对得上"。
  2. 点积分数除以 √d_k 做缩放(防止 softmax 饱和)。
  3. 用softmax把分数变成"和为 1 的权重"。
  4. 用这些权重对 Value 做加权求和——就是这个 token 在本层的新表示。

Dot product:衡量两个向量"对齐程度"的最简单方式。
Softmax:把任意一组分数变成像概率一样、加起来等于 1 的权重。

4.2 一个例子

句子:"The cat that I saw yesterday was sleeping."

模型处理was时,要搞清楚"是谁在 sleeping"。was的 Query 与所有可见 token 的 Key 做点积:

  • 与cat的点积很高(动词需要主语,cat这种主语恰好提供匹配的 Key);
  • 与yesterday的点积很低;
  • softmax 后,cat拿到大权重,yesterday拿到小权重;
  • was的新向量主要由cat的 Value 决定——这就是"指代"在数学上是怎么实现的。

4.3 Causal Masking(因果遮罩)

GPT 类模型是从左到右生成的,所以位置 5 的 token只能看到位置 1~5,不能看到 6、7、8(那些还没生成出来)。
做法很简单:把"未来"位置的匹配分数设成极小的负数,softmax 之后权重几乎为 0。

4.4 Induction Heads(归纳头)

Anthropic 在 2022 年发现的一类专门化注意力头:会识别 prompt 里A B … A这种模式,遇到第二个A时,回头看上一次A后面跟的是B,于是预测下一个就是B。

这是目前已知最清晰的in-context learning(上下文学习)机制之一——为什么你在 prompt 里给几个示例,模型就能照着续写。

4.5 Attention 的代价

完整 attention 中,每个 token 要和所有可见 token 比较,因此 prompt 长度翻倍,计算量大约翻 4 倍(O(n²))。这就是长 prompt 又慢又贵的根因,也是 FlashAttention、稀疏注意力、线性注意力等优化方向的存在意义。


5. Multi-Head Attention:多视角看同一段话

一次 attention 只能给模型一种"谁该关注谁"的判断。但语言里同时存在很多种关系:主谓一致、代词指代、跨句长程引用、局部短语……一种视角不够。

多头注意力:并行跑多次 attention,每次走自己一小块空间,叫一个head(头)。

一个常见误解

很多教程说"把 token 向量切成几段,每段一个头"——错的。
正确做法是:每个头有自己一套可学习的投影矩阵,把完整的 token 向量投影到自己的小空间里得到 Q、K、V。

例如:模型 hidden=4096,32 个头,每个头的工作空间是 128 维。但这 128 维是从完整 4096 维投影出来的,不是固定的某 128 个分量。所以每个头是同一个 token 的"不同视角",不是它的"碎片"。

相关新闻

  • Burp Suite实战:BSPHP未授权访问漏洞检测与POC编写
  • 量子计算高阶算子分裂方法:原理与应用
  • 百度网盘直链解析工具:如何免费实现10倍下载速度提升

最新新闻

  • 智能漫画收藏管理:跨平台下载器技术解析与应用实践
  • 事件相机角点检测的硬件加速与能效优化
  • MoE混合专家架构原理与工程实践:大模型高效推理的核心技术
  • 如何快速掌握QKeyMapper:Windows最强键鼠手柄映射工具完全指南
  • Windows右键菜单终极整理指南:5个简单步骤让右键菜单焕然一新
  • 番外2:射频功放晶体管选型与实战避坑指南

日新闻

  • ENVI5.3.1实战:基于Landsat 8影像的区域无缝镶嵌与精准裁剪
  • 3步完成HS2-HF Patch安装:新手快速打造完美HoneySelect2体验
  • 微信好友检测终极指南:3分钟发现谁已悄悄删除你

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号